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

極小ブートローダー ATTiny13A

前回、前々回とPIC10F322用の68ワードのブートローダーを紹介しました。
今回は同じことをATTiny13Aで試してみます。

2015.02.22 追記
別館にアップしていたファームウエアにバグがありましたので修正して更新しました。


<考えかた>
1.ATTiny13Aのファームウエア
Tiny Avr/Pic Bootloader+ において、PIC10F322とATTiny13Aのファームウエアの処理の流れはほぼ同じなので
PIC10F322同様、送信部分の簡略化により68ワードのファームウエアが容易に実現できました。
PIC10F322のファームウエアとの相違はATTiny13AではEEPROMの書き込みもサポートしている点です。

2.68ワードのファームウエアに関して
100ワードでなく68ワードのファームウエアにこだわっているのには訳があります。
68ワードのファームウエアは書き込み/消去ページの境界をまたいで4/64と配置しますが、この64に意味があります。
ATTinyの書き込み/消去ページは16の倍数(16ワード,32ワード,64ワード)のいずれかです。(デバイスにより異なる)
ATTinyはPICと異なり初期のデバイスからの設計思想が最近のデバイスまで受け継がれていますので、
デバイスによらず、ほぼ同じサイズのファームウエアが作成できます。

すなわち、最近の32ワードや64ワードの書き込み/消去ページを所有するデバイスに関しても、ファームウエアのサイズが
68ワードであれば、無駄なくフラッシュを使用することが可能となります。 そして、ATTiny13Aのファームウエアとマクロはこれらのテンプレートとなり得ます。


img_20150125-014717.jpg

3.通信タイミングの見直し
はじめにPIC10F322用のマクロをATTiny13A用に手直しして書き込みを試みたのですが、書き込みに失敗しました。
どうやらATTiny13Aではフラッシュ/EEPROMの書き込みに時間を要するようです。

書き込みを行う為、ホストから一文字転送毎に2msのディレイを入れたところうまく書き込めました。
マクロ上から一文字転送毎のディレイを変更することができませんので、ATTiny13A用のマクロではTeraTermの初期化ファイル
(INIファイル)を個別に読み出す方式に変更しました。 シリアルポートのCOM番号もINIファイル上で変更します。

スナップショットのオリジナルのINIファイルからの変更箇所

?使用言語
;    Language (English/Japanese/Russian/Korean/UTF-8)
Language=English

?COMポート番号
;    Serial port parameters
;      Port number
ComPort=14

?一文字転送毎のディレイ
DelayPerChar=2
;      Transmit delay per line (in msec)

4.データフォーマット
ホストから転送するデータのフォーマットはTiny AVR/PIC Bootloader+と同一

Flash:[AddressH][AddressL][2*N][DataL(1)][DataH(1)]....[DataL(N)][DataH(N)][SUM]
EEPROM:[EEAddressH][EEAddressL][2][EEDataL][EEDataH][SUM]
※ATTiny13Aの場合EEAddressH=0x40,EEDataH=0x00


5.PIC10F322用マクロとの相違
?一文字転送毎のディレイ(前述)
?TeraTermターミナルの起動をコマンドライン記述からINIファイル呼び出しに変更(前述)
?EEPROM書き込みの処理を追加
?ページ転送毎のディレイ(1ms)を廃止
?ブートローダー出口の処理
HEXファイルのリセットベクタのコードを解析して出口のコードを変更
RJMP命令の場合、RCALL命令の場合、その他の命令
(Tiny AVR/PIC Bootloader+のページ内 2.メモリーマップと命令の置換(AVRの場合)を参照)



<まとめ>
68ワードのブートローダーは、ATTiny2313A/4313用に関しては既にTiny AVR/PIC Bootloader+で実現していますが、
今回の検討にてほぼ全てのATTinyに実装する目処が立ちました。(信頼性の問題は残りますが...)



<ターゲット回路図>
[シリアルポート直結方式]
img_20150124-195744.jpg

[USBシリアルアダプタ方式]

img_20150124-195830.jpg



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

ダウンロード先

Bequest333のページ(別館)

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

https://drive.google.com/file/d/1ECPqqD49e81TTsNC-4JzUx1YTTgks1Sw/view?usp=drivesdk