我一直在尝试使用基于FT232H芯片的C232HM-DDHSL-0编程器对ATmega644p进行编程。
我在我的主目录中编辑了.avrduderc以包含以下内容,我改编自/etc/avrdude.conf:
programmer
id = "C232HM";
desc = "C232HM-MPSSE";
type = avrftdi;
usbvid = 0x0403;
# Note: This PID is reserved for generic H devices and
# should be programmed into the EEPROM
# usbpid = 0x8A48;
usbpid = 0x6014; // changed from 0x6010 after checking "lsusb"
usbdev = "A";
usbvendor = "";
usbproduct = "";
usbsn = "";
#ISP-signals // Modified according to datasheet
reset = 5;
sck = 2;
mosi = 3;
miso = 4;
;
我已经能够使用avrdude使用
与MCU通信 sudo avrdude -c 2232HIO -p m644p -P /dev/ttyUSB0
输出到终端的地方是:
Unknown type 6 (0x6) //Remainder pins - 1,2,7,8,9,10 not declared
Unknown type 6 (0x6)
Unknown type 6 (0x6)
Unknown type 6 (0x6)
Unknown type 6 (0x6)
Unknown type 6 (0x6)
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.01s
avrdude: Device signature = 0x1e960a
avrdude: safemode: Fuses OK
avrdude done. Thank you.
启用了-vvvv选项的输出: http://pastebin.com/z3K8RYJP
然而,当我尝试刷一个简单的.hex文件时,它会在写flash时停止:
Unknown type 6 (0x6)
Unknown type 6 (0x6)
Unknown type 6 (0x6)
Unknown type 6 (0x6)
Unknown type 6 (0x6)
Unknown type 6 (0x6)
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.01s
avrdude: Device signature = 0x1e960a
avrdude: NOTE: FLASH memory has been specified, an erase cycle will be performed
To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: reading input file "int1.hex"
avrdude: input file int1.hex auto detected as Intel Hex
avrdude: writing flash (164 bytes):
Writing |
启用-vvvv选项时的输出: http://pastebin.com/EmmuCsxN
我还安装了FTDI的D2XX驱动程序,并按照本指南中的步骤进行操作,但无济于事(参见链接评论)
似乎我无法写入MCU,所以我的第一个猜测是我错误配置了程序员。任何帮助将非常感激。谢谢!
编辑:刚刚注意到我正在使用不同的命令与MCU通信:(EDIT2:我使用此配置修复了它:
programmer
id = "C232HM";
desc = "C232HM-MPSSE";
type = avrftdi;
usbvid = 0x0403;
# Note: This PID is reserved for generic H devices and
# should be programmed into the EEPROM
# usbpid = 0x8A48;
usbpid = 0x6014;
usbdev = "A";
usbvendor = "";
usbproduct = "";
usbsn = "";
#ISP-signals
reset = 4;
sck = 1;
mosi = 2;
miso = 3;
;