新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 從8/16位向32位圖形MCU升級的技巧

        從8/16位向32位圖形MCU升級的技巧

        作者: 時間:2009-07-06 來源:網絡 收藏

        對于這一點,通常我只需要噼里啪啦地翻開數據頁并按我自己的工作方式來查找問題的根源。出現的問題是,PIC32時鐘產生模塊比16位器件一書中所用的PIC24F要更加復雜一些。實際上,PIC32模塊更像16位系列中最新的PIC24F上的振蕩器模塊。同樣,在PIC32結構中,絕大多數外設模塊被連接到工作頻率不同的彼此分離的外設總線上,這些頻率低于系統時鐘,這有助于功率管理,當然也有助于解決EMI問題。

        本文引用地址:http://www.104case.com/article/173681.htm


        我耐心找出如何使外設總線工作在與同一項目(16MHz外設總線)中PIC24F所用相同的頻率。我還找出了可以執行的相同指令數,而執行頻率僅為PIC24F所要求系統頻率的一半,這是因為PIC32內核每個時鐘周期上可以執行一個指令。


        JTAG默認值設置為on


        在解決了時鐘問題之后,我快速地瀏覽了一下時鐘模塊。有5個時鐘模塊。看上去絕對與PIC24F完全一樣,進一步回溯PIC 的歷史,一直回溯到PIC16C74(大約1994)都是兼容的。我繼續驗證I/O端口:同樣的結構,同樣的引腳數,同樣反映“歷史”的寄存器名稱,發現一個兼容型的軌跡也許可以一直延伸到最初的PIC16C54(大約1991年)。


        最后我對A/D轉換模塊進行了一次快速檢查,對于絕大多數PIC 初學者來說這是一個最難理解的外設。其輸入連接到I/O口的上端(絕大多數16位PIC器件的PORTB),并且先加電,故除非你的配置正確,否則它不會使你的數字輸入工作。顯然它與PIC24兼容,因此我仍然無法解釋LED行為異常的原因。

        更靠近看,我發現有4個LED,要么從來不亮,要么就恒亮。于是,我又再一次翻開數據頁來檢查引腳圖,最后終于發現了“元兇”:JTAG端口。


        四線(E)JTAG接口被稱為在線串行編程接口,是一個非正式的行業標準,它不僅允許邊界掃描,而且還支持器件完全編程和調試控制。當然,這在引腳數很多的32位芯片中是所期望的,PIC32在加電時通過默認的方式將這兩個接口都激活了。如果為了利用一些PORTA I/O而不需要這些JTAG接口,則依賴應用程序來將其關閉。


        自從我注意了JTAG接口后,我的第一個PIC32項目開始按期望工作,并發送出它的首個“Hello”,如圖1所示。

        圖1:用PIC32產生字符串。

        圖1:用PIC32產生字符串。

        至此所學到的簡單經驗(振蕩器配置和JTAG接口)迅速地證明了它們與我16位器件一書中前面各章節中絕大多數項目兼容性的關鍵,在隨后幾天的開發中移植都比較順利。我利用UART與PC通信,用SPI接口與串行EEPROM通信,而利用Parallel Master Port與LCD模塊通信。我利用A/D先讀取電位器,然后讀取溫度傳感器,演示了PIC32如何與模擬應用接口。除了模塊的一些擴展功能以外,所有這些模塊的工作都與我所預期的完全一致。我發現我的16位代碼完全可以照用,幾乎不需要任何的改變。



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 施秉县| 罗甸县| 沁水县| 梁河县| 玉溪市| 南昌县| 昂仁县| 左贡县| 淅川县| 德令哈市| 朝阳市| 梧州市| 大悟县| 革吉县| 会东县| 青神县| 洞头县| 盖州市| 昌邑市| 恩平市| 庆元县| 繁昌县| 逊克县| 铜鼓县| 榆中县| 上林县| 牙克石市| 霍林郭勒市| 鄂托克旗| 犍为县| 化德县| 揭西县| 赤城县| 汝州市| 堆龙德庆县| 穆棱市| 伊川县| 麻栗坡县| 延吉市| 清远市| 绥德县|