《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 業(yè)界動態(tài) > S12單片機(jī)BDM調(diào)試器使用技巧

S12單片機(jī)BDM調(diào)試器使用技巧

2009-05-19
作者:薛 濤,邵貝貝

  摘 要: 全國大學(xué)生“飛思卡爾杯”智能汽車競賽推薦使用Freescale公司的MC9S12系列單片機(jī)為主控芯片;有USB接口的TTBDM調(diào)試器是主要軟件調(diào)試工具。TTBDM調(diào)試器通過USB接口與PC通信,BDM接口與目標(biāo)CPU通信,實現(xiàn)嵌入式軟件的在線調(diào)試。根據(jù)往屆車模競賽中參賽者遇到的一些問題和本中心在長期支持國內(nèi)S12系列單片機(jī)用戶中積累的經(jīng)驗,總結(jié)出BDM調(diào)試器的用法和注意事項,提供一些使用技巧,以求對參賽者和S12產(chǎn)品開發(fā)工程師有所幫助。
  關(guān)鍵詞: 9S12單片機(jī);BDM;TTBDM

?

  第四屆全國大學(xué)生“飛思卡爾杯”智能氣車競賽推薦采用最新的MC9S12XS128(以下簡稱XS128)單片機(jī)作為主控芯片,替代MC9S12DG128。XS128是Freescale公司推出的S12系列單片機(jī)中的一款增強(qiáng)型16位單片機(jī)。片內(nèi)資源豐富,接口模塊有SPI、SCI、IIC、A/D、PWM等常見模塊,在汽車電子應(yīng)用領(lǐng)域具有廣泛用途。XS128和以往大賽使用的S12DG128系列單片機(jī)一樣,調(diào)試接口都是使用Freescale公司傳統(tǒng)的BDM(Background Debug Module)接口。
1 MC9S12XS128單片機(jī)介紹
  (1)CPU:增強(qiáng)型16位HCS12 CPU,片內(nèi)總線時鐘最高40 MHz;
  (2)片內(nèi)資源:8 KB RAM、128 KB程序閃存、2 KB數(shù)據(jù)閃存;
  (3)串行接口模塊:SCI、SPI;
  (4)脈寬調(diào)制模塊(PWM)可設(shè)置成4路8位或者2路16位,邏輯時鐘選擇頻率寬;
  (5)1個16路12位精度A/D轉(zhuǎn)換器;
  (6)控制器局域網(wǎng)模塊(CAN);
  (7)增強(qiáng)型捕捉定時器。
  MC9S12XS128單片機(jī)有112、80和64引腳3種封裝形式。80-pin封裝的單片機(jī)沒有引出用于擴(kuò)展方式的端口,僅引出了一個8路A/D接口。競賽可使用112或80引腳封裝器件。
2 BDM接口和使用
  BDM調(diào)試器內(nèi)部有一個8位的MC9HC08JB16單片機(jī),該單片機(jī)有USB接口,可與PC機(jī)信息交互。HC08單片機(jī)和S12單片機(jī)間僅使用一根I/O線通信,這根相連的信號線名為BKGD。HC08單片機(jī)將BKGD置為輸出,以串行發(fā)送命令,發(fā)送完成后轉(zhuǎn)為輸入,以接收信息。S12單片機(jī)收到命令后轉(zhuǎn)為輸出,根據(jù)調(diào)試器發(fā)來的命令回送信息,然后立即轉(zhuǎn)入接收態(tài)。BDM工具以此方式實現(xiàn)S12單片機(jī)的在線調(diào)試、內(nèi)部閃存的燒寫等功能。關(guān)于BDM接口的實現(xiàn),讀者可以參考Freescale任何一款S12單片機(jī)的器件手冊,其對BDM接口的命令字、交互模式等都有詳細(xì)描述。這里主要介紹如何使用BDM接口。
  BDM接口雖然只有BKGD一根信號線,但實際使用過程中,F(xiàn)reescale規(guī)定用一個雙排、6引腳的接插件做BDM接口,如圖1所示,引腳間距為2.54 mm(100 mil)。

?


  雖然使用的是6引腳接插件,實際上有用引腳只有4個。其中BKGD連接到S12處理器的BKGD引腳,RESET連接到S12處理器的RESET引腳,GND是S12目標(biāo)板的地信號,而VDD信號是來自目標(biāo)板的電源信號。VDD信號的連接將在下文中詳細(xì)闡述。
  BDM接口的使用,需要配合PC上安裝的CodeWarrior軟件和BDM調(diào)試工具TTBDM。BDM接口是S12單片機(jī)專用的調(diào)試接口,PC上運行的調(diào)試軟件需要通過USB接口連到HC08單片機(jī),經(jīng)過HC08單片機(jī)的一根I/O線連到S12單片機(jī)的BKGD引腳實現(xiàn)PC和S12單片機(jī)的通信,進(jìn)而實現(xiàn)在線調(diào)試和燒寫閃存功能。
