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

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

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

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

?

  第四屆全國(guó)大學(xué)生“飛思卡爾杯”智能氣車競(jìng)賽推薦采用最新的MC9S12XS128(以下簡(jiǎn)稱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)總線時(shí)鐘最高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位,邏輯時(shí)鐘選擇頻率寬;
  (5)1個(gè)16路12位精度A/D轉(zhuǎn)換器;
  (6)控制器局域網(wǎng)模塊(CAN);
  (7)增強(qiáng)型捕捉定時(shí)器。
  MC9S12XS128單片機(jī)有112、80和64引腳3種封裝形式。80-pin封裝的單片機(jī)沒有引出用于擴(kuò)展方式的端口,僅引出了一個(gè)8路A/D接口。競(jìng)賽可使用112或80引腳封裝器件。
2 BDM接口和使用
  BDM調(diào)試器內(nèi)部有一個(gè)8位的MC9HC08JB16單片機(jī),該單片機(jī)有USB接口,可與PC機(jī)信息交互。HC08單片機(jī)和S12單片機(jī)間僅使用一根I/O線通信,這根相連的信號(hào)線名為BKGD。HC08單片機(jī)將BKGD置為輸出,以串行發(fā)送命令,發(fā)送完成后轉(zhuǎn)為輸入,以接收信息。S12單片機(jī)收到命令后轉(zhuǎn)為輸出,根據(jù)調(diào)試器發(fā)來的命令回送信息,然后立即轉(zhuǎn)入接收態(tài)。BDM工具以此方式實(shí)現(xiàn)S12單片機(jī)的在線調(diào)試、內(nèi)部閃存的燒寫等功能。關(guān)于BDM接口的實(shí)現(xiàn),讀者可以參考Freescale任何一款S12單片機(jī)的器件手冊(cè),其對(duì)BDM接口的命令字、交互模式等都有詳細(xì)描述。這里主要介紹如何使用BDM接口。
  BDM接口雖然只有BKGD一根信號(hào)線,但實(shí)際使用過程中,F(xiàn)reescale規(guī)定用一個(gè)雙排、6引腳的接插件做BDM接口,如圖1所示,引腳間距為2.54 mm(100 mil)。

?


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

?


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

?


  J4端接線在1位置處適用于按照Motorola規(guī)定的BDM信號(hào)定義。采用這種定義時(shí),BDM頭一定不能插反,插反會(huì)導(dǎo)致VDD與BKGD短路,燒毀BDM中HC08單片機(jī)的I/O端或S12單片機(jī)的BKGD端,甚至兩者都被損壞。J4短接線在3位置處,適用于專門為大學(xué)生車模競(jìng)賽設(shè)計(jì)的S12XS單片機(jī)小模塊,其優(yōu)點(diǎn)是如果將BDM插反,也不會(huì)損壞S12單片機(jī)和BDM調(diào)試器。
  J5用來給TTBDM的HC08JB16單片機(jī)編程。請(qǐng)注意一定不要在J5上插短接線。
  J6用于調(diào)試S08單片機(jī),在S12的調(diào)試中也一定不要插上短接線。
  J7是為了保留BDM調(diào)試接口的一些特性而設(shè)計(jì)的,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接口的信號(hào)電平為5 V;如果目標(biāo)板是3.3 V供電,則BDM接口的信號(hào)電平為3.3 V。其他電平也可以工作,如接口是2.5 V等。這部分實(shí)現(xiàn)電路如圖4所示。

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

?


  以上提到的是在應(yīng)用過程中發(fā)現(xiàn)的比較普遍的問題,也是用戶經(jīng)常咨詢和討論的一些問題。在設(shè)計(jì)之前最好能完整地閱讀幫助文檔以及芯片數(shù)據(jù)手冊(cè),了解各個(gè)工作狀態(tài)。很多可能出現(xiàn)的問題在數(shù)據(jù)手冊(cè)里已有明確說明。這樣做在程序設(shè)計(jì)的前期可能會(huì)影響一些進(jìn)度,但到后期調(diào)試階段會(huì)帶來極大的方便。至于工具使用上的問題,F(xiàn)reescale單片機(jī)/DSP應(yīng)用開發(fā)研究中心會(huì)及時(shí)在大賽的官方網(wǎng)站上做出相應(yīng)說明,請(qǐ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)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請(qǐng)及時(shí)通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。