PIC18F2XXX/4XXX系列閃存微控制器編程規(guī)范解析
一、引言
今天我們來深入探討PIC18F2XXX/4XXX系列閃存微控制器的編程規(guī)范。這個系列包含了眾多型號的設備,這些設備廣泛應用于各種電子系統(tǒng)中。了解其編程規(guī)范,對于電子工程師來說至關重要,有助于我們更好地進行硬件設計和開發(fā)。
文件下載:PIC18F4321T-I/ML.pdf
二、設備概述
該文檔涵蓋了一系列PIC18F2XXX/4XXX系列的設備,例如PIC18F2221、PIC18F4221等眾多型號。這些設備在不同的應用場景中發(fā)揮著重要作用。
三、編程概述
3.1 編程方法
PIC18F2XXX/4XXX系列設備可以使用高壓在線串行編程(High - voltage In - Circuit Serial Programming?,ICSP?)方法或低壓ICSP方法進行編程。這兩種方法都可以在用戶系統(tǒng)中對設備進行操作。低壓ICSP方法與高壓方法略有不同,在適用的地方會特別說明。
3.2 硬件要求
3.2.1 高壓ICSP模式
在高壓ICSP模式下,PIC18F2XXX/4XXX系列設備需要兩個可編程電源,一個用于VDD,一個用于MCLR/VPP/RE3。這兩個電源的最小分辨率應為0.25V。更多硬件參數(shù)可參考第6.0節(jié)“編程/驗證測試模式的交/直流特性時序要求”。
3.2.2 低壓ICSP編程
在低壓ICSP模式下,PIC18F2XXX/4XXX系列設備可以使用工作范圍內的VDD源進行編程。MCLR/VPP/RE3不需要設置為不同的電壓,可保持正常工作電壓。同樣,更多硬件參數(shù)可參考第6.0節(jié)。
3.3 引腳圖
文檔中給出了PIC18F2XXX/4XXX系列不同封裝類型(如28引腳SPDIP、PDIP、SOIC、SSOP、QFN,40引腳PDIP,44引腳TQFP、QFN)的引腳圖。不同封裝類型的引腳排列有所不同,在進行硬件設計時,需要根據(jù)具體的設備封裝來正確連接引腳。例如,在28引腳SPDIP封裝中,MCLR/VPP/RE3位于第1引腳,RB7/PGD位于第2引腳等。
3.4 內存映射
不同型號的PIC18F2XXX/4XXX系列設備的代碼內存空間大小和布局有所不同。
- PIC18FX6X0設備的代碼內存空間從0000h到0FFFFh(64 Kbytes),分為四個16 - Kbyte塊。
- PIC18FX5X5設備的代碼內存空間從0000h到0BFFFFh(48 Kbytes),分為三個16 - Kbyte塊。
- 對于PIC18F2685/4685設備,代碼內存空間從0000h到017FFFh(96 Kbytes),分為五個16 - Kbyte塊;PIC18F2682/4682設備的代碼內存空間從0000h到0013FFFh(80 Kbytes),分為四個16 - Kbyte塊。
- 其他型號如PIC18FX5X0/X5X3、PIC18FX4X5/X4X8、PIC18FX4X0/X4X3、PIC18F2480/4480、PIC18F2580/4580、PIC18F2221/4221、PIC18F2321/4321等也都有各自特定的代碼內存空間布局。
此外,還有三個可通過表讀取和表寫入訪問的塊,包括用于存儲識別信息的ID寄存器(地址為200000h - 200007h)、用于配置位的地址(300000h - 30000Dh)以及用于設備ID位的地址(3FFFFEh和3FFFFFh)。這些信息即使在代碼保護應用后也能正常讀出。
3.5 編程過程概述
編程過程的高級概述如下:首先進行整體擦除(Bulk Erase),然后對代碼內存、ID位置和數(shù)據(jù)EEPROM(部分設備支持,詳見第3.3節(jié)“數(shù)據(jù)EEPROM編程”)進行編程,接著驗證這些內存以確保編程成功。如果沒有檢測到錯誤,再對配置位進行編程和驗證。
3.6 進入和退出編程驗證模式
3.6.1 高壓ICSP編程/驗證模式
進入高壓ICSP編程/驗證模式時,需將PGC和PGD保持低電平,然后將MCLR/VPP/RE3升高到VIHH(高電壓)。進入該模式后,可以串行訪問和編程代碼內存、數(shù)據(jù)EEPROM(部分設備)、ID位置和配置位。退出該模式有相應的序列。進入該模式時,所有未使用的I/O會處于高阻抗狀態(tài)。
3.6.2 低壓ICSP編程/驗證模式
當LVP配置位為‘1’時,低壓ICSP模式啟用。進入低壓ICSP編程/驗證模式時,需將PGC和PGD保持低電平,PGM置為邏輯高電平,然后將MCLR/VPP/RE3升高到VIH。在該模式下,RB5/PGM引腳專門用于編程功能,不再是通用I/O引腳。退出該模式也有對應的序列,進入模式時同樣會使所有未使用的I/O處于高阻抗狀態(tài)。
3.7 串行編程/驗證操作
3.7.1 4位命令
| 所有指令為20位,由一個4位命令和一個16位操作數(shù)組成。編程和驗證所需的命令如下表所示: | 描述 | 4位命令 |
|---|---|---|
| 核心指令(移入16位指令) | 0000 | |
| 移出TABLAT寄存器 | 0010 | |
| 表讀取 | 1000 | |
| 表讀取,后遞增 | 1001 | |
| 表讀取,后遞減 | 1010 | |
| 表讀取,預遞增 | 1011 | |
| 表寫入 | 1100 | |
| 表寫入,后遞增2 | 1101 | |
| 表寫入,開始編程,后遞增2 | 1110 | |
| 表寫入,開始編程 | 1111 |
3.7.2 核心指令
核心指令將一個16位指令傳遞給CPU核心執(zhí)行,這對于為其他命令設置適當?shù)募拇嫫魇潜匾摹?/p>
3.8 專用ICSP/ICD端口(僅44引腳TQFP)
PIC18F4455/4458/4550/4553的44引腳TQFP設備支持一個備用編程輸入:專用ICSP/ICD端口。該端口的主要目的是提供備用的在線調試(ICD)選項,并釋放通常用于調試應用程序的引腳(RB6、RB7和MCLR)。設置ICPRT配置位可啟用該專用端口,它的功能與默認的ICSP/ICD端口相同,但使用的是備用引腳。
四、設備編程
4.1 ICSP擦除
4.1.1 高壓ICSP整體擦除
| 擦除代碼或數(shù)據(jù)EEPROM可通過配置位于3C0004h和3C0005h的兩個整體擦除控制寄存器來完成。代碼內存可以部分擦除,也可以一次性擦除整個設備。整體擦除操作還會清除與被擦除內存塊相關的任何代碼保護設置。具體的擦除選項如下表所示: | 描述 | (3C0005h:3C0004h) 數(shù)據(jù) |
|---|---|---|
| 芯片擦除 | 3F8Fh | |
| 擦除數(shù)據(jù)EEPROM(部分設備) | 0084h | |
| 擦除引導塊 | 0081h | |
| 擦除配置位 | 0082h | |
| 擦除代碼EEPROM塊0 | 0180h | |
| 擦除代碼EEPROM塊1 | 0280h | |
| 擦除代碼EEPROM塊2 | 0480h | |
| 擦除代碼EEPROM塊3 | 0880h | |
| 擦除代碼EEPROM塊4 | 1080h | |
| 擦除代碼EEPROM塊5 | 2080h |
4.1.2 低壓ICSP整體擦除
使用低壓ICSP時,如果要執(zhí)行整體擦除,部件必須由參數(shù)D111指定的電壓供電。其他整體擦除細節(jié)與高壓ICSP整體擦除相同。如果需要在低于整體擦除限制的電源電壓下進行程序內存擦除,可參考第3.1.3節(jié)“ICSP行擦除”和第3.2.1節(jié)“修改代碼內存”的擦除方法;如果需要在低于整體擦除限制的電源電壓下進行數(shù)據(jù)EEPROM擦除(部分設備),可遵循第3.3節(jié)“數(shù)據(jù)EEPROM編程”的方法并向數(shù)組寫入‘1’。
4.1.3 ICSP行擦除
無論使用高壓還是低壓ICSP,只要塊未被代碼或寫保護,就可以擦除一行(64字節(jié)的數(shù)據(jù))。行位于靜態(tài)邊界,從程序內存地址000000h開始,延伸到內部程序內存限制。行擦除持續(xù)時間由外部定時,由PGC控制。在設置EECON1中的WR位后,發(fā)出一個NOP指令,其中第4個PGC在編程時間P9內保持高電平。PGC拉低后,編程序列終止。PGC必須在參數(shù)P10指定的時間內保持低電平,以允許內存陣列的高壓放電。
五、總結
PIC18F2XXX/4XXX系列閃存微控制器的編程規(guī)范涵蓋了設備的各個方面,包括編程方法、硬件要求、引腳圖、內存映射、編程過程、進入和退出模式以及擦除操作等。電子工程師在使用這些設備進行硬件設計和開發(fā)時,需要仔細研究這些規(guī)范,確保正確地對設備進行編程和操作。大家在實際應用中遇到過哪些與編程規(guī)范相關的問題呢?歡迎在評論區(qū)分享交流。
-
閃存微控制器
+關注
關注
0文章
8瀏覽量
8240 -
編程規(guī)范
+關注
關注
0文章
10瀏覽量
9025
發(fā)布評論請先 登錄
PIC18F2XXX/4XXX系列閃存微控制器編程規(guī)范解析
評論