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 ファイルをフラッシュしようとすると、フラッシュの書き込み中に停止します。
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;
;