완전체를 만든 듯하다. 결국 여러번의 리비전 끝에 정상 작동한다. 리눅스 + 윈도우에서 USB HID 장치로 나타나며 Arduino Leonardo의 USB HID 예제도 잘 돌아간다.
Length Match + 16Mghz Oscillator 부분을 고친게 USB 장치 인식 문제 해결에 도움이됬다.
배운점은 Atmel Atmega32u4는 기본적으로 외부 Oscillator로 작동하게 Fuse 설정이되있다. 여기서 햇갈려서 Osicallator 없이 처음에 Avrdude에서 조차 USB-ISP를 통해 인식이 안되 애를 먹었다.
- DFU 부트로더 다운로드는 여기서.
- 우분투에서 dfu-programmer
- 프로그램은 Atmel Flip GUI 툴을 사용
- “make dfu” 하면 tmk펌풰어 플래시 가능
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
avrdude.exe: Error: Could not find USBtiny device (0x1781/0xc9f)avrdude.exe done. Thank you.
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
avrdude.exe: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.00s
avrdude.exe: Device signature = 0x1e9587
avrdude.exe: reading lfuse memory:Reading | ################################################## | 100% 0.00s
avrdude.exe: writing output file “C:\Users\adam.lee\AppData\Local\Temp\80a81a3a-262d-4225-b9eb-44035a432901.TMP”
avrdude.exe: reading hfuse memory:Reading | ################################################## | 100% 0.00s
avrdude.exe: writing output file “C:\Users\adam.lee\AppData\Local\Temp\161e6f41-16a0-4ecc-a998-ef78adcb9c99.TMP”
avrdude.exe: reading efuse memory:Reading | ################################################## | 100% 0.00s
avrdude.exe: writing output file “C:\Users\adam.lee\AppData\Local\Temp\ec9e75ee-8538-4e10-b366-e9a4021cbbb7.TMP”
avrdude.exe done. Thank you.
DFU-AVR8-atmega32u4-BOARD_NONE-BOOT_4KB-16MHz.hex: 3,818 / 1,024 Bytes (372.85%) [!]
HID-AVR8-atmega32u4-BOARD_NONE-BOOT_4KB-16MHz.hex: 2,098 / 1,024 Bytes (204.88%) [!]
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~avrdude.exe: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% -0.00s
avrdude.exe: Device signature = 0x1e9587
avrdude.exe: reading input file “C:\Users\adam.lee\Downloads\HID-AVR8-atmega32u4-BOARD_NONE-BOOT_4KB-16MHz.hex”
avrdude.exe: input file C:\Users\adam.lee\Downloads\HID-AVR8-atmega32u4-BOARD_NONE-BOOT_4KB-16MHz.hex auto detected as Intel Hex
avrdude.exe: ERROR: address 0x7010 out of range at line 1 of C:\Users\adam.lee\Downloads\HID-AVR8-atmega32u4-BOARD_NONE-BOOT_4KB-16MHz.hex
avrdude.exe: read from file ‘C:\Users\adam.lee\Downloads\HID-AVR8-atmega32u4-BOARD_NONE-BOOT_4KB-16MHz.hex’ failedavrdude.exe done. Thank you.
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
avrdude.exe: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.00s
avrdude.exe: Device signature = 0x1e9587
avrdude.exe: erasing chipavrdude.exe done. Thank you.
HID-AVR8-atmega32u4-BOARD_NONE-BOOT_4KB-16MHz.hex: 2,098 / 32,768 Bytes (6.40%)
Detected 1e9587 = ATmega32U4
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~avrdude.exe: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.00s
avrdude.exe: Device signature = 0x1e9587
avrdude.exe: NOTE: “flash” memory has been specified, an erase cycle will be performed
To disable this feature, specify the -D option.
avrdude.exe: erasing chip
avrdude.exe: reading input file “C:\Users\adam.lee\Downloads\HID-AVR8-atmega32u4-BOARD_NONE-BOOT_4KB-16MHz.hex”
avrdude.exe: input file C:\Users\adam.lee\Downloads\HID-AVR8-atmega32u4-BOARD_NONE-BOOT_4KB-16MHz.hex auto detected as Intel Hex
avrdude.exe: writing flash (30770 bytes):Writing | ################################################## | 100% 0.00s
avrdude.exe: 30770 bytes of flash written
avrdude.exe: verifying flash memory against C:\Users\adam.lee\Downloads\HID-AVR8-atmega32u4-BOARD_NONE-BOOT_4KB-16MHz.hex:
avrdude.exe: load data flash data from input file C:\Users\adam.lee\Downloads\HID-AVR8-atmega32u4-BOARD_NONE-BOOT_4KB-16MHz.hex:
avrdude.exe: input file C:\Users\adam.lee\Downloads\HID-AVR8-atmega32u4-BOARD_NONE-BOOT_4KB-16MHz.hex auto detected as Intel Hex
avrdude.exe: input file C:\Users\adam.lee\Downloads\HID-AVR8-atmega32u4-BOARD_NONE-BOOT_4KB-16MHz.hex contains 30770 bytes
avrdude.exe: reading on-chip flash data:Reading | ################################################## | 100% 0.00s
avrdude.exe: verifying …
avrdude.exe: 30770 bytes of flash verifiedavrdude.exe done. Thank you.