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...

Raspberry Pi Zero W/2W - 게임보이 만들기 4 - 샘플 테스트

샘플을 주문하여 PCB 납땜을 하면서 설계하면서 발견하지 아쉬운 점들이 하나 둘 발견되었다. 

첫 번째로 원활한 테스트에 필요한 테스트 포인트 설계를 누락 했다. 
이게 없어서 PCB 도 너무 지저분해졌고 회로 찾아가며 테스트 하는데 너무 많은 시간을 소비했다. 

두 번째로는 디스플레이 백라이트 설계가 완전히 잘못되었다.
지금 생각하면 너무 바보 같은데 회로도 설계시 심볼을 회전하면서 결선이 틀어진 모양이다.
일단 테스트는 백라이트 컨트롤 없이 항상 켜져있도록 만들어두고 테스트를 하였다   

전원부의 경우 예상했던 5.15V 보다 높은 5.18V을 얻게 되었다. 
이 정도의 전압도 사용에 큰 문제가 되지는 않지만 정확한 값을 얻기 위해서는 가변저항을 사용하는 것이 좋아 보인다.

큰 문제는 USB 에 특정 장치들을 연결할 때 발견되었다.
충전이 가능한 제품 중에서 연결하면 무조건 5W 이상을 끌어가도록 설계된 제품들이 있는데 이런 제품들이 문제였다.

TPS61230의 최대 출력은 2.1A 이기 때문에 저방전 배터리를 사용하면 1.2A 이상 끌어가는 상황이 오면 시스템이 불안정해지면서 전원부가 셧다운된다. 

가장 먼저 Raspberry Pi OS 를 설치해보았다.


USB 장치와 microSD 카드도 잘 인식되고 컨트롤러도 잘 인식이 되었다. 구현된 모든 인터페이스는 잘 작동됨을 확인하였다. 사용자의 손길이 필요한 부분은 디스플레이와 오디오 출력 말고는 없어 보인다. RetroPie 의 경우 Wi-Fi 드라이버를 직접 넣어줘야 하지만 그 외에는 Raspberry Pi OS 와 동일하다. RecalBox는 Raspberry Pi OS 와 많이 다르기도 하고 화면 출력과 네트워크 드라이버 부분에 좀 더 연구가 필요하다.

디스플레이는 2.8 인치 ili9341 TFT 를 사용했으며, RetroPie 와Raspberry Pi OS에서 fbcp-ili9341 드라이버를 사용하여 구동 시킬 수 있었다.

fbcp-ili9341 드라이버를 빌드 과정은 다음과 같은 과정이 필요하다. 

sudo apt-get install cmake
cd ~
git clone https://github.com/juj/fbcp-ili9341.git
cd fbcp-ili9341
mkdir build
cd build
sudo cmake -DILI9341=ON -DGPIO_TFT_DATA_CONTROL=24 -DGPIO_TFT_RESET_PIN=25 -DSPI_BUS_CLOCK_DIVISOR=6 ..
make -j
sudo ./fbcp-ili9341
cs

데이터 컨트롤과 리셋 핀은 본인이 사용한 GPIO 넘버로 수정해줘야 정상적으로 동작할 수 있다. 마지막으로 fbcp-ili9341 를 실행하면 곧바로 TFT 에 화면이 출력되는데, 만약 240x320와 같은 세로로 긴 해상도가 16:9 비율로 짜부되어서 나온다면 빌드하기 전에 fbcp-ili9341 폴더에 있는 config.h 파일의 수정이 필요하다.



위 사진과 같이 config.h 파일을 열어보면 화면의 종횡비를 SPI 디스플레이에 맞게 조정할 수 있는 옵션이 있다. 이 부분은 원래 화면비를 유지하기 위해 주석처리 되어있는데 화면을 세로로 설정하는 경우 비율이 깨지기 때문에 주석처리를 지워준 다음 빌드 과정을 거치면 된다.

#define DISPLAY_BREAK_ASPECT_RATIO_WHEN_SCALING
위 지시문의 주석처리를 제거하면 된다.

수정을 마쳤다면 다시 빌드를 진행하고 sudo ./fbcp-ili9341 를 실행 하면 즉시 화면이 출력되는걸 확인할 수 있다. 원하는 결과가 아니라면 빌드 옵션을 수정해서 다시 컴파일 하는 과정을 거치면 된다.

sudo cmake -DILI9341=ON -DGPIO_TFT_DATA_CONTROL=24 -DGPIO_TFT_RESET_PIN=25 -DSPI_BUS_CLOCK_DIVISOR=6 ..
make -j
sudo ./fbcp-ili9341
cs

이제 이 드라이버를 부팅시 자동으로 시작하도록 설정만 해주면 화면이 출력 된다.
다음과 같이 rc.local 파일을 수정해주면 된다. 


수정 사항을 저장하고 재부팅 해주면 이제부터는 모니터 연결이 필요 없어진다.


RetroPie 를 설치해봤는데 Wi-Fi 도 잘되고 화면도 원하는 비율로 출력이 되었다. 디스플레이 터치는 PCB에 구현하지 않았기 때문에 지금은 사용할 수 없는데 다음에 시험적으로 추가해볼 예정이다. 

만약 RetroPie 가 설치된 Raspberry Pi Zero W/2W 에서 Wi-Fi 가 안된다면  Wi-Fi 스캔이 안될때 를 참고하면 도움이 지도 모른다.

Comments

Popular posts from this blog

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

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

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