PIC16C5X的低功耗模式
在實際應(yīng)用中,有時需要考慮電源電壓VDD的下降情況。電源下降保護(hù)電路如圖1所示。在這個電路中,當(dāng)VDD≤VD+0.7V時,則會產(chǎn)生復(fù)位,原理為穩(wěn)壓管的穩(wěn)壓值VD和晶體管Q1的e、b正向壓降之和大于VDD,穩(wěn)壓管Vz截止,晶體管Q1截止,MCLR端為低電平,單片機(jī)處于復(fù)位狀態(tài)。
圖2是另一種保護(hù)電路,電路中用電阻代替了穩(wěn)壓管,價格較低,但效果較差,當(dāng)VDD≤(R1+R2)×0.7/R1時,晶體管截止,MCLR為低電平,單片機(jī)復(fù)位。 [2].省電SLEEP 執(zhí)行SLEEP指令,進(jìn)入省電模式,此時WDT被清“0”,然后重新開始計數(shù),f3寄存器“PD”位被清“0”,“TO”位被置“1”,振蕩驅(qū)動器停止工作,所有I/O保持原來狀態(tài),這種工作模式功耗最低。 為使單片機(jī)功耗最小,進(jìn)入SLEEP前,應(yīng)使所有I/O口處于低電平或高電平狀態(tài),處于高阻狀態(tài)的I/O腳應(yīng)由外部設(shè)置成高或低電平(加上拉或下拉),以避免浮空輸入所產(chǎn)生的開關(guān)電流。RTCC的輸入端同樣應(yīng)處于VDD或VSS,MCLR引腳需處于高電平,以使電流最小,功耗最低。 從SLEEP模式喚醒的過程如下:單片機(jī)可被WDT溢出或MCLR引腳上加一個低電平脈沖喚醒,在兩種喚醒方式中,普通程序恢復(fù)執(zhí)行前,單片機(jī)停留在RESET狀態(tài),持續(xù)一個振蕩啟動定時(OST)周期。標(biāo)志寄存器STATUS的“PD”位,在上電時置“1”,會被“SLEEP”指令清“0”,此特征可用于檢測單片機(jī)是上電復(fù)位還是從省電方式喚醒復(fù)位。標(biāo)志寄存器的TO位,可用于判斷喚醒是由外部MCLR信號還是WDT溢出引起的。 注意的是在使用外接RC的上電復(fù)位電路時,不推薦用WDT喚醒省電模式,因為WDT溢出時產(chǎn)生RESET通常不會使外電容放電,且單片機(jī)只會由復(fù)位定時器的周期進(jìn)行復(fù)位。 [3].配置位EPROM 配置位EPROM(configuration EPROM)有4個EPROM熔絲決定,這些位有別于程序存儲器的EPROM普通位。 兩個熔絲用于選擇振蕩器類型,另兩個一個是WDT允許位,一個程序保密位。 · 用戶識別碼(Customer ID Code) PIC16C5X系列有16個特別的EPROM位,它們不是程序存儲器單元,這些位用于存儲用戶識別碼、校驗碼或其它信息數(shù)據(jù),這些單元不能在普通程序中訪問。 · 代碼保護(hù) 當(dāng)選擇將芯片的程序保密位熔絲燒斷(寫入0)后,程序存儲區(qū)ROM中的程序代碼(12位寬)的高8位將被保護(hù)。此時讀出的數(shù)據(jù)將是“00000000XXXX”形式,高8位全部被“0”取代,無法再解釋這些代碼的含義,也即不能進(jìn)行代碼復(fù)制,但單片機(jī)的功能并不受影響,代碼程序仍然可正確執(zhí)行。從而保護(hù)自己的著作權(quán)。 當(dāng)程序被保護(hù)時,從040H開始及以上存儲單元的內(nèi)容將受保護(hù)而不能編程,程序存儲器地址000H—03FH的電源、用戶ID碼單元和配置位熔絲仍可編程。 |
評論