続続続 Tiny AVR/PIC Bootloader+
Tiny AVR/PIC Bootloader+ がすべてのPICデバイスに対応できましたので、
データ転送フォーマットについて、このページにまとめます。
Tiny AVR/PIC Bootloader+ には動作コマンドが存在しません。
ホストプログラムの下段の四角い箱にチェックを入れることで目的のデータを転送します。
フラッシュメモリの消去はホスト側からの指令ではなく、ファームウエアが必要に応じて行います。
◎フラッシュのみ書き換える場合の設定
◎フラッシュとEEPROMを書き換える場合の設定
◎フラッシュとEEPROMとConfigバイトを書き換える場合の設定
このページでは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] チェックサム
.
- ご質問などはこちらからどうぞ
- ページ更新情報
- 最近嬉しかったこと
- 1kワードのTINYBASIC STM32L010F4
- やってくれたな!!店長よ
- 東大版TINYBASIC (STM32)
- 1kワードのTINYBASIC STM32版 その2
- 1kワードのTINYBASIC STM32版 その1
- 1kワードのTINYBASIC その8
- 1kワードのTINYBASIC その7
- 1kワードのTINYBASIC その6
- 1kワードのTINYBASIC その5
- 1kワードのTINYBASIC その4
- 1kワードのTINYBASIC その3
- 1kワードのTINYBASIC その2
- 1kワードのTINYBASIC その1
- 電大版TINYBASIC for PIC ミニマムお試し版5
- 電大版TINYBASIC for PIC ミニマムお試し版4
- 電大版TINYBASIC for PIC ミニマムお試し版3
- 電大版TINYBASIC for PIC ミニマムお試し版2
- 電大版TINYBASIC for PIC ミニマムお試し版
- PICで電大版TINYBASIC 実装編その5
- PICで電大版TINYBASIC 実装編その4
- PICで電大版TINYBASIC 実装編その3
- PICで電大版TINYBASIC 実装編その2
- PICで電大版TINYBASIC 実装編その1
- PICで電大版TINYBASIC 準備編その2
- PICで電大版TINYBASIC 準備編その1
- PIC18F24K42をPICKIT2で焼くTIPS その2
- PIC18F24K42をPICKIT2で焼くTIPS
- PIC16F18313ブートローダー書き込み器の製作
- PIC16F18857をPICKIT2で焼くその2
- PIC16F18857をPICKIT2で焼く
- PIC16F18313をPICKIT2で焼くその2
- PIC16F18313をPICKIT2で焼く
- PIC16F5XX USBIO
- HVT-BT200の予約制御
- 再考 PIC16F57 USBIO
- PIC16F5X USBIO
- 続12 8ピンPICでUSB PIC16F18313 HID-シリアルアダプター
- ucontrol.com.arに接続できない
- 続続 LPC1114 USBブートローダー
- 続PIC10F200 電子サイコロ
- PIC10F200 電子サイコロ
- LPC1114 8ch簡易ロジックアナライザー USB版
- 続 LPC1114 USBブートローダー
- LPC1114 8ch簡易ロジックアナライザー
- LPC1114 USBブートローダー
- LPC1114でUSB
- 続LPC810でUSB
- LPC810でUSB
- USB_NCO
- USB出力の周波数カウンター
- HIDアダプターについてのまとめ その2
- HIDアダプターについてのまとめ
- 極小ブートローダー まとめ
- 極小ブートローダー ATTiny 其の2
- 極小ブートローダー PIC10F322 其の6
- 極小ブートローダー PIC10F322 其の5
- 極小ブートローダー PIC10F322 其の4
- 極小ブートローダー PIC10F322 其の3
- 極小ブートローダー ATTiny13A
- 極小ブートローダー PIC10F322 其の2
- 極小ブートローダー PIC10F322
- 続11 8ピンPICでUSB PIC16F57_USBIO (その3)
- 続10 8ピンPICでUSB PIC16F505_USBIO (その2)
- 続9 8ピンPICでUSB PIC16F57_USBIO (その2)
- 続8 8ピンPICでUSB PIC16F505_USBIO
- 続7 8ピンPICでUSB PIC16F57_USBIO
- 続6 8ピンPICでUSB PIC16F570_USBIO
- 続5 8ピンPICでUSB PIC12F615_USBIO
- 続4 8ピンPICでUSB 16FUSBの改良版
- 続続続8ピンPICでUSB -30MHz+ソフトシリアル-
- 続続8ピンPICでUSB -16FUSBを30MHzで動かす-
- 続8ピンPICでUSB -ターミナルソフトからの操作-
- 8ピンPICでUSB -16FUSBの移植-
- 番外 MSP430 タイニーブートローダー
- 番外 C8051 タイニーブートローダー
- 続続続 Tiny AVR/PIC Bootloader+
- 続続 Tiny AVR/PIC Bootloader+
- 続 Tiny AVR/PIC Bootloader+
- Tiny AVR/PIC Bootloader+
- 番外 続ATTINY13A OSCCAL の簡易校正
- 番外 ATTINY13A OSCCAL の簡易校正
- 番外 続ATTINY13A ソフトシリアル
- 番外 ATTINY13A ソフトシリアル
- 番外 続Arduinoからタイニーブートローダーを使用する
- 番外 Arduinoからタイニーブートローダーを使用する
- 番外 LPC1114FN28/102 アセンブラサンプル
- 番外 LPC810 タイニーブートローダーの自己書き換え
- 番外 LPC810 EEPROM エミュレーション
- 番外 LPC810 タイニーブートローダー
- 番外 LPC810でアセンブラ
- 続続続PIC10F322 ソフトシリアル一考察
- 続続PIC10F322 ソフトシリアル一考察
- 続PIC10F322 ソフトシリアル一考察
- PIC10F322 ソフトシリアル一考察
- 84ワードのPICブートローダー
- 続PIC10F322 Ring-DDS
- Tinybldの自己更新プログラム
- プログラム領域をROMのように使う
- PIC10F322 256ビットプログラム発振器
- PIC18F EEPROM エミュレーション Jタイプ
- PIC18F EEPROM エミュレーション
- PIC16F EEPROM エミュレーション
- PIC10F322専用 周波数カウンター
- PIC18F Jタイプ ブートローダー
- PICの制約を取り除く
- 番外 ATTINY2313A用ブートローダー
- 続番外 ATTINY13A用ブートローダー
- 番外 ATTINY13A用ブートローダー
- 続PIC10F322 フラッシュメモリの操作
- PIC10F322 フラッシュメモリの操作
- PIC10F322 PIC_WAIT
- ビット列の並び替え その2
- ビット列の並び替え その1
- 故障した温水便座を使えるようにする
- PIC10F322 RA3を出力ポートとして使用
- PIC10F322 周波数カウンタ Part2
- PIC10F322 AN592準拠 周波数カウンタ
- PIC10F322 Ring-DDS
- microchipのAN592に関する一考察
- PIC10F322 3-ch リモコンライン切り替え器
- PIC10F322 4-SW リモコン送信器
- PIC10F322 二相発振器
- PIC_DELAY
- 続PIC_WAIT
- PIC_WAIT
- ご質問などはこちらからどうぞ
- ページ更新情報
- 最近嬉しかったこと
- 1kワードのTINYBASIC STM32L010F4
- やってくれたな!!店長よ
- 東大版TINYBASIC (STM32)
- 1kワードのTINYBASIC STM32版 その2
- 1kワードのTINYBASIC STM32版 その1
- 1kワードのTINYBASIC その8
- 1kワードのTINYBASIC その7
- 1kワードのTINYBASIC その6
- 1kワードのTINYBASIC その5
- 1kワードのTINYBASIC その4
- 1kワードのTINYBASIC その3
- 1kワードのTINYBASIC その2
- 1kワードのTINYBASIC その1
- 電大版TINYBASIC for PIC ミニマムお試し版5
- 電大版TINYBASIC for PIC ミニマムお試し版4
- 電大版TINYBASIC for PIC ミニマムお試し版3
- 電大版TINYBASIC for PIC ミニマムお試し版2
- 電大版TINYBASIC for PIC ミニマムお試し版
- PICで電大版TINYBASIC 実装編その5
- PICで電大版TINYBASIC 実装編その4
- PICで電大版TINYBASIC 実装編その3
- PICで電大版TINYBASIC 実装編その2
- PICで電大版TINYBASIC 実装編その1
- PICで電大版TINYBASIC 準備編その2
- PICで電大版TINYBASIC 準備編その1
- PIC18F24K42をPICKIT2で焼くTIPS その2
- PIC18F24K42をPICKIT2で焼くTIPS
- PIC16F18313ブートローダー書き込み器の製作
- PIC16F18857をPICKIT2で焼くその2
- PIC16F18857をPICKIT2で焼く
- PIC16F18313をPICKIT2で焼くその2
- PIC16F18313をPICKIT2で焼く
- PIC16F5XX USBIO
- HVT-BT200の予約制御
- 再考 PIC16F57 USBIO
- PIC16F5X USBIO
- 続12 8ピンPICでUSB PIC16F18313 HID-シリアルアダプター
- ucontrol.com.arに接続できない
- 続続 LPC1114 USBブートローダー
- 続PIC10F200 電子サイコロ
- PIC10F200 電子サイコロ
- LPC1114 8ch簡易ロジックアナライザー USB版
- 続 LPC1114 USBブートローダー
- LPC1114 8ch簡易ロジックアナライザー
- LPC1114 USBブートローダー
- LPC1114でUSB
- 続LPC810でUSB
- LPC810でUSB
- USB_NCO
- USB出力の周波数カウンター
- HIDアダプターについてのまとめ その2
- HIDアダプターについてのまとめ
- 極小ブートローダー まとめ
- 極小ブートローダー ATTiny 其の2
- 極小ブートローダー PIC10F322 其の6
- 極小ブートローダー PIC10F322 其の5
- 極小ブートローダー PIC10F322 其の4
- 極小ブートローダー PIC10F322 其の3
- 極小ブートローダー ATTiny13A
- 極小ブートローダー PIC10F322 其の2
- 極小ブートローダー PIC10F322
- 続11 8ピンPICでUSB PIC16F57_USBIO (その3)
- 続10 8ピンPICでUSB PIC16F505_USBIO (その2)
- 続9 8ピンPICでUSB PIC16F57_USBIO (その2)
- 続8 8ピンPICでUSB PIC16F505_USBIO
- 続7 8ピンPICでUSB PIC16F57_USBIO
- 続6 8ピンPICでUSB PIC16F570_USBIO
- 続5 8ピンPICでUSB PIC12F615_USBIO
- 続4 8ピンPICでUSB 16FUSBの改良版
- 続続続8ピンPICでUSB -30MHz+ソフトシリアル-
- 続続8ピンPICでUSB -16FUSBを30MHzで動かす-
- 続8ピンPICでUSB -ターミナルソフトからの操作-
- 8ピンPICでUSB -16FUSBの移植-
- 番外 MSP430 タイニーブートローダー
- 番外 C8051 タイニーブートローダー
- 続続続 Tiny AVR/PIC Bootloader+
- 続続 Tiny AVR/PIC Bootloader+
- 続 Tiny AVR/PIC Bootloader+
- Tiny AVR/PIC Bootloader+
- 番外 続ATTINY13A OSCCAL の簡易校正
- 番外 ATTINY13A OSCCAL の簡易校正
- 番外 続ATTINY13A ソフトシリアル
- 番外 ATTINY13A ソフトシリアル
- 番外 続Arduinoからタイニーブートローダーを使用する
- 番外 Arduinoからタイニーブートローダーを使用する
- 番外 LPC1114FN28/102 アセンブラサンプル
- 番外 LPC810 タイニーブートローダーの自己書き換え
- 番外 LPC810 EEPROM エミュレーション
- 番外 LPC810 タイニーブートローダー
- 番外 LPC810でアセンブラ
- 続続続PIC10F322 ソフトシリアル一考察
- 続続PIC10F322 ソフトシリアル一考察
- 続PIC10F322 ソフトシリアル一考察
- PIC10F322 ソフトシリアル一考察
- 84ワードのPICブートローダー
- 続PIC10F322 Ring-DDS
- Tinybldの自己更新プログラム
- プログラム領域をROMのように使う
- PIC10F322 256ビットプログラム発振器
- PIC18F EEPROM エミュレーション Jタイプ
- PIC18F EEPROM エミュレーション
- PIC16F EEPROM エミュレーション
- PIC10F322専用 周波数カウンター
- PIC18F Jタイプ ブートローダー
- PICの制約を取り除く
- 番外 ATTINY2313A用ブートローダー
- 続番外 ATTINY13A用ブートローダー
- 番外 ATTINY13A用ブートローダー
- 続PIC10F322 フラッシュメモリの操作
- PIC10F322 フラッシュメモリの操作
- PIC10F322 PIC_WAIT
- ビット列の並び替え その2
- ビット列の並び替え その1
- 故障した温水便座を使えるようにする
- PIC10F322 RA3を出力ポートとして使用
- PIC10F322 周波数カウンタ Part2
- PIC10F322 AN592準拠 周波数カウンタ
- PIC10F322 Ring-DDS
- microchipのAN592に関する一考察
- PIC10F322 3-ch リモコンライン切り替え器
- PIC10F322 4-SW リモコン送信器
- PIC10F322 二相発振器
- PIC_DELAY
- 続PIC_WAIT
- PIC_WAIT