Introduction

The attached files provide a port of a combined TBDML/OSBDM/TBLCF code to a MC9S08JM16/32/60 processor. The primary motivation for this was to produce a single BDM that could be used with a range of Freescale microcontrollers. Other features have also been added.


Quick Links


Features

This version of the code & BDM hardware provides the following features:

  • A single BDM interface for programming and debugging of the following targets:

    • HCS12 (including those without SYNC feature (e.g. 9S12DP256B)
    • HCS08
    • RS08
    • Coldfire V1 microcontrollers
    • Coldfire V2, V3 & V4 microcontrollers
    • Kinetis ARM-Cortex microcontrollers
    • MC56F80xx Digital Signal Controllers (Limited range of devices in CW 10 & stand-alone programmer)
  • No re-flashing of the BDM is required when changing between targets
  • Compatible IDEs
    • Codewarrior V10.1 (Eclipse version)

      • Tested on Windows-XP-32bit, Windows-7-32bit, Windows-7-64bit
      • Tested on Ubuntu-32-bit
    • Codewarrior Legacy versions
    • Codewarrior Development Studio for HCS12(X)V5.1 & 
      CW for Microcontrollers V6.3 (RS08 is not supported)
      CW for Coldfire V7.1 CodeWarrior for DSC56800E v8.3 (USBDM-JMxx-CF or MC56F8006Demo board only)
      • Tested on Windows-XP-32bit, Windows-Vista-32bit
    • Initial support for CodeSourcery Lite for Coldfire
      • Tested on Windows-XP-32bit
    • Initial support for Coldfire Flasher (CFFlasher)
      • Tested on Windows-XP-32bit
  • Trimming of target internal clock (Eclipse version or standalone programming tools only).
  • Higher USB communication speed cf. JB16 version BDMs (USB full speed cf. USB low speed)
  • Vista compatible
  • Linux compatible
  • The Firmware in the BDM may be automatically updated using an in-circuit-programming (ICP) feature.
  • Hardware is physically small
  • Target Vdd supply & control. This allows the target power to be cycled when required for a reliable reset into BDM mode. It is also (obviously) convenient since it allows debugging small target boards without a separate target power supply. An external target supply may also be used instead. The Target supply is protected by a polyfuse and software detection of overload.
  • HCS12, HCS08, RS08, Coldfire V1 specific features:
  • Target reset detection & control (required for HC12 processors). This allows HC12 processors to be reset into BDM mode as required for debugging.
  • Target Vdd monitoring. This allows the hardware to detect changes in the Target supply to provide reliable resetting into BDM modes on HCS08 and RS08 microcontrollers. It also is used to implement the target power supply protection.
    • A higher BDM interface speed than the existing JB16 OSBDMs. Up to 56MHz. (BDM clock 28MHz).
    • Automatic re-connection. The software has an option to continuously update the interface speed to prevent loss of communication if the target BDM interface speed changes (as may occur with clock changes on some targets).
    • Control of BDM clock selection in HC12/HCS08/Coldfire microcontrollers. Most of these targets provide an alternative BDM clock selection. This can have advantages when connecting to high speed targets as the alternative clock may operate at a lower speed.
    • Selection of 3.3V and 5V target supply (if hardware supports this).
    • Trial-and-error determination of communication speed for earlier HC12 targets.
    • User prompting for target supply cycling with BKGD low as may be needed for HCS08 targets
  • Coldfire V2,3,4 specific features and limitations:
  • Higher communication speed with target - The target communication speed may be selected.
  • The BDM uses asychronous communication with the target i.e. the BDM signals are not synchronized with the target clock. This means that the BDM should not be used with early Coldfire targets. Check the description of the BDM interface timing in the appropriate Coldfire Processor manual to determine if this limitation applies.

Hardware Design

Please refer to the following document for hardware design details:

Differences to JB16 OSBDM etc

  • The JM60 microcontroller can only be initially programmed using a BDM interface. This is a significant disadvantage compared to the JB16 version.
  • The PCB artwork provided is for a double-sided plated-through-hole board using surface mount components. This seems a reasonable decision since the processor is only available in a SMT package in any case. While it is possible to prototype the board using a non-PTH board, assembly is quite demanding. The above images are for a commercially produced board that was hand assembled.
  • Software drivers (tbdml.dll & opensourcebdm.dll etc) need to be installed so that advantage can be taken of the new features.

Credits

  • The original base 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

USBDM RS08/HCS08/HCS12/Coldfire V1,2,3,4/DSC/Kinetis Debugger and Programmer -- MC9S08JM16/32/60的更多相关文章

  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 -- Software Install

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

  3. 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 ...

  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 Debugger interface for Freescale RS08,HCS08,HCS12,Coldfire and ARM-Kinetis Devices.

    Introduction USBDM is a debugger hardware interface for a range of Freescale microcontrollers. It is ...

  6. 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 ...

  7. USBDM Kinetis Debugger and Programmer

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

  8. 量化分析v1

    量化分析v1 # -*- coding: utf-8 -*- """ Created on Wed Apr 11 10:13:32 2018 @author: chens ...

  9. YC-Framework版本更新:V1.0.6

    分布式微服务框架:YC-Framework版本更新V1.0.6!!! 本文主要内容: V1.0.6版本更新主要内容 V1.0.6版本更新主要内容介绍 一.V1.0.6版本更新主要内容 1.系统例子覆盖 ...

随机推荐

  1. Zookeeper集群 + Kafka集群 + KafkaOffsetMonitor 监控

    一.Zookeeper ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件.它是一个为分布式应用提供一 ...

  2. 爬虫笔记之刷小怪练级:yymp3爬虫(音乐类爬虫)

    一.目标 爬取http://www.yymp3.com网站歌曲相关信息,包括歌曲名字.作者相关信息.歌曲的音频数据.歌曲的歌词数据. 二.分析 2.1 歌曲信息.歌曲音频数据下载地址的获取 随便打开一 ...

  3. 05 uni-app框架学习:uni-app设置全局变量的方法

    原文地址:https://ask.dcloud.net.cn/article/35021

  4. 【Python】exe2shellcode,shellcode2exe

    用python写这类程序真简洁,要是用C++又不知道得多写多少行代码了. exe2shellcode #! /usr/bin/env python # -*- coding: utf-8 -*- im ...

  5. Explain EV in /proc/bus/input/devices data【转】

    转自:https://unix.stackexchange.com/questions/74903/explain-ev-in-proc-bus-input-devices-data It repre ...

  6. Demo004 迷宫的生成与遍历的代码审查

    1.传送门 合作伙伴: 嚯唶 CnBlogs: 嚯唶 Coding:Rst321 代码: 迷宫的遍历与生成 2. 作业要求 (1). 首先在同学中找一个同伴,范围不限,可以在1~5班中随意组合,建议尽 ...

  7. python2.x下pip install mysql-python报错解决办法

    在https://www.lfd.uci.edu/~gohlke/pythonlibs/#mysql-python 下载该驱动网盘链接:https://pan.baidu.com/s/1r0fNYnU ...

  8. Laravel 的 JSON API 接口自动化测试

    Laravel 自带了两种测试类型 Feature Test: 功能测试.针对类似接口这种流程性的测试. Unit Test: 单元测试.针对单个函数这种输入输出结果的测试. 新建一个 Feature ...

  9. ADO.Net练习1

    一. 1.Car表数据查出显示2.请输入要查的汽车名称:     请输入要查的汽车油耗:     请输入要查的汽车马力: static void Main(string[] args) { SqlCo ...

  10. T-SQL语句4

    一.插入数据 1.insert语句介绍 insert into table_name(column1,column2……column)values(value1,value2,……valueN)//c ...