PIC16F818/819微控制器深度剖析:特性、應(yīng)用與設(shè)計要點(diǎn)
在電子設(shè)計的領(lǐng)域中,選擇合適的微控制器是實(shí)現(xiàn)項目成功的關(guān)鍵一步。Microchip公司推出的PIC16F818/819微控制器憑借其出色的性能和豐富的特性,在眾多應(yīng)用場景中展現(xiàn)出了強(qiáng)大的競爭力。今天,我們就來深入探究一下這款微控制器的特點(diǎn)、應(yīng)用以及設(shè)計過程中需要注意的要點(diǎn)。
文件下載:PIC16LF819T-I ML.pdf
一、器件概述
PIC16F818/819屬于PIC? 中低端系列器件,兩款器件在閃存程序存儲器、數(shù)據(jù)存儲器和數(shù)據(jù)EEPROM的容量上有所差異。PIC16F819擁有更大的內(nèi)存容量,它有2K x 14的程序閃存、256 x 8的數(shù)據(jù)存儲器和256 x 8的數(shù)據(jù)EEPROM,而PIC16F818的相應(yīng)容量分別為1K x 14、128 x 8和128 x 8。
獨(dú)特特性
這兩款微控制器具備一些PIC16產(chǎn)品線的新特性,在實(shí)際應(yīng)用中能帶來諸多便利。
- 內(nèi)部RC振蕩器:具有8種可選頻率,涵蓋31.25 kHz至8 MHz,可通過配置位將其配置為系統(tǒng)時鐘。這一特性使得在一些對時鐘精度要求不是特別苛刻的應(yīng)用中,無需額外的外部時鐘電路,簡化了設(shè)計,降低了成本。
- 低功耗Timer1模塊:電流消耗從之前PIC16器件的20 ?A 降低到典型值1.8 ?A(32 kHz at 2V),非常適合用于實(shí)時時鐘應(yīng)用,能有效延長電池供電設(shè)備的續(xù)航時間。
- 豐富的振蕩器選擇:提供了8種不同的振蕩器模式,如LP(低功耗晶體)、XT(晶體/諧振器)、HS(高速晶體/諧振器)等,還可通過I/O引腳配置為時鐘輸出或I/O功能。這使得工程師可以根據(jù)具體應(yīng)用需求,靈活選擇合適的振蕩模式,以滿足不同的性能和功耗要求。
二、內(nèi)存組織
PIC16F818/819的內(nèi)存分為程序內(nèi)存和數(shù)據(jù)內(nèi)存兩個部分,每個部分都有獨(dú)立的總線,可在同一振蕩周期內(nèi)進(jìn)行訪問。數(shù)據(jù)內(nèi)存又可進(jìn)一步細(xì)分為通用RAM和特殊功能寄存器(SFRs)。
程序內(nèi)存組織
PIC16F818/819具備13位的程序計數(shù)器,可尋址8K x 14的程序內(nèi)存空間。不過,兩款器件實(shí)際實(shí)現(xiàn)的物理地址范圍不同,PIC16F818為0000h - 03FFh,PIC16F819為0000h - 07FFh。當(dāng)訪問超出物理實(shí)現(xiàn)地址的位置時,會發(fā)生回繞。
數(shù)據(jù)內(nèi)存組織
數(shù)據(jù)內(nèi)存被劃分為多個存儲體,每個存儲體最多可擴(kuò)展到7Fh(128字節(jié))。其低位部分保留給特殊功能寄存器,上方則是實(shí)現(xiàn)為靜態(tài)RAM的通用寄存器。部分常用的SFRs會在不同存儲體中鏡像,以減少代碼量并實(shí)現(xiàn)快速訪問。
三、振蕩器配置
振蕩器類型
PIC16F818/819支持8種不同的振蕩器模式,可通過編程三個配置位(FOSC2:FOSC0)來選擇。這些模式包括晶體振蕩模式(LP、XT、HS)、外部RC振蕩模式(RC、RCIO)、內(nèi)部振蕩模式(INTIO1、INTIO2)和外部時鐘模式(ECIO)。
晶體振蕩模式
在XT、LP或HS模式下,需將晶體或陶瓷諧振器連接到OSC1/CLKI和OSC2/CLKO引腳以建立振蕩。選擇合適的電容值對于晶體振蕩器的穩(wěn)定運(yùn)行至關(guān)重要,不同的振蕩模式和頻率所需的電容值不同,具體可參考文檔中的推薦值。不過要注意,使用串聯(lián)切割晶體可能會導(dǎo)致頻率超出制造商的規(guī)格范圍,因此建議使用并聯(lián)切割晶體。
外部時鐘輸入
ECIO振蕩模式要求將外部時鐘源連接到OSC1引腳,這種模式在Power-on Reset或退出Sleep模式后無需振蕩器啟動時間。在該模式下,OSC2引腳可作為額外的通用I/O引腳使用。
RC振蕩模式
對于對定時精度要求不高的應(yīng)用,“RC”和“RCIO”模式是不錯的選擇,它們能帶來額外的成本節(jié)省。不過,RC振蕩器的頻率受多種因素影響,如電源電壓、電阻(REXT)和電容(CEXT)值、工作溫度以及制造工藝差異等。在使用時,要根據(jù)具體情況選擇合適的REXT和CEXT值,并考慮到這些因素對頻率的影響。
內(nèi)部振蕩器塊
內(nèi)部振蕩器塊能生成兩種不同的時鐘信號,可作為系統(tǒng)的時鐘源,這能消除對OSC1和/或OSC2引腳上外部振蕩器電路的需求。主輸出(INTOSC)是一個8 MHz的時鐘源,還可驅(qū)動INTOSC后分頻器,提供從125 kHz到4 MHz的一系列時鐘頻率。內(nèi)部RC振蕩器(INTRC)則提供31.25 kHz的輸出。通過配置OSCCON寄存器的IRCF位,可以選擇時鐘源的頻率。
四、I/O端口
PIC16F818/819的部分I/O端口引腳具有復(fù)用功能,可用于外設(shè)特性。使用時需注意,當(dāng)啟用某個外設(shè)時,對應(yīng)的引腳可能無法再作為通用I/O引腳使用。
PORTA和TRISA寄存器
PORTA是一個8位的雙向端口,對應(yīng)的方向寄存器是TRISA。通過設(shè)置TRISA位,可以將對應(yīng)的PORTA引腳配置為輸入或輸出。在Power-on Reset時,PORTA<4:0>引腳會被配置為模擬輸入并讀取為‘0’。讀取PORTA寄存器可獲取引腳狀態(tài),而寫入操作則會寫入端口鎖存器。
PORTB和TRISB寄存器
PORTB同樣是8位雙向端口,對應(yīng)的方向寄存器是TRISB。每個PORTB引腳都有一個內(nèi)部弱上拉,可通過清除OPTION_REG<7>位來開啟所有上拉。PORTB的4個引腳(RB7:RB4)具有電平變化中斷功能,可用于喚醒設(shè)備從Sleep模式。使用該功能時,建議用于按鍵按下喚醒操作或僅將PORTB用于電平變化中斷功能,不建議進(jìn)行輪詢操作。
五、定時器模塊
Timer0模塊
Timer0是一個8位的定時器/計數(shù)器,具有可讀寫、8位軟件可編程預(yù)分頻器、內(nèi)部或外部時鐘選擇、溢出中斷等功能。通過OPTION_REG寄存器可控制其操作模式,可選擇定時器模式或計數(shù)器模式。預(yù)分頻器與看門狗定時器共享,需注意分配時的相互影響。
Timer1模塊
Timer1是一個16位的定時器/計數(shù)器,由兩個8位寄存器(TMR1H和TMR1L)組成,可讀可寫。它可以在定時器、同步計數(shù)器和異步計數(shù)器三種模式下工作,通過T1CON寄存器的TMR1CS位控制工作模式。Timer1還可提供實(shí)時時鐘(RTC)功能,在添加外部低頻振蕩器(如32.768 kHz晶體)后,能實(shí)現(xiàn)精確的計時,適用于對時間精度要求較高的應(yīng)用場景。
Timer2模塊
Timer2是一個8位的定時器,帶有預(yù)分頻器和后分頻器,可作為CCP1模塊PWM模式的時基。TMR2寄存器可讀可寫,在設(shè)備復(fù)位時會被清零。通過設(shè)置預(yù)分頻器和后分頻器,可以調(diào)節(jié)定時器的計數(shù)速度和輸出頻率。
六、捕獲/比較/PWM(CCP)模塊
CCP模塊包含一個16位的寄存器,可作為16位捕獲寄存器、16位比較寄存器或PWM主/從占空比寄存器。不同的模式使用不同的定時器資源,捕獲和比較模式使用Timer1,PWM模式使用Timer2。
捕獲模式
在捕獲模式下,CCPR1H:CCPR1L會在CCP1引腳發(fā)生特定事件(如上升沿、下降沿等)時捕獲TMR1寄存器的16位值。要注意將CCP1引腳配置為輸入,并確保Timer1在定時器或同步計數(shù)器模式下運(yùn)行。
比較模式
在比較模式下,16位的CCPR1寄存器值會不斷與TMR1寄存器對的值進(jìn)行比較。當(dāng)匹配發(fā)生時,根據(jù)CCP1CON<3:0>位的值,CCP1引腳會有不同的動作,如置高、置低或保持不變。同時,會設(shè)置中斷標(biāo)志位CCP1IF。
PWM模式
在PWM模式下,CCP1引腳可產(chǎn)生最高10位分辨率的PWM輸出。通過設(shè)置PR2寄存器可指定PWM周期,通過設(shè)置CCPR1L寄存器和CCP1CON<5:4>位可指定PWM占空比。
七、同步串行端口(SSP)模塊
SSP模塊可用于與其他外設(shè)或微控制器設(shè)備進(jìn)行通信,支持SPI和I2C兩種模式。
SPI模式
SPI模式允許8位數(shù)據(jù)的同步發(fā)送和接收。在初始化SPI時,需要通過編程SSPCON寄存器和SSPSTAT寄存器的控制位來指定主模式或從模式、時鐘極性、時鐘邊沿、時鐘速率和從選擇模式等參數(shù)。要注意在從模式下,啟用模塊之前,時鐘線的狀態(tài)必須與所選的空閑狀態(tài)極性匹配。
I2C模式
I2C模式下,SSP模塊可實(shí)現(xiàn)所有從機(jī)功能,支持7位和10位尋址。通過設(shè)置SSP Enable bit(SSPCON<5>)可啟用串行端口,并將SDA和SCL引腳配置為串行端口引腳。在通信過程中,要確保對應(yīng)的TRIS位設(shè)置正確,以保證通信的正常進(jìn)行。
八、模數(shù)轉(zhuǎn)換器(A/D)模塊
A/D模塊有五個輸入通道,可將模擬輸入信號轉(zhuǎn)換為對應(yīng)的10位數(shù)字量。它具有軟件可選的高、低電壓參考輸入,可選擇VDD、VSS、RA2或RA3的某種組合。
轉(zhuǎn)換操作
進(jìn)行A/D轉(zhuǎn)換時,需先配置A/D模塊,包括選擇模擬引腳/電壓參考、選擇輸入通道、選擇轉(zhuǎn)換時鐘和開啟A/D模塊等步驟。在轉(zhuǎn)換前,要確保所選通道完成數(shù)據(jù)采集,以保證轉(zhuǎn)換結(jié)果的準(zhǔn)確性。轉(zhuǎn)換完成后,結(jié)果會加載到ADRESH:ADRESL寄存器對中。
睡眠模式下的操作
A/D模塊可以在睡眠模式下工作,但需要將A/D轉(zhuǎn)換時鐘設(shè)置為內(nèi)部RC振蕩器。在這種情況下,執(zhí)行SLEEP指令后,A/D轉(zhuǎn)換會在等待一個指令周期后開始,轉(zhuǎn)換完成后會自動關(guān)閉A/D模塊(除非啟用了A/D中斷)。
九、CPU特殊特性
復(fù)位機(jī)制
PIC16F818/819具有多種復(fù)位類型,包括Power-on Reset(POR)、MCLR Reset、WDT Reset、Brown-out Reset(BOR)等。不同的復(fù)位類型對不同的寄存器有不同的影響,可通過Status寄存器的(overline{TO})和(overline{PD})位來判斷復(fù)位的原因。
中斷機(jī)制
該微控制器最多有九個中斷源,通過INTCON寄存器記錄各個中斷請求,并通過全局中斷使能位(GIE)和各個中斷的使能位來控制中斷的開啟和關(guān)閉。在處理中斷時,要注意及時清除相應(yīng)的中斷標(biāo)志位,以避免遞歸中斷的發(fā)生。
看門狗定時器(WDT)
WDT由INTRC振蕩器驅(qū)動,當(dāng)啟用時,INTRC振蕩器也會被啟用。在正常操作時,WDT超時會導(dǎo)致設(shè)備復(fù)位;在睡眠模式下,WDT超時會喚醒設(shè)備??赏ㄟ^配置位WDTEN永久禁用WDT。
睡眠模式
通過執(zhí)行SLEEP指令可進(jìn)入睡眠模式,此時看門狗定時器會被清零但繼續(xù)運(yùn)行,(overline{PD})位會被清零,(overline{TO})位會被置位,振蕩器驅(qū)動會關(guān)閉。在睡眠模式下,為了實(shí)現(xiàn)最低功耗,要將所有I/O引腳置于VDD或VSS電平,關(guān)閉不必要的外設(shè)功能。設(shè)備可通過外部復(fù)位、WDT喚醒或中斷從睡眠模式中喚醒。
十、電氣特性
在設(shè)計過程中,必須關(guān)注PIC16F818/819的電氣特性,以確保設(shè)備的正常運(yùn)行。
絕對最大額定值
文檔中給出了該器件的絕對最大額定值,包括環(huán)境溫度、存儲溫度、引腳電壓、功耗、電流等參數(shù)。在使用時,不能超過這些額定值,否則可能會對器件造成永久性損壞。
DC特性
DC特性包括電源電壓、電源電流、內(nèi)部RC精度、輸入輸出電壓、電流等參數(shù)。了解這些參數(shù)有助于工程師在不同的工作條件下合理選擇電源和負(fù)載,以滿足器件的性能要求。
時序要求
文檔還詳細(xì)給出了各種信號的時序要求,如外部時鐘時序、CLKO和I/O時序、復(fù)位時序、定時器外部時鐘時序、SPI和I2C時序等。在設(shè)計電路和編寫代碼時,必須嚴(yán)格按照這些時序要求進(jìn)行,以確保各個模塊之間的正常通信和協(xié)同工作。
十一、封裝信息
PIC16F818/819提供了多種封裝形式,如18 - Lead PDIP、18 - Lead SOIC、20 - Lead SSOP和28 - Lead QFN等。不同的封裝形式適用于不同的應(yīng)用場景和電路板布局要求,工程師可以根據(jù)具體需求進(jìn)行選擇。同時,要注意不同封裝形式的引腳定義和尺寸規(guī)格,以確保正確進(jìn)行焊接和安裝。
十二、應(yīng)用場景與設(shè)計建議
應(yīng)用場景
PIC16F818/819憑借其低功耗、豐富的外設(shè)功能和多種振蕩器模式,適用于多種應(yīng)用場景,如智能家居設(shè)備、工業(yè)控制、傳感器節(jié)點(diǎn)、電池供電設(shè)備等。在智能家居設(shè)備中,可利用其內(nèi)部RC振蕩器和低功耗特性,實(shí)現(xiàn)長時間的電池供電;在工業(yè)控制中,可利用其豐富的定時器和通信接口,實(shí)現(xiàn)精確的控制和數(shù)據(jù)傳輸。
設(shè)計建議
- 電源設(shè)計:根據(jù)應(yīng)用的功耗要求和工作模式,選擇合適的電源電路。在睡眠模式下,要盡量降低功耗,可關(guān)閉不必要的外設(shè)和時鐘源。
- 振蕩電路設(shè)計:根據(jù)具體應(yīng)用需求選擇合適的振蕩器模式和外部元件。使用晶體振蕩器時,要注意選擇合適的電容值,并進(jìn)行適當(dāng)?shù)牟季?,以確保振蕩器的穩(wěn)定運(yùn)行。
- 引腳配置:合理規(guī)劃I/O引腳的使用,避免引腳沖突和干擾。在使用復(fù)用引腳時,要根據(jù)實(shí)際需求進(jìn)行正確的配置,并注意外設(shè)功能對引腳的影響。
- 電磁兼容性(EMC)設(shè)計:在電路板設(shè)計時,要考慮電磁兼容性問題,采取適當(dāng)?shù)拇胧?,如合理布局、使用濾波元件等,以減少電磁干擾,提高系統(tǒng)的穩(wěn)定性。
PIC16F818/819微控制器是一款功能強(qiáng)大、性能穩(wěn)定的器件,在眾多應(yīng)用領(lǐng)域具有廣闊的應(yīng)用前景。通過深入了解其特性、應(yīng)用和設(shè)計要點(diǎn),工程師可以充分發(fā)揮其優(yōu)勢,設(shè)計出更加優(yōu)秀的電子系統(tǒng)。在實(shí)際設(shè)計過程中,還需要結(jié)合具體的應(yīng)用需求和設(shè)計要求,靈活運(yùn)用各種特性和功能,以實(shí)現(xiàn)最佳的設(shè)計效果。
-
微控制器
+關(guān)注
關(guān)注
48文章
8381瀏覽量
164577
發(fā)布評論請先 登錄
如何使用PIC微控制器旋轉(zhuǎn)步進(jìn)電機(jī)
8位CMOS微控制器PIC16F631相關(guān)資料分享
8位CMOS微控制器PIC16F687相關(guān)資料分享
PIC16F818/PIC16F819 pdf datash
PIC16F1946和PIC16F1947微控制器與LCD驅(qū)動器數(shù)據(jù)手冊免費(fèi)下載
8位微控制器 -MCU ?PIC16F1503-I/SL
PIC18 PIN (16F628A) 微控制器開發(fā)板
PIC16F818/819微控制器深度剖析:特性、應(yīng)用與設(shè)計要點(diǎn)
評論