楽天市場
[無料でホームページを作成] [通報・削除依頼]

極小ブートローダー ATTiny 其の2

ATTiny13Aで動作確認済みの68ワードブートローダーをATTiny全般に拡張しました。
これに伴いタイトルを"極小ブートローダー ATTiny13A" から "極小ブートローダー ATTiny" に変更しました。


<"極小ブートローダー ATTiny13A" からの変更点>

1.ATTiny13Aのファームウエアー擬似ハンドシェークの仕様変更
以前の方式では書き込みページ分のデータをホストから受信し、チェックサムの値を含めて正常に受信できなかった場合にエラーを返す方式でした。 書き込みが正しくおこなわれているとみなし、書き込みが完了するまでの時間遅延をTeraTermのマクロで設定していました。

今回の方式ではこの点を変更し、
?フラッシュ/EEPROMデータの書き込み開始の時点で出力信号をHighレベルにセット、書き込み完了の時点で出力信号をLowレベルに戻す仕様としました。
?チェックサムの値を含めて正常に受信できなかった場合には出力信号をHighレベルにセットしたままHaltする仕様としました。
ホストはATTinyからの出力信号をモニタして、フラッシュ/EEPROMデータの書き込み完了まで待ち合わせ、次のデータを送信します。
ホストプログラムにフラッシュ/EEPROMデータ転送量のカウンタを新設しましたので、エラーが発生した(ATTinyがHaltした)ことはカウンタの停止状態で検出することが可能となります。
?マクロ上で時間遅延の設定が不要となり、フラッシュ/EEPROMデータの書き込みが以前より高速になりました。


2.ATTiny全般への拡張
Tiny Multi Bootloader+ (旧名 Tiny Avr/Pic Bootloader+) にならい、Attiny24/44/84/25/45/85/261/461/861 用のファームウエアを作成しました。
UARTを搭載するデバイス2313/4313に関してはすでにTiny Multi Bootloader+ で68ワードで作成済みで、更なる小型化の必要性がありません。 
Attiny43/48/88/828/87/168に関してはファームウエアを作成していませんが、基本的なレジスタ構成が一緒なので容易に移植が行えます。 (実際Attiny24/44/84/25/45/85/261/461/861 用のファームウエアもATTiny13Aのそれとほぼ同一のコードです。)


3.ホストプログラム
PIC10F322用に作成したC++記述のホストプログラムにまだ移植できていません。
最終的にPIC10F322同様HID方式のシリアル変換アダプタに対応させたいと考えています。
"極小ブートローダー ATTiny13A" に記載したのと同様にTeraTermのマクロで作動します。
マクロのプログラムをバージョンアップしました。


4.回路構成
"極小ブートローダー ATTiny13A" に記載した回路で作動します。CDC方式のシリアル変換アダプタが使用できます。(HID方式のシリアル変換アダプタには未対応です。)
"極小ブートローダー ATTiny13A" に記載した回路で動作が不安定になる場合は、ATTinyに接続している0.1uのパスコンを外してください。


5.書き込みの手順

起動画面 Select Device のダイアログで書き込みしたいデバイスを選択、その後HEXファイルを選択
img_20150226-232700.jpg

書き込み開始 この画面になったら速やかにATTinyに電源投入またはリセットをかける
       以前と異なりTeraTermのウインドゥは開かない。
img_20150226-232940.jpg

Flash Page 書き込み  書き込みページがカウントアップ、カウンターが進まないときはエラー発生
img_20150226-233218.jpg

EEPROM 書き込み  HEXファイルと同じフォルダーに同名のEEPファイルが存在する場合、EEPROMを書き込む
img_20150226-233552.jpg

書き込み完了
img_20150226-233638.jpg


上記ソフト一式は以下からダウンロードできます。

ダウンロード先

Bequest333のページ(別館)

http://hp.vector.co.jp/authors/VA058115/

https://drive.google.com/file/d/1EWODwRNqrOMOCjVXZM0lzj-C2KEY6FGM/view?usp=drivesdk