FT232RL에서 AVR 라이터를 창작하여 Attiny 85가 Digispark와 호환될 때까지

FT232RL에서 AVR 라이터를 창작하여 Attiny 85가 Digispark와 호환될 때까지
이번에는 두 가지 내용이 담겼다고 생각하세요.하나는 FT232RL을 사용한 AVR 라이터에 대한 기사입니다. 길거리와 골목에 오래된 정보가 너무 많아서 현재의 정보를 써 보려고 합니다.또 하나는 에이티니 85에 마이크로루클레스와 리틀와이어를 첨가해 디지털 파크 호환성을 만들었다.

FT232RL(AE-UM 232R)을 사용한 AVR 라이터


예를 들어 Arduino Uno의 CPU(ATmega328P)를 사서 그렇게 움직이면 Arduino의 스케치가 움직일까요? 아쉽지만 시동기 같은 게 없으면 안 돼요.원래 CPU에 이니시에이터를 설치해야 하는 하드웨어입니다.이미 아두노 언노가 있는 사람이라면 알파를 더해 AVR 라이터를 만들 수 있고, 두 명의 언노가 연결되면 된다.이외에도 AVR 라이터로 불리는 물건 자체도 판매되고 있다.
나는 ESP-WROOM-02AW-UM232R를 가동하기 위해 샀지만, 아직 많이 남았다(가시덤불 파이를 사용하면 순조롭게 진행되기 때문에 AW-MUM232R가 필요하지 않다).그래서 이걸로 AVR 라이터를 만들었어요.그렇다면 이 단락 자체가 9년 전부터 있었던 아주 오래된 이야기다.너무 오래되고 정보가 복잡하게 뒤엉킨 상태여서 FT232RL이 사용된 AVR 라이터의 말을 정리해보려고 한다.
간단하게 말하면 TFT232RL과 같은 USB 시리즈 변환기는 BitBang 모드와 같은 특수한 모드에서 hack을 하면 AVR에 기록할 수 있다. 이것은 2007년연구 방법에 등장한 것으로 AVR 라이터 소프트웨어 avrdude의 개인 버전이 출시되었다.나중에 본가 avrdude의 수입에 들어갔기 때문에 지금은 사립판에 가입할 필요가 없다.

전기회로


회로에 관해서는 거리와 골목의 정보에 아무런 문제가 없다.
FT232DL
CPU 측
ATtiny85
ATmega328P
CTS
MISO
6
18
DCD
MOSI
5
17
DSR
SCK
7
19
RI
RESET
1
1
VCC
VCC
8
7
GND
GND
4
8, 22
CPU 측의 플러그 번호는 Arduino IDE에서 Attiny 기타 개발(Arduino-IPP 편) | Make | kosakalab를 참조했습니다.
단도직입적으로 이것들을 연결하면 된다.LED를 VCC에 넣어 이해하기 쉽게 하는 사람도 있다.또 외부 시계의 돌(패턴)이 필요한 경우 도자기 시계를 넣은 사람의 회로도도 흔하다.

소프트웨어(Mac)


이거 몇 개 미묘하게 반했어.내가 Mac를 사용하는 경우 Mac의 정보만 있을 뿐, Windows의 상황도 아무런 변화가 없다.
$ brew install avrdude
우선 brew로 avrdude를 설치합니다.
$ avrdude -c diecimila -p t85
can't open ftdi device 0. (unable to claim usb device. Make sure the default FTDI driver is not in use)

avrdude done.  Thank you.
다음으로avrdude를 쳐 보세요.-c diecimila는 FT232R 방식의 지정이고 -p t85는 Attiny85의 지정이다.다른 돌이라면 적당한 방법을 찾아보세요.아마 ATmega328P면-p m328 같은 거요.아무렇게나 지목하면 리스트가 나오니까 그걸 보면 돼.
옵션은 좋은데 오류가 발생했습니다.USB를 꽂아도 같은 오류가 발생할 수 있다고 생각합니다.왜?OS에 설치된 FTI사의 USB Serial 드라이버(이전에는 직접 설치해야 할 것 같았는데 Marvericks상 OS에 설치된 것 같다)와 충돌한 것 같다.운영체제 드라이버가 아니라 읽기와 쓰기를 위한 것이다.따라서 내장 모듈에서 마운트 해제해 보세요.
$ kextstat | grep -i ftdi
(省略) com.FTDI.driver.FTDIUSBSerialDriver (省略)
$ sudo kextunload -bundle-id com.FTDI.driver.FTDIUSBSerialDriver
첫 번째 kexstat에서 FTI 드라이버가 포함되어 있는지 확인합니다.kextunload로 그 이름의 bundle id 드라이버를 마운트 해제했습니다.
이럴 때 이름을 어디에 적으세요.마운트 해제된 상태면 문제가 나온다(OS에서 USB Serial을 찾을 수 없다).원상태로 돌아가려면 로드면 돼.
$ sudo kextload -bundle-id com.FTDI.driver.FTDIUSBSerialDriver
FTDI 드라이버를 제거한 후 동일한 명령을 다시 실행합니다.
$ avrdude -c diecimila -p t85

