Introduction

USBDM is a debugger hardware interface for a range of Freescale microcontrollers. It is designed to work with Freescale's Codewarrior software under Windows and Linux. More recently basic support for Coldfire and Kinetis with the Codesourcery Tool chain or ARM Ltd GNU Tools for ARM has been added. A set of stand-alone programmers are also provided.

The attached files provide a port of a combined TBDML/OSBDM/TBLCF code to various processors. The primary motivation for doing this was to produce a single BDM that could be used with the following processors:

  • RS08
  • HCS08,
  • HC12,
  • Coldfire V1-4 microcontrollers
  • MC56F800xx Digital Signal Controllers (very limited range of devices).
  • Kinetis ARM-cortex

Other features have also been added compared to the original TBDML/OSBDM designs.

This site contains links to Version 4 of the following:

  • A set of software drivers for MS windows and Linux that work with various version of the Freescale Codewarrior IDE, including the latest Eclipse version.
  • Standard-alone programmers.
  • A description of, and design files for, several versions of suitable BDM hardware
  • The firmware required for the above BDM hardware.

Quick Links

JS16 based versions (Current designs)

The following two designs & variations use the MC9S08JS16CWJ (20 pin SOIC).
This chip is USB2 Full speed and supports initial programming over USB without needing a BDM.

Minimal design - Supports HCS12, HCS08 and Coldfire V1 Minimal design - Supports HCS12, HCS08, Coldfire V1 and Kinetis (via SWD)

  • These are two alternative designs using a MC9S08JS16CWJ (20 pin SOIC).
  • It is easier to construct than the JMxx version
  • It may be programmed over the USB connection and doesn't require a BDM for initial programming.
  • It replaces the Minimal JB16 designs and is recommended (by me) for newbies!
  • A PCB design is supplied but is should be possible to roll-your-own on a prototyping board.
  • An alternative, larger design is provided that supports Serial over USB (CDC interface) and Kinetis via SWD.

Minimal design - Supports Coldfire V2,3,4, Kinetis(via JTAG) and DSC (M56F80xx only)

  • This is a minimal design using a MC9S08JS16CWJ (20 pin SOIC).
  • It is easier to construct than the JMxx version
  • It may be programmed over the USB connection and doesn't require a BDM for initial programming.
  • It is approximately equivalent to the earlier JB16 based TBLCF design in functionality.
  • A PCB design is supplied but is should be possible to roll-your-own on a prototyping board.
  • An alternative, larger design is provided that supports Serial over USB (CDC interface).

JMxx based versions (Current designs)

The following designs use the MC9S08JM60CLD (44 pin LQFP).
This chip is USB2 Full speed and requires a HCS08 BDM for programming the device.

USBDM-CF - Supports HCS12, HCS08, RS08 & Coldfire V1, V2, V3 & V4, Kinetis(via JTAG) and MC56F80xx

  • This is a complete fully-featured design using a MC9S08JM60CLD (44 pin LQFP).
  • It has target power and various other options.
  • It REQUIRES a BDM for initial programming.
  • Later firmware updates may be done over the USB 
    USBDM-TWR-xxxx - Supports various Freescale Tower systems
  • This supports the OSBDM-JM60 hardware as used in various Freescale Tower systems.
  • Allows use of the stand-alone USBDM programmers with Tower boards.
  • Significant speed improvement over OSBDM with some targets.
  • Serial port support uses the standard USB CDC interface and so serial ports appear as the usual COM devices under Windows and Linux. 
    This means they may be used with standard serial programs such as Hyperterminal and within a Terminal window in Codewarrior Eclipse.

MK20DX128 based versions (Current designs)

The following design use the MK20DX128 present on various Freescale FREEDOM boards (Arduino form factor).
This chip is USB2 Full speed and the chips on the Freedom boards include a pre-rogrammer bootloader (OpenSDA) that allows installation of USBDM without a programmer.

USBDM_OpenSDA - Supports various Freescale Freedom boards

  • This supports the OpenSDA hardware as used in various Freescale Freedom systems.
  • Allows use of the stand-alone USBDM programmers with FRDM boards.
  • The Freedom board may be used to Open source tool chains such as Codesourcery or ARM Ltd GNU tools.
  • The Freedom board may be used as a programmer for external devices (with the addition of a cable and header).
  • Serial port support uses the standard USB CDC interface and so serial ports appear as the usual COM devices under Windows and Linux. 
    This means they may be used with standard serial programs such as Hyperterminal and within a Terminal window in Codewarrior Eclipse or Eclipse Juno (with suitable plugin).

