新聞中心

EEPW首頁 > 網(wǎng)絡與存儲 > 設計應用 > S12單片機模塊應用及程序下載調試

S12單片機模塊應用及程序下載調試

——
作者:電子產品世界 時間:2006-08-09 來源:電子產品世界 收藏

摘要:    本文對邀請賽選用的主控芯片MC9S12DG128單片機的一些外圍接口作了介紹,包括功能上的描述和例程及初始化的過程,對一些參賽隊伍中遇到的Flash鎖死問題也提供了解決的方案。
關鍵詞:     MC9S12DG128;CodeWarrior;TBDML;Flash解密

本次智能車邀請賽采用的MC9S12DG128(以下簡稱DG128)是Freescale公司推出的S12系列單片機中的一款增強型16位單片機,片內資源豐富,接口包括SPI、SCI、IIC、A/D、PWM等,在應用領域具有廣泛的用途。DG128在Flash存儲控制及加密方面也有很強的功能,加解密可配合第三方軟件使用。


DG128單片機采用增強型16位HCS12 CPU,片內總線時鐘最高可達25MHz;片內資源包括8K RAM、128K Flash、2K EEPROM; SCI、SPI、PWM串行接口;脈寬調制(PWM)模塊可設置成4路8位或者2路16位,邏輯時鐘選擇頻率寬。它包括兩個8路10位精度A/D轉換器,控制器局域網(wǎng)模塊(CAN),增強型捕捉定時器并支持背景調試模式。DG128有112-pin和80-pin兩種封裝形式,80-pin封裝的單片機沒有引出用于擴展的端口,只引出了一個8路A/D接口。

常用接口模塊及外部應用


PWM模塊:PWM脈寬調制波是一種可用程序來控制波形占空比、周期、相位的波形。它在電機驅動、D/A變換等場合有著廣泛的應用。


A/D模塊:A/D(模數(shù)轉換)模塊內部可分為三個部分:IP總線接口、轉換模式控制/寄存器列表、自定義模擬量。

Codewarrior軟件使用


大賽中采用Codewarrior 3.1 for HCS12作為推薦的程序編譯軟件。"CodeWarrior for S12" 是面向以HC12或S12為CPU的單片機嵌入式應用開發(fā)的軟件包。包括集成開發(fā)環(huán)境IDE、處理器專家?guī)?、全芯片仿真、可視化參?shù)顯示工具、項目工程管理器、C交叉編譯器、匯編器、鏈接器以及調試器。在Codewarrior軟件中可以使用匯編語言或C語言,以及兩種語言的混合編程。

利用監(jiān)控程序下載用戶程序


監(jiān)控程序(Monitor)的主要功能是對應用系統(tǒng)硬件及底層軟件進行調試,也稱為Debug程序,是最基本的調試工具。MC9S12DG128的Flash有128K,RAM有8K,而監(jiān)控程序源代碼占用不到3K FLASH,占用23字節(jié)RAM。這對用戶程序的空間影響并不大。異步串行口是要用來做與PC通訊服務的,監(jiān)控程序可以用,應用程序當然也可以使用。

利用“BDM for S12(TBDML)”調試程序


當用戶在監(jiān)控程序的幫助下,熟悉了S12單片機的性能和結構,并能初步開始軟硬件的設計后,就可以脫離監(jiān)控程序了,尤其是對于一個完整的項目,就更要直接對硬件進行調試而脫離監(jiān)控程序。S12系列單片機采用BDM(Background Debug Mode,背景調試模式)調試方式。在BDM模式下主要可以實現(xiàn)3方面的功能:


?應用程序的下載與在線更新
?單片機內部資源的配置與修復
?應用程序的動態(tài)調試
【常見問題之一】正確安裝了BDM for S12(TBDML)的驅動程序和動態(tài)鏈接庫后,并用BDM連接了目標單片機后,在Hiwave.exe的“TBDML HCS12”菜單中,沒有出現(xiàn)“Flash...”項,無法對目標單片機進行調試。


