Posts

Showing posts from May, 2024

macOS 에서 리산테크 AVR FLASHER 10 사용하기

![img_1](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjh_UQMMViB7Of1FnJHfsB5xeHz97bHSsjJk1JtteJCBYDswq109E_WFqRIsOuYLcGFQ2UXLdkERQHWFspN9JUUzCywiamd4JVcXVp3fPrjd0kMElJ2wlAC6fZlICVxuw6JV3bSRDRQBpITNEQgEWaCBStmQwkSV9yVxjOcZUX_XTVnxlxohNqYlUvRKls/s4000/KakaoTalk_Photo_2025-01-04-00-14-17.jpeg) AVR 프로그래밍에 주로 사용하는 리산테크의 AVR FLASHER 10 제품이다. 총 10개의 서로다른 펌웨어를 저장하여 PC 없이도 타겟 장치의 전원으로 펌웨어 다운로드가 가능하다. 펌웨어 다운로드가 고속으로 이루어지기 때문에 아주 편하다. 최근 윈도우 데스크탑 보다 맥북으로 작업을 하는 상황이 많아지면서 이 장비를 사용하는데에 소프트웨어 지원이 윈도우만 되기때문에 불편함을 격고 있었다. 이것때문에 윈도우 노트북을 장만하는건 말이 안되는거 같고 그렇다고 매번 데스크탑을 켜는것도 불편하고 고민만 하고 있었다. 예전에는 부트캠프를 사용해 윈도우 용 프로그램을 쉽게 사용할수 있었지만 맥북이 애플실리콘을 사용하면서 이런점은 살짝 불편해 졌다고 볼수도있다. 호환성이 많이 좋아졌다고 하지만 예전에 Whisky로 시도했다가 실패한 경험이 있었기 때문에 큰 기대는 하지 않으려고했다. 아직 가상화는 시도해보지 않았는데 UTM 은 좀 쓰기가 불편했고 Parallels 는 과금방식이 전부터 마음에 들지 않았다. 사실 개인 사용 목적으로는 VMWare가 무료이기 때문에 다른 선택지가 없다. ![img_2](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjl6Piz058YvIQ1Wv-lqH-lgM7cpMD1KP4Qps0jIAQ2KPVy8mK51ecO-iCA4eH3teAte-Kk...

Lenovo ThinkPad OneLink Pro 알아보기

Image
10년전 Lenovo ThinkPad 에 사용하던 전용 Dock 이다. 몇년 전 ThinkPad 노트북이 고장나면서 애물단지가 되었다. 호환되는 제품도 없고 중고 판매도 쉽지 않을거라 생각한다.  다음은 이제품의 I/O 구성이다.  이 당시만 해도 USB C 나 Thunderbolt 는 대중적이지 않았고 다음과 같은 독특한 규격의 제품이 아직 많이 남아있던 시절이다. 이 부분을 USB C 로 변경하는 것이 가능할지 알아보려고 한다. 이 커넥터의 핀맵에 대한 자료는 아래 링크에서 찾을수 있었다. Lenovo ThinkPad OneLink docking port pinout diagram @ pinoutguide.com 위 사진에서 빨간 색 동그라미 부분의 핀맵은 다음과 같을것으로 생각된다. 핀맵을 보면 ML_Lane 이라는 부분을 찾아 볼수 있다.  이 핀들은 DisplayPort 를 위한것으로 보통의 경우라면 4개 레인 구성이지만 이 제품은 2개 레인 으로 구성되어있다.  USB 의 경우 총 3개의 USB 컨트롤러 칩셋이 사용되었다. 두 개의 USB3.0(VL812-Q7) 칩셋과 한 개의 USB2.0(FE1.1s) 칩셋이 사용되었으며 이더넷 컨트롤러, 사운드 컨트롤러가 USB 3.0 으로 로 연결되어있다. 첫 번째 USB 3.0 컨트롤러에는 두 개의 USB3.0 포트와 전면 오디오 잭을 위한 사운드 컨트롤러 그리고 두 번째 USB3.0 컨트롤러 칩셋이 연결되어있다. 두 번째 USB 3.0 컨트롤러에는 후면 두 개의 USB3.0 포트 와 이더넷 컨트롤러와 USB 2.0 허브가 연결되어있다. USB 2.0 컨트롤러의 USB2.0 포트는 두 개 까지만 구현되어있다. 비디오 출력을 제외한 기능은 모두 USB 를 사용하여 연결됨을 알 수 있었다. 남은 부분은 DVI 출력인데 이 부분은 캔 쉴드를 열어봐야 알 수 있었다. 캔 쉴드의 내부는 다음과같다. 회로를 보면 OneLink Pro 는 핀맵을 통해 ...

RP2040 개발보드 설계 2

Image
지난번 설계에 이어서 전반적인 레이아웃이 수정되었다. 먼저 지난번 보다 더 많은 포트를 구성하여 배열하였다. ADC 기준 전압을 외부 창조하기 편하게 하였고 GND 와 3.3V 전압 포트가 추가 되었다. 오른쪽에 새로운 보드는 리튬 충/방전 모듈로 5.1V 의 전압을 출력하도록 설계되었다. 이 모듈을 상단에 장착할 경우 BOOTSEL 버튼이 가려지기 때문에 별도의 BOOT 버튼을 추가해 주었다. 본래 리튬 충/방전 회로를 하나의 보드에 구성하려 했지만 너무 과한 설계가 되는것 같아 모듈형식을 생각해보았다. 이번에 추가된 기능적인 부분으로 보드가 USB와 VIN 전원소스를 선택할 수 있도록 하였다. 왼쪽이 기존 설계이고 오른쪽이 새로설계된 보드의 모습이다.보드는 기본적으로 USB 전원을 사용하여 구동되지만 VIN 입력이 있는경우 VIN 전압소스를 선택하여 사용하도록 설계하였다. 리튬 충/방전 모듈은 충전과 전원 공급을 동적으로 관리할수 있도록 설계되어 충전중에도 안정적인 전원공급이 가능하다.

RP2040 개발보드 설계 1

Image
RP2040 을 위한 새로운 개발 보드를 만들고 있다. 회로는 어느정도 완성이 되었지만 레아아웃은 계속 수정중이다. 가능하다면 리튬 배터리 충전 회로와 DC-DC 부스트 회로를 추가할 예정이다. Pi Pico 보드와 여러가지 차이점을 주었다 첫 번째로 메모리 부분이다. 2MB인 Pi Pico 와 달리 16MB 의 QSPI 플래시 메모리를 사용하였고 별도로 EEPROM 을 장착할 수 있는 공간을 마련하였다. EEPROM의 동작을 LED 로 확인할수 있으며, 읽기/쓰기는 WP 점퍼를 통해 활성화 하거나 잠글 수 있도록 했다. 두 번째로 전원 필터에 LDO 를 사용하였다. Pi Pico 에 있는 스위칭 레귤레이터의 전압은 노이즈 때문에 ADC Vref 로 사용하기에 적합하지 않다는 평가를 자주 봤기때문에 간단하게 LDO를 사용해 구성하였고 LM4040로 VRef 회로를 구성해 ADC VRef 로 사용할수 있도록 하였다. 이 회로는 기본으로 점퍼가 열려 있으며 필요한 경우에 닫아서 사용할수 있다. 사실 일반적인 경우 LDO의 3.3V 를 바로 사용해도 문제는 없다고 생각한다. 세 번째로 이 보드에는 SD 카드 슬롯이 있다. SD 카드 슬롯의 경우 경우 모든 핀에 풀업을 사용하진 않았고 DATA1/DATA2/DATA3 에 만 풀업 저항을 사용하였다. 사실 저항값을 아끼면서 까지 뺄 필요는 없지만 요즘 SD 카드들은 풀업 저항이 꼭 필요하진 않은것 같다. 너무 오래된 SD 카드를 사용하는 것이 아니라면 풀업 저항 없이 SD 카드 만으로도 문제없이 작동할 것이다. 4비트 통신을 원하는 경우 DATA1/DATA3 를 바닥면에 있는 점퍼로 회로를 열거나 닫을 수 있다. 네 번째로 5V AVR 과 ISP 통신을 위한 로직 컨버터를 추가하였다. 이 부분은 AVR Prog 프로젝트에 사용하기위해 고안된 것으로 기본적으로 타겟 장치의 전압을 사용하도록 되어있지만 다이오드를 반대로 연결해서 타겟 장치로 전원을 공급할수도 있다. 그러나 가능하면 타겟 장치의 전원을 이용하는것이 좋...

Raspberry Pi Pico 를 AVR Programmer 로 사용하기

Image
이 장치는 지난번 ATmega328P 로 만들었던 Standalone AVR Programmer 의 업그레이드 버전이라고 할 수 있다. RP2040 은 ATmega328P 보다 높은 성능과 상당히 넓은 메모리 공간으로 프로그래밍 성능을 좀 더 끌어올릴수 있을 것으로 기대하고 있다. 아직 모든 부분에서 안정적인 것은 아니지만 Pi Pico 는 확실히 프로그래밍 속도를 높일 수 있었다.  ATmega328P에 사용한 것과 거의 동일한 코드로 펌웨어 쓰기 시간을 최대 1/6 수준으로 줄일 수 있었지만 일부 IC는 테스트에서 클럭 사인파 간격을 최소로 했을때 IC 와 퓨즈 정보를 읽어오는데 가끔씩 실패했다.  전원과 결선에 문제가 없다면 실패의 원인으로 다음 두 가지를 예상할 수 있다. 첫 번째는 각 IC 들의 기본 퓨즈 세팅에 따른 SPI 성능 부족이다. 실제로 외부 클럭을 사용하도록 퓨즈를 수정하여 시스템의 클럭을 높이게 되면 SPI 클럭의 사인파 주기를 좀 더 줄일 수 있었으며, 이때 고속으로 SPI 를 통한 프로그래밍을 할 수 있었다. 두 번째는 로직 컨버터의 부재다. Pi Pico 는 gpio 에서 3.3V 출력을 지원하는데 고속으로 운용시 gpio의 3.3V 신호가 타겟보드에서 HIGH 혹은 LOW 신호로 인식될만큼 충분하지 못했을 수 있다. 물론 ATmel 사의 모든 AVR 이 3.3V에서 프로그래밍이 불가능 한것은 아니지만 적어도 ATtiny 같은 일부 제품에서는 클럭을 수정하거나 모든 SPI 핀이 3.3V 보다 높은 전압에서 안정적인 통신이 가능했다. 따라서 통신 신뢰도를 높이기 위해서는 로직 컨버터가 필요하다.  위 두가지를 모두 보완하면 프로그래밍 실패 이슈는 대부분 사라질 것으로 보고있다.

Popular posts from this blog

[POE] - 패스 오브 엑자일 획득키 F 의 사용법 (Path of Exile)

[Arduino] - HC-06를 이용해 PC 와 Arduino 블루투스 연결

[Python] - 블루투스 모듈 HC-06의 MAC 주소를 이용하여 통신 포트 찾기