JB16 based versions - These design are obsolete

Please note that these designs are obsolete.

The JB16 chip used in these designs have a ROM firmware flaw which makes it impossible to reprogram the chip firmware. When the chip is in bootloader mode it fails to enumerate properly under Windows 7 or 8 and later updates of WIN-XP. Because of this it is not possible to update the firmware which make it impractical to support them.
The USBDM software may still work to some extent but I cannot make any guarantees.

These versions were mainly produced to be compatible with the previous hardware versions of TBDML or OSBDM which were based on the MC908JB16. This is a USB low speed device. The provided firmware versions allow (some) of these devices to be updated to a combined TBDML/OSBDM. It also allows these to be used with the new Eclipse-based Codewarror which does not support the original osbdm or tbdml.

There are several hardware designs supplied :

  • Complete USBDM - Supports HCS12, HCS08, RS08 & Coldfire V1

    • This is a complete fully-featured design using MC68HC908JB16DW (28 pin SOIC)
  • Minimal TBDML 20pin SOIC - Supports HCS12, HCS08, Coldfire V1
    • This is a very minimal design using MC68HC908JB16DW (28 pin SOIC)
  • Minimal TBDML 28pin SOIC - Supports HCS12, HCS08, Coldfire V1
    • This is a very minimal design using MC908JB16JDWE (20 pin SOIC)

BDM firmware versions are also supplied to support several existing hardware designs by other people:

  • WTBDM08/12

    • A commercial design available from Witztronics.
  • OSBDM
    • A previous design posted on Freescale OSBDM board
  • HCS08-OSBDM+E
    • A previous design posted on Freescale OSBDM board

Device Characteristics and links to documentation

The table below shows the support provided by each version and provides links to further information.

Description

Current Design

Device Support

Features

RS08

HCS08, HCS12, CFV1

Kinetis

CFV2, CFV3, CFV4*

DSC*

Target Power

Serial Port

USBDM_JB16 (Unsupported)

No

 

X

         

USBDM_CF_JMxxCLD

No

X

X

JTAG

X

X

X

 

USBDM_SER_JS16CWJ

No

 

X

       

X

USBDM_CF_SER_JS16CWJ

No

 

X

JTAG

X

X

   

USBDM_JMxxCLC

No

X

X

     

X

 

USBDM_JMxxCLD

No

X

X

     

X

 

USBDM_JS16CWJ

No

 

X

         

USBDM_SWD_JS16CWJ

Yes

 

X

SWD

       

USBDM_SWD_SER_JS16CWJ

Yes

 

X

SWD

   

X

X

USBDM_CF_JS16CWJ

Yes

   

JTAG

X

X

   

USBDM_CF_JMxxCLD_V3
Also supports Tower systems.

Yes

X

X

JTAG

X

X

X

X

USBDM_OpenSDA
Custom OpenSDA (FRDM-KL25Z).

Yes

   

SWD

     

X

* DSC support is very limited in Codewarrior 10 and the stand-alone programmer 
* CFV2,3,4 support is limited in the stand-alone programmer


Other Links

Notes

  • Please note that these design are different from the Freescale OSBDM-JM60 design which was proceeding independently while I was doing the above designs.

History

History & Issues

Credits

The bulk of the code is taken from the TBDML, OSBDM and TBLCF projects and I very much appreciate the effort involved in producing the original code. I hope this extension will be useful.

The hardware interface is based on TBDML, Freescale USBSPYDER08 and my own invention.

References

Queries

Any queries please post on the Freescale OSBDM Discussion Board.

Some Commercial versions of USBDM BDMs

I am aware of several companies producing commercial versions of USBDMs of various kinds:

