Raspberry PiからAVR ATtiny85にIntel HEXを書き込む

作成したテスト用のIntel HEXを実際にマイコンに書き込んで確認したいと思います。Raspberry PIをライターにして、AVR ATtiny85にavrdudeコマンドを使って書き込みます。
まずは、avrdudeのインストール。

# apt-get install avrdude

設定ファイルも修正しておきます。

# vi /etc/avrdude.conf

resetのGPIOを6番に書き換えます。

programmer
  id    = "linuxgpio";
  desc  = "Use the Linux sysfs interface to bitbang GPIO lines";
  type  = "linuxgpio";
  reset = 6;
  sck   = 11;
  mosi  = 10;
  miso  = 9;
;

Raspberry PIとAVRマイコンは、以下のように配線します。
avr-001
図と同じようにブレッドボードにレイアウトして出来上がり。
avr-002

では、「ダミーのIntel HEXデータを作る」で作ったHEXを書き込みます。

root@raspberrypi:~# avrdude -c linuxgpio -p t85 -U flash:w:a.hex

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.00s

avrdude: Device signature = 0x1e930b
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 "a.hex"
avrdude: input file a.hex auto detected as Intel Hex
avrdude: writing flash (120 bytes):

Writing | ################################################## | 100% 0.10s

avrdude: 120 bytes of flash written
avrdude: verifying flash memory against a.hex:
avrdude: load data flash data from input file a.hex:
avrdude: input file a.hex auto detected as Intel Hex
avrdude: input file a.hex contains 120 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 0.10s

avrdude: verifying ...
avrdude: 120 bytes of flash verified

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

avrdude done.  Thank you.

root@raspberrypi:~# 

書き換えできたようです。ただし、意味のないデータを書き込んだので、マイコンは正しく動作しません。HEXが正しいかのチェックだけです。
マイコン動作させるHEXを書き込んで、書き換え自体が正しく動作していることも確認しておきます。以下は、LEDをONするだけのプログラムです。

root@raspberrypi:~# cat led-on.hex
:0800000088e087bb88bb00c04B
:00000001FF
root@raspberrypi:~# 
root@raspberrypi:~# avrdude -c linuxgpio -p t85 -U flash:w:led-on.hex

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.00s

avrdude: Device signature = 0x1e930b
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 "led-on.hex"
avrdude: input file led-on.hex auto detected as Intel Hex
avrdude: writing flash (8 bytes):

Writing | ################################################## | 100% 0.01s

avrdude: 8 bytes of flash written
avrdude: verifying flash memory against led-on.hex:
avrdude: load data flash data from input file led-on.hex:
avrdude: input file led-on.hex auto detected as Intel Hex
avrdude: input file led-on.hex contains 8 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 0.02s

avrdude: verifying ...
avrdude: 8 bytes of flash verified

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

avrdude done.  Thank you.

root@raspberrypi:~# 

点灯しました。
avr-003

コメント

  1. […] まずは回路。「Raspberry PiからAVR ATtiny85にIntel HEXを書き込む」のLEDの点灯確認をした回路のLEDを圧電スピーカーにしただけの適当回路です。使用するのは、同様にAVRTiny85マイコンです。プログラムの書き込みはラズパイから行います。 […]

タイトルとURLをコピーしました