新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > ATmega128在開發應用中應注意的問題

        ATmega128在開發應用中應注意的問題

        作者: 時間:2009-10-22 來源:網絡 收藏
        是AVR系列中功能最強的單片機,具有如下主要特點:

          (1)先進的RISC精簡指令集結構:具有133條功能強大的指令,大部分指令在單時鐘周期內執行;有32b×8個通用工作寄存器;片內帶有執行時間為2個時鐘周期的硬件乘法器。

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

          (2)非易失性程序和數據存儲器:具有128KB在線可重復編程Flash、4KB的E2PROM以及4KB內部SRAM。在其BOOT區具有獨立的加密位,可通過片內的引導程序實現在系統編程,寫操作時真正可讀。

          (3)具有JTAG接口:通過JTAG接口對Flash、E2PROM熔絲位和加密位編程。

          (4)增強的硬件功能:ATmega128具有2個帶預分頻器和一種比較模式的8位定時/計數器;2個擴充的帶預分頻器和比較模式、捕獲模式的16位定時/計數器;獨立振蕩器的實時計數器;2通道8位PWM;6通道2~16位精度PWM;8通道10位A/D轉換;輸出比較調節器;8個單端通道;7個微分通道;2個增益為1x、10x或200x的微分通道;二線(I2C)串行接口;2路可編程串行UART接口;主/從SPI串 行接口;帶內部振蕩器的可編程看門狗定時器等。

          (5)獨有的特點:上電復位和可編程的低電壓檢測;內部可校準的RC振蕩器;5種睡眠模式,即空閑模式、ADC噪聲抑制模式、省電模式、掉電模式、待命模式和擴展待命模式;可通過軟件選擇時鐘頻率;通過1個熔絲選定ATmega103兼容模式;全局上拉禁止。

          筆者通過使用ATmega128單片機,總結出在使用ATmega128過程中應,希望能給即將使用該單片機的讀者提供有用的信息。

        1ATmega128的工具及其應

          隨著用戶對編譯器的要求越來越高,商也在不斷地提高編譯器對用戶的方便程度。目前的大趨勢是從用匯編語言單片機發展到用C語言開發。筆者在對開發ATmega128編譯器的選擇時,考慮到時間上的局限以及開發的方便性等,最終選擇了ImageCraft的ICCAVR工具。

          ICCAVR是一種使用符合ANSI標準的C語言開發微控制器程序的工具。它集合了編譯器和工程管理器的集成工作環境(IDE),可以編譯生成INTEL HEX格式文件。

          ICCAVR和人們通常所用的編譯器的使用的方法大同小異,故本文不再詳述。本文主要對使用中應當的問題作一介紹。

        (1)該編譯器在設置中有一項“Return Stack Size”,默認值為16,但在程序量很大而且子函數較多的情況下,該默認值就不適合了,編譯時會出錯。碰到這種情況建議將該選項的值改大。

        (2)在經過一段時間的使用后,發現該編譯器對C語言的編譯效率不是很理想。但設置當中有一編譯優化選擇項“Enable Code Compression”,使用它在一定情況下可以減少程序所占的空間。不過當程序在“default”編譯優化選擇的情況下所占的程序空間達到95%以上時,使用“Enable Code Compression”編譯就會出錯。所以筆者認為,雖然ATmega128具有128KB的程序空間,但在使用過程中也應當考慮到數據結構方面的問題。

          ICCAVR生成hex文件以后,下一步就是將hex文件燒錄到ATmega128中去。筆者選用的軟件是PonyProg2000。這是一款操作簡單但功能強大的燒錄軟件,它支持包括AVR、PIC在內的多種單片機型。作者是通過PC機的并口以串行方式連接到ATmega128的JTAG接口的。在燒錄的整個過程當中,最關鍵的問題是芯片晶振的選擇以及熔絲的配置。晶振的選擇較為簡單,只要注意使用外部晶振還是內部晶振,并設置好相應的選項就可以了。由于ATmega128具有IAP(中編程)及用戶可以在程序中對Flash塊、加密位等實現擦除和編程等操作功能,而熔絲位的設置正是實現IAP功能的必要條件,因此可以通過ATmega128的用戶手冊再根據自己需要的實際情況來進行設置。正確的晶振和熔絲設置都是必不可少的,否則不能正確下載。這一步非常重要應特別注意,以免走彎路。下面介紹使用晶振和熔絲的設置方法。

          這里采用PonyProg2000中“configruation and security bits”菜單命令來進行設置,其界面如圖1所示。


        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 栾城县| 读书| 鞍山市| 信宜市| 阿勒泰市| 遵义市| 集安市| 大邑县| 新平| 民县| 临高县| 大渡口区| 和龙市| 正安县| 牟定县| 西昌市| 大英县| 兖州市| 武冈市| 新野县| 揭西县| 徐州市| 平顺县| 武功县| 阳江市| 肥西县| 奈曼旗| 会理县| 襄汾县| 靖西县| 舟山市| 德保县| 隆尧县| 册亨县| 扬中市| 安化县| 丰宁| 沈阳市| 高安市| 长垣县| 龙口市|