USBDM Debugger interface for Freescale RS08,HCS08,HCS12,Coldfire and ARM-Kinetis Devices.的更多相关文章

  1. USBDM RS08/HCS08/HCS12/Coldfire V1,2,3,4/DSC/Kinetis Debugger and Programmer -- MC9S08JS16

    Introduction The attached files provide a port of a combined TBDML/OSBDM code to a MC9S08JS16 proces ...

  2. USBDM RS08/HCS08/HCS12/Coldfire V1,2,3,4/DSC/Kinetis Debugger and Programmer -- MC9S08JM16/32/60

    Introduction The attached files provide a port of a combined TBDML/OSBDM/TBLCF code to a MC9S08JM16/ ...

  3. USBDM RS08/HCS08/HCS12/Coldfire V1,2,3,4/DSC/Kinetis Debugger and Programmer -- Software Install

    Installation of USBDM for Windows Under Windows, installation is done with a standard Windows MSI fi ...

  4. USBDM RS08/HCS08/HCS12/Coldfire V1,2,3,4/DSC/Kinetis Debugger and Programmer -- Driver Install

    Installation of USBDM USB drivers for Windows There are four installers provided: USBDM_Drivers_x_x_ ...

  5. USBDM RS08/HCS08/HCS12/Coldfire V1,2,3,4/DSC/Kinetis Debugger and Programmer -- BDM Construction and Firmware

    Construction. Build the hardware using the information provided in the PCB download. The following a ...

  6. USBDM BDM Interface for Freescale Microcontroller -- Hardware

    USBDM BDM Interface for Freescale Microcontroller -- Hardware Adapter_4_0_0 - Adapter for Coldfire - ...

  7. USBDM BDM Interface for Freescale Microcontroller -- Firmware

    USBDM BDM Interface for Freescale Microcontroller -- Firmware BDM firmware for USBDM BDMs Refer to s ...

  8. USBDM Coldfire V2,3,4/DSC/Kinetis Debugger and Programmer -- MC9S08JS16

    Introduction The attached files provide a port of a combined TBLCF/DSC code to a MC9S08JS16 processo ...

  9. USBDM Kinetis Debugger and Programmer

    Introduction The FRM-xxxx boards from Freescale includes a minimal SWD based debugging interface for ...

随机推荐

  1. C 语言结构体之点运算符( . )和箭头运算符( -> )的区别

    很多时候,在对结构体进行相应的编码时,时而发现是用点运算符( . ),时而是用箭头运算符( -> ):那么这两者之间的使用有什么区别么? 相同点:两者都是二元操作符,而且右边的操作数都是成员的名 ...

  2. tf.range()函数

    range()函数用于创建数字序列变量,有以下两种形式: range(limit, delta=1, dtype=None, name='range') range(start, limit, del ...

  3. 叉积(POJ - 2318 )

    题目链接:https://cn.vjudge.net/contest/276358#problem/A 题目大意:给你一个矩阵的左上角和右下角,然后n个竖杠,这n个竖杠将这个矩阵分成n+1个方块,给你 ...

  4. Ubuntu14.04搭建Android O编译环境

    一.搭建环境 官方参考文档: 1.代号.标签和版本号 2.Factory Images 3.Driver Binaries 4.工具链  软硬件版本: 1.系统平台:I5-8500T+8G+1T,Ub ...

  5. 从Dying gasp功能看Linux的响应速度(zhuan)

    转自https://blog.csdn.net/qq_20405005/article/details/77967358 前一阵子在做dying gasp功能测试,过程中恰好测试到了Linux的响应速 ...

  6. mysql5.7主从复制--在线变更复制类型【转】

    这里说一下关于如何在线变更复制类型(日志复制到全局事物复制),参考课程:mysql5.7复制实战 先决条件     (1)集群中所有的服务器版本均高于5.7.6(2)集群中所有的服务器gtid_mod ...

  7. 远程不能访问CentOS的tomcat 8080端口

    一般认为是CentOS的iptabls防火墙的问题,方法如下: ps -ef | grep tomcat ker 4399 1 6 21:46 pts/1 00:00:01 /usr/java/jdk ...

  8. [原创]win7环境下搭建eclipse+python+django开发环境

    一)工具下载 a)eclipse(最新版4.3.1)官网下载地址 http://www.eclipse.org/downloads/ b)python (2.X版本)官网下载地址 http://pyt ...

  9. K-means聚类算法的三种改进(K-means++,ISODATA,Kernel K-means)介绍与对比

      一.概述 在本篇文章中将对四种聚类算法(K-means,K-means++,ISODATA和Kernel K-means)进行详细介绍,并利用数据集来真实地反映这四种算法之间的区别. 首先需要明确 ...

  10. jdk678910新特性地址

    jdk678910新特性地址 https://blog.csdn.net/f641385712/article/details/81289401 每篇一句:每个人受到的尊重从来都不是应得的,而是赢得的 ...