古いファームウエアのUSBAspをもう一台のUSBAspで更新

未分類

古いファームウエアのUSBAspをもう一台のUSBAspで更新

古いファームウエアのUSBAspをもう一台のUSBAspを使って新しいファームウエアに更新した。

私は3台のUSBAspを所有していたが書き込まれているファームウエアが古くArduinoのスケッチ書き込み時に注意表示が出ていた。AIに相談しながらUSBAspを2台使用して更新できたのでメモを残す。

ハードウエアの準備

  • 市販のUSBAspには10ピン対応のケーブルが付いている。そのケーブルで親機、子機を接続する。ピンの位置を間違えないようにする。抜いた後に戻す時間違えないようにマーキングすると良い。
  • 子機のPIN2をショートすることで書き込みモードになるのでPIN2にコネクタピンが付いていない場合ははんだ付けする。
  • 子機のPIN2をショートピンなどでショートして書き込みモードにする。
  • 親機と子機をケーブルで接続してUSBに親機を差し込む。親機の赤LEDは点灯。子機のLEDは消灯。書き込みが終わると子機の赤LEDは点灯する。
  • 書き込み後は子機のPIN2のショートピンは外す。

新しいファームウエアの準備

  • Thomas Fischl氏の公式サイト からファームウエアをダウンロードする。
  • usbasp.2011-05-28.tar.gz が最新版。ダウンロードする。
  • .tar.gzを解凍するにはサードパーティー提供の解凍アプリを使用することも可能。今回はWindowsのコマンドで解凍した。エクスプローラーを開きダウンロードフォルダーに移動して、上部のファイルのダウンロードと表示されている箇所に cmd と入力するとコマンドプロンプトが開く。
  • dirコマンドでファイルを表示して確認する。
  • tar -xvzf ファイル名.tar.gz コマンドで解凍できる。ダウンロードファイル内に usbasp.2011-05-28 フォルダーが出来てその中に解凍される。
  • usbasp.2011-05-28\bin\firmware\usbasp.atmega8.2011-05-28.hex だけが一般的に必要な新ファームウエアです。
  • USBAspのチップのバージョンによっては他のファームウエアにする場合もある。今回のチップはATmega8Aでした。

書き込みソフトウエアのavrdude

  • USBAspを書き込むソフトのavrdudeはarduinoIDEがインストールされていればarduinoIDEの関連フォルダーに既にある。
  • 私のWindows11の環境では、arduinoIDE本体はC:\Program Files\Arduino IDEフォルダー下にあった。
  • avrdudeは他のフォルダー内にあった。C:\Users(ユーザー)\AppData\Local\Arduino15\packages\arduino\tools\avrdude\8.0.0-arduino1\bin\avrdude.exe
  • avrdude は実行時に avrdude.conf という設定ファイルを読み込む必要があるので単体で移動しない方がよい。

書き込み

  • 簡単なのは avrdudeとコンフィグファイルを.hexファイルのあるフォルダーにコピーしてコマンドを実行する。
  • C:\temp\usbasp_update(などの作業用フォルダ)
  • avrdude.exe(コピーしてきたもの)
  • avrdude.conf(コピーしてきたもの)
  • usbasp.atmega8.2011-05-28.hex
  • この状態にすれば、コマンドは以下のこれだけで済みます
  • コマンド: avrdude -c usbasp -p m8 -U flash:w:usbasp.atmega8.2011-05-28.hex
  • 書き込み時にエラー表示がでるのはファームウェアが古いため。
  • エラーがでても書き込み完了が表示されれば問題ない。自動的に遅いスピードでの書き込みモードになる。
  • <初回書き込み時のエラー表示内容の解説>
  • Error: cannot set sck period… これは「親機」側のファームウェアが古いために、「通信速度を自動調整する機能(SCK設定)が使えません」という警告です。しかし、その後の Writing と Reading が 100% まで進み、verified(検証済み) と出ているので、データは1ビットの狂いもなく正確に子機へ書き込まれました。全く問題ありません。
  • Avrdude done. Thank you. これが表示されれば、ファームウェアの更新は完璧に完了しています。
  • 書き込みが完了すれば、親機と子機を取り替えて、同様に書き込む。
  • 新しいファームウエアのUSBAspを親機にして書き込めばエラーは出なくなります。
  • JP2を抜くことを忘れず。

コメント