avrdude: Device is not responding to program enable. Check connection.
avrdude: initialization failed, rc=-1
         Double check connections and try again, or use -F to override
         this check.


avrdude done.  Thank you.
이번에 잘못된 성질에 변화가 생겼다.FT232 DL이 제대로 작동하는 것 같지만 대상 장치가 반응하지 않습니다.사실 보트율을 직접 지정하지 않으면 안 된다.(이번엔 9600을 지목했지만 4800을 추천한다는 말도 본 것 같다.)
$ avrdude -c diecimila -p t85 -B9600

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.15s

avrdude: Device signature = 0x1e930b (probably t85)

avrdude: safemode: Fuses OK (E:FF, H:DF, L:62)

avrdude done.  Thank you.
여기까지 왔으면 이미 괜찮아.Futus를 다시 쓰거나 시동기를 구울 수 있습니다.
Fuuses는 CPU 부팅 옵션이 포함된 정보입니다.예를 들어 시계가 내부 시계를 사용하거나 외부 시계를 사용하거나 리셋 핀을 리셋에 사용하거나 GPIO가 리셋이 아닌 GPIO에 사용하거나참고로 E는 확장판이고 H는 Fuls의 상위권이며 L은 Fuls의 하위권이다.이fuuse는 CPU의 종류에 따라 내용이 다른 것 같습니다. 자세한 내용은 조사해 주세요.

겸사겸사 말씀드리겠습니다.


오류가 있었다고 해도'CPU를 거꾸로 꽂은 거 아니냐? 거꾸로 꽂아보자(수수께끼)'고 생각해서는 안 된다.Attiny 85면 GND와 VCC가 반대여서 비참할 거야.향기가 난다고 생각하면 CPU가 매우 뜨겁다.어리석은 짓을 한 대가로 동판의 일부를 녹이고 내가 약속한 물집의 검지를 녹였다.
절대 거꾸로 가리키면 안 돼!주의!

Attiny 85와 저항과 광택 다이오드로 제작된 Digispark 호환기


저렴한 USB를 마이크로컴퓨터 Digispark에 직접 삽입하는 추천-Qita에 적힌 Digispark는 회로에 아주 간단해서 해봤어요.USB 구동력이 없던 Attiny 85는 소프트웨어 구동 USB를 콘셉트로 한 보드다.복제품이라면 200엔도 안 돼 살 수 있지만 직접 조립하면 회로의 자유도를 높일 수 있다.예를 들면 마이크로소프트 USB로 제작하고 싶은 경우라도 있나요?또 실제 조립하면 Digispark처럼 되지는 않지만, 매우 촘촘하게 조립할 수 있어 사용하기 편하다.그리고 이베이에게서 복제품을 받으면 발송 시간이 길어지기 때문에 불편한 분들도 조립해 볼 수 있을 거예요.

회로도


Digispark clone by erukiti d0281ae274aef149 - Upverter

보태다


USB 측면의 VCC(5V)를 3.3V 등으로 떨어뜨리면 3.3V로 구동하는 등 삼단자 조절기 등을 일시적으로 사용할 수도 있다.이 경우 과납 다이오드를 생략할 수 있다.
3.3V로 구동된다면 무엇이 기쁜지 3.3V만 지원하는 기계와 연결하는 상황, 예를 들어 ESP-WROOM-02, LPC 시리즈, BME-280 등이다.

