USBDM - Version 2 (JS16/JMxx Versions)

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

USBDM - Version 2 (JS16/JMxx Versions)

16,833 Views
pgo
Senior Contributor V

Attached is version 2 of the JS16/JM16/32/60 version of USBDM.

 

This includes the following hardware versions:

 

  • JS16 - A very minimal BDM that supports HCS12, HCS08 and Coldfire V1 devices.  It is easy to construct and may be initially programmed over the  USB.
  • JMxx - A full-featured BDM that supports HCS12, HCS08, RS08 and Coldfire V1 devices.  It also provides a range of additional features such as target power control and detection.  
  • JMxx/CF - As for JMxx but also supporting Coldfire V2, 3, & 4 (Only tested on CFV2!)

 

If you want a simple BDM then I recommend the JS16.  This has all the advantages of the previous JB16 version of OSBDM (ability to be programmed over USB & convenient SOIC package) as well as being USB2 Full speed.  It is also available as a sample from Freescale :smileyhappy:.

 

If you want a full-featured BDM then I recommend the JMxx version.

 

BDM Firmware History
  • V2.0 (September 2009) - Major change - Please read
    • Major revision. The structure of the software has been revised and the operation with various targets made more uniform.
    • Introduction of a new API for using the BDM. Existing APIs (TBDML, OSBDM, TBLCF) are now supported by a separate compatibility layer. This has resulted in a very significant reduction in the complexity of both the BDM firmware and the interface DLLs. The previous arrangement was becoming impossible to maintain.
    • The handling of RS08 devices has been re-written in a more sensible fashion. This involved moving the bulk of the RS08 code from the BDM firmware to the interface DLLs. This should mean that additional devices can be introduced without changing the BDM firmware. Support for additional RS08 devices has been added. The BDM now supports KA1, KA2, KA4, KA8, LA8 and LE4.
    • Because of the above changes, the BDM REQUIRES the use of the provided interface DLLs. The BDM is no longer compatible with the original TBDML or OSBDM dlls.
      The provided DLLs maintain some limited compatibility with earlier versions of TBDML, OSBDM and USBDM but may not support all features or targets
  • V1.5 (June 2009)
    • Improved/corrected connection strategy for external power cycling
    • Minor bug fixed (glitch removal)
    • Improvements to ALT clock handling
    • Changes to USB code to fixed bugs with BDM being recognized on some PCs (Thanks to Macias & Enrico for bug chasing and testing) Tested with USBCV13.exe from USB.ORG - now passes
  • V1.4 (February 2009)
    • Fixed a bug in the USB code (unlikely to occur but worth fixing)
    • Added extra dialogues prompting the user to cycle target power when necessary. Corresponding options added.
    • Added connection retry when target power is absent.
    • Added support for MC51AC256 (a bit of a hack!)
    • Modified HCS macros (to provide considerable size reduction as needed for USBDM_CF in 16K)
    • General clean up of code
  • V1.3 (November 2008)
    • Unified Timer MACROS
    • Re-arrangement of Target Vdd control routines
    • Minor mods & corrected comments in bdm_syncMeasure()
    • Reviewed stack size
    • Increased cable_status.waitX size
  • V1.2 (October 2008)
    • Increased stack size (stack overflow was possible)
    • Utilities (setBoot) updated to match.
    • Other cosmetic changes
  • V1.1 (August 2008)
    • Vista compatibility
  • V1.0 Initial Release

 

 ToDo list

  • Flash programmer for HCS08
Message Edited by pgo on 2009-11-05 12:13 PM
Message Edited by pgo on 2009-11-05 12:14 PM
 
Message Edited by t.dowe on 2009-11-05 12:35 PM
Tags (2)
0 Kudos
39 Replies

1,403 Views
javierelectron
Contributor I

Hi pgo. I´m did it  !!!   it´s work perfect. I try in other PC. I don´t know what was the problem but now I will format my computer because it have many problems.

 

Thanks very much for your help.

0 Kudos

1,405 Views
abeljiang
Contributor I

Hello , Mr t.dowe

I am using the freescale chip, we want to make the USBDM/CF opensourcebdm simulate ,Can you send the sourcecode and the schematic and the components list of the html.rar to me ,my email: success_future@163.com ,thanks


0 Kudos

1,405 Views
pgo
Senior Contributor V

Dear abel jiang,

 

The files for USBDM/CF are available as part of the first post of this thread.

 

bye

 

0 Kudos

1,405 Views
Master_col
Contributor III

