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

続続続 Tiny AVR/PIC Bootloader+


Tiny AVR/PIC Bootloader+ がすべてのPICデバイスに対応できましたので、
データ転送フォーマットについて、このページにまとめます。

Tiny AVR/PIC Bootloader+ には動作コマンドが存在しません。
ホストプログラムの下段の四角い箱にチェックを入れることで目的のデータを転送します。
フラッシュメモリの消去はホスト側からの指令ではなく、ファームウエアが必要に応じて行います。

◎フラッシュのみ書き換える場合の設定
img_20140623-011908.jpg

◎フラッシュとEEPROMを書き換える場合の設定
img_20140623-011924.jpg

◎フラッシュとEEPROMとConfigバイトを書き換える場合の設定
img_20140623-011944.jpg



このページではPICの種類ごとに、ホストプラグラムから転送されるデータのフォーマットを解説します。
データ転送フォーマットについては個々のファームウエアのソースコードにも記載されています。


■転送データの種類

Tiny AVR/PIC Bootloader+ ホストプラグラムから転送されるデータには3種類が存在します。

①Flash(プログラムコード)データ
②EEPROMデータ (EEPROMを塔載しているPICのみ)
③Configデータ (PIC18Fと24ビットPICのみ)


■14ビットPICのデータフォーマット PIC10F/12F/16F、グループ名称"B"

①フラッシュデータ転送フォーマット: (以下 [] は1バイト文字を表す。)
[AddressH][AddressL][2*N][DataL(1)][DataH(1)]....[DataH(N)][SUM]

[AddressH]     データを上書きするフラッシュページの先頭アドレス(上位)
[AddressL]     データを上書きするフラッシュページの先頭アドレス(下位)
[2*N]            piccode.iniに記載したデータの転送数(バイト表記)
[DataL/H(n)]   書き換えデータ (2*N)バイト
[SUM]            チェックサム


②EEPROMデータ転送フォーマット:
[EEAddressH][EEAddressL][2][EEData][0][SUM]

[EEAddressH]   データを上書きするEEPROMのアドレス(上位) フラッシュアドレスと区別するためビット6をセット
[EEAddressL]   データを上書きするEEPROMのアドレス(下位) EEAddressH:EEAddressL >= 0x4000 となる。
[2]                  データ転送数(常に2)
[EEData]          書き換えるEEPROMデータ 8ビット
[0]                  常に0
[SUM]             チェックサム


■16ビットPICのデータフォーマット-1 PIC18F、グループ名称"C"

①フラッシュデータ転送フォーマット:
[AddressU][AddressH][AddressL][2*N][DataL(1)][DataH(1)]....[DataH(N)][SUM]

[AddressU]     データを上書きするフラッシュページの先頭アドレス(上位)
[AddressH]     データを上書きするフラッシュページの先頭アドレス(中位)
[AddressL]     データを上書きするフラッシュページの先頭アドレス(下位)
[2*N]            piccode.iniに記載したデータの転送数(バイト表記)
[DataL/H(n)]   書き換えデータ (2*N)バイト
[SUM]            チェックサム

②EEPROMデータ転送フォーマット:
[EEAddressU][EEAddressH][EEAddressL][1][EEData][SUM]

[EEAddressU]   データを上書きするEEPROMのアドレス(上位)
[EEAddressH]   データを上書きするEEPROMのアドレス(中位) 
[EEAddressL]   データを上書きするEEPROMのアドレス(下位)
                      フラッシュアドレスと区別するためEEAddressUビット6をセット
                      EEAddressU:EEAddressH:EEAddressL >= 0x400000 となる。
[1]                 データ転送数(常に1)
[EEData]         書き換えるEEPROMデータ 8ビット
[SUM]             チェックサム

③Configデータ転送フォーマット:
[CFGAddressU][CFGAddressH][CFGAddressL][14][CFGDataL(1)][CFGDataH(1)].....[CFGDataH(7)][SUM]

[CFGAddressU]   データを上書きするConfigデータの先頭アドレス(上位)
[CFGAddressH]   データを上書きするConfigデータの先頭アドレス(中位) 
[CFGAddressL]   データを上書きするConfigデータの先頭アドレス(下位)
                        フラッシュアドレスと区別するためCFGAddressUのビット7をセット
                        CFGAddressU:CFGAddressH:CFGAddressL >= 0x800000 となる。
[14]                  データ転送数(常に14)
[CFGData(n)]      書き換えるConfigデータ (2*7)バイト
[SUM]                チェックサム


■16ビットPICのデータフォーマット-2 PIC18F Jタイプ、グループ名称"J"

