PIC16F18857をPICKIT2で焼くその2
このページでは新たに作成したファミリーと14個のスクリプトについて解説します。
2019.01.19追記ーーーーーーーーーーーーーーーーーーーーーーーーーーー
PIC16F18857のDeviceIDの14bitのリバース値をDeviceID値として入力することで問題解決しました。
DeviceID:3074 → 00.11.00.00.01.11.01.00 → 00.00.10.11.10.00.00.11 → 0B83
PIC16F18855のスクリプトファイルの上段の図とダウンロードファイルを更新しました。
以前のファイルをダウンロードされたかたは更新をお勧めします。
追記ここまでーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
2019.01.16追記1ーーーーーーーーーーーーーーーーーーーーーーーーーーー
先の設定では12F/16F1XXX/16F183XXの自動検出に失敗したため
ファミリーMidrange/1.8V Min MSB1stのSerchPriorityを6から5に変更しました。
すぐ下のファミリーの図とダウンロードファイル(My_pk2devicefile.dat)を更新しました。
以前のファイルをダウンロードされたかたは更新をお勧めします。
追記1ここまでーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
○新たに作成したファミリー Midrange/1.8V Min MSB1st

注意)ファミリーの番号はダブらなければ何番でもかまいません。大事なのは名前です。
"Midrange/1.8V Min MSB1st"をホスト側で参照しますので、この名前を変更しないでください。
2019.01.16追記2ーーーーーーーーーーーーーーーーーーーーーーーーーーー
以前PIC16F18313をPICKIT2で焼くのページで
ファミリー番号21"Midrange/1.8V Min ID-14"を定義していましたが、これは
実は、ファミリー番号18"Midrange/USB"と全く同じ設定でした。
古くから使用していたのですが、最近気がつきました。
今回のスクリプトではファミリー番号21番を使用していたデバイスの、ファミリ
ー番号を全て18番に変更した後、空いた21番を改めて"Midrange/1.8V Min MSB1st"
として使用しています。
追記2ここまでーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
○PIC16F18857のスクリプトファイル
Parts Listアイテムに以下を追加してください。