Hallo and thanks for your USBDM. I have downloaded the sources and PCB files. The problem  is that i try to compile your program (JS16 source) to program the JS16. But  it prompts an error 202049  and can not compile. Is there any posibility to program the JS16 without compiling the program?? thank you for your time and excuse my poor english.

 

Best regards. Christian F. 

0 Kudos

1,405 Views
pgo
Senior Contributor V

Dear Christian,

 

The installation Zip file contains .S19 files for all the different hardware supported,  You should be able to use those without compiling.

 

http://opax.swin.edu.au/~3340694/USBDM/USBDM_JMxx_Distribution_V3.2/1.%20Installation_3_2.zip

 

 

bye

0 Kudos

1,405 Views
UcTechnoGeek
Contributor II

pgo,

 

Any idea why I cannot open the help files included in the Installation directory?

 

When I attempt to open them, I get a "the page cannot be displayed" error with each page.

 

Thanks,

uCTechnoGeek

0 Kudos

1,405 Views
pgo
Senior Contributor V

Dear uCTechnoGeek,

 

No Idea.  I just downloaded them to check and had no problem with under windows-XP.  I believe I've used them under vista as well.  Are you using Windows-7?

 

The files are in the 'old' windows-98 help format so there may be some incompatibility.  I'll check some more.

 

The only alternative I would have at the moment would be a Zip file of the HTML pages.

 

bye

0 Kudos

1,405 Views
UcTechnoGeek
Contributor II

pgo,

 

I downloaded them again and still cannot open the help files.  I don't know why, but I can open the help files from the previous packages.

 

Also, what is your idea for using the coldfire connector.  How do you use it to connect to the target board with the different connections?  Is there particular cables you had in mind?

 

Regards,

uCTechnoGeek

0 Kudos

1,405 Views
pgo
Senior Contributor V

Dear UcTechnoGeek,

 

I've attached a Zip of the HTML files for the USBDM/CF which is the one that differs the most from previous posts.

 

I would suggest you try downloading the HTML help program from microsoft:

 

 http://www.microsoft.com/downloads/details.aspx?familyid=00535334-c8a6-452f-9aa0-d597d16580cc&displaylang=en

 

bye

 

html.zip

Message Edited by t.dowe on 2009-12-02 11:08 AM
0 Kudos

1,404 Views
TBRTechnologies
Contributor I

Hi pgo

 

I've noticed that there is a discrepancy between the schematic and the PCB layout.  The mini B USB connector in the schematic has pin 4 as ground and pin 5 as ID.  The PCB reverses this (correctly). 

 

This makes me wonder -- are there any more serious erros to be found? 

 

Has anyone built the BDM from the schematic?

0 Kudos

1,405 Views
pgo
Senior Contributor V

Dear TBR Technologies,

 

The schematic does not have pin numbers on the Mini-usb connector and the layout of the pins is arbitrary.  The pins are named correctly on both the schematic and pcb layout.

 

The  placement of the ID pin at the bottom of the schematic symbol makes its layout compatible with the 4-pin connector symbol.  It is not an 'error' since the relation between the pins on the symbol and the pins on the footprint are correct in the EDA software used.   However it is certainly misleading. I'm sorry if this has caused problems. It will probably change in the next version :smileyhappy:

 

bye

Message Edited by pgo on 2009-12-08 02:58 PM
0 Kudos

1,405 Views
pgo
Senior Contributor V

Dear All,

 

I've been asked to clarify how the versions of USBDM differ.  The following summary of the USBDM Ver 2 designs is provided:

 

JB16 based versions (No longer recommended by me!)


These were mainly produced to be compatible with the previous hardware versions of OSBDM which was based on the MC908JB16.  This is a USB low speed device.

 

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 is 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


JS16/JMxx based versions (Recommended by me)


These designs use either the MC9S08JS16CWJ (20 pin SOIC) or MC9S08JM60CLD (44 pin LQFP).
Both of these chips are USB2 Full speed but ONLY the first supports initial programming over USB without needing a BDM.

  • Minimal design - Supports HCS12, HCS08, Coldfire V1
    • This is a very minimal design using MC9S08JS16CWJ (20 pin SOIC). 
    • It is easier to construct 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.
  • Complete USBDM - Supports HCS12, HCS08, RS08 & Coldfire V1
    • This is a complete fully-featured design using MC9S08JM60CLD (44 pin LQFP). 
    • It has target power and various other options.
    • It REQUIRES a BDM for initial programming. 
  • USBDM/CF - Supports HCS12, HCS08, RS08 & Coldfire V1, V2, V3 & V4
    • This is a complete fully-featured design using MC9S08JM60CLD (44 pin LQFP).
    • It has target power and various other options. 
    • It REQUIRES a BDM for initial programming.

 


