S12单片机BDM调试器使用技巧
- 格式:doc
- 大小:187.50 KB
- 文档页数:6
S12(X)单片机BDM调试器使用技巧(1)时间:2010-01-28 11:03来源:电子设计吧作者:网络点击:206次第五届全国大学生“飞思卡尔”杯智能气车竞赛限制采用最新的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接口。
竞赛可使用112或80引脚封装器件。
2 BDM接口和使用BDM调试器内部有一个8位的MC9HC08JB16单片机,该单片机有USB接口,可与PC机信息交互。
HC08单片机和S12单片机间仅使用一根 I/O线通信,这根相连的信号线名为BKGD。
HC08单片机将BKGD置为输出,以串行发送命令,发送完成后转为输入,以接收信息。
S12单片机收到命令后转为输出,根据调试器发来的命令回送信息,然后立即转入接收态。
BDM工具以此方式实现S12单片机的在线调试、内部闪存的烧写等功能。
S12单片机BDM调试器使用技巧
薛涛;邵贝贝
【期刊名称】《电子技术应用》
【年(卷),期】2009(035)002
【摘要】全国大学生"飞思卡尔杯"智能汽车竞赛推荐使用Freescale公司的
MC9S12系列单片机为主控芯片;有USB接口的TTBDM调试器是主要软件调试工具.TTBDM调试器通过USB接口与PC通信,BDM接口与目标CPU通信,实现嵌入式软件的在线调试.根据往届车模竞赛中参赛者遇到的一些问题和本中心在长期支持国内S12系列单片机用户中积累的经验,总结出BDM调试器的用法和注意事项,提供一些使用技巧,以求对参赛者和S12产品开发工程师有所帮助.
【总页数】3页(P14-16)
【作者】薛涛;邵贝贝
【作者单位】清华大学Freescale单片机教学培训中心,北京,100084;清华大学Freescale单片机教学培训中心,北京,100084
【正文语种】中文
【中图分类】TP3
【相关文献】
1.Proteus软件的I2C调试器在单片机设计性实验中的应用 [J], 刘小燕
2.基于S12微控制单元的BDM调试系统 [J], 沈晓慧;刘晓升;朱巧明
3.一种基于USB2.0的BDM高速编程调试器的设计 [J], 孟忠伟;王宜怀;祝叶
4.MAXQ系列单片机的JTAG下载调试器设计 [J], 李圣勇
5.Microchip推出适用于8位、16位及32位PIC单片机和dsPIC数字信号控制器的新一代高速在线调试器 [J],
因版权原因,仅展示原文概要,查看原文内容请购买。
MC68HC912B32背景调试模式介绍(一)背景调试模式背景调试模式(Background Debug Mode)是当前MCU 普遍采用的调试方式之一,它可用来进行系统开发,在线调试和编程,应用程序的下载和在线更新。
因为BDM 控制模块不寄居在CPU 中,所以BDM 硬件命令可以在CPU 正常运行时被并行执行,其他的BDM 命令是基于固件的,且必须在CPU 处于背景调试模式下才能被执行。
BDM 模块利用CPU 的空闲周期和CPU 进行通信,必要时可以从CPU 的工作周期中偷取一个周期。
以CPU12为内核的MCU 的运行模式有单片方式(single chip)和扩展方式(Expanded Mode)两种,运行模式主要由BKGD, MODB 和MODA 引脚的状态决定。
在单片模式下又有两种运行模式:普通运行模式(Normal single chip)和特殊运行模式(Special single chip),而只有在特殊模式下BDM 才能被激活,因此特殊单片模式又称BDM 模式。
PC 通过BDM 头与目标机相连,如图1所示。
BDM 插头图1 PC 通过BDM 和目标机相连(二)BDM 串行接口BDM 串行接口通过BKGD 引脚和外部主机进行通信单线通信,该引脚需要一个外部控制器在BKGD 引脚上产生一个下降沿来指示位通信的开始,每一位的传递需要至少16个E 时钟周期。
BKGD 是一个漏极开路驱动的引脚,平时靠内部上拉电阻维持高电平。
可以被外部控制器或者MCU 驱动。
如果在两个下降沿之间的时间超过512个E 时钟周期则会产生超时,此时硬件将清除命令寄存器。
目前常用的BDM 调试头如图2所示。
BKGD NC V FP 135246GNDRESETV DD图2 BDM 调试插头引脚定义(三)进入BDM 模式如果要使用固件指令则必须先将BDM 激活,BDM 在任何操作模式下都可以被激活。
以下介绍让目标机进入BDM 调试模式的方法:首先,将目标机的BKGD 引脚拉低,然后给目标机的RESET 引脚加低电平,即给目标机复位,复位脉冲要足够宽,至少要大于目标机的512个E 时钟周期。
飞思卡尔单片机S12使用方法及程序单片机简介:9S12XS128MAA单片机是16位的单片机80个引脚,CPU是CPU12X,内部RAM 8KB,EEPROM:2KB,FLASH:128KB,外部晶振16M,通过内部PLL可得40M总线时钟。
9S12XS128MAA单片机拥有:CAN:1个,SCI:2个,SPI:1个,TIM:8个,PIT:4个,A/D:8个,PWM:8个下面介绍下我们项目用到的几个模块给出初始化代码1、时钟模块初始化单片机利用外部16M晶振,通过锁相环电路产生40M的总线时钟(9S12XS128系列标准为40M),初始化代码如下:view plaincopy to clipboardprint?/******************系统时钟初始化****************/void Init_System_Clock(){asm { // 这里采用汇编代码来产生40M的总线LDAB #3STAB REFDVLDAB #4STAB SYNRBRCLR CRGFLG,#$08,*//本句话含义为等待频率稳定然后执行下一条汇编语句,选择此频率作为总线频率BSET CLKSEL,#$80}}/******************系统时钟初始化****************/void Init_System_Clock(){asm { // 这里采用汇编代码来产生40M的总线LDAB #3STAB REFDVLDAB #4STAB SYNRBRCLR CRGFLG,#$08,*//本句话含义为等待频率稳定然后执行下一条汇编语句,选择此频率作为总线频率BSET CLKSEL,#$80}上面的代码是汇编写的,这个因为汇编代码量比较少,所以用它写了,具体含义注释已经给出,主函数中调用此函数即可完成时钟初始化,总线时钟为40M.2、SCI模块初始化单片机电路做好了当然少不了和PC之间的通信,通信通过单片机串口SCI链接到PC 端的COM口上去。
S12(X)单片机BDM调试器使用技巧第五届全国大学生“飞思卡尔”杯智能气车竞赛限制采用最新的MC9S12XS128(以下简称XS128)单片机作为主控芯片,替代MC9S12DG128。
XS128是Freescale公司推出的S12系列单片机中的一款增强型16位单片机。
片内资源丰富,接口模块有SPI、SCI、IIC、A/D、PWM等常见模块,在汽车电子应用领域具有广泛用途。
XS128和以往大赛使用的S12DG128系列单片机一样,调试接口都是使用Freescale公司传统的BD M(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接口的命令字、交互模式等都有详细描述。
USBDM通用型BDM使用手册1. 特点USB接口系统软件CodeWarrior V6。
2(HCS08系列),CodeWarrior V4。
7(S12 及S12X系列)支持Freescale MC9S08 系列8 位单片机(GT,GB,AW,QG,QE等) MC9S12及S12X 系列16 位单片机,Flexis Coldfire V1系列32 位单片机(QE,JM)2. BDM08 开发包清单USBDM驱动光盘 1 张:USBDM 硬件 1 个;USB 电缆线 1 根;6针BDM 电缆线 1 根;3. USBDM 跳线设置和连接BDM 为标准BDM(freescale定义)1脚BKGD 2脚GND 4脚RESET 6脚VCC 3脚,5脚N.C.BDM通过电缆连接到目标板BDM.注意必需接正确.对应脚相接,即1对1,2对2…. 接错了会损坏BDM08,或目标板.通电前必需认真核对.通常目标板都有电源电路推荐用目标板自已供电,JP1上短路块短接3-4.1-3 3-4 3-5 说明Close Open OpenBDM由USB提供+5V电源,目标板由BDM提供+5V电源。
请确保目标板耗电小于200mA。
Open Close Open3-4短接(Close)BDM由USB提供电源。
目标板自已供电+5V或+3.3V,不由BDM供电。
Open Open CloseBDM由USB提供+5V电源。
目标板由BDM供电+3.3V电源。
请确保目标板耗电小于200mAOpen Open Open 全Open无效如有的目标板,MCU是+3.3V,板上还有需+5V供电的外设(芯片).就可把3-5短接,给MCU供+3.3V,另加一根线从JP1的2脚(或1脚)接到目标板的+5V端.如目标板自带+5V到+3.3V稳压块,也可3-4短接, 另加一根线从JP1的2脚(或1脚)接到目标板的+5V端, MCU由目标板的+3.3V稳压块供电.JP1的5,6脚是+3.3V,也可以引出供目标板用.4.安装CodeWarrior6.25. 安装USBDM 驱动程序将USB电缆连接好USBDM与PC(注意:不要和TBDML使用同一USB口。
2011年全国大学生电子设计竞赛帆板控制系统F 题120212组2011年9月6日摘要本文主要介绍了一种帆板控制系统;通过对直流风扇风速的控制,调节风力大小,改变帆板的转角;其主控芯片为MC9S12XS128,通过PWM对电机驱动7960的控制,来调节电机的转速,同时应用光电编码器和倾角传感器作为反馈,对整个调速系统进行PID闭环调节,以到所预期的角度;并且介绍了在调试过程中的实时监控、宏观曲线分析和数据分析应用等调试手段;文章着重介绍核心器件的选择、各部分电路、软件的设计和调试手段关键词:PID调速MC9S12XS128 调试手段目录1系统方案................................................... 错误!未定义书签。
角度调整系统方案的论证与选择........................................................... 错误!未定义书签。
电机驱动方案的论证与选择................................................................. 错误!未定义书签。
MCU控制系统的论证与选择............................................................... 错误!未定义书签。
2系统理论分析与计算......................................... 错误!未定义书签。
帆板受力的分析与计算....................................................................... 错误!未定义书签。
帆板转角的原理............................................................................... 错误!未定义书签。
S12单片机模块应用及程序下载调试一、S12 单片机模块简介S12 单片机是飞思卡尔(Freescale)公司推出的一款 16 位单片机,它采用了高性能的 CPU 内核,具有较高的运行速度和处理能力。
该单片机内部集成了丰富的外设,如定时器、串口、A/D 转换器、PWM 模块等,为系统设计提供了极大的便利。
S12 单片机的存储空间较大,包括程序存储器、数据存储器和EEPROM 等。
其编程方式灵活,可以使用C 语言或汇编语言进行开发。
二、S12 单片机模块的应用领域1、汽车电子在汽车电子领域,S12 单片机可用于发动机控制、车身电子、底盘控制等系统。
例如,通过监测传感器的数据,实现对发动机点火时机、燃油喷射量的精确控制,提高燃油经济性和动力性能。
2、工业控制在工业自动化领域,S12 单片机可用于各种控制系统,如机器人控制、流水线控制、智能仪表等。
它能够实时采集和处理数据,实现对生产过程的精确控制和监测。
3、消费电子在消费电子领域,S12 单片机可用于智能家居、智能玩具、电子游戏机等产品。
它可以实现对设备的智能控制和人机交互功能。
4、医疗设备在医疗设备领域,S12 单片机可用于医疗器械的控制和监测,如血糖仪、血压计、心电图仪等。
它能够保证设备的准确性和稳定性。
三、S12 单片机模块的程序下载调试方法1、硬件准备在进行程序下载调试之前,需要准备好以下硬件设备:(1)S12 单片机开发板(2)下载调试工具,如 BDM(Background Debug Mode)调试器或 USB 转串口模块(3)电脑2、软件准备(1)安装单片机开发环境,如 CodeWarrior 等。
(2)安装下载调试工具的驱动程序。
3、建立工程打开开发环境,新建一个 S12 单片机的工程。
在工程中设置好单片机的型号、时钟频率、存储空间等参数。
4、编写程序使用 C 语言或汇编语言编写 S12 单片机的程序。
在程序中,需要合理使用单片机的各种资源,实现所需的功能。
飞思卡尔MC9S12XS128单片机各模块使用方法及寄存器配置手把手教你写S12XS128程序--PWM模块介绍该教程以MC9S12XS128单片机为核心进行讲解,全面阐释该16位单片机资源。
本文为第一讲,开始介绍该MCU的PWM模块。
PWM 调制波有8个输出通道,每一个输出通道都可以独立的进行输出。
每一个输出通道都有一个精确的计数器(计算脉冲的个数),一个周期控制寄存器和两个可供选择的时钟源。
每一个P WM 输出通道都能调制出占空比从0—100% 变化的波形。
PWM 的主要特点有:1、它有8个独立的输出通道,并且通过编程可控制其输出波形的周期。
2、每一个输出通道都有一个精确的计数器。
3、每一个通道的P WM 输出使能都可以由编程来控制。
4、PWM 输出波形的翻转控制可以通过编程来实现。
5、周期和脉宽可以被双缓冲。
当通道关闭或PWM 计数器为0时,改变周期和脉宽才起作用。
6、8 字节或16 字节的通道协议。
7、有4个时钟源可供选择(A、SA、B、SB),他们提供了一个宽范围的时钟频率。
8、通过编程可以实现希望的时钟周期。
9、具有遇到紧急情况关闭程序的功能。
10、每一个通道都可以通过编程实现左对齐输出还是居中对齐输出。
1、PWM启动寄存器PWMEPWME 寄存器每一位如图1所示:复位默认值:0000 0000B图1 PWME 寄存器每一个PWM 的输出通道都有一个使能位P WMEx 。
它相当于一个开关,用来启动和关闭相应通道的PWM 波形输出。
当任意的P WMEx 位置1,则相关的P WM 输出通道就立刻可用。
用法:PWME7=1 --- 通道7 可对外输出波形PWME7=0 --- 通道7 不能对外输出波形注意:在通道使能后所输出的第一个波形可能是不规则的。
当输出通道工作在串联模式时(PWMCTL 寄存器中的CONxx置1),那么)使能相应的16位PWM 输出通道是由PWMEx 的高位控制的,例如:设置PWMCTL_CON01 = 1,通道0、1级联,形成一个16位PWM 通道,由通道 1 的使能位控制PWM 的输出。
USBDMV1.0 使用说明 2009 最新款三合一 HCS08HCS12ColdFireV1 BDM 调试器 使用说明(Version0.1) TsinghuaUniversityTARGET USBSupportHCS08HCS12ColdFireV1清华 Freescale MCU&DSP 应用开发研究中心USBDM Copyright(C) 2009Version1.0清华 FreescaleMCU&DSP 应用开发研究中心 Copyright(C)2009清华 FreescaleMCU&DSP 应用开发中心 010‐62785779www.tsinghua‐USBDMV1.0 使用说明 USBDM 简介新款 BDM(BackgroundDebugMode)调试器是专门为 Freescale 公司的基于 HCS08,HCS12 和 ColdFireV1 内核的处理器设计的,用 USB 口接 PC 机,命名为 USBDM。
USBDM 是清华 FreescaleMCU&DSP 应用开发中心在研究了 Freescale 公司因特 网上的技术论坛中的 USBDM 开源软件做了些修改,并重新设计了硬件,生产的 调试器。
对三类 Freescale 单片机的试用证明,新款 BDM 调试器能适应 CodeWarroir 软 件调试环境,且在和 PC 机通讯速率上比老款 BDM 快很多。
USBDM 使用说明USBDM 采用了 Freescale 公司新一代的 S08 内核的带 USB 接口单片机: MC9S08JM60CLD(或者 MC9S08JS16CWJ) ,比起上一代 OSBDM 和 TurboBDM 等, 新款的 USBDM 的 USB 接口速度由以前的 1.5Mbps 提高到了 12Mbps, 在下载 S19 代码,调试运行时速度明显提高,同时 USBDM 吸取了上一代 BDM 调试接口的 经验,更加可靠,bug 更少。
BDM调试器使用方法1.插上5V电源2.和PC机间用普通串口线相连3.配置超级终端首先打开超级中断开始-→程序-→附件-→通讯-→超级终端选择Hypertrm填入名称,这里用MC9S12DP256。
选择“确定”如果开发板是连接到串口1,就选“直接连接到串口1”,如果开发板连接到串口2,就选“直接连接到串口2”。
选择“确定”按BDM头上的SW-PB复位键会看到以下内容此时BDM头还没有跟目标板相连。
这几个选项意义如下:1设定目标板的工作频率。
我们的目标板使用的是16M无源晶振。
选1后输入16000。
2让目标板复位3重新连接4擦除flash并解开密码锁(S12系列单片机有flash密码锁)5此选项不要选用户设定1为16000KHZ后,把BDM头6针插针和开发板的BDMIN 6针插座相连。
注意数据线红色一端靠近开发板BDMIN 的1。
此时BDM调试器给目标板供电。
回车,进入BDM调试器控制界面。
再次按BDM调试器的SW-PB可见到如下欢迎画面。
键入fload ;b,回车,点击超级终端的“传送”,选择“发送文本文件”。
在找到要下载的*.s19文件后,按“打开(O)”,这样,就把文件下载到单片机中去了。
注意:文件类型选“所有文件”。
这里用户可以先下载我们提供的“debug of dp256.S19”文件。
下载完之后用户就可以不需要BDM头进行单板调试了。
Debug of dp256的使用方法,用户可参阅监控程序的用户说明文档。
擦除目标板的flash可用以下命令:fbulk下面对BDM调试器中最有用的命令进行说明。
其他的命令用户可参阅DB12RG4.pdf。
输入help命令可看到如下内容:按任意键可看到剩下的内容ASM 反汇编命令。
后面接反汇编的开始地址。
BAUD 设定BDM通讯的波特率。
BDMDB 进入BDM单步命令模式BR 设断点。
例如S>BR 4000 38:8000 这是在4000和38页8000处设两个硬件断点。
S12系列单片机系统在智能车中的应用1.引言随着汽车的普及,智能车及其相关技术的研究已经成为热门。
现在半导体在汽车中的应用越来越普及,汽车的电子化已成为行业发展的必然趋势。
它包括了汽车电子控制装置,即通过电子装置控制汽车发动机、底盘、车身、制动防抱死及动力转向系统等,到车载汽车电子装置,即汽车信息娱乐系统、导航系统、汽车音响及车载通信系统等等,几乎覆盖了汽车的所有系统。
汽车电子的迅猛发展必将满足人们逐步增长的对于安全、节能、环保以及智能化和信息化的需求。
作为全球最大的汽车电子半导体供应商,飞思卡尔一直致力于为汽车电子系统提供全范围应用的单片机、模拟器件和传感器等器件产品和解决方案。
飞思卡尔在汽车电子的半导体器件市场拥有领先的地位并不断赢得客户的认可和信任。
其中在8 位、16 位及32 位汽车微控制器的市场占有率居于全球第一。
飞思卡尔的S12 是一个非常成功的芯片系列,在全球以及中国范围内被广泛应用于各种汽车电子应用中。
2. S12系列微控制器综述Freescal MC9S12系列MCU是以高速CPU12内核为基础的微控制器系列,简称S12系列。
典型的HC12总线频率为8MHZ,而典型的S12总线频率为25MHZ。
HC12与S12指令完全兼容,故在很多场合统称为HCS12系列微控制器。
HCS12是世界上第一款包含完整的模糊逻辑指令的标准MCU,应用模糊控制指令可以简化控制系统,减少代码,加快程序运行速度。
智能产品的设计人员可利用S12系列微控制器低成本的Flash存储器,轻松实现以微控制器为基础的远程升级、换代和现场进行快速再编程系统设计,可缩短嵌入式产品的设计周期,改善性能,同时也能降低售后服务系统的整体成本。
S12微控制器已广泛应用于通信、工业以及无数消费类电子产品中,例如空调、冰箱、洗衣机、电机控制、PC外围设备和通用机电产品。
2.1 S12系列微控制器的最小系统S12系列微控制器的最小系统主要包括:(一)MC9S12DG128单片机MC9S12DG128系统结构分为两部分:MCU核心和MCU外设。
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即可解决问题。
问题3:BDM调试目标板基本正常,能够下载程序、擦除闪存、设断点调试,但是,在某次使用中闪存突然被“锁死”,之后目标板无法继续使用。
解决办法:Freescale公司的HCS12系列单片机具有片内闪存的加密功能,对于加密或保护后的闪存,用户无法通过BDM调试工具对其闪存进行程序擦除、读取等操作。
同时,如果用户在利用BDM调试单片机时操作不当,同样会使单片机出现闪存、无法读取、擦除和下载等问题。
监控程序在$F000 到$FFFF这一段加了保护,但并没有加密。
即使对加了密的S12,也可以使用TTBDM工具方便地解锁和擦除。
在决定使用擦除保护程序时,应考虑在出现单片机被锁定的情况下有没有能力解锁。
对于闪存没有进入“保护模式”的单片机,如果利用BDM f or 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.。