○スクリプト
以下14個のスクリプトを作成します。スクリプト番号は適宜変更してください。
308 MR_NVM_MSB_First_RdDevID1
AAF2 BB01 AAE7 BB01 AAF2 BB80 AAF2 BB00
AAF2 BB30 AAE7 BB01 AAF2 BB3F AAE7 BB01
AAEF AAF0 AAF0
F2 01 WRITE_BYTE_LITERAL 01 //0000.0001 -> 1000.0000 Load PC Address
E7 01 DELAY_SHORT 01
F2 80 WRITE_BYTE_LITERAL 80 //1000.0000 -> 0000.0001 0x01
F2 00 WRITE_BYTE_LITERAL 00 0x00
F2 30 WRITE_BYTE_LITERAL 30 //0011.0000 -> 0000.1100 0x0C
E7 01 DELAY_SHORT 01
F2 3F WRITE_BYTE_LITERAL 3F //0011.1111 -> 1111.1100 Read Data from NVM
E7 01 DELAY_SHORT 01
EF READ_BYTE
F0 READ_BYTE_BUFFER
F0 READ_BYTE_BUFFER
------------------------------------------------------------------------------------------------------------------------
309 MR_NVM_MSB_First_ChpEraseEE10ms
AAF2 BB01 AAE7 BB01 AAF2 BB80 AAF2 BB00
AAF2 BB00 AAE7 BB01 AAF2 BB18 AAE8 BB02
AAF2 BB01 AAE7 BB01 AAF2 BB80 AAF2 BB07
AAF2 BB00 AAE7 BB01 AAF2 BB18 AAE8 BB02
F2 01 WRITE_BYTE_LITERAL 01 //0000.0001 -> 1000.0000 Load PC Address
E7 01 DELAY_SHORT 01
F2 80 WRITE_BYTE_LITERAL 80 //1000.0000 -> 0000.0001 0x01
F2 00 WRITE_BYTE_LITERAL 00 0x00
F2 00 WRITE_BYTE_LITERAL 00 0x00
E7 01 DELAY_SHORT 01
F2 18 WRITE_BYTE_LITERAL 18 //0001.1000 -> 0001.1000 Bulk Erase Memory
E8 02 DELAY_LONG 02
F2 01 WRITE_BYTE_LITERAL 01 //0000.0001 -> 1000.0000 Load PC Address
E7 01 DELAY_SHORT 01
F2 80 WRITE_BYTE_LITERAL 80 //1000.0000 -> 0000.0001 0x01
F2 07 WRITE_BYTE_LITERAL 07 //0000.0111 -> 1110.0000 0xE0
F2 00 WRITE_BYTE_LITERAL 00 0x00
E7 01 DELAY_SHORT 01
F2 18 WRITE_BYTE_LITERAL 18 //0001.1000 -> 0001.1000 Bulk Erase Memory
E8 02 DELAY_LONG 02
------------------------------------------------------------------------------------------------------------------------
310 MR_NVM_MSB_First_AddrSet
AAF2 BB01 AAE7 BB01 AAF2 BB00 AAF2 BB00
AAF2 BB00 AAE4 BB05 AAEE BB08 BB1F AADD
BB03 AADB
F2 01 WRITE_BYTE_LITERAL 01 //0000.0001 -> 1000.0000 Load PC Address
E7 01 DELAY_SHORT 01
F2 00 WRITE_BYTE_LITERAL 00 0x00
F2 00 WRITE_BYTE_LITERAL 00 0x00
F2 00 WRITE_BYTE_LITERAL 00 0x00
E4 05 GOTO_INDEX 05
EE 1F 08WRITE_BITS_LITERAL 1F 08 //0001.1111 -> 1111.1000 Increment Address
DD 03 LOOPBUFFER 03
DB POP_DOWNLOAD
------------------------------------------------------------------------------------------------------------------------
311 MR_NVM_MSB_First_ProgMemRd32
AAF2 BB3F AAE7 BB01 AAEF AAF0 AAF0 AAE7
BB01 AAF2 BB1F AAE7 BB01 AAE9 BB0D 001F
F2 3F WRITE_BYTE_LITERAL 3F //0011.1111 -> 1111.1100 Read Data from NVM
E7 01 DELAY_SHORT 01
EF READ_BYTE
F0 READ_BYTE_BUFFER
F0 READ_BYTE_BUFFER
E7 01 DELAY_SHORT 01
F2 1F WRITE_BYTE_LITERAL 1F //0001.1111 -> 1111.1000 Increment Address
E7 01 DELAY_SHORT 01
E9 1F 0DLOOP 1F 0D
------------------------------------------------------------------------------------------------------------------------
312 MR_NVM_MSB_First_EEPrep
AAF2 BB01 AAE7 BB01 AAF2 BB80 AAF2 BB07
AAF2 BB00
F2 01 WRITE_BYTE_LITERAL 01 //0000.0001 -> 1000.0000 Load PC Address
E7 01 DELAY_SHORT 01
F2 80 WRITE_BYTE_LITERAL 80 //1000.0000 -> 0000.0001 0x01
F2 07 WRITE_BYTE_LITERAL 07 //0000.0111 -> 1110.0000 0xE0
F2 00 WRITE_BYTE_LITERAL 00 0x00
------------------------------------------------------------------------------------------------------------------------
313 MR_NVM_MSB_First_UsrIDRd4
AAF2 BB01 AAE7 BB01 AAF2 BB80 AAF2 BB00
AAF2 BB00 AAE7 BB01 AAF2 BB3F AAE7 BB01
AAEF AAF0 AAF0 AAE7 BB01 AAF2 BB1F AAE9
BB0D BB03
F2 01 WRITE_BYTE_LITERAL 01 //0000.0001 -> 1000.0000 Load PC Address
E7 01 DELAY_SHORT 01
F2 80 WRITE_BYTE_LITERAL 80 //1000.0000 -> 0000.0001 0x01
F2 00 WRITE_BYTE_LITERAL 00 0x00
F2 00 WRITE_BYTE_LITERAL 00 0x00
E7 01 DELAY_SHORT 01
F2 3F WRITE_BYTE_LITERAL 3F //0011.1111 -> 1111.1100 Read Data from NVM
E7 01 DELAY_SHORT 01
EF READ_BYTE
F0 READ_BYTE_BUFFER
F0 READ_BYTE_BUFFER
E7 01 DELAY_SHORT 01
F2 1F WRITE_BYTE_LITERAL 1F //0001.1111 -> 1111.1000 Increment Address
E9 03 0DLOOP 03 0D
------------------------------------------------------------------------------------------------------------------------
314 MR_NVM_MSB_First_CfgRd5Int
AAF2 BB01 AAE7 BB01 AAF2 BB80 AAF2 BB00
AAF2 BB70 AAE7 BB01 AAF2 BB3F AAE7 BB01
AAEF AAF0 AAF0 AAE7 BB01 AAF2 BB1F AAE9
BB0D BB04
F2 01 WRITE_BYTE_LITERAL 01 //0000.0001 -> 1000.0000 Load PC Address
E7 01 DELAY_SHORT 01
F2 80 WRITE_BYTE_LITERAL 80 //1000.0000 -> 0000.0001 0x01
F2 00 WRITE_BYTE_LITERAL 00 0x00
F2 70 WRITE_BYTE_LITERAL 70 //0111.0000 -> 0000.1110 0x0E
E7 01 DELAY_SHORT 01
F2 3F WRITE_BYTE_LITERAL 3F //0011.1111 -> 1111.1100 Read Data from NVM
E7 01 DELAY_SHORT 01
EF READ_BYTE
F0 READ_BYTE_BUFFER
F0 READ_BYTE_BUFFER
E7 01 DELAY_SHORT 01
F2 1F WRITE_BYTE_LITERAL 1F //0001.1111 -> 1111.1000 Increment Address
E9 04 0DLOOP 04 0D
------------------------------------------------------------------------------------------------------------------------
315 MR_NVM_MSB_First_PrgMemWr32Int
AAF2 BB00 AAE7 BB01 AAF2 BB00 AAF1 AAF1
AAE7 BB01 AAF2 BB1F AAE7 BB01 AAF2 BB00
AAE7 BB01 AAF2 BB00 AAF1 AAF1 AAE9 BB0E
001E AAE7 BB01 AAF2 BB07 AAE7 008D AAF2
BB1F
F2 00 WRITE_BYTE_LITERAL 00 Load Data for NVM
E7 01 DELAY_SHORT 01
F2 00 WRITE_BYTE_LITERAL 00
F1 WRITE_BYTE_BUFFER
F1 WRITE_BYTE_BUFFER
E7 01 DELAY_SHORT 01
F2 1F WRITE_BYTE_LITERAL 1F //0001.1111 -> 1111.1000 Increment Address
E7 01 DELAY_SHORT 01
F2 00 WRITE_BYTE_LITERAL 00 Load Data for NVM
E7 01 DELAY_SHORT 01
F2 00 WRITE_BYTE_LITERAL 00
F1 WRITE_BYTE_BUFFER
F1 WRITE_BYTE_BUFFER
E9 1E 0ELOOP 1E 0E
E7 01 DELAY_SHORT 01
F2 07 WRITE_BYTE_LITERAL 07 //0000.0111 -> 1110.0000 Begin Program
E7 8D DELAY_SHORT 8D
F2 1F WRITE_BYTE_LITERAL 1F //0001.1111 -> 1111.1000 Increment Address
------------------------------------------------------------------------------------------------------------------------
316 MR_NVM_MSB_First_EEWr1Int
AAF2 BB00 AAE7 BB01 AAF2 BB00 AAF1 AAF1
AAE7 BB01 AAF2 BB07 AAE8 0001 AAF2 BB1F
F2 00 WRITE_BYTE_LITERAL 00 Load Data for NVM
E7 01 DELAY_SHORT 01
F2 00 WRITE_BYTE_LITERAL 00
F1 WRITE_BYTE_BUFFER
F1 WRITE_BYTE_BUFFER
E7 01 DELAY_SHORT 01
F2 07 WRITE_BYTE_LITERAL 07 //0000.0111 -> 1110.0000 Begin Program
E8 01 DELAY_LONG 01
F2 1F WRITE_BYTE_LITERAL 1F //0001.1111 -> 1111.1000 Increment Address
------------------------------------------------------------------------------------------------------------------------
317 MR_NVM_MSB_First_UsrIDWrInt
AAF2 BB01 AAE7 BB01 AAF2 BB80 AAF2 BB00
AAF2 BB00 AAE7 BB01 AAF2 BB00 AAE7 BB01
AAF2 BB00 AAF1 AAF1 AAE7 BB01 AAF2 BB07
AAE7 008D AAF2 BB1F AAE9 0012 BB03
F2 01 WRITE_BYTE_LITERAL 01 //0000.0001 -> 1000.0000 Load PC Address
E7 01 DELAY_SHORT 01
F2 80 WRITE_BYTE_LITERAL 80 //1000.0000 -> 0000.0001 0x01
F2 00 WRITE_BYTE_LITERAL 00 0x00
F2 00 WRITE_BYTE_LITERAL 00 0x00
E7 01 DELAY_SHORT 01
F2 00 WRITE_BYTE_LITERAL 00 Load Data for NVM
E7 01 DELAY_SHORT 01
F2 00 WRITE_BYTE_LITERAL 00
F1 WRITE_BYTE_BUFFER
F1 WRITE_BYTE_BUFFER
E7 01 DELAY_SHORT 01
F2 07 WRITE_BYTE_LITERAL 07 //0000.0111 -> 1110.0000 Begin Program
E7 8D DELAY_SHORT 8D
F2 1F WRITE_BYTE_LITERAL 1F //0001.1111 -> 1111.1000 Increment Address
E9 03 12LOOP 03 12
------------------------------------------------------------------------------------------------------------------------
318 MR_NVM_MSB_First_CfgWr5Int
AAF2 BB01 AAE7 BB01 AAF2 BB80 AAF2 BB00
AAF2 BB30 AAE7 BB01 AAF2 BB1F AAE7 BB01
AAF2 BB00 AAE7 BB01 AAF2 BB00 AAF1 AAF1
AAE7 BB01 AAF2 BB07 AAE7 00FA AAE9 BB14
BB04
F2 01 WRITE_BYTE_LITERAL 01 //0000.0001 -> 1000.0000 Load PC Address
E7 01 DELAY_SHORT 01
F2 80 WRITE_BYTE_LITERAL 80 //1000.0000 -> 0000.0001 0x01
F2 00 WRITE_BYTE_LITERAL 00 0x00
F2 30 WRITE_BYTE_LITERAL 30 //0011.0000 -> 0000.1100 0x0C
E7 01 DELAY_SHORT 01
F2 1F WRITE_BYTE_LITERAL 1F //0001.1111 -> 1111.1000 Increment Address
E7 01 DELAY_SHORT 01
F2 00 WRITE_BYTE_LITERAL 00 Load Data for NVM
E7 01 DELAY_SHORT 01
F2 00 WRITE_BYTE_LITERAL 00
F1 WRITE_BYTE_BUFFER
F1 WRITE_BYTE_BUFFER
E7 01 DELAY_SHORT 01
F2 07 WRITE_BYTE_LITERAL 07 //0000.0111 -> 1110.0000 Begin Program
E7 FA DELAY_SHORT FA
E9 04 14LOOP 04 14
------------------------------------------------------------------------------------------------------------------------
319 MR_NVM_MSB_First_PMemErase10ms
AAF2 BB01 AAE7 BB01 AAF2 BB80 AAF2 BB00
AAF2 BB00 AAE7 BB01 AAF2 BB18 AAE8 BB02
F2 01 WRITE_BYTE_LITERAL 01 //0000.0001 -> 1000.0000 Load PC Address
E7 01 DELAY_SHORT 01
F2 80 WRITE_BYTE_LITERAL 80 //1000.0000 -> 0000.0001 0x01
F2 00 WRITE_BYTE_LITERAL 00 0x00
F2 00 WRITE_BYTE_LITERAL 00 0x00
E7 01 DELAY_SHORT 01
F2 18 WRITE_BYTE_LITERAL 18 //0001.1000 -> 0001.1000 Bulk Erase Memory
E8 02 DELAY_LONG 02
------------------------------------------------------------------------------------------------------------------------
320 MR_NVM_MSB_First_CfgRowErase
AAF2 BB01 AAE7 BB01 AAF2 BB80 AAF2 BB00
AAF2 BB00 AAE7 BB01 AAF2 BB0F AAE8 BB01
AAE7 0019
F2 01 WRITE_BYTE_LITERAL 01 //0000.0001 -> 1000.0000 Load PC Address
E7 01 DELAY_SHORT 01
F2 80 WRITE_BYTE_LITERAL 80 //1000.0000 -> 0000.0001 0x01
F2 00 WRITE_BYTE_LITERAL 00 0x00
F2 00 WRITE_BYTE_LITERAL 00 0x00
E7 01 DELAY_SHORT 01
F2 0F WRITE_BYTE_LITERAL 0F //0000.1111 -> 1111.0000 Raw Erase Memory
E8 01 DELAY_LONG 01
E7 19 DELAY_SHORT 19
------------------------------------------------------------------------------------------------------------------------
321 MR_NVM_MSB_First_TstMemRd8
AAF2 BB3F AAE7 BB01 AAEF AAF0 AAF0 AAE7
BB01 AAF2 BB1F AAE7 BB01 AAE9 BB0D BB07
F2 3F WRITE_BYTE_LITERAL 3F //0011.1111 -> 1111.1100 Read Data from NVM
E7 01 DELAY_SHORT 01
EF READ_BYTE
F0 READ_BYTE_BUFFER
F0 READ_BYTE_BUFFER
E7 01 DELAY_SHORT 01
F2 1F WRITE_BYTE_LITERAL 1F //0001.1111 -> 1111.1000 Increment Address
E7 01 DELAY_SHORT 01
E9 07 0DLOOP 07 0D
参考にしたページ
http://www.microchip.com/forums/m1011325.aspx
ホスト側のソースファイルなどのダウンロードはこちらから
https://box.yahoo.co.jp/guest/viewer?sid=box-l-ynvbblq5wtn3l5nx64zrgryqbm-1001&uniqid=bf03faea-57e4-48e8-b00f-3fcc052106f3&viewtype=detail
https://box.yahoo.co.jp/guest/viewer?sid=box-l-ynvbblq5wtn3l5nx64zrgryqbm-1001&uniqid=eeac58cc-9d18-4a11-841f-d95a6d46576a&viewtype=detail
https://drive.google.com/file/d/1CcVTrGVEut7EcXQdheDS3Hjgsn6GfoXH/view?usp=sharing
2019.01.19追記ーーーーーーーーーーーーーーーーーーーーーーーーーーー
PIC16F18857のDeviceIDの14bitのリバース値をDeviceID値として入力することで問題解決しました。
DeviceID:3074 → 00.11.00.00.01.11.01.00 → 00.00.10.11.10.00.00.11 → 0B83
PIC16F18855のスクリプトファイルの上段の図とダウンロードファイルを更新しました。
以前のファイルをダウンロードされたかたは更新をお勧めします。
追記ここまでーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
2019.01.16追記1ーーーーーーーーーーーーーーーーーーーーーーーーーーー
先の設定では12F/16F1XXX/16F183XXの自動検出に失敗したため
ファミリーMidrange/1.8V Min MSB1stのSerchPriorityを6から5に変更しました。
すぐ下のファミリーの図とダウンロードファイル(My_pk2devicefile.dat)を更新しました。
以前のファイルをダウンロードされたかたは更新をお勧めします。
追記1ここまでーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
○新たに作成したファミリー Midrange/1.8V Min MSB1st