Please note that these design are different from the Freescale OSBDM-JM60 design which was proceeding indpendently while I was doing the above designs :smileyhappy:.  Some future compatibility may be pursued.

 

Message Edited by pgo on 2009-11-06 10:44 AM
Message Edited by pgo on 2009-11-06 10:45 AM
0 Kudos

1,405 Views
thiag007
Contributor I

Hello Pgo,

 

Whether its possible to initial program MC9S08JM60 using the USB without the BDM,as mentioned in application note AN3561:USB Bootloader for the

MC9S08JM60

 

with regards

Thiag

0 Kudos

1,405 Views
pgo
Senior Contributor V

Dear Thiag,

 

I believe that AN3561 describes a bootloader that may be incorporated into a program being developed.  It is similar to the bootloader that is present in the USBDM firmware that is used to update the firmware after initial progamming.  Unfortunately it is not a bootloader that is present in a blank Jmxx device.

 

The JS16 device is similar to the JMxx devices but does have a bootloader. 

 

I can only suggest that you consider the simpler JS16 version of USBDM which avoids the problem.  The practical difference in functionality is quite small.

 

Also the JS16 in a SOIC20 package is currently available as a sample from Freescale.

 

bye

 

Message Edited by pgo on 2009-12-26 10:09 AM
0 Kudos

1,405 Views
Macias
Contributor I

Dear Pgo,

 

In this thread:

http://forums.freescale.com/freescale/board/message?board.id=OSBDM08&thread.id=726

http://forums.freescale.com/freescale/board/message?board.id=OSBDM08&thread.id=726" target="_blankis OSBDM project by Freescale and this is compatible with FreeMaster. Maybe you can check Freescale's code and add FreeMaster support to your USBDM. It will be very useful.

 

Best Regards,

Macias 

0 Kudos

1,405 Views
Macias
Contributor I

Dear Pgo,

 

In new version of Code Warrior for microcontrolers 6.3 is a new version of Open Source BDM programmer for ColdFire V1 only for some new devices. I've a MCF51CN128 and this uc have as debbuger somethinkg like this: CFV1 FSL Open Source BDM and is not compatible with your USBDM JM60 device. Please tell me how I can programm and debbug this uc via your USBDM. If it's not possible please tell me that you can add support for this uc to your debbuger?

 

Please help.

 

Best Regards,

Macias

0 Kudos

1,405 Views
pgo
Senior Contributor V

It would appear that Freescale is not providing support for the original OSBDM for new chips in Codewarrior any longer. (Only the newer OSBDM-JM60).

 

You can try the following process which should work:

 

  •  Set up a project as usual but select the Full Chip Simulator as the debugger.
  •  Start debugging the project which will use the simulator.
  •  In the debugger/simulator select Component->Select Connection
  •  Select CFV1 Open Source BDM
  • Exit the debugger and start again

 

It should now be using USBDM/OSBDM.

 

Note: I have not tried this for the CN chip so YMMV.

 

bye

 

0 Kudos

1,405 Views
Macias
Contributor I

Dear Pgo,

 

Thank you for the information. I check this methode, and I was discovered something interesting. When I start debbuging, USBDM try to programm flash memory, but without success, I get this message:

Error while writing to 40D..60D

Information: Write protected

Next I click Ok, and choose from Flash from CFv1 Open Source BDM, and now I can erase memory and upload new softvare (Project.abs) with succes, after click Ok button, debbuger works normally, I see source code and all options are working.

Do you have any idea why debbuger can't programm flash automaticly after start?

 

Best Regards,

Maciek

0 Kudos

1,405 Views
pgo
Senior Contributor V

Dear Macias,

 

I've had a chance to try this with a CN chip.

 

A process that does appear to work is as described above but select the CFV1 FSL debugger initially.  This will produce copies errors but then changing to the correct interface in the debugger (once) and restarting seeems to work OK.  It appears the the simulator option doesn't set up the Flash programming as it doesn't have any real flash :smileyhappy:.

 

So, in summary:

You can try the following process which should work:

 

  •  Set up a project as usual but select the CFV1 FSL Open Source ...  as the debugger.
  •  Start debugging the project which will TRY to use the above debugger with lots of errors!
  •  In the debugger select Component->Select Connection
  •  Select CFV1 Open Source BDM
  • Exit the debugger and start again

 

It should now be using USBDM/OSBDM.  You should see the usual confirmation dialogue warning you that its going to erase the Flash.

 

bye

0 Kudos