참고 자료


  • V-USB - A Firmware-Only USB Driver for Atmel AVR Microcontrollers Hardware 회로 그래프

  • >> Little Wire의 회로 다이어그램
  • https://s3.amazonaws.com/digispark/DigisparkSchematicFinal.pdf
  • 소프트웨어


    Digispark는 소프트웨어상으로 micronucleusLittle Wire로 구성되어 있다.우선 미크로누클레어스를 태워 넣으세요.

    Micronucleas용 CLI 설치

    $ git clone https://github.com/micronucleus/micronucleus.git
    $ cd micronucleus/commandline/
    $ make
    $ sudo make install
    

    소미크론루스


    이건 아까 AVR 라이터를 사용해서
    $ avrdude -c diecimila -p t85 -B9600 -U flash:w:micronucleus/firmware/releases/t85_default.hex -U lfuse:w:0xe1:m -U hfuse:w:0x5d:m -U efuse:w:0xfe:m
    
    여기서 주의해야 할 것은 Fuse가 Little Wire의 페이지에 -U lfuse:w:0xe1:m -U hfuse:w:0x5d:m -U efuse:w:0xfe:m라고 쓰여 있는데 digispark:tutorials:programming [Digistump Wiki]를 보고 보니
    attiny85-RESET-enabled.bootloader.low_fuses=0xf1
    attiny85-RESET-enabled.bootloader.high_fuses=0xdf
    attiny85-RESET-enabled.bootloader.extended_fuses=0xfe
    attiny85-RESET-disabled.bootloader.low_fuses=0xf1
    attiny85-RESET-disabled.bootloader.high_fuses=0x5f
    attiny85-RESET-disabled.bootloader.extended_fuses=0xfe
    
    잠깐만요.세 가지 모드가 있지만 디지털 파크의 호환성을 고려하면 f1,5f,fe의 모드(RESET-disabled)일 것이다.
    또 주의해야 할 점은 마이크로누클레어스를 한 번 태우면 AVR 라이터에 반응하지 않는 돌이 만들어진다는 점이다.Fouse 및 micronucleaus는 변경할 수 없습니다.시도는 안 해봤지만 Reset-enable 버전이면 괜찮을 것 같아요.
    대책으로 12V와 또 다른 아두노ATTiny Fuse Reset - Wayne's Tinkering Page를 준비할 수 있다면 이런 방법이 있을 것 같다.아직 해보진 않았지만, 이렇게 하면 다시 시작할 수 있다.

    little 마이크로re를 굽다


    여기서부터 Attiny 85를 새 회로로 바꿔 주세요.
    먼저 http://littlewire.cc/downloads.html부터 Little-Wire Firmware를 다운로드합니다.예를 들면 littlewire_v13.hex입니다.
    micronucleus --run littlewire_v13.hex
    > Please plug in the device ... 
    > Press CTRL+C to terminate the program.
    > Device is found!
    connecting: 33% complete
    > Device has firmware version 2.2
    > Device signature: 0x1e930b 
    > Available space for user applications: 6522 bytes
    > Suggested sleep time between sending pages: 7ms
    > Whole page count: 102  page size: 64
    > Erase function sleep duration: 714ms
    parsing: 50% complete
    > Erasing the memory ...
    erasing: 66% complete
    > Starting to upload ...
    writing: 83% complete
    > Starting the user app ...
    running: 100% complete
    >> Micronucleus done. Thank you!
    
    > Please plug in the device ... 에 플러그를 꽂으십시오.이후 반응이 없으면 USB로 제대로 인식되지 않을 수도 있다.

    platformio로 초도를 굽다


    지금까지 Digispark가 호환되었기 때문에 Digispark를 구우는 절차와 같아야 합니다.저렴한 USB를 마이크로컴퓨터 Digispark에 직접 삽입하는 추천-Qita의 평면 설계 개발을 참고하세요.
    다만, 여기까지의 순서대로 하는 사람은 틀릴 수 있다.
    Warning: device with unknown new version of Micronucleus detected.
    This tool doesn't know how to upload to this new device. Updates may be available.
    Device reports version as: 2.2
    
    ~/.platformio/packages/tool-micronucleus/micronucleus 최신 마이크로루스리스로 교체하세요.
    $ mv ~/.platformio/packages/tool-micronucleus/micronucleus ~/.platformio/packages/tool-micronucleus/micronucleus.old
    $ cp /usr/local/bin/micronucleus ~/.platformio/packages/tool-micronucleus/
    
    이렇게 하면 문제 없이 작동할 것이다.

    좋은 웹페이지 즐겨찾기