PIC16F18313ブートローダー書き込み器の製作
Tiny Multi Bootloader+ で使用できる、HID仕様の書き込み器を製作しましたので、ご紹介します。
2018.03.29追記---------------------------------------------------------------------------------------------------------
本ページで紹介の機能が、Tiny Multi Bootloadetr+ v0.11.2以降のバージョンに正式搭載されました。
装置を接続してTiny Multi Bootloadetr+ (v0.11.2以降)を立ち上げると使用できます。

----------------------------------------------------------------------------------------------------------------------------
2018.02.24 追記---------------------------------------------------------------------------------------------------------
パソコンの動作速度との兼ね合いで、装置(HID仕様の書き込み器)からのデータを正しく受信できない場合があります。
この問題はホストのデータ受信要求が早すぎることが原因で、データ受信前にウエイトを入れると解決します。
対策したホストプログラムを下にアップしました。
----------------------------------------------------------------------------------------------------------------------------
Tiny Multi Bootloader+のようなシリアル書き込みを使用するためには、以下の方法が一般的です。
①PCに付属(装着)の実体シリアルポートを使用する。
②FT232などのデバイスをCDCで登録した仮想シリアルポートを使用する。
今回提案する方法は、"HIDで登録した仮想シリアルポート使用する" です。
この方式の利点としては、安価で容易に製作可能であることです。
"続12 8ピンPICでUSB PIC16F18313 HID-シリアルアダプター"のページで紹介したHID-シリアルアダプターを
使用して小さく作ることができました。
右側のブレッドボードボード上にデバイスを差込み、ブレッドボードボードのピン配線を使用します。

<回路図>

<配線図>

<HIDコマンド仕様>

以前のPIC16F18313 HID-シリアルアダプターと同じ2バイト転送の仕様ですが、若干コマンドを追加しています。
○実シリアルポートのOpen/Closeに対応したシリアルEnable/Disableを追加。
○連続受信に対応した2バイト受信モードを追加。(2バイト目を受信したらレポート発行)
○受信したデータと、ひとつ前に受信したデータを常に同時に転送する仕様に変更。
<Tiny Multi Bootloader+での使用方法>
①USB接続した後、ホストを立ち上げると"Detected COM"のセレクトボックスに"16FUSB"が出現します。

②"Detected COM"のセレクトボックスで"16FUSB"を選択すると、"Selected COM"のテキストボックスに
"16FUSB"が表示されます。
"16FUSB"はDTRの信号線をサポートしないので、"Reset Type"のDTRのボタンが使用不可となります。

③適切な"Baud Rate"を選択し、書き込み実行。以下はPIC12F1822の例

○PIC12F1822での配線例(RTS信号によるリセットを使用)

謝辞:今回のTiny Multi Bootloader+の改変したホストには、楢ノ木技研さんのHIDSimpleFrameworkライブラリ
に含まれるUSBDevice.csを使用させていただきました。すばらしいものをどうもありがとうごさいました。
楢ノ木技研:http://oaktree-lab.com/downloads/index.html
HIDSimpleFramework:http://yamamaya.github.io/HIDSimpleFramework/
ダウンロードはこちらから (Tiny Multi Bootloader+の改変したホスト、PIC16F18313のファームウエアなど)
https://drive.google.com/file/d/1D2ftl2zp6oTD8Bq4MySc7yBJwVgQArBX/view?usp=sharing
(データ受信取りこぼしを改善したホスト:追記参照)上記のダウンロードに上書きしてください。
https://drive.google.com/file/d/1SQodlcctrty_aLFb3ZzLNOMNNq5AIZ7a/view?usp=sharing
2018.03.29追記---------------------------------------------------------------------------------------------------------
本ページで紹介の機能が、Tiny Multi Bootloadetr+ v0.11.2以降のバージョンに正式搭載されました。
装置を接続してTiny Multi Bootloadetr+ (v0.11.2以降)を立ち上げると使用できます。

----------------------------------------------------------------------------------------------------------------------------
2018.02.24 追記---------------------------------------------------------------------------------------------------------
パソコンの動作速度との兼ね合いで、装置(HID仕様の書き込み器)からのデータを正しく受信できない場合があります。
この問題はホストのデータ受信要求が早すぎることが原因で、データ受信前にウエイトを入れると解決します。
対策したホストプログラムを下にアップしました。
----------------------------------------------------------------------------------------------------------------------------
Tiny Multi Bootloader+のようなシリアル書き込みを使用するためには、以下の方法が一般的です。
①PCに付属(装着)の実体シリアルポートを使用する。
②FT232などのデバイスをCDCで登録した仮想シリアルポートを使用する。
今回提案する方法は、"HIDで登録した仮想シリアルポート使用する" です。
この方式の利点としては、安価で容易に製作可能であることです。
"続12 8ピンPICでUSB PIC16F18313 HID-シリアルアダプター"のページで紹介したHID-シリアルアダプターを
使用して小さく作ることができました。
右側のブレッドボードボード上にデバイスを差込み、ブレッドボードボードのピン配線を使用します。

<回路図>

<配線図>

<HIDコマンド仕様>

以前のPIC16F18313 HID-シリアルアダプターと同じ2バイト転送の仕様ですが、若干コマンドを追加しています。
○実シリアルポートのOpen/Closeに対応したシリアルEnable/Disableを追加。
○連続受信に対応した2バイト受信モードを追加。(2バイト目を受信したらレポート発行)
○受信したデータと、ひとつ前に受信したデータを常に同時に転送する仕様に変更。
<Tiny Multi Bootloader+での使用方法>
①USB接続した後、ホストを立ち上げると"Detected COM"のセレクトボックスに"16FUSB"が出現します。

②"Detected COM"のセレクトボックスで"16FUSB"を選択すると、"Selected COM"のテキストボックスに
"16FUSB"が表示されます。
"16FUSB"はDTRの信号線をサポートしないので、"Reset Type"のDTRのボタンが使用不可となります。

③適切な"Baud Rate"を選択し、書き込み実行。以下はPIC12F1822の例

○PIC12F1822での配線例(RTS信号によるリセットを使用)

謝辞:今回のTiny Multi Bootloader+の改変したホストには、楢ノ木技研さんのHIDSimpleFrameworkライブラリ
に含まれるUSBDevice.csを使用させていただきました。すばらしいものをどうもありがとうごさいました。
楢ノ木技研:http://oaktree-lab.com/downloads/index.html
HIDSimpleFramework:http://yamamaya.github.io/HIDSimpleFramework/
ダウンロードはこちらから (Tiny Multi Bootloader+の改変したホスト、PIC16F18313のファームウエアなど)
https://drive.google.com/file/d/1D2ftl2zp6oTD8Bq4MySc7yBJwVgQArBX/view?usp=sharing
(データ受信取りこぼしを改善したホスト:追記参照)上記のダウンロードに上書きしてください。
https://drive.google.com/file/d/1SQodlcctrty_aLFb3ZzLNOMNNq5AIZ7a/view?usp=sharing
- ご質問などはこちらからどうぞ
- ページ更新情報
- 最近嬉しかったこと
- 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