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

PIC16F18313をPICKIT2で焼くその2

このページでは、PICKIT2 DeviceFile Editorを用いてPICKIT2にPIC16F18313を登録する手順について述べます。

①Device FamilesにMidrange/1.8V Min ID-14アイテムを追加

(PIC12F1822が所属する)Midrange/1.8V Minアイテムをコピーし、編集
変更点
○FamilyIDを14からFamilyIDの最大値に変更(私の環境では21)
○FamilyNameをMidrange/1.8V MinからMidrange/1.8V Min ID-14に変更
○DeviceIDMaskを3FE0から3FFFに変更、(PIC16F18313のID値は14ビット、PIC12F1822のID値は9ビット)

img_20171225-220905.jpg


②Parts ListにPIC16F18313アイテムを追加

PIC12F1822アイテムをコピーし、編集
変更点
img_20171225-221709.jpg

○PIC12F1822とPIC16F18313の比較
img_20171225-221838.jpg


③Scriptsにアイテムを追加
コピー元アイテム --> 編集するアイテム ScriptNumber,ScriptName,Scriptの3箇所を変更
4 --> 305
10 --> 301,303
34 --> 299
35 --> 303
172 --> 304
230 --> 300

<解説1>
004 MR_ChpEraceEE10ms.1 から 305 MR_ChpEraceEE10ms.2 への変更

0  AAEE          // COMMAND = 0:LOAD CONFIGURATION
1  BB06
2  BB00
3  AAF2          // WRITE_BYTE_LITERAL Low Byte(00)
4  BB00
5  AAF2          // WRITE_BYTE_LITERAL High Byte(00)
6  BB00
7  AAEE          // COMMAND = 9:Bulk Erase Program Memory
8  BB06
9  BB09
10 AAE8          // DELAY LONG 5.46msx2 = 10.92ms
11 BB02
12 AAEE          // COMMAND = B:Bulk Erase Data Memory
13 BB06
14 BB0B
15 AAE8          // DELAY LONG 5.46msx2 = 10.92ms
16 BB02

PIC16F18313(NVM)はCOMMAND = B:Bulk Erase Data MemoryをサポートしていないのでこのままではEEPROMが消去できない。
12以下でEEPROMのアドレス(0xF000x2=0x01E000)をセットして、COMMAND = 9:Bulk Erase Memory を実行する。 

12  AAEE          // COMMAND = 1D:Load PC Address
13  BB06
14  BB1D
15  AAF2          // WRITE_BYTE_LITERAL Low Byte(00)
16  BB00
17  AAF2          // WRITE_BYTE_LITERAL High Byte(E0)
18  BBE0
19  AAF2          // WRITE_BYTE_LITERAL Upper Byte(01)
20  BB01
21  AAEE          // COMMAND = 9:Bulk Erase Memory
22  BB06
23  BB09
24  AAE8          // DELAY LONG 5.46msx2 = 10.92ms
25  BB02

<解説2>
010 MR_Wr1Int.1 から 302 MR_Wr1Int.2 への変更

0   AAEE          // COMMAND = 3:Load Data For Data Memory
1   BB06
2   BB03
3   AAF1          // WRITE_BYTE_BUFFER Low Byte
4   AAF1          // WRITE_BYTE_BUFFER Higg Byte
5   AAEE          // COMMAND = 8:Begin Internally Timed Programming
6   BB06
7   BB08
8   AAE8          // DELAY LONG 5.46ms
9   0001
10  AAEE          // COMMAND = 6:Increment Address
11  BB06
12  BB06

PIC16F18313(NVM)はCOMMAND = 3:Load Data For Data Memoryをサポートしていないので,
0から2までの行を、同じ機能のCOMMAND = 2:Load Data for NVM に置き換える。 

0   AAEE          // COMMAND = 2:Load Data for NVM
1   BB06
2   BB02

<解説3>
010 MR_Wr1Int.1 から 301 MRE_EEPrep.1 への変更
以下のスクリプトを上書き。EEPROMの読み書きの前に、NVMにEEPROMの開始アドレス(0xF000x2=0x01E000)をセット

0   AAEE          // COMMAND = 1D:Load PC Address
1   BB06
2   BB1D
3   AAF2          // WRITE_BYTE_LITERAL Low Byte(00)
4   BB00
5   AAF2          // WRITE_BYTE_LITERAL High Byte(E0)
6   BBE0
7   AAF2          // WRITE_BYTE_LITERAL Upper Byte(01)
8   BB01

<解説4>
034 MR_CfgRd2.1 から 299 MR_CfgRd4.1 への変更