3 利用“BDM for S12(TTBDM)”調(diào)試程序
  BDM調(diào)試工具主要實現(xiàn)三方面的功能:
  (1)應(yīng)用程序的下載與更新;
  (2)單片機(jī)內(nèi)部資源的配置與修復(fù);
  (3)應(yīng)用程序的動態(tài)調(diào)試。
  本中心提供面向S12系列單片機(jī)的BDM工具,TTBDM在硬件設(shè)計上做了改進(jìn),兼容S12和S08兩種BDM調(diào)試器。軟件基于Daniel Malik的TBDML(forums.freescale.com)以及open source BDM軟件。TTBDM可以下載S12或者S08的BDM調(diào)試固件,分別用于調(diào)試S12和S08單片機(jī)。本文僅從用戶角度講述“TTBDM”的使用方法和常見問題的解決辦法。詳情請登陸本中心網(wǎng)站www.tsinghua-mot.net,下載最新版本的“BDM for S12(TTBDM)”用戶手冊。
4 TTBDM硬件設(shè)置
  BDM for S12(TTBDM)設(shè)計了跳線開關(guān),允許用戶對TTBDM進(jìn)行一些特定配置,以此滿足不同用戶的需求。打開TTBDM的硬件小盒,能夠看到4個可以設(shè)置的跳線,分別是J4、J5、J6和J7,如圖2所示。

?


  圖3為J4跳線的引腳圖。J4用來選擇6-pin雙排插針BDM接口中BKGD信號是在第1引腳引出還是從第3引腳引出。當(dāng)J4跳線連接在左側(cè)靠近電路板邊沿的標(biāo)記3引腳時,BKGD信號連接到BDM的第3引腳,如圖3(a);當(dāng)J4跳線連接在右側(cè)靠近R12的標(biāo)記引腳時,BKGD信號連接到BDM接口的第1引腳,如圖3(b)。

?


  J4端接線在1位置處適用于按照Motorola規(guī)定的BDM信號定義。采用這種定義時,BDM頭一定不能插反,插反會導(dǎo)致VDD與BKGD短路,燒毀BDM中HC08單片機(jī)的I/O端或S12單片機(jī)的BKGD端,甚至兩者都被損壞。J4短接線在3位置處,適用于專門為大學(xué)生車模競賽設(shè)計的S12XS單片機(jī)小模塊,其優(yōu)點是如果將BDM插反,也不會損壞S12單片機(jī)和BDM調(diào)試器。
  J5用來給TTBDM的HC08JB16單片機(jī)編程。請注意一定不要在J5上插短接線。
  J6用于調(diào)試S08單片機(jī),在S12的調(diào)試中也一定不要插上短接線。
  J7是為了保留BDM調(diào)試接口的一些特性而設(shè)計的,J7允許用戶設(shè)定是否使用PC機(jī)的USB口上的電源給目標(biāo)板供電,供

3.3 V還是供5 V。建議不要用PC的USB口給目標(biāo)板供電。默認(rèn)情況下,J7不焊接任何插件,表示不向目標(biāo)板供電。由于PC機(jī)的USB接口可提供5 V/500 mA的供電能力,所以TTBDM調(diào)試頭不需要從目標(biāo)板上取電。但TTBDM并不知道目標(biāo)板用的是5 V電源還是3.3 V電源,也就是說BDM上的VDD是5 V還是3.3 V。為了目標(biāo)板的VDD電壓適應(yīng)5 V或3.3 V的BKGD和Reset電平,需要從目標(biāo)板取電,以調(diào)整BKGD和Reset電平。如果目標(biāo)板是5 V供電,則BDM接口的信號電平為5 V;如果目標(biāo)板是3.3 V供電,則BDM接口的信號電平為3.3 V。其他電平也可以工作,如接口是2.5 V等。這部分實現(xiàn)電路如圖4所示。

  其中VCC_USB是從USB接口來的5V電源,用來給整個TTBDM調(diào)試器供電;而VCC_SHIFT是從目標(biāo)板來的電壓VDD,不同VDD使得RESET信號和BKGD信號工作在不同的電壓范圍,能夠與目標(biāo)板VDD匹配。從目標(biāo)板取出的VDD電流小于1mA。