注意)ファミリーの番号はダブらなければ何番でもかまいません。大事なのは名前です。
"Midrange/1.8V Min MSB1st"をホスト側で参照しますので、この名前を変更しないでください。
2019.01.16追記2ーーーーーーーーーーーーーーーーーーーーーーーーーーー
以前PIC16F18313をPICKIT2で焼くのページで
ファミリー番号21"Midrange/1.8V Min ID-14"を定義していましたが、これは
実は、ファミリー番号18"Midrange/USB"と全く同じ設定でした。
古くから使用していたのですが、最近気がつきました。
今回のスクリプトではファミリー番号21番を使用していたデバイスの、ファミリ
ー番号を全て18番に変更した後、空いた21番を改めて"Midrange/1.8V Min MSB1st"
として使用しています。
追記2ここまでーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
○PIC16F18857のスクリプトファイル
Parts Listアイテムに以下を追加してください。


○スクリプト
以下14個のスクリプトを作成します。スクリプト番号は適宜変更してください。
308 MR_NVM_MSB_First_RdDevID1
AAF2 BB01 AAE7 BB01 AAF2 BB80 AAF2 BB00
AAF2 BB30 AAE7 BB01 AAF2 BB3F AAE7 BB01
AAEF AAF0 AAF0
F2 01 WRITE_BYTE_LITERAL 01 //0000.0001 -> 1000.0000 Load PC Address
E7 01 DELAY_SHORT 01
F2 80 WRITE_BYTE_LITERAL 80 //1000.0000 -> 0000.0001 0x01
F2 00 WRITE_BYTE_LITERAL 00 0x00
F2 30 WRITE_BYTE_LITERAL 30 //0011.0000 -> 0000.1100 0x0C
E7 01 DELAY_SHORT 01
F2 3F WRITE_BYTE_LITERAL 3F //0011.1111 -> 1111.1100 Read Data from NVM
E7 01 DELAY_SHORT 01
EF READ_BYTE
F0 READ_BYTE_BUFFER
F0 READ_BYTE_BUFFER
------------------------------------------------------------------------------------------------------------------------
309 MR_NVM_MSB_First_ChpEraseEE10ms
AAF2 BB01 AAE7 BB01 AAF2 BB80 AAF2 BB00
AAF2 BB00 AAE7 BB01 AAF2 BB18 AAE8 BB02
AAF2 BB01 AAE7 BB01 AAF2 BB80 AAF2 BB07
AAF2 BB00 AAE7 BB01 AAF2 BB18 AAE8 BB02
F2 01 WRITE_BYTE_LITERAL 01 //0000.0001 -> 1000.0000 Load PC Address
E7 01 DELAY_SHORT 01
F2 80 WRITE_BYTE_LITERAL 80 //1000.0000 -> 0000.0001 0x01
F2 00 WRITE_BYTE_LITERAL 00 0x00
F2 00 WRITE_BYTE_LITERAL 00 0x00
E7 01 DELAY_SHORT 01
F2 18 WRITE_BYTE_LITERAL 18 //0001.1000 -> 0001.1000 Bulk Erase Memory
E8 02 DELAY_LONG 02
F2 01 WRITE_BYTE_LITERAL 01 //0000.0001 -> 1000.0000 Load PC Address
E7 01 DELAY_SHORT 01
F2 80 WRITE_BYTE_LITERAL 80 //1000.0000 -> 0000.0001 0x01
F2 07 WRITE_BYTE_LITERAL 07 //0000.0111 -> 1110.0000 0xE0
F2 00 WRITE_BYTE_LITERAL 00 0x00
E7 01 DELAY_SHORT 01
F2 18 WRITE_BYTE_LITERAL 18 //0001.1000 -> 0001.1000 Bulk Erase Memory
E8 02 DELAY_LONG 02
------------------------------------------------------------------------------------------------------------------------
310 MR_NVM_MSB_First_AddrSet
AAF2 BB01 AAE7 BB01 AAF2 BB00 AAF2 BB00
AAF2 BB00 AAE4 BB05 AAEE BB08 BB1F AADD
BB03 AADB
F2 01 WRITE_BYTE_LITERAL 01 //0000.0001 -> 1000.0000 Load PC Address
E7 01 DELAY_SHORT 01
F2 00 WRITE_BYTE_LITERAL 00 0x00
F2 00 WRITE_BYTE_LITERAL 00 0x00
F2 00 WRITE_BYTE_LITERAL 00 0x00
E4 05 GOTO_INDEX 05
EE 1F 08WRITE_BITS_LITERAL 1F 08 //0001.1111 -> 1111.1000 Increment Address
DD 03 LOOPBUFFER 03
DB POP_DOWNLOAD
------------------------------------------------------------------------------------------------------------------------
311 MR_NVM_MSB_First_ProgMemRd32
AAF2 BB3F AAE7 BB01 AAEF AAF0 AAF0 AAE7
BB01 AAF2 BB1F AAE7 BB01 AAE9 BB0D 001F
F2 3F WRITE_BYTE_LITERAL 3F //0011.1111 -> 1111.1100 Read Data from NVM
E7 01 DELAY_SHORT 01
EF READ_BYTE
F0 READ_BYTE_BUFFER
F0 READ_BYTE_BUFFER
E7 01 DELAY_SHORT 01
F2 1F WRITE_BYTE_LITERAL 1F //0001.1111 -> 1111.1000 Increment Address
E7 01 DELAY_SHORT 01
E9 1F 0DLOOP 1F 0D
------------------------------------------------------------------------------------------------------------------------
312 MR_NVM_MSB_First_EEPrep
AAF2 BB01 AAE7 BB01 AAF2 BB80 AAF2 BB07
AAF2 BB00
F2 01 WRITE_BYTE_LITERAL 01 //0000.0001 -> 1000.0000 Load PC Address
E7 01 DELAY_SHORT 01
F2 80 WRITE_BYTE_LITERAL 80 //1000.0000 -> 0000.0001 0x01
F2 07 WRITE_BYTE_LITERAL 07 //0000.0111 -> 1110.0000 0xE0
F2 00 WRITE_BYTE_LITERAL 00 0x00
------------------------------------------------------------------------------------------------------------------------
313 MR_NVM_MSB_First_UsrIDRd4
AAF2 BB01 AAE7 BB01 AAF2 BB80 AAF2 BB00
AAF2 BB00 AAE7 BB01 AAF2 BB3F AAE7 BB01
AAEF AAF0 AAF0 AAE7 BB01 AAF2 BB1F AAE9
BB0D BB03
F2 01 WRITE_BYTE_LITERAL 01 //0000.0001 -> 1000.0000 Load PC Address
E7 01 DELAY_SHORT 01
F2 80 WRITE_BYTE_LITERAL 80 //1000.0000 -> 0000.0001 0x01
F2 00 WRITE_BYTE_LITERAL 00 0x00
F2 00 WRITE_BYTE_LITERAL 00 0x00
E7 01 DELAY_SHORT 01
F2 3F WRITE_BYTE_LITERAL 3F //0011.1111 -> 1111.1100 Read Data from NVM
E7 01 DELAY_SHORT 01
EF READ_BYTE
F0 READ_BYTE_BUFFER
F0 READ_BYTE_BUFFER
E7 01 DELAY_SHORT 01
F2 1F WRITE_BYTE_LITERAL 1F //0001.1111 -> 1111.1000 Increment Address
E9 03 0DLOOP 03 0D
------------------------------------------------------------------------------------------------------------------------
314 MR_NVM_MSB_First_CfgRd5Int
AAF2 BB01 AAE7 BB01 AAF2 BB80 AAF2 BB00
AAF2 BB70 AAE7 BB01 AAF2 BB3F AAE7 BB01
AAEF AAF0 AAF0 AAE7 BB01 AAF2 BB1F AAE9
BB0D BB04
F2 01 WRITE_BYTE_LITERAL 01 //0000.0001 -> 1000.0000 Load PC Address
E7 01 DELAY_SHORT 01
F2 80 WRITE_BYTE_LITERAL 80 //1000.0000 -> 0000.0001 0x01
F2 00 WRITE_BYTE_LITERAL 00 0x00
F2 70 WRITE_BYTE_LITERAL 70 //0111.0000 -> 0000.1110 0x0E
E7 01 DELAY_SHORT 01
F2 3F WRITE_BYTE_LITERAL 3F //0011.1111 -> 1111.1100 Read Data from NVM
E7 01 DELAY_SHORT 01
EF READ_BYTE
F0 READ_BYTE_BUFFER
F0 READ_BYTE_BUFFER
E7 01 DELAY_SHORT 01
F2 1F WRITE_BYTE_LITERAL 1F //0001.1111 -> 1111.1000 Increment Address
E9 04 0DLOOP 04 0D
------------------------------------------------------------------------------------------------------------------------
315 MR_NVM_MSB_First_PrgMemWr32Int
AAF2 BB00 AAE7 BB01 AAF2 BB00 AAF1 AAF1
AAE7 BB01 AAF2 BB1F AAE7 BB01 AAF2 BB00
AAE7 BB01 AAF2 BB00 AAF1 AAF1 AAE9 BB0E
001E AAE7 BB01 AAF2 BB07 AAE7 008D AAF2
BB1F
F2 00 WRITE_BYTE_LITERAL 00 Load Data for NVM
E7 01 DELAY_SHORT 01
F2 00 WRITE_BYTE_LITERAL 00
F1 WRITE_BYTE_BUFFER
F1 WRITE_BYTE_BUFFER
E7 01 DELAY_SHORT 01
F2 1F WRITE_BYTE_LITERAL 1F //0001.1111 -> 1111.1000 Increment Address
E7 01 DELAY_SHORT 01
F2 00 WRITE_BYTE_LITERAL 00 Load Data for NVM
E7 01 DELAY_SHORT 01
F2 00 WRITE_BYTE_LITERAL 00
F1 WRITE_BYTE_BUFFER
F1 WRITE_BYTE_BUFFER
E9 1E 0ELOOP 1E 0E
E7 01 DELAY_SHORT 01
F2 07 WRITE_BYTE_LITERAL 07 //0000.0111 -> 1110.0000 Begin Program
E7 8D DELAY_SHORT 8D
F2 1F WRITE_BYTE_LITERAL 1F //0001.1111 -> 1111.1000 Increment Address
------------------------------------------------------------------------------------------------------------------------
316 MR_NVM_MSB_First_EEWr1Int
AAF2 BB00 AAE7 BB01 AAF2 BB00 AAF1 AAF1
AAE7 BB01 AAF2 BB07 AAE8 0001 AAF2 BB1F
F2 00 WRITE_BYTE_LITERAL 00 Load Data for NVM
E7 01 DELAY_SHORT 01
F2 00 WRITE_BYTE_LITERAL 00
F1 WRITE_BYTE_BUFFER
F1 WRITE_BYTE_BUFFER
E7 01 DELAY_SHORT 01
F2 07 WRITE_BYTE_LITERAL 07 //0000.0111 -> 1110.0000 Begin Program
E8 01 DELAY_LONG 01
F2 1F WRITE_BYTE_LITERAL 1F //0001.1111 -> 1111.1000 Increment Address
------------------------------------------------------------------------------------------------------------------------
317 MR_NVM_MSB_First_UsrIDWrInt
AAF2 BB01 AAE7 BB01 AAF2 BB80 AAF2 BB00
AAF2 BB00 AAE7 BB01 AAF2 BB00 AAE7 BB01
AAF2 BB00 AAF1 AAF1 AAE7 BB01 AAF2 BB07
AAE7 008D AAF2 BB1F AAE9 0012 BB03
F2 01 WRITE_BYTE_LITERAL 01 //0000.0001 -> 1000.0000 Load PC Address
E7 01 DELAY_SHORT 01
F2 80 WRITE_BYTE_LITERAL 80 //1000.0000 -> 0000.0001 0x01
F2 00 WRITE_BYTE_LITERAL 00 0x00
F2 00 WRITE_BYTE_LITERAL 00 0x00
E7 01 DELAY_SHORT 01
F2 00 WRITE_BYTE_LITERAL 00 Load Data for NVM
E7 01 DELAY_SHORT 01
F2 00 WRITE_BYTE_LITERAL 00
F1 WRITE_BYTE_BUFFER
F1 WRITE_BYTE_BUFFER
E7 01 DELAY_SHORT 01
F2 07 WRITE_BYTE_LITERAL 07 //0000.0111 -> 1110.0000 Begin Program
E7 8D DELAY_SHORT 8D
F2 1F WRITE_BYTE_LITERAL 1F //0001.1111 -> 1111.1000 Increment Address
E9 03 12LOOP 03 12
------------------------------------------------------------------------------------------------------------------------
318 MR_NVM_MSB_First_CfgWr5Int
AAF2 BB01 AAE7 BB01 AAF2 BB80 AAF2 BB00
AAF2 BB30 AAE7 BB01 AAF2 BB1F AAE7 BB01
AAF2 BB00 AAE7 BB01 AAF2 BB00 AAF1 AAF1
AAE7 BB01 AAF2 BB07 AAE7 00FA AAE9 BB14
BB04
F2 01 WRITE_BYTE_LITERAL 01 //0000.0001 -> 1000.0000 Load PC Address
E7 01 DELAY_SHORT 01
F2 80 WRITE_BYTE_LITERAL 80 //1000.0000 -> 0000.0001 0x01
F2 00 WRITE_BYTE_LITERAL 00 0x00
F2 30 WRITE_BYTE_LITERAL 30 //0011.0000 -> 0000.1100 0x0C
E7 01 DELAY_SHORT 01
F2 1F WRITE_BYTE_LITERAL 1F //0001.1111 -> 1111.1000 Increment Address
E7 01 DELAY_SHORT 01
F2 00 WRITE_BYTE_LITERAL 00 Load Data for NVM
E7 01 DELAY_SHORT 01
F2 00 WRITE_BYTE_LITERAL 00
F1 WRITE_BYTE_BUFFER
F1 WRITE_BYTE_BUFFER
E7 01 DELAY_SHORT 01
F2 07 WRITE_BYTE_LITERAL 07 //0000.0111 -> 1110.0000 Begin Program
E7 FA DELAY_SHORT FA
E9 04 14LOOP 04 14
------------------------------------------------------------------------------------------------------------------------
319 MR_NVM_MSB_First_PMemErase10ms
AAF2 BB01 AAE7 BB01 AAF2 BB80 AAF2 BB00
AAF2 BB00 AAE7 BB01 AAF2 BB18 AAE8 BB02
F2 01 WRITE_BYTE_LITERAL 01 //0000.0001 -> 1000.0000 Load PC Address
E7 01 DELAY_SHORT 01
F2 80 WRITE_BYTE_LITERAL 80 //1000.0000 -> 0000.0001 0x01
F2 00 WRITE_BYTE_LITERAL 00 0x00
F2 00 WRITE_BYTE_LITERAL 00 0x00
E7 01 DELAY_SHORT 01
F2 18 WRITE_BYTE_LITERAL 18 //0001.1000 -> 0001.1000 Bulk Erase Memory
E8 02 DELAY_LONG 02
------------------------------------------------------------------------------------------------------------------------
320 MR_NVM_MSB_First_CfgRowErase
AAF2 BB01 AAE7 BB01 AAF2 BB80 AAF2 BB00
AAF2 BB00 AAE7 BB01 AAF2 BB0F AAE8 BB01
AAE7 0019
F2 01 WRITE_BYTE_LITERAL 01 //0000.0001 -> 1000.0000 Load PC Address
E7 01 DELAY_SHORT 01
F2 80 WRITE_BYTE_LITERAL 80 //1000.0000 -> 0000.0001 0x01
F2 00 WRITE_BYTE_LITERAL 00 0x00
F2 00 WRITE_BYTE_LITERAL 00 0x00
E7 01 DELAY_SHORT 01
F2 0F WRITE_BYTE_LITERAL 0F //0000.1111 -> 1111.0000 Raw Erase Memory
E8 01 DELAY_LONG 01
E7 19 DELAY_SHORT 19
------------------------------------------------------------------------------------------------------------------------
321 MR_NVM_MSB_First_TstMemRd8
AAF2 BB3F AAE7 BB01 AAEF AAF0 AAF0 AAE7
BB01 AAF2 BB1F AAE7 BB01 AAE9 BB0D BB07
F2 3F WRITE_BYTE_LITERAL 3F //0011.1111 -> 1111.1100 Read Data from NVM
E7 01 DELAY_SHORT 01
EF READ_BYTE
F0 READ_BYTE_BUFFER
F0 READ_BYTE_BUFFER
E7 01 DELAY_SHORT 01
F2 1F WRITE_BYTE_LITERAL 1F //0001.1111 -> 1111.1000 Increment Address
E7 01 DELAY_SHORT 01
E9 07 0DLOOP 07 0D
参考にしたページ
http://www.microchip.com/forums/m1011325.aspx
ホスト側のソースファイルなどのダウンロードはこちらから
https://drive.google.com/file/d/1CcVTrGVEut7EcXQdheDS3Hjgsn6GfoXH/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