S12单片机BDM调试器使用技巧
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
S12单片机BDM调试器使用技巧
摘要:全国大学生“飞思卡尔杯”智能汽车竞赛推荐使用Freescale公司的M C9S12系列单片机为主控芯片;有USB接口的TTBDM调试器是主要软件调试工具。TTBDM调试器通过USB接口与PC通信,BDM接口与目标CPU通信,实现嵌入式软件的在线调试。根据往届车模竞赛中参赛者遇到的一些问题和本中心在长期支持国内S12系列单片机用户中积累的经验,总结出BDM调试器的用法和注意事项,提供一些使用技巧,以求对参赛者和S12产品开发工程师有所帮助。
关键词: 9S12单片机;BDM;TTBDM
第四届全国大学生“飞思卡尔杯”智能气车竞赛推荐采用最新的MC9S12XS1 28(以下简称XS128)单片机作为主控芯片,替代MC9S12DG128。XS128是Free scale公司推出的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接口。竞赛可使用1 12或80引脚封装器件。
2 BDM接口和使用
BDM调试器内部有一个8位的MC9HC08JB16单片机,该单片机有USB接口,可与PC机信息交互。HC08单片机和S12单片机间仅使用一根 I/O线通信,这根相连的信号线名为BKGD。HC08单片机将BKGD置为输出,以串行发送命令,发送完成后转为输入,以接收信息。S12单片机收到命令后转为输出,根据调试器发来的命令回送信息,然后立即转入接收态。BDM工具以此方式实现S12单片机的在线调试、内部闪存的烧写等功能。关于BDM接口的实现,读者可以参考Frees cale任何一款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调试工具T TBDM。BDM接口是S12单片机专用的调试接口,PC上运行的调试软件需要通过U SB接口连到HC08单片机,经过HC08单片机的一根I/O线连到S12单片机的BK GD引脚实现PC和S12单片机的通信,进而实现在线调试和烧写闪存功能。
3 利用“BDM for S12(TTBDM)”调试程序
BDM调试工具主要实现三方面的功能:
(1)应用程序的下载与更新;
(2)单片机内部资源的配置与修复;
(3)应用程序的动态调试。
本中心提供面向S12系列单片机的BDM工具,TTBDM在硬件设计上做了改进,兼容S12和S08两种BDM调试器。软件基于Daniel Malik的TBDML(forums.fr )以及open source BDM软件。TTBDM可以下载S12或者S08的BD M调试固件,分别用于调试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”菜单中没有出现“F lash...”项,无法对目标单片机进行调试。
解决办法:首先,用户应该确保目标板供电正常,BDM for S12(TTBDM)默认的电源工作方式是目标板自供电。如果还有问题,用户应该打开BDM的包装小盒,查看跳线J4是否已经短接。
问题2:驱动程序安装正常,跳线没有问题,目标板供电,但BDM还是不工作。
解决办法:可能是用户的CodeWarrior版本不对,没有利用CodeWarrio V4. 7以上的版本。安装高版本的CodeWarrior即可解决问题。