專注差異化嵌入式產(chǎn)品解決方案 給智能產(chǎn)品定制注入靈魂給予生命
提供開發(fā)工具、應(yīng)用測(cè)試 完善的開發(fā)代碼案例庫(kù)分享
從全面的產(chǎn)品導(dǎo)入到強(qiáng)大技術(shù)支援服務(wù) 全程貼心伴隨服務(wù),創(chuàng)造無限潛能!
提供新的芯片及解決方案,提升客戶產(chǎn)品競(jìng)爭(zhēng)力
提供最新的單片機(jī)資訊,行業(yè)消息以及公司新聞動(dòng)態(tài)
單片機(jī)方案開發(fā)商深圳英銳恩分享PIC16C71,16C84單片機(jī)應(yīng)用中問題和對(duì)策。
一:PIC16C71單片機(jī)的問題和對(duì)策
問題1:在芯片進(jìn)入低功耗睡眠模式 (SLEEP MODE)后,其振蕩腳將處于浮態(tài),這將使芯片的睡眠功耗上升,比原手冊(cè)中的指標(biāo)高了10μA以上。
對(duì)策:在振蕩腳OSC1和地 (GND)之間加一10MΩ電阻可防止OSC1進(jìn)入浮態(tài),且不會(huì)影響單片機(jī)正常振蕩。
問題2:RA口方向寄存器TRISA目前只是一個(gè)4位寄存器,對(duì)應(yīng)于RA0~RA3,并非手冊(cè)中所言是8位寄存器,對(duì)應(yīng)于RA0~RA4,即RA4并沒有相應(yīng)的輸入/輸出方向控制位,它是一個(gè)具有開極輸出,施密特輸入I/O腳。
對(duì)策:避免使用對(duì)RA口進(jìn)行讀-修改-寫指令(如BCF RA, BSF RA),以免非意愿地改變RA4的輸入/輸出狀態(tài)。對(duì)于RA口的操作應(yīng)采用寄存器的操作方式(MOVWF RA)。
問題3:當(dāng)CPU正在執(zhí)行一條對(duì)INTCON寄存器進(jìn)行讀-修改-寫指令時(shí),如果發(fā)生中斷請(qǐng)求,則讀中斷例程會(huì)被執(zhí)行二次。這是因?yàn)楫?dāng)中斷請(qǐng)求發(fā)生后INTCON寄存器中的GIE位會(huì)被硬件自動(dòng)清零(屏蔽所有中斷),并且程序轉(zhuǎn)入中斷例程入口(0004H)。當(dāng)GIE位被清零后,如果這時(shí)正好CPU在執(zhí)行一條對(duì)INTCON的讀-修改-寫指令(如BSF INTCON等),則 GIE位還會(huì)被寫回操作重新置1,這樣會(huì)造成CPU二次進(jìn)入中斷例程。
對(duì)策:如果在程序中需對(duì)INTCON的某一中斷允許位進(jìn)行修改,則應(yīng)事先置GIE=0
,修改完成后再恢復(fù)GIE=1。
…………..
BCF INTCON, GIE
BSF INTCON, ×××
BSF INTCON, GIE
…………..
問題4:當(dāng)芯片電壓VDD加電上升時(shí)間大于100μs時(shí),電源上電復(fù)位電路POR和電源上電延時(shí)器PWRT可能不能起正常的作用,而使芯片的復(fù)位出現(xiàn)不正常(即PC≠?gòu)?fù)位地址)。一般在這種情況下建議不要采用PWRT。
對(duì)策:如果VDD上升時(shí)間很長(zhǎng),此芯片一般需較長(zhǎng)的電源上電延時(shí),可靠的電
源上電延時(shí)方法如圖1所示,在MCLR端外接復(fù)位電路。
問題5:如果在A/D轉(zhuǎn)換中用RA3作為參考電壓輸入,則最大滿量程誤差(NFS)要大于手冊(cè)中的指標(biāo)。實(shí)際情況如表1所示。
表1 A/D滿量程誤差表
VREF源 | 滿量程誤差 |
VDD | <±1 LSb |
RA3 | <±2.5 LSb |
二:PIC16C84單片機(jī)的問題和對(duì)策
問題1:PIC16C84單片機(jī)的內(nèi)部的E2PROM數(shù)據(jù)存儲(chǔ)器的E/W周期偶爾會(huì)超出最大值(10ms)。
對(duì)策:在程序中應(yīng)該用EECON1寄存器中的WR位來判斷寫周期的完成,或是啟用“寫周期完成中斷”功能,這兩種方法可保證寫入完成。
問題2:VDD和振蕩頻率的關(guān)系如表2所示。
VDD | 振蕩方式 | 最高頻率 |
2V-3V | RC, LP | 2MHZ,200MHZ |
3V-6V | RC,XT,LP | 4MHZ,200MHZ |
4.5V-5.5V | HS | 10MHZ |