摘 要: 全國大學生“飛思卡爾杯”智能汽車競賽推薦使用Freescale公司的MC9S12系列單片機為主控芯片;有USB接口的TTBDM調試器是主要軟件調試工具。TTBDM調試器通過USB接口與PC通信,BDM接口與目標CPU通信,實現嵌入式軟件的在線調試。根據往屆車模競賽中參賽者遇到的一些問題和本中心在長期支持國內S12系列單片機用戶中積累的經驗,總結出BDM調試器的用法和注意事項,提供一些使用技巧,以求對參賽者和S12產品開發工程師有所幫助。
關鍵詞: 9S12單片機;BDM;TTBDM
?
第四屆全國大學生“飛思卡爾杯”智能氣車競賽推薦采用最新的MC9S12XS128(以下簡稱XS128)單片機作為主控芯片,替代MC9S12DG128。XS128是Freescale公司推出的S12系列單片機中的一款增強型16位單片機。片內資源豐富,接口模塊有SPI、SCI、IIC、A/D、PWM等常見模塊,在汽車電子應用領域具有廣泛用途。XS128和以往大賽使用的S12DG128系列單片機一樣,調試接口都是使用Freescale公司傳統的BDM(Background Debug Module)接口。
1 MC9S12XS128單片機介紹
(1)CPU:增強型16位HCS12 CPU,片內總線時鐘最高40 MHz;
(2)片內資源:8 KB RAM、128 KB程序閃存、2 KB數據閃存;
(3)串行接口模塊:SCI、SPI;
(4)脈寬調制模塊(PWM)可設置成4路8位或者2路16位,邏輯時鐘選擇頻率寬;
(5)1個16路12位精度A/D轉換器;
(6)控制器局域網模塊(CAN);
(7)增強型捕捉定時器。
MC9S12XS128單片機有112、80和64引腳3種封裝形式。80-pin封裝的單片機沒有引出用于擴展方式的端口,僅引出了一個8路A/D接口。競賽可使用112或80引腳封裝器件。
2 BDM接口和使用
BDM調試器內部有一個8位的MC9HC08JB16單片機,該單片機有USB接口,可與PC機信息交互。HC08單片機和S12單片機間僅使用一根I/O線通信,這根相連的信號線名為BKGD。HC08單片機將BKGD置為輸出,以串行發送命令,發送完成后轉為輸入,以接收信息。S12單片機收到命令后轉為輸出,根據調試器發來的命令回送信息,然后立即轉入接收態。BDM工具以此方式實現S12單片機的在線調試、內部閃存的燒寫等功能。關于BDM接口的實現,讀者可以參考Freescale任何一款S12單片機的器件手冊,其對BDM接口的命令字、交互模式等都有詳細描述。這里主要介紹如何使用BDM接口。
BDM接口雖然只有BKGD一根信號線,但實際使用過程中,Freescale規定用一個雙排、6引腳的接插件做BDM接口,如圖1所示,引腳間距為2.54 mm(100 mil)。
?
雖然使用的是6引腳接插件,實際上有用引腳只有4個。其中BKGD連接到S12處理器的BKGD引腳,RESET連接到S12處理器的RESET引腳,GND是S12目標板的地信號,而VDD信號是來自目標板的電源信號。VDD信號的連接將在下文中詳細闡述。
BDM接口的使用,需要配合PC上安裝的CodeWarrior軟件和BDM調試工具TTBDM。BDM接口是S12單片機專用的調試接口,PC上運行的調試軟件需要通過USB接口連到HC08單片機,經過HC08單片機的一根I/O線連到S12單片機的BKGD引腳實現PC和S12單片機的通信,進而實現在線調試和燒寫閃存功能。
3 利用“BDM for S12(TTBDM)”調試程序
BDM調試工具主要實現三方面的功能:
(1)應用程序的下載與更新;
(2)單片機內部資源的配置與修復;
(3)應用程序的動態調試。
本中心提供面向S12系列單片機的BDM工具,TTBDM在硬件設計上做了改進,兼容S12和S08兩種BDM調試器。軟件基于Daniel Malik的TBDML(forums.freescale.com)以及open source BDM軟件。TTBDM可以下載S12或者S08的BDM調試固件,分別用于調試S12和S08單片機。本文僅從用戶角度講述“TTBDM”的使用方法和常見問題的解決辦法。詳情請登陸本中心網站www.tsinghua-mot.net,下載最新版本的“BDM for S12(TTBDM)”用戶手冊。
4 TTBDM硬件設置
BDM for S12(TTBDM)設計了跳線開關,允許用戶對TTBDM進行一些特定配置,以此滿足不同用戶的需求。打開TTBDM的硬件小盒,能夠看到4個可以設置的跳線,分別是J4、J5、J6和J7,如圖2所示。
?
圖3為J4跳線的引腳圖。J4用來選擇6-pin雙排插針BDM接口中BKGD信號是在第1引腳引出還是從第3引腳引出。當J4跳線連接在左側靠近電路板邊沿的標記3引腳時,BKGD信號連接到BDM的第3引腳,如圖3(a);當J4跳線連接在右側靠近R12的標記引腳時,BKGD信號連接到BDM接口的第1引腳,如圖3(b)。
?
J4端接線在1位置處適用于按照Motorola規定的BDM信號定義。采用這種定義時,BDM頭一定不能插反,插反會導致VDD與BKGD短路,燒毀BDM中HC08單片機的I/O端或S12單片機的BKGD端,甚至兩者都被損壞。J4短接線在3位置處,適用于專門為大學生車模競賽設計的S12XS單片機小模塊,其優點是如果將BDM插反,也不會損壞S12單片機和BDM調試器。
J5用來給TTBDM的HC08JB16單片機編程。請注意一定不要在J5上插短接線。
J6用于調試S08單片機,在S12的調試中也一定不要插上短接線。
J7是為了保留BDM調試接口的一些特性而設計的,J7允許用戶設定是否使用PC機的USB口上的電源給目標板供電,供
3.3 V還是供5 V。建議不要用PC的USB口給目標板供電。默認情況下,J7不焊接任何插件,表示不向目標板供電。由于PC機的USB接口可提供5 V/500 mA的供電能力,所以TTBDM調試頭不需要從目標板上取電。但TTBDM并不知道目標板用的是5 V電源還是3.3 V電源,也就是說BDM上的VDD是5 V還是3.3 V。為了目標板的VDD電壓適應5 V或3.3 V的BKGD和Reset電平,需要從目標板取電,以調整BKGD和Reset電平。如果目標板是5 V供電,則BDM接口的信號電平為5 V;如果目標板是3.3 V供電,則BDM接口的信號電平為3.3 V。其他電平也可以工作,如接口是2.5 V等。這部分實現電路如圖4所示。
其中VCC_USB是從USB接口來的5V電源,用來給整個TTBDM調試器供電;而VCC_SHIFT是從目標板來的電壓VDD,不同VDD使得RESET信號和BKGD信號工作在不同的電壓范圍,能夠與目標板VDD匹配。從目標板取出的VDD電流小于1mA。
5 TTBDM使用中常見問題及解決辦法
問題1:正確安裝了BDM for S12(TTBDM)的驅動程序和動態鏈接庫,并用BDM連接了目標單片機后,在Hiwave.exe的“TBDML HCS12”菜單中沒有出現“Flash...”項,無法對目標單片機進行調試。
解決辦法:首先,用戶應該確保目標板供電正常,BDM for S12(TTBDM)默認的電源工作方式是目標板自供電。如果還有問題,用戶應該打開BDM的包裝小盒,查看跳線J4是否已經短接。
問題2:驅動程序安裝正常,跳線沒有問題,目標板供電,但BDM還是不工作。
解決辦法:可能是用戶的CodeWarrior版本不對,沒有利用CodeWarrio V4.7以上的版本。安裝高版本的CodeWarrior即可解決問題。
問題3:BDM調試目標板基本正常,能夠下載程序、擦除閃存、設斷點調試,但是,在某次使用中閃存突然被“鎖死”,之后目標板無法繼續使用。
解決辦法:Freescale公司的HCS12系列單片機具有片內閃存的加密功能,對于加密或保護后的閃存,用戶無法通過BDM調試工具對其閃存進行程序擦除、讀取等操作。同時,如果用戶在利用BDM調試單片機時操作不當,同樣會使單片機出現閃存、無法讀取、擦除和下載等問題。監控程序在$F000到$FFFF這一段加了保護,但并沒有加密。即使對加了密的S12,也可以使用TTBDM工具方便地解鎖和擦除。在決定使用擦除保護程序時,應考慮在出現單片機被鎖定的情況下有沒有能力解鎖。對于閃存沒有進入“保護模式”的單片機,如果利用BDM for S12(TTBDM)調試單片機,當用戶點擊“TBDML HCS12”菜單下的“Flash…”命令時,會出現如圖5所示的正常情況。從圖中可以看出,當前目標板單片機的FLASH_C000存儲區域已有下載程序,狀態為“Programmed”,其余模塊為空,狀態為“Blank”。因此,可以繼續對該單片機的閃存進行讀取、擦除和下載等操作。但是,在出現上述閃存加密問題后,HCS12系列單片機就進入了“閃存保護模式”,即Secure Mode。這時,如果利用BDM for S12(TTBDM)調試單片機,當用戶點擊“TBDML HCS12”菜單下的“Flash…”命令時,圖5中部分FLASH區域的狀態就會顯示為“Skipped”。此時,用戶便無法再對閃存進行正常操作。因此,需要解除閃存的“保護模式”(Secure Mode),執行Unsecure的操作。BDM for S12(TTBDM)提供了Unsecure的功能,具體操作過程較為復雜,請參閱用戶手冊。
?
以上提到的是在應用過程中發現的比較普遍的問題,也是用戶經常咨詢和討論的一些問題。在設計之前最好能完整地閱讀幫助文檔以及芯片數據手冊,了解各個工作狀態。很多可能出現的問題在數據手冊里已有明確說明。這樣做在程序設計的前期可能會影響一些進度,但到后期調試階段會帶來極大的方便。至于工具使用上的問題,Freescale單片機/DSP應用開發研究中心會及時在大賽的官方網站上做出相應說明,請大家留意。
參考文獻
[1] 邵貝貝.單片機嵌入式應用的在線開發方法.北京:清華大學出版社,2004.
[2] MC9S12XS128 Device User Guide.Freescale semiconductor,2008,5.