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