①フラッシュデータ転送フォーマット:
[AddressU][AddressH][AddressL][2*N][DataL(1)][DataH(1)]....[DataH(N)][SUM]

[AddressU]     データを上書きするフラッシュページの先頭アドレス(上位)
[AddressH]     データを上書きするフラッシュページの先頭アドレス(中位)
[AddressL]     データを上書きするフラッシュページの先頭アドレス(下位) ビット0は常に0
[2*N]            piccode.iniに記載したデータの転送数(バイト表記)
[DataL/H(n)]   書き換えデータ (2*N)バイト
[SUM]            チェックサム

②Configデータ転送フォーマット:
[CFGAddressU][CFGAddressH][CFGAddressL][8][CFGDataL(1)][CFGDataH(1)].....[CFGDataH(4)][SUM]

[CFGAddressU]  データを上書きするConfigデータの先頭アドレス(上位)
[CFGAddressH]  データを上書きするConfigデータの先頭アドレス(中位) 
[CFGAddressL]  データを上書きするConfigデータの先頭アドレス(下位)
                       フラッシュアドレスと区別するためCFGAddressUのビット7を常にセット
                       CFGAddressU:CFGAddressH:CFGAddressL >= 0x800000 となる。
[8]                   データ転送数(常に8)
[CFGData(n)]     書き換えるConfigデータ (2*4)バイト
[SUM]              チェックサム


■24ビットPICのデータフォーマット-1、グループ名称"D"

①フラッシュデータ転送フォーマット:
[AddressL][AddressH][AddressU][3*N][DataL(1)][DataH(1)][DataU(1)]....[DataU(N)][SUM]

[AddressL]       データを上書きするフラッシュページの先頭アドレス(下位)
[AddressH]       データを上書きするフラッシュページの先頭アドレス(中位)
[AddressU]       データを上書きするフラッシュページの先頭アドレス(上位)
[3*N]               piccode.iniに記載したデータの転送数(バイト表記)
[DataL/H/U(n)]   書き換えデータ (3*N)バイト
[SUM]               チェックサム

②EEPROMデータ転送フォーマット:
[EEAddressL][EEAddressH][EEAddressU][2][EEDataL][EEDataH][SUM]

[EEAddressL]   データを上書きするEEPROMのアドレス(下位)
[EEAddressH]   データを上書きするEEPROMのアドレス(中位)
[EEAddressU]   データを上書きするEEPROMのアドレス(上位)
[2]                  データ転送数(常に2)
[EEDataL/H]     書き換えるEEPROMデータ (16ビット)
[SUM]             チェックサム

③Configデータ転送フォーマット:
[CFGAddressL][CFGAddressH][CFGAddressU][18][CFGDataL(1)][CFGDataH(1)].....[CFGDataH(9)][SUM]

[CFGAddressL]     データを上書きするConfigデータの先頭アドレス(下位)
[CFGAddressH]     データを上書きするConfigデータの先頭アドレス(中位)
[CFGAddressU]     データを上書きするConfigデータの先頭アドレス(上位)
[18]                    データ転送数(常に18)
[CFGDataL/H(n)]   書き換えるConfigデータ (2*9)バイト
[SUM]                 チェックサム


■24ビットPICのデータフォーマット-2、グループ名称"E"

①フラッシュデータ転送フォーマット:
[AddressL][AddressH][AddressU][3*N][DataL(1)][DataH(1)][DataU(1)]....[DataU(N)][SUM]

[AddressL]         データを上書きするフラッシュページの先頭アドレス(下位)
[AddressH]        データを上書きするフラッシュページの先頭アドレス(中位)
[AddressU]         データを上書きするフラッシュページの先頭アドレス(上位)
[3*N]                piccode.iniに記載したデータの転送数(バイト表記)
[DataL/H/U(n)]   書き換えデータ (3*N)バイト
[SUM]               チェックサム

②Configデータ転送フォーマット:
[CFGAddressL][CFGAddressH][CFGAddressU][30][CFGDataL(1)][CFGDataH(1)][CFGDataU(1)].....[CFGDataU(10)][SUM]

[CFGAddressL]       データを上書きするConfigデータの先頭アドレス(下位)
[CFGAddressH]       データを上書きするConfigデータの先頭アドレス(中位)
[CFGAddressU]       データを上書きするConfigデータの先頭アドレス(上位)
[30]                      データ転送数(常に30)
[CFGDataL/H/U(n)]  書き換えるConfigデータ (3*10)バイト
[SUM]                    チェックサム




































.