dsPIC33FJ256MC710 疑難問(wèn)題及解決方法
引 言
美國微芯公司推出的dsPIC33FJ256MC710高性能16位數字信號控制器,采用了改進(jìn)型的哈佛架構、C編譯器優(yōu)化的指令集、流水線(xiàn)取指令方式,具有實(shí)用、低價(jià)、指令集小、功耗低、速度高、體積小、功能強、抗干擾能力強等特點(diǎn)。dsPIC33FJ256MC710高性能16位數字信號控制器內含有 12位的A/D轉換器(500 ksps)、直接存儲器訪(fǎng)問(wèn)(DMA)、比較輸出、捕捉輸入、I2C接口、SPI接口、CAN接口、USART接口、Flash程序存儲器自讀寫(xiě)等強大的控制功能,內核又具有強大的數字信號處理能力,具有廣闊的應用前景,主要應用于電機控制等領(lǐng)域。
我們在芯片的實(shí)際應用中遇到了一些預想不到的問(wèn)題,有的是由于硬件設計造成,有的是由于外部干擾造成,還有的是軟件初始化造成的。這些問(wèn)題的解決方法在微芯公司的應用文檔中未提供,我們花了較多的時(shí)間進(jìn)行分析、測試,最后解決了問(wèn)題。本文將這些解決方法介紹給大家,以避免大家在這個(gè)問(wèn)題上花費太多的時(shí)間或因一些無(wú)法解決的問(wèn)題而造成損失。
1 正交編碼器接口模塊的問(wèn)題
dsPIC33FJ256MC710的正交編碼器接口模塊(以下簡(jiǎn)稱(chēng)QEI模塊),在調試(Debug)模式下,能夠正常工作,可以得到光電編碼器的轉動(dòng)信號,但是在程序下載(Pro-gram)后模塊不工作,不能得到光電編碼器的轉動(dòng)信號。這個(gè)問(wèn)題有些隱蔽,不易發(fā)現,在我們過(guò)去使用微芯公司芯片的過(guò)程中還從未遇到過(guò)。
本文選用的光電編碼器為1024線(xiàn),差分信號輸出。這種輸出方式在工業(yè)現場(chǎng)使用具備較高的抗干擾能力,可以連接的導線(xiàn)較長(cháng)。由于光電編碼器的輸出為差分信號,而芯片接口要求為T(mén)TL電平信號,因此增加一片AM26LS32完成電平轉換,把差分信號轉換為T(mén)TL電平信號。光電編碼器輸出的A和/A、B和/B、z和/Z三組差分信號接入AM26LS32芯片,轉化為A、B、Z三路TTL電平信號與dsPIC33FJ256MC710的正交編碼器接口模塊 (QEI)連接。A、B為正交編碼信號,z為光電編碼器零位置信號。
dsPIC33FJ系列芯片,具有智能化的QEI模塊。它由QEA、QEB和INDX三個(gè)輸入通道組成。QEA和QEB這兩個(gè)通道具有智能的正交解碼功能。把光電編碼器輸出的A、B兩相正交編碼信號接入這兩個(gè)通道,芯片通過(guò)解碼算法,自動(dòng)判斷出光電編碼器的旋轉方向和旋轉相對位置。INDX通道稱(chēng)為索引脈沖。該通道通過(guò)接入Z信號,根據絕對零位置和相對位置,就可以確定光電編碼器旋轉的絕對位置。硬件接口原理框圖如圖1所示。
按照微芯公司的應用筆記,QEI初始化程序如下:
評論