(注:本文檔主要根據PIC16F193X數據手冊編寫,對于其他型号的單片機,其配置字可能略有不同,此外本文部分參考了PIC18F78K22數據手冊,因而部分注釋了兩個系列單片機的區别)
1、FCMEN:故障保護時鐘監視器使能位
FCMEN_ON:使能 FCMEN_OFF: 禁止(紅色表示本人使用PIC單片機所選擇的配置,下同)
詳細說明:在使器件能在外部振蕩器發生故障時繼續運行。 FSCM 可以檢測當振蕩器起振定時器(OST)延時結束後的任何時刻發生的振蕩器故障。
如圖所示,故障檢測器模塊内部有一個鎖存器。在外部時鐘的每個下降沿上将鎖存器置1。 在采樣時鐘的每個上升沿将鎖存器清零。 如果采樣時鐘的一個完整半周期在外部時鐘變為低電平之前結束,則将檢測到故障。
FC時鐘監控框圖
FC時鐘監控時序
結論:若外部時鐘在采樣時鐘為高電平時間内(約1ms)沒有下降沿,則當采樣時鐘為低電平時認為時鐘故障。
注:外部時鐘沒有經過PLL倍頻
2、IESO:内部/外部時鐘切換位
IESO_ON:使能切換 IESO_OFF:禁止切換
詳細說明:使能後,當外部晶振出錯後,單片機會自動切換到内部RC震蕩電路作為其工作時鐘。
16F1936資料:當MCU上電複位或從休眠模式喚醒時,由于外部震蕩電路可能還沒穩定,此時可允許先使用内部時鐘,然後再切換到外部時鐘。
3、CLKOUTEN:時鐘輸出使能位
CLKOUTEN_ON: 使能 CLKOUTEN_OFF: 禁止
詳細說明:使能RA6/CLKOUT 引腳上的CLKOUT 功能,若MPU連接外部石英晶振或陶瓷諧振器,不能使用該功能
4、BOREN<1:0>:欠壓複位使能位
BOREN_ON:使能BOR
BOREN_NSLEEP: BOR 在工作時使能,在休眠時禁止
BOREN_SBODEN: BOR 由PCON 寄存器的SBOREN 位控制
BOREN_OFF: 禁止
詳細說明:當Vdd 到達可選的最低電平時, BOR 電路将器件保持在複位狀态。 在BOR 和POR 之間的整個電壓範圍内,可實現執行保護功能。可配合PWRT(複位延遲)使用。
BOR原理
5、CPD:數據代碼保護位
CPD_ON:使能 CPD_OFF:禁止
詳細說明:使能/禁止數據存儲器代碼保護,擦除操作期間關閉代碼保護時,将擦除整個數據EEPROM 的内容。在數據存儲器受代碼保護時,隻有CPU 可對數據EEPROM進行讀寫操作。
6、CP:代碼保護位
CP_ON:使能 CP_OFF:禁止
詳細說明:使能/禁止程序存儲器代碼保護,當關閉代碼保護時,将擦除整個程序存儲器的内容。使能後,禁止對程序存取器的外部讀寫操作,若進行讀操作,返回0。
7、MCLRE:MCLR/VPP 引腳功能選擇位
MCLRE_ON:使能 MCLRE_OFF:禁止
詳細說明:僅當LVP=0時有效,外部複位
MCLRE引腳
8、PWRTE:上電延 時定時器使能位
(如果電源上電慢,防止無法啟動,MCU必須具有該功能,且必須使能)
PWRET_ON:使能 PWRET_OFF:禁止
詳細說明:上電、欠壓複位後提供64ms的延遲。
(注:16F1936,16F1946中僅說有64ms的延遲,18F87K22資料中有如下說明:采用LF-INTOSC時鐘(31.25KHz,周期為32us)計數,計數寄存器為11bits,因而延遲時間為2048*32us=65.5ms)
複位原理圖
9、WDTE<1:0>:看門狗定時器使能位
WDTE_ON:使能
WDTE_NSLEEP:在運行時使能,休眠時禁止
WDTE_SWDTEN:由WDTCON 寄存器中的SWDTEN 位控制
WDTE_OFF:禁止
詳細說明:看門狗定時器是系統定時器,如果固件在超時周期内未發出CLRWDT 指令,看門狗定時器将産生複位。
看門狗原理圖
通過配置WDTPS,可是設置複位時間2ms-256s(18F為4ms-4196s)。
(注:任何複位,進入休眠模式,從休眠模式喚醒,振蕩器故障都會使WDT清0,且複位後默認超時周期為2秒)
10、FOSC<2:0>:振蕩器選擇位
111 = ECH:外部時鐘,高功耗模式:RA7/OSC1/CLKIN 引腳為CLKIN 功能
110 = ECM:外部時鐘,中等功耗模式:RA7/OSC1/CLKIN 引腳為CLKIN 功能
101 = ECL:外部時鐘,低功耗模式:RA7/OSC1/CLKIN 引腳為CLKIN 功能
100 = INTOSC振蕩器:RA7/OSC1/CLKIN 引腳為I/O 功能
011 = EXTRC 振蕩器:RA7/OSC1/CLKIN 引腳為RC 功能
010 = HS振蕩器:高速晶振/ 諧振器連接到RA6/OSC2/CLKOUT 和RA7/OSC1/CLKIN 引腳
001 = XT振蕩器:晶振/ 諧振器連接到RA6/OSC2/CLKOUT 和RA7/OSC1/CLKIN 引腳
000 = LP振蕩器:低功耗晶振連接到RA6/OSC2/CLKOUT 和RA7/OSC1/CLKIN 引腳
詳細說明:EC模式将外部産生的邏輯電平作為系統時鐘源,其中ECH對應4-32 MHz,ECM對應0.5-4 MHz,ECL對應0-0.5 MHz。INTOSC模式采用内部時鐘源作為其工作時鐘,通過PLL倍頻、分頻,可産生31KHz-16MHz時鐘。LP、XT 和HS 模式支持在OSC1 和OSC2 引腳之間連
接石英晶振或陶瓷諧振器的應用,EXTRC模式支持使用外部RC 電路。
時鐘源整體框圖
EC模式
石英晶振(LP、XT 或HS模式)
陶瓷諧振器(XT或HS模式)
RC模式
“pic系列單片機有rc、lp、xt、hs等振蕩模式。除rc模式外,振蕩模式的選擇實際上就是環路增益的選擇。低增益對應低振蕩頻率,高增益對應高振蕩頻率。一般根據實際需要的工作頻率可參考數據手冊來選擇。
11、LVP:低壓編程使能位
LVP_ON = 使能低壓編程
LVP_OFF = 必須使用MCLR/VPP 引腳上的高壓進行編程
詳細說明:允許器件在沒有高壓的情況下僅使用VDD 進行編程。如果使能了低壓編程(LVP = 1),将自動使能MCLR複位功能,且無法禁止。
12、DEBUG:在線調試器模式位
DEBUG_OFF = 禁止在線調試器, RB6/ICSPCLK 和RB7/ICSPDAT 是通用I/O 引腳
DEBUG_ON = 使能在線調試器, RB6/ICSPCLK 和RB7/ICSPDAT 專用于調試器
13、BORV:欠壓複位電壓選擇位
BORV_19 = 欠壓複位電壓設置為1.9V
BORV_= 欠壓複位電壓設置為2.5V (注:1936,1946資料為2.5V,代碼注釋為2.7V)
(注:18F87K22為BORV<1:0>,1.8V,2.0V,2.7V,3.0V)
14、STVREN:堆棧上溢/ 下溢複位使能位
STVREN_ON = 堆棧上溢或下溢将導緻複位
0STVREN_OFF = 堆棧上溢或下溢不會導緻複位
詳細說明:MPC在執行調用函數、中斷函數等操作時,進行對當前PC值進行堆棧操作,若不使能該功能,堆棧将作為循環緩沖區使用,溢出的PC值将覆蓋最早進入堆棧的PC值。
15、PLLEN:PLL 使能位
PLLEN_ON = 使能4xPLL
PLLEN_OFF = 禁止4xPLL
注:配置字禁止該功能時,可在程序中通過設置SPLLEN,選擇是否使能4xPLL功能。 (軟件啟動時,需一段時間後鎖相環倍頻才能穩定,可查詢PLLR,測試PIC16F1946,采用外部4M晶振,震蕩器選擇HS模式,軟件SPLLEN置1,約600指令周期後PLLR為1)
16、 VCAPEN<1:0>:穩壓器電容使能位
00 = 在RA0 引腳上使能VCAP 功能
01 = 在RA5 引腳上使能VCAP 功能
10 = 在RA6 引腳上使能VCAP 功能
11 = VCAP 引腳上無電容
詳細說明:Vcap是提供給内部穩壓器使用的,如果你5V的系統,必須在三個Vcap腳上選擇一個接上Cap,而且要在配置位中指定該引腳。如果系統隻需要3.3V,無需選擇Vcap.
17、WRT<1:0>:閃存自寫保護位
4 kW 閃存(僅PIC16F1933/PIC16LF1933 和PIC16F1934/PIC16LF1934):
11 = 寫保護關閉
10 = 000h 至1FFh 受寫保護, 200h 至FFFh 可以由EECON 控制寄存器修改
01 = 000h 至7FFh 受寫保護, 800h 至FFFh 可以由EECON 控制寄存器修改
00 = 000h 至FFFh 受寫保護,無可由EECON 控制寄存器修改的地址址
8 kW 閃存(僅PIC16F1936/PIC16LF1936 和PIC16F1937/PIC16LF1937):
11 = 寫保護關閉
10 = 000h 至1FFh 受寫保護, 200h 至1FFFh 可以由EECON 控制寄存器修改
01 = 000h 至FFFh 受寫保護, 1000h 至1FFFh 可以由EECON 控制寄存器修改
00 = 000h 至1FFFh 受寫保護,無可由EECON 控制寄存器修改的地址
16 kW 閃存(僅PIC16F1938/PIC16LF1938 和PIC16F1939/PIC16LF1939):
11 = 寫保護關閉
10 = 000h 至1FFh 受寫保護, 200h 至3FFFh 可以由EECON 控制寄存器修改
01 = 000h 至1FFFh 受寫保護, 2000h 至3FFFh 可以由EECON 控制寄存器修改
00 = 000h 至3FFFh 受寫保護,無可由EECON 控制寄存器修改的地址
詳細說明:寫保護用于保護器件不受意外的自寫訪問。在允許修改程序存儲器其他區域的同時可以保護應用程序,例如引導加載程序軟件。
推薦配置:__CONFIG(FOSC_HS & WDTE_ON(1) & PWRTE_ON & MCLRE_ON&CP_ON & CPD_OFF & BOREN_ON &CLKOUTEN_OFF & IESO_OFF & FCMEN_ON);
__CONFIG(WRT_OFF & VCAPEN_OFF(2)& PLLEN_ON(3)& STVREN_ON & BORV_19 (4)& DEBUG_OFF & LVP_OFF);
注:
1、關于看門狗配置字WDTE,若某些單片機超時時間較短,而程序初始化時間較長,可選擇軟件啟動,WDTE_SWDTEN,注意對相關寄存器定時設置,或者在初始化程序中 多次清狗
2、如果MCU采用 3.3V供電,則可以不使能VCAP,如果采用 5.0V供電必須使用VCAP。
3、若采用4M外部晶振,采用FOSC_HS 或FOSC_XT可能還需測試确認。
4、複位電壓根據MCU工作電壓、電源電壓範圍以及RAM保持電壓确認。 3.3V工作推薦為1.9V, 5.0V工作推薦為 5.0V。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!