Ubuntu環境上でのUSBaspファームウェアバージョンアップ手順
小型ゲーム機「Tynyjoypad」の製作、58曲メロディICの制御のために小型AVRマイコンATTiny85を使用しました。このATTiny85のROMライターとして、USBaspを使用しています。私はAmazonで安く手に入った「HiLetgo 2個セット 51 AVR Atmega プログラムUSBasp USBASP 10ピン USB プログラマー 3.3V/5V ワット/ケーブル [並行輸入品]」を使用しています。2020年4月現在で2個750円という非常にお買い得なAVRライターです。ATTiny85に限らずArduinoのブートローダー書き込みなどにも使えますので、一家に一台、是非購入しておきたいツールです。
さて、このUSBaspはATTiny85に書き込む際は特に問題なく使えてお買い得で満足なのですが、Amazonで入手できるものはファームウェアのバージョンが古いようで、ATTiny10の書き込みをする際に問題がありそうです。ATTiny85の書き込みをしているときも、「ファームウェアが古い」みたいなエラーがずっと出ます。
今回、私が開発に使用しているUbuntu18.04でUSBaspのファームウェアアップデートを行いましたので、自分のメモ程度に記載しておきます。
目次
avrdudeのインストール
まず、AVR書き込みプログラムをインストールします。
Ubuntuではパッケージマネージャから簡単にインストールができます。
$ sudo apt-get install -y avrdude
接続方法
私が購入したUSBaspは2個セットだったので、片方のUSBaspでもう片方のUSBaspをアップデートしました。次の写真のように接続します。
書き込まれる側(これからアップデートする側)のUSBaspのJP2をショートします。スルーホール用テストワイヤがあるとジャンパピンを半田付けしなくても良いので便利です。
ubuntuだと、ドライバのインストールは不要で、書き込みを行う側のUSBaspをPCに挿せば接続完了です。
ファームウェアのダウンロード
次のサイトより、最新版(2011年5月28日版)をダウンロードします。
ダウンロードしてきたファイルを展開し、
bin/firmware/usbasp.atmega8.2011-05-28.hex
というファイルが存在することを確認します。
ファームウェア書き換えコマンドの実行
先程ダウンロードしたファームがある場所に移動して、次のコマンドを実行してください。
$ avrdude -P usb -c usbasp -p m8 -U flash:w:usbasp.atmega8.2011-05-28.hex
avrdude: warning: cannot set sck period. please check for usbasp firmware update.
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.00s
avrdude: Device signature = 0x1e9307 (probably m8)
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: warning: cannot set sck period. please check for usbasp firmware update.
avrdude: reading input file "usbasp.atmega8.2011-05-28.hex"
avrdude: input file usbasp.atmega8.2011-05-28.hex auto detected as Intel Hex
avrdude: writing flash (4700 bytes):
Writing | ################################################## | 100% 2.95s
avrdude: 4700 bytes of flash written
avrdude: verifying flash memory against usbasp.atmega8.2011-05-28.hex:
avrdude: load data flash data from input file usbasp.atmega8.2011-05-28.hex:
avrdude: input file usbasp.atmega8.2011-05-28.hex auto detected as Intel Hex
avrdude: input file usbasp.atmega8.2011-05-28.hex contains 4700 bytes
avrdude: reading on-chip flash data:
Reading | ################################################## | 100% 2.44s
avrdude: verifying ...
avrdude: 4700 bytes of flash verified
avrdude: safemode: Fuses OK (E:FF, H:D9, L:9F)
avrdude done. Thank you.
上記のようなメッセージが出れば書き換え完了です。
参考になったサイト
USBaspファームウェア更新を行う上で参考になったサイトをリストアップしておきます。
・USBasp
とても詳しく、わかりやすい記事を記載いただいています。
いつも参考にさせていただいています。
・USBaspファームウェア配布元
使った部品・ツールのリスト
最後に、このページで使用した部品・ツールをリストアップしておきます。
・USBasp
・スルーホール用テストワイヤ