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

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
img_20180116-221856.jpg

注意)ファミリーの番号はダブらなければ何番でもかまいません。大事なのは名前です。
"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アイテムに以下を追加してください。
img_20180119-141838.jpg
img_20180115-224442.jpg

○スクリプト
以下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