5 TTBDM使用中常見問題及解決辦法
  問題1:正確安裝了BDM for S12(TTBDM)的驅(qū)動程序和動態(tài)鏈接庫,并用BDM連接了目標(biāo)單片機(jī)后,在Hiwave.exe的“TBDML HCS12”菜單中沒有出現(xiàn)“Flash...”項,無法對目標(biāo)單片機(jī)進(jìn)行調(diào)試。
  解決辦法:首先,用戶應(yīng)該確保目標(biāo)板供電正常,BDM for S12(TTBDM)默認(rèn)的電源工作方式是目標(biāo)板自供電。如果還有問題,用戶應(yīng)該打開BDM的包裝小盒,查看跳線J4是否已經(jīng)短接。
  問題2:驅(qū)動程序安裝正常,跳線沒有問題,目標(biāo)板供電,但BDM還是不工作。
  解決辦法:可能是用戶的CodeWarrior版本不對,沒有利用CodeWarrio V4.7以上的版本。安裝高版本的CodeWarrior即可解決問題。
  問題3:BDM調(diào)試目標(biāo)板基本正常,能夠下載程序、擦除閃存、設(shè)斷點調(diào)試,但是,在某次使用中閃存突然被“鎖死”,之后目標(biāo)板無法繼續(xù)使用。
  解決辦法:Freescale公司的HCS12系列單片機(jī)具有片內(nèi)閃存的加密功能,對于加密或保護(hù)后的閃存,用戶無法通過BDM調(diào)試工具對其閃存進(jìn)行程序擦除、讀取等操作。同時,如果用戶在利用BDM調(diào)試單片機(jī)時操作不當(dāng),同樣會使單片機(jī)出現(xiàn)閃存、無法讀取、擦除和下載等問題。監(jiān)控程序在$F000到$FFFF這一段加了保護(hù),但并沒有加密。即使對加了密的S12,也可以使用TTBDM工具方便地解鎖和擦除。在決定使用擦除保護(hù)程序時,應(yīng)考慮在出現(xiàn)單片機(jī)被鎖定的情況下有沒有能力解鎖。對于閃存沒有進(jìn)入“保護(hù)模式”的單片機(jī),如果利用BDM for S12(TTBDM)調(diào)試單片機(jī),當(dāng)用戶點擊“TBDML HCS12”菜單下的“Flash…”命令時,會出現(xiàn)如圖5所示的正常情況。從圖中可以看出,當(dāng)前目標(biāo)板單片機(jī)的FLASH_C000存儲區(qū)域已有下載程序,狀態(tài)為“Programmed”,其余模塊為空,狀態(tài)為“Blank”。因此,可以繼續(xù)對該單片機(jī)的閃存進(jìn)行讀取、擦除和下載等操作。但是,在出現(xiàn)上述閃存加密問題后,HCS12系列單片機(jī)就進(jìn)入了“閃存保護(hù)模式”,即Secure Mode。這時,如果利用BDM for S12(TTBDM)調(diào)試單片機(jī),當(dāng)用戶點擊“TBDML HCS12”菜單下的“Flash…”命令時,圖5中部分FLASH區(qū)域的狀態(tài)就會顯示為“Skipped”。此時,用戶便無法再對閃存進(jìn)行正常操作。因此,需要解除閃存的“保護(hù)模式”(Secure Mode),執(zhí)行Unsecure的操作。BDM for S12(TTBDM)提供了Unsecure的功能,具體操作過程較為復(fù)雜,請參閱用戶手冊。

?


  以上提到的是在應(yīng)用過程中發(fā)現(xiàn)的比較普遍的問題,也是用戶經(jīng)常咨詢和討論的一些問題。在設(shè)計之前最好能完整地閱讀幫助文檔以及芯片數(shù)據(jù)手冊,了解各個工作狀態(tài)。很多可能出現(xiàn)的問題在數(shù)據(jù)手冊里已有明確說明。這樣做在程序設(shè)計的前期可能會影響一些進(jìn)度,但到后期調(diào)試階段會帶來極大的方便。至于工具使用上的問題,F(xiàn)reescale單片機(jī)/DSP應(yīng)用開發(fā)研究中心會及時在大賽的官方網(wǎng)站上做出相應(yīng)說明,請大家留意。

參考文獻(xiàn)
[1] 邵貝貝.單片機(jī)嵌入式應(yīng)用的在線開發(fā)方法.北京:清華大學(xué)出版社,2004.
[2] MC9S12XS128 Device User Guide.Freescale semiconductor,2008,5.

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。