0   AAEE          // COMMAND = 0:LOAD CONFIGURATION
1   BB06
2   BB00
3   AAF2          // WRITE_BYTE_LITERAL Low Byte(00)
4   BB00
5   AAF2          // WRITE_BYTE_LITERAL High Byte(00)
6   BB00
7   AAEE          // COMMAND = 6:Increment Address
8   BB06
9   BB06
10  AAE9          // LOOP 3行戻ったところ(7行目)から6回ループ
11  BB03             アドレスの加算7回でMVMのアドレスは$8007となる
12  BB06
13  AAEE          // COMMAND = 4:Read Data From Program Memory
14  BB06
15  BB04
16  AAF0          // READ_BYTE_BUFFER Low Byte
17  AAF0          // READ_BYTE_BUFFER High Byte
18  AAEE          // COMMAND = 6:Increment Address
19  BB06
20  BB06
21  AAE9          // LOOP 8行戻ったところ(13行目)から1回ループ
22  BB08             このループで2ワード目のConfigデータが読み出される
23  BB01


PIC16F1831のConfigは4ワードなので、最後のループの回数を変えて4ワード読み取る。

23  BB03

<解説5>
035 MR_CfgWr2.1 から 303 MR_CfgWr4.1 への変更

0   AAEE          // COMMAND = 0:LOAD CONFIGURATION
1   BB06
2   BB00
3   AAF1          // WRITE_BYTE_BUFFER Low Byte
4   AAF1          // WRITE_BYTE_BUFFER High Byte
5   AAEE          // COMMAND = 6:Increment Address
6   BB06
7   BB06
8   AAE9          // LOOP 3行戻ったところ(5行目)から6回ループ
9   BB03             アドレスの加算7回でMVMのアドレスは$8007となる
10  BB06
11  AAEE          // COMMAND = 8:Begin Internally Timed Programming
12  BB06
13  BB08
14  AAE7          // DELAY_SHORT 21.3us x 240 = 5112us = 5.112ms 
15  00F0
16  AAEE          // COMMAND = 6:Increment Address
17  BB06
18  BB06
19  AAEE          // COMMAND = 2:Load Data For Program Memory
20  BB06
21  BB02
22  AAF1          // WRITE_BYTE_BUFFER Low Byte
23  AAF1          // WRITE_BYTE_BUFFER High Byte
24  AAEE          // COMMAND = 8:Begin Internally Timed Programming
25  BB06
26  BB08
27  AAE7          // DELAY_SHORT 21.3us x 250 = 5325us = 5.325ms 
28  00FA


PIC16F1831のConfigは4ワードなので、行末にループを追加して更に2ワード書き込む。

29  AAE9          // LOOP 13行戻ったところ(16行目)から2回ループ
30  BB0D
31  BB02

<解説6>
172 MR_CfgRawErase.1 から 304 MR_CfgRawErase.3 への変更

0   AAEE          // COMMAND = 0:LOAD CONFIGURATION
1   BB06
2   BB00
3   AAF2          // WRITE_BYTE_LITERAL Low Byte(00)
4   BB00
5   AAF2          // WRITE_BYTE_LITERAL High Byte(00)
6   BB00
7   AAEE          // COMMAND = 11:Row Erase Program Memory
8   BB06
9   BB11
10  AAE8          // DELAY LONG 5.46ms
11  BB01
12  AAE7          // DELAY_SHORT 21.3us x 25 = 5325us = 0.5325ms 
13  0019

PIC16F18313(NVM)はCOMMAND = 11:Row Erase Program MemoryをサポートしていないのでこのままではConfigが消去できない。
7行から9行までを書き換えCOMMAND = 5:Row Erase Memoryを実行する。 

7   AAEE          // COMMAND = 5:Row Erase Memory
8   BB06
9   BB05

<解説7>
230 MRE_AddSet.1 から 300 MR_AddSet.2 への変更

0   AAEE          // COMMAND = 16:Reset Address
1   BB06
2   BB16
3   AAE4          // GOTO_INDEX
4   BB05
5   AAEE          // COMMAND = 6:Increment Address
6   BB06
7   BB06
8   AADD          // LOOPBUFFER
9   BB03
10  AADB          // POP_DOWNLOAD

PIC16F18313(NVM)はCOMMAND = 16:Reset Addressをサポートしていないので,
行頭の部分をCOMMAND = 1D:Load PC Addressに変更する。 

0   AAEE          // COMMAND = 1D:Load PC Address
1   BB06
2   BB1D
3   AAF2          // WRITE_BYTE_LITERAL Low Byte(00)
4   BB00
5   AAF2          // WRITE_BYTE_LITERAL High Byte(00)
6   BB00
7   AAF2          // WRITE_BYTE_LITERAL Upper Byte(00)
8   BB00
9   AAE4          // GOTO_INDEX
10  BB05
11  AAEE          // COMMAND = 6:Increment Address
12  BB06
13  BB06
14  AADD          // LOOPBUFFER
15  BB03
16  AADB          // POP_DOWNLOAD

○編集後のアイテム
img_20171225-223748.jpg
img_20171225-223810.jpg
img_20171225-223832.jpg
img_20171225-223848.jpg
img_20171225-223904.jpg
img_20171225-223923.jpg
img_20171225-223939.jpg