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