解決辦法:首先,用戶應該確保目標板供電正常,BDM for S12(TBDML)默認的電源工作方式是目標板自供電;如果,還有問題,用戶應該打開BDM的包裝小盒,查看跳線J4是否已經短接,原因見上文。


【常見問題之二】驅動程序安裝正常,跳線也沒有問題,目標板也供電了,但BDM還是不工作。


解決辦法:出現(xiàn)這一問題,最大的可能是,用戶的CodeWarrio版本不對,沒有利用CodeWarrio V4.1以上的版本進行調試。安裝高版本的CodeWarrio即可解決問題。


【常見問題之三】BDM調試目標板基本正常,能夠下載程序、擦除Flash、設斷點調試,但是,在某次使用中Flash突然被“鎖死”,之后目標板無法繼續(xù)使用。


解決辦法:Freescale 公司的HCS12 系列單片機具有片內Flash的加密功能,對于加密或保護后的Flash,用戶是無法通過BDM 調試工具對其Flash進行諸如程序擦除、讀取等操作。同時,如果用戶在利用BDM 調試單片機時操作不當,同樣會使單片機出現(xiàn)Flash無法讀取、擦除和下載等問題。我們的監(jiān)控程序在$F000 到$$FFFF,這一段加了保護,但并沒有加密。即使對加了密的S12,也可以使用我們生產的串行接口地BDM 工具方便的解鎖和擦除。在2005 年第4 期《電子產品世界》雜志中,我中心曾經撰文講述了HCS12 單片機Flash 保護和加解密的原理和注意事項。在決定擦除保護了的程序時,請想好在出現(xiàn)單片機被鎖定的情況下有沒有能力解鎖。對于Flash沒有進入“保護模式”的單片機,如果利用BDM for S12 (TBDML)調試單片機,當用戶點擊“TBDML HCS12”菜單下的“Flash...”命令時,會出現(xiàn)如圖12所示的正常情況。從圖中可以看出,當前目標板的單片機的FLASH_C000存儲區(qū)域已下載有程序,狀態(tài)為“Programmed”;其余模塊為空,狀態(tài)為“Blank”。因此,可以繼續(xù)對該單片機的Flash進行讀取、擦除Erase和下載Load等操作。但是,在出現(xiàn)上述Flash加密問題后,HCS12系列單片機就進入了“Flash保護模式”,即Secure Mode。這時,如果利用BDM for S12(TBDML)調試單片機,當用戶點擊“TBDML HCS12”菜單下的“Flash...”命令時,部分FLASH區(qū)域的狀態(tài)就會顯示為“Skipped”。此時,用戶便無法再對FLASH進行正常操作。因此,需要解除Flash的“保護模式”,執(zhí)行Unsecure的操作。BDM for S12(TBDML)提供了Unsecure的功能,具體的操作過程較為復雜,請參閱用戶手冊。

結語


上面提到的問題是在應用過程中發(fā)現(xiàn)的比較普遍的問題。在設計之前最好能完整地閱讀幫助文檔以及芯片的數(shù)據(jù)手冊,了解各個工作狀態(tài),很多可能出現(xiàn)的問題其實在數(shù)據(jù)手冊里已有明確的說明。這樣做在程序設計的前期可能會影響一些進度,但到后期調試階段會帶來極大的方便。至于工具使用上的問題,F(xiàn)reescale單片機/DSP應用開發(fā)研究中心會及時在大賽的官方網(wǎng)站上做出相應的說明,請大家留意。(本文做了部分刪節(jié),完整網(wǎng)絡版閱讀地址:http://butianyuan.cn/news/show.aspx?ClassID=124&articleID=13846)

參考文獻:
1、 邵貝貝,‘單片機嵌入式應用的在線開發(fā)方法’,清華大學出版社,2004
2、 ‘MC9S12DT128,Device User Guide’,F(xiàn)reescale semiconductor,2005.10



評論


相關推薦

技術專區(qū)

關閉