写这篇文章前,曾经犹豫少许,因为大家都知道BDM是FREESCALE系列MCU著名的调试接口。所以之前也有很多泰斗级的人物,如邵贝贝教授王宜怀老师等有专著为之作论述。因此本文不对调试原理做很深入的分析[能力也有限,呵呵]。这里只对FREESCALE最新的推出的OSBDM-JM60做一个简单的介绍。技术上如有不妥,凡请赐教。
在介绍前先回顾一下官方BDM的历史:
TBDML - Turbo BDM Light:这是一个低成本,开源的调试接口,主要是为HCS12系列MCU开发的。它采用MC908JB08作为主控制器。通过软件升级可以到MC908JB16。
TBLCF - Turbo BDM Light Coldfire:这也是基于MC908JB16的调试器,主要是针对Coldfire V2, V3, and V4系列MCU开发。
OSBDM - Open Source BDM:它同样是基于MC908JB16的调试器接口,主要为目标为 9S08, 9RS08, and Coldfire V1开发的。
OSBDM-JM60 - 9S08JM60 Based OSBDM: 它是基于9S08JM60的调试器接口,兼容以前所有的BDM功能。同时还可以为DSP56800E处理器提供JTAG接口。
可以看出最新款的调试器OSBDM-JM60也是目前为止功能最强劲的。
这款开源调试器是FREESCALE于去年底推出来的。它的资料可以从以下连接下载。
http://forums.freescale.com/t5/OSBDM-JM60-Open-Source-BDM-for/OSBDM-JM60-build-20-1-now-available/m-p/48266
里面的内容可谓之全,有软件代码[当然上位机的源程序,它还是没有公布的,而是提供库文件,不过这并不会影响我们制作或使用],硬件原理图,甚至BOM清单。如果看明白它的介绍,完全可以按照它的方法制作一个自己的调试器。
让我们先从它的硬件构造来分析之:
1.BGND接口:
BGND接口为9S08,RS08, and Coldfire V1系列MCU提供一个6针的BGDN命令调试接口。这个接口采用了74LVC1T45双电源转转换器芯片。用于JM60和目标板电压之间的转换。JM60通常是5V电压[用+5V_SW表示],而目标板电压可以是1.8-5.5V[用+V_TRG表示]。JM60通过TBGND_ EN的高低来控制数据转送的方向。这个信号高为JM60输出信号,低则为JM60接收信号。TBGND_OUT为JM60一则的信号,TBGND_IN则为目标板一则的信号。
2.电源控制:
OSBDM提供一个对调试器电源和目标板电源的限流功能。具说USB连到电脑初始化时,电流不是一般的大呀,因为搞这个调试器再把咱的电脑USB口烧了[>500mA],那多悲呀。这是通过一个电源切换芯片mic2026来实现的,它提供一个两路电源选择的功能,它的意思就是一个5V的电源输入,然后输出两路5V电源,而这两路电源是否有输出呢,是受你控制的,你使能那个管脚,那一路就电源就可以用。当然咱用它主要是因为它有一个过流检测的功能。它有两个管脚FLGA和FLGB分别指示+5VSW_FLAUT和+VTRG_FLAUT是否过流。刚才说了,它是一个双电源的芯片,一则是5V电源,为BGND,RS232以及26针的BDM调试口供电。另一则为目标板电源供电。由于目标电压为3.3V,所以又用了一个稳压块TPS79933来将5V转为3.3V。因为这个稳压块是可调的,所以通过调节一下R4,R7的阻值,可以得到1.8-4.5V的+V_TRG电压。
3.串口转换:
这里用了一个ICL3232串口电平转换芯片。它的功能就是MCU的3V和电脑要的5V 之间来回转。这类芯片只要在有串口应用的地方就可以看到它们的身影。虽然我们看到最多的是MAX232芯片。所以就不多说它了。
4.VPP生成控制电路:
这个电路是为RS08系列的MCU提供FLASH编程电压的,我们都知道对FLASH编程要较高的电压才行。这里为此提供了一个12V的电压。它是通过一个升压块U6 tps61041来实现的。tps61041的输入是1.8-6v,输出是28V以下的电压。标准应用是输入3.3/5V,输出12V。正和我们的要求相合。
芯片管脚也不多,一共5个,输入[VIN],输出[SW],使能[EN],反馈[FB]和地[GND]。
5.目标板复位电路:
这块由3个三极管实现。JM60一侧为TRESET_OUT和TRESET_IN信号,目标板一侧则为TRG_RESET+信号。这个信号又受到+V_TRG的电压控制。
6.CF_V2/V3/V4接口:
用两片门电路实现驱动和缓冲。将26针的标准BDM接口和MCU相连接。
其它还有就是一些插针,跳线和LED什么的了,这些是对不同系列MCU有不同配置的,看一下它的使用说明可以了,这就不做介绍了。