dsPIC33FJ256MC710 疑難問(wèn)題及解決方法
2 RD15作為I/O輸出的問(wèn)題
通用I/O端口是最基本最常用的接口,單片機(jī)、數(shù)字信號(hào)處理器通過(guò)它實(shí)現(xiàn)最基本的高低電平邏輯控制。應(yīng)用時(shí),dsPIC33FJ256MC710的第48號(hào)引腳作為I/O輸出時(shí),對(duì)應(yīng)為RD15。RD15作為開(kāi)關(guān)量輸出時(shí),軟件設(shè)置為高電平,但引腳上不能建立高電平。通過(guò)大量的試驗(yàn)檢測(cè),發(fā)現(xiàn)芯片第48號(hào)引腳RD15作為I/O端口時(shí)不能正常工作。為了更清楚地說(shuō)明該問(wèn)題,引入47、53、54號(hào)引腳RD14、RF7、RF8與RD15作對(duì)比。相關(guān)驗(yàn)證程序如下:
運(yùn)行上述程序,用示波器觀察dsPIC33FJ256MC710芯片的RD14、RF7、RF8對(duì)應(yīng)的第47、53、54引腳上的電平均為規(guī)律的方波信號(hào),而48引腳RD15上高電平不能正常建立,只有極小的尖峰脈沖,波形如圖2所示。
圖2中上部波形為用作對(duì)比的RD14對(duì)應(yīng)的第47號(hào)引腳上的電平信號(hào),下部波形為RD15對(duì)應(yīng)的第48號(hào)引腳上的電平信號(hào)。下部波形與上部波形的控制方式是一樣的(見(jiàn)上述程序),但是不能得到高電平信號(hào)。
修改程序的方法是在改變寄存器PORTDbits.RD15之后添加一個(gè)空操作指令asm(nop)。修改后程序如下:
運(yùn)行修改后的程序,RD15對(duì)應(yīng)的第48號(hào)引腳上也出現(xiàn)規(guī)律的方波信號(hào),解決了上述問(wèn)題。這個(gè)問(wèn)題在應(yīng)用中也是不易發(fā)現(xiàn)的,查了微芯公司的應(yīng)用筆記也無(wú)相關(guān)說(shuō)明,因此詳細(xì)寫出來(lái)以饋?zhàn)x者。
結(jié) 語(yǔ)
本文介紹了Microchip公司的高性能16位數(shù)字信號(hào)控制器dsPIC33FJ系列芯片的內(nèi)部資源,在應(yīng)用dsPIC33FJ256MC710芯片時(shí)遇到的兩個(gè)疑難問(wèn)題。這些問(wèn)題可能是由于硬件設(shè)計(jì)造成,也可能是外部干擾或軟件初始化造成的,往往是預(yù)想不到的問(wèn)題。本文利用相關(guān)程序和波形具體闡述了這兩個(gè)問(wèn)題的現(xiàn)象和解決方法,并附上了相應(yīng)的程序,希望對(duì)讀者能有所幫助。
評(píng)論