PIC16CE62X系列微控制器:功能特性與設(shè)計指南
在電子設(shè)計領(lǐng)域,選擇合適的微控制器對于項目的成功至關(guān)重要。PIC16CE62X系列微控制器憑借其豐富的功能和出色的性能,成為眾多工程師的理想選擇。本博文將深入探討PIC16CE62X系列微控制器的特性、架構(gòu)、外設(shè)功能以及開發(fā)支持等方面,為電子工程師在設(shè)計過程中提供全面的參考。
一、概述
PIC16CE62X是Microchip公司推出的18和20引腳、基于EPROM的低功耗、高性能CMOS 8位微控制器,帶有EEPROM數(shù)據(jù)存儲器。該系列采用先進的RISC架構(gòu),具有增強的核心功能、8級深度堆棧以及多個內(nèi)部和外部中斷源。其哈佛架構(gòu)的指令和數(shù)據(jù)總線分離,允許14位寬的指令字和8位寬的數(shù)據(jù),除程序分支外,所有指令均可在單周期內(nèi)執(zhí)行,大大提高了執(zhí)行效率。
1.1 產(chǎn)品特性
- 高性能CPU:僅需學(xué)習(xí)35條指令,除程序分支為雙周期指令外,其余均為單周期指令(200 ns),工作速度范圍為DC - 20 MHz時鐘輸入和DC - 200 ns指令周期。具備中斷能力、16個特殊功能硬件寄存器和8級深度硬件堆棧,支持直接、間接和相對尋址模式。
- 豐富的外設(shè):擁有13個I/O引腳,可進行單獨方向控制,具備高電流吸收/源能力,可直接驅(qū)動LED。集成模擬比較器模塊,包含兩個模擬比較器、可編程片上電壓參考(VREF)模塊和可編程輸入多路復(fù)用功能,比較器輸出可作為信號輸出。還配備8位定時器/計數(shù)器Timer0,帶有8位可編程預(yù)分頻器。
- 特殊功能:支持在線串行編程(ICSP?),具備上電復(fù)位(POR)、上電定時器(PWRT)和振蕩器啟動定時器(OST)、欠壓復(fù)位(BOR)以及看門狗定時器(WDT)等功能,確保系統(tǒng)的可靠性和穩(wěn)定性。此外,EEPROM數(shù)據(jù)存儲器具有1,000,000次擦除/寫入周期和超過40年的數(shù)據(jù)保留時間,支持可編程代碼保護和節(jié)能SLEEP模式,提供多種振蕩器選項和四個用戶可編程ID位置。
1.2 產(chǎn)品型號
| PIC16CE62X系列包括PIC16CE623、PIC16CE624和PIC16CE625三個型號,它們在程序存儲器、數(shù)據(jù)存儲器等方面有所差異,具體如下表所示: | 型號 | 程序存儲器(x14字) | RAM數(shù)據(jù)存儲器(字節(jié)) | EEPROM數(shù)據(jù)存儲器(字節(jié)) |
|---|---|---|---|---|
| PIC16CE623 | 512 | 96 | 128 | |
| PIC16CE624 | 1K | 96 | 128 | |
| PIC16CE625 | 2K | 128 | 128 |
二、架構(gòu)概述
2.1 哈佛架構(gòu)
PIC16CE62X采用哈佛架構(gòu),程序和數(shù)據(jù)通過獨立的總線從不同的存儲器中訪問,與傳統(tǒng)的馮·諾依曼架構(gòu)相比,提高了帶寬。14位寬的程序存儲器訪問總線可在單周期內(nèi)獲取14位指令,兩級流水線重疊指令的獲取和執(zhí)行,使得除程序分支外的所有指令均能在單周期內(nèi)執(zhí)行。
2.2 寄存器與ALU
該系列微控制器可直接或間接尋址寄存器文件或數(shù)據(jù)存儲器,所有特殊功能寄存器(包括程序計數(shù)器)都映射在數(shù)據(jù)存儲器中。其指令集具有正交性,可使用任何尋址模式對任何寄存器進行操作,簡化了編程過程。此外,PIC16CE62X包含一個8位ALU和工作寄存器,可執(zhí)行算術(shù)和布爾運算,運算結(jié)果可能會影響STATUS寄存器中的進位(C)、數(shù)字進位(DC)和零(Z)位。
2.3 時鐘與指令周期
時鐘輸入(OSC1/CLKIN引腳)在內(nèi)部被4分頻,生成四個非重疊的正交時鐘Q1、Q2、Q3和Q4。程序計數(shù)器(PC)在每個Q1周期遞增,指令在Q4周期從程序存儲器中獲取并鎖存到指令寄存器,隨后在Q1 - Q4周期進行解碼和執(zhí)行。
三、存儲器組織
3.1 程序存儲器
PIC16CE62X具有13位程序計數(shù)器,可尋址8K x 14的程序存儲器空間。不同型號的物理實現(xiàn)有所不同,PIC16CE623為512 x 14(0000h - 01FFh),PIC16CE624為1K x 14(0000h - 03FFh),PIC16CE625為2K x 14(0000h - 07FFh)。訪問超出這些邊界的位置將導(dǎo)致在相應(yīng)的空間內(nèi)回繞。復(fù)位向量位于0000h,中斷向量位于0004h。
3.2 數(shù)據(jù)存儲器
數(shù)據(jù)存儲器分為兩個存儲體(Bank 0和Bank 1),包含通用寄存器和特殊功能寄存器。Bank 0通過清除RP0位選擇,Bank 1通過設(shè)置RP0位(STATUS <5>)選擇。特殊功能寄存器位于每個存儲體的前32個位置,通用寄存器在不同型號中的實現(xiàn)有所差異。部分特殊目的寄存器映射在Bank 1中,所有三個微控制器的地址空間F0h - FFh(Bank1)映射到70 - 7Fh(Bank0)作為公共RAM。
四、I/O端口
PIC16CE62X有PORTA和PORTB兩個端口,部分引腳與外設(shè)功能復(fù)用。
4.1 PORTA
PORTA是一個5位寬的鎖存器,RA4為施密特觸發(fā)器輸入和開漏輸出,與T0CKI時鐘輸入復(fù)用。其他RA端口引腳具有施密特觸發(fā)器輸入電平和全CMOS輸出驅(qū)動器,所有引腳都有數(shù)據(jù)方向位(TRIS寄存器),可配置為輸入或輸出。PORTA引腳與比較器和電壓參考功能復(fù)用,其操作由CMCON和VRCON寄存器控制。
4.2 PORTB
PORTB是一個8位寬的雙向端口,對應(yīng)的TRISB寄存器用于控制數(shù)據(jù)方向。每個PORTB引腳都有一個弱內(nèi)部上拉電阻,可通過清除RBPU(OPTION <7>)位來啟用。PORTB的四個引腳(RB<7:4>)具有變化中斷功能,可用于喚醒設(shè)備。
4.3 I/O編程注意事項
在使用I/O端口時,需要注意讀寫操作的順序和時機。讀寫操作通常是讀 - 修改 - 寫操作,因此在對具有輸入和輸出定義的端口應(yīng)用指令時要謹(jǐn)慎。此外,連續(xù)的寫 - 讀操作需要確保引腳電壓穩(wěn)定,避免讀取到舊狀態(tài)。
五、EEPROM外設(shè)操作
PIC16CE623/624/625每個都有128字節(jié)的EEPROM數(shù)據(jù)存儲器,支持雙向2線總線和數(shù)據(jù)傳輸協(xié)議。通過EEINTF寄存器控制對EEPROM的訪問,用戶代碼需要生成時鐘和數(shù)據(jù)信號。EEPROM的數(shù)據(jù)傳輸遵循特定的總線協(xié)議,包括開始條件、停止條件、數(shù)據(jù)有效和確認(rèn)等。
5.1 總線特性
數(shù)據(jù)傳輸只能在總線空閑時啟動,數(shù)據(jù)線上的數(shù)據(jù)在時鐘線為高電平時必須保持穩(wěn)定。開始條件由SDA線在SCL線為高電平時從高到低的轉(zhuǎn)換確定,停止條件由SDA線在SCL線為高電平時從低到高的轉(zhuǎn)換確定。
5.2 設(shè)備尋址
在生成開始條件后,處理器發(fā)送一個控制字節(jié),包含EEPROM地址和讀寫位,以指示要執(zhí)行的操作類型。EEPROM地址由4位設(shè)備代碼(1010)和三個無關(guān)位組成,最后一位確定操作類型(1為讀,0為寫)。
5.3 讀寫操作
寫操作分為字節(jié)寫和頁寫,字節(jié)寫是在發(fā)送開始信號、設(shè)備代碼、無關(guān)位和讀寫位后,依次發(fā)送字地址和數(shù)據(jù)字;頁寫是在發(fā)送寫控制字節(jié)、字地址和第一個數(shù)據(jù)字節(jié)后,最多可發(fā)送八個數(shù)據(jù)字節(jié),最后發(fā)送停止條件啟動內(nèi)部寫周期。讀操作分為當(dāng)前地址讀、隨機讀和順序讀,通過設(shè)置讀寫位來啟動。
六、定時器模塊
6.1 Timer0模塊
Timer0模塊是一個8位定時器/計數(shù)器,具有可讀可寫、8位軟件可編程預(yù)分頻器、內(nèi)部或外部時鐘選擇、溢出中斷和外部時鐘邊沿選擇等功能。定時器模式通過清除T0CS位(OPTION <5>)選擇,計數(shù)器模式通過設(shè)置T0CS位選擇。預(yù)分頻器在Timer0模塊和看門狗定時器之間共享,通過PSA位(OPTION <3>)進行分配。
6.2 Timer0中斷
當(dāng)TMR0寄存器從FFh溢出到00h時,會產(chǎn)生Timer0中斷,設(shè)置T0IF位。可通過清除T0IE位(INTCON <5>)來屏蔽中斷,在中斷服務(wù)程序中需要軟件清除T0IF位。
6.3 使用外部時鐘
當(dāng)使用外部時鐘輸入時,需要滿足一定的要求。無預(yù)分頻器時,外部時鐘需要在內(nèi)部相位時鐘的Q2和Q4周期進行采樣,因此T0CKI需要高電平至少2TOSC(加上20 ns的RC延遲),低電平至少2TOSC(加上20 ns的RC延遲);使用預(yù)分頻器時,T0CKI的周期至少為4TOSC(加上40 ns的RC延遲)除以預(yù)分頻值,且高電平和低電平時間不能違反最小脈沖寬度要求(10 ns)。
七、比較器模塊
7.1 比較器配置
比較器模塊包含兩個模擬比較器,輸入與RA0 - RA3引腳復(fù)用,片上電壓參考也可作為輸入。通過CMCON寄存器選擇比較器的輸入和輸出多路復(fù)用模式,共有八種操作模式。在改變比較器模式時,需要注意模式改變延遲,以確保輸出電平的有效性。
7.2 比較器操作
比較器根據(jù)VIN+和VIN - 的模擬輸入電平輸出數(shù)字信號。當(dāng)VIN+小于VIN - 時,輸出為低電平;當(dāng)VIN+大于VIN - 時,輸出為高電平。比較器的響應(yīng)時間是指選擇新的參考電壓或輸入源后,輸出達到有效電平所需的最小時間。
7.3 比較器參考
比較器可使用外部或內(nèi)部參考信號。外部參考信號需在VSS和VDD之間,可應(yīng)用于比較器的任一引腳;內(nèi)部參考信號在CM<2:0> = 010模式下使用,由電壓參考模塊提供。
7.4 比較器中斷
比較器輸出值發(fā)生變化時,比較器中斷標(biāo)志CMIF(PIR1 <6>)會被設(shè)置。要啟用中斷,需要設(shè)置CMIE位(PIE1 <6>)、PEIE位(INTCON <6>)和GIE位。在中斷服務(wù)程序中,可通過讀取或?qū)懭隒MCON寄存器或清除CMIF位來清除中斷。
八、電壓參考模塊
8.1 配置電壓參考
電壓參考模塊是一個16抽頭的電阻梯形網(wǎng)絡(luò),通過VRCON寄存器控制操作??奢敵?6個不同的電壓電平,根據(jù)VRR位的設(shè)置分為低范圍和高范圍,計算公式分別為VREF = (VR<3:0>/24) × VDD(VRR = 1)和VREF = (VDD × 1/4) + (VR<3:0>/32) × VDD(VRR = 0)。
8.2 電壓參考精度/誤差
由于模塊的結(jié)構(gòu),無法實現(xiàn)VSS到VDD的全范圍輸出。電壓參考由VDD派生,因此VREF輸出會隨VDD的波動而變化。其絕對精度可參考相關(guān)表格。
8.3 睡眠模式操作
設(shè)備從睡眠模式喚醒時,VRCON寄存器的內(nèi)容不受影響。為了在睡眠模式下最小化電流消耗,應(yīng)禁用電壓參考。
8.4 復(fù)位影響
設(shè)備復(fù)位時,通過清除VREN位(VRCON <7>)禁用電壓參考,清除VROE位(VRCON <6>)斷開參考與RA2引腳的連接,清除VRR位(VRCON <5>)選擇高電壓范圍,并清除VREF值選擇位VRCON <3:0>。
九、CPU特殊功能
9.1 配置位
配置位可通過編程(讀為'0')或不編程(讀為'1')來選擇各種設(shè)備配置,位于程序存儲器位置2007h。包括代碼保護位、欠壓復(fù)位使能位(BODEN)、上電定時器使能位(PWRTE)、看門狗定時器使能位(WDTE)和振蕩器選擇位(FOSC1:FOSC0)。
9.2 振蕩器配置
PIC16CE62X可在LP、XT、HS和RC四種振蕩器模式下工作,通過配置位FOSC1和FOSC0進行選擇。在XT、LP或HS模式下,可連接晶體或陶瓷諧振器到OSC1和OSC2引腳;在RC模式下,可使用電阻和電容實現(xiàn)低成本的定時。
9.3 復(fù)位
PIC16CE62X可區(qū)分多種復(fù)位類型,包括上電復(fù)位(POR)、MCLR復(fù)位、WDT復(fù)位、WDT喚醒和欠壓復(fù)位(BOD)。部分寄存器在復(fù)位時不受影響,其狀態(tài)在POR時未知,在其他復(fù)位時不變;大多數(shù)其他寄存器在POR、MCLR復(fù)位、WDT復(fù)位和SLEEP期間的MCLR復(fù)位時復(fù)位到“復(fù)位狀態(tài)”,WDT喚醒不影響這些寄存器。
9.4 中斷
PIC16CE62X有四個中斷源:外部中斷RB0/INT、TMR0溢出中斷、PORTB變化中斷和比較器中斷。中斷控制寄存器(INTCON)記錄中斷請求,通過全局中斷使能位GIE(INTCON <7>)和各個中斷使能位控制中斷的啟用和禁用。
9.5 看門狗定時器(WDT)
看門狗定時器是一個獨立的片上RC振蕩器,無需外部組件。在正常操作中,WDT超時會導(dǎo)致設(shè)備復(fù)位;在SLEEP模式下,WDT超時會使設(shè)備喚醒并繼續(xù)正常操作??赏ㄟ^編程配置位WDTE來永久禁用WDT。
9.6 睡眠模式(SLEEP)
通過執(zhí)行SLEEP指令進入睡眠模式,此時看門狗定時器被清除但繼續(xù)運行,PD位在STATUS寄存器中被清除,TO位被設(shè)置,振蕩器驅(qū)動器關(guān)閉。設(shè)備可通過外部復(fù)位、看門狗定時器喚醒或中斷從睡眠模式喚醒。
9.7 代碼保護
若代碼保護位未編程,可讀取片上程序存儲器進行驗證。但不建議對窗口設(shè)備進行代碼保護。
9.8 ID位置
四個內(nèi)存位置(2000h - 2003h)被指定為ID位置,用戶可存儲校驗和或其他代碼識別號。這些位置在正常執(zhí)行期間不可訪問,但在編程/驗證期間可讀可寫。
9.9 在線串行編程
PIC16CE62X微控制器可在最終應(yīng)用電路中進行串行編程,只需兩條時鐘和數(shù)據(jù)線以及三條電源、地線和編程電壓線。通過將RB6和RB7引腳拉低,同時將MCLR(VPP)引腳從VIL提升到VIHH,可將設(shè)備置于編程/驗證模式。
十、指令集
10.1 指令分類
PIC16CE62X的指令集分為字節(jié)操作、位操作和文字及控制操作三類。所有指令通常在一個指令周期內(nèi)執(zhí)行,除非條件測試為真或程序計數(shù)器發(fā)生變化,此時需要兩個指令周期。
10.2 指令描述
每個指令由14位字組成,包括操作碼和一個或多個操作數(shù)。不同指令具有不同的功能和操作,如ADDLW用于將立即數(shù)與W寄存器相加,ADDWF用于將W寄存器與指定寄存器相加等。
十一、開發(fā)支持
Microchip為PIC16CE62X提供了豐富的開發(fā)支持工具,包括集成開發(fā)環(huán)境(MPLAB? IDE Software)、匯編器/編譯器/鏈接器(MPASM Assembler、MPLAB - C17和MPLAB - C18 C Compilers、MPLINK/MPLIB Linker/Librarian)、模擬器(MPLAB - SIM Software Simulator)、仿真器(MPLAB - ICE、PICMASTER/PICMASTER - CE、ICEPIC?)、在線調(diào)試器(MPLAB - ICD)、設(shè)備編程器(PRO MATE II Universal Programmer、PICSTART Plus Entry - Level Prototype Programmer)和低成本演示板(SIMICE、PICDEM - 1、PICDEM - 2、PICDEM - 3、PICDEM - 17、SEEVAL?、KEELOQ?)等。
十二、電氣規(guī)格
12.1 絕對最大額定值
PIC16CE62X的絕對最大額定值包括環(huán)境溫度、引腳電壓、電源電壓、功耗、輸入/輸出電流等參數(shù),超過這些額定值可能會對設(shè)備造成永久性損壞。
12.2 DC特性
DC特性包括電源電壓、RAM數(shù)據(jù)保留電壓、上電復(fù)位電壓、欠壓檢測電壓、電源電流、掉電電流等參數(shù),這些參數(shù)受工作電壓、頻率、振蕩器類型、溫度等因素影響
-
微控制器
+關(guān)注
關(guān)注
49文章
8662瀏覽量
165277 -
設(shè)計指南
+關(guān)注
關(guān)注
0文章
272瀏覽量
8966
發(fā)布評論請先 登錄
PIC16CE62X系列微控制器:功能特性與設(shè)計指南
評論