USBDM - Version 4-Beta (JB16/JS16/JMxx Hardware Versions)

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

USBDM - Version 4-Beta (JB16/JS16/JMxx Hardware Versions)

14,198 Views
pgo
Senior Contributor V

Dear All,

 

The latest version of the hardware/software & firmware for the above is available at this location.

 

http://opax.swin.edu.au/~3340694/USBDM/USBDM/html/

 

 

History

  • V4.0 (September 2010) - Significant changes in some areas - Please read carefully
  • Support for Linux and Windows7 64-bit (Eclipse version of Codewarrior only)
  • To support the 64-bit version of Windows it has been necessary to update to using libusb-V1 drivers. For consistency this is also done on Linux. As part of this process the VID/PID for the hardware (BDM) has been changed. This will allow the co-existence of Freescale's OSBDM-JM60 hardware while using a new driver for USBDM. Formerly both these BDMs used the same VID/PID and changes to the driver would not be possible.
  • Programming utilities for RS08, HCS08 and CFV1 are now (officially) included.
  • Support for MC56F800x (digital signal controllers) added. This is only available on USBDM_CF BDMs and the Axiom MC56F8006 Demoboard.
  • Minor bug fixes
  • The addition of DSC support has pushed the firmware size to greater than 16K on the USBDM_JMxx-CF version. This means that MC9S08JM32/60 chip must be used.
  • Changed to wxWidgets for common GUI code on Windows and Linux

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

 

Linux files will be uploaded in the next few days.

Its a BETA because there have been lots of changes in how it operates so probably some undiscovered bugs.

 

Enjoy.

 

bye

Tags (2)
0 Kudos
110 Replies

986 Views
idiao
Contributor I

Hi Mickey:

    CW for MCU V6.3 ONLY "HCS08 FSL Open Source BDM" option,NO  "HCS08 Open Source BDM" option.   I tried to connect,but failued.

0 Kudos

986 Views
Mickey
Contributor III

hello http://forums.freescale.com/../user/viewprofilepage/user-id/14371" rel="nofollow" target="_selfidiao

  In debug window, which you can select the following:

  component-> set connection-> HCS08 Open Source BDM.

0 Kudos

986 Views
joncas
Contributor II

Hello PGO,

 

I wanted to ask about the easiest way of upgrading devices already running Version 4 -- it seemed to me that with v. 3.2, the DLLs contained the firmware image and could do an "auto-update" when the dll detected that is was newer than the firmware version of the connected USBDM (for example dll v 4.3 detecting usbdm firmware 4.2), but the v. 4 connection dialog doesn't seem to propose this, or must it be triggered into doing this in some manner?

 

Or does one always have to use the separate bootloader utility?

 

Many thanks!

Robert

0 Kudos

986 Views
pgo
Senior Contributor V

Dear Joncas,

The autoupdate feature has been removed.  This was because of a number of reasons:

  • The change in USB VID/PID between V3 and V4 (for complicated reasons) makes the autoupdate process across this boundary very complicated.  It was best to rely on the rather 'smarter' stand-alone upgrade program and some need of manual intervention in changing the drivers.
  • The separate utility allows the serial number to be modified which is desirable as devices should not have the same serial number.  The serial number is also used by the drivers to uniquely identify a BDM.
  • The original code was within the common USBDM.dll file and included GUI code.  With the V4 restructure all the GUI code was removed so the ability to display prompts etc were gone as well.  This was needed for the update code.

It is likely that the auto-update will re-appear but it still won't cover V3->V4 for the above reasons.

 

The upgrade process V3->V4 is unfortunately complicated.  Depending on you hardware the following processes are suggested:

JS16 versions

JB16 versons

JMxx version
The JMxx version present particular problems since they do not include a permanent bootloader.  My bootloader which is programmed in the V3 Flash uses the previous  USB VID/PID and there is no way of changing this without completely re-programming the chip using a  second BDM.  It is still possible to do an update without a programmer but it requires the installation of the libusbV1 drivers for the old  VID/PID as well as the new VID/PID.  installing the driver will render the BDMs using the old VID/PID unusable but this shouln't be an issue if upgrading.

So two choices:

OR

I hope this isn't too confusing!

 

Bye

0 Kudos

986 Views
joncas
Contributor II

Hello PGO,

 

many thanks for these detailed explanations!

 

I tried several JM60 devices with both the complete reflashing with the HCS08_FlashProgrammer and the upgrade via the Bootloader utility -- both methods work fine and easily (it's harder to describe the procedure than to do it!)

 

In migrating from version 3.2 to version 4, there is one new phenomenon which is that with version 3.2 it was possible to use the USBDM on a OS-X Macintosh by running XP in a virtual machine with "Parallels Desktop" (any Parallels version: 4, 5 or 6). But with the different set of USB libraries used by USBDM 4.x, the USBDM device disappears after each debug session: I can run one complete debug session starting with the flashing and single-stepping etc., but if I close Hiwave.exe and later relaunch it from Codewarrior, the USBDM is no longer found. Unplugging the device and replugging it makes it again available for one session.

The same thing happens with the stand-alone utilites: they can access the USBDM for one programming cycle, then the device disappears.

 

It works fine when rebooting the Macintosh into the "Bootcamp" mode where it runs XP by itself, so it's tied to how the virtual environment handles USB connections (it probably introduces longer timing delays at some critical point) and it's not an issue worth spending much time investigating, but I thought I'd just mention it in case anyone else stumbles on it. 

 

Many thanks again for making this USBDM software available !

0 Kudos

986 Views
Mickey
Contributor III

hi pgo

 

Return on USBDM V4.3 of the bug:

Question: RS08KBxx not well connected 

HW: CF_JMxx
FW: V4.3

 

0 Kudos

986 Views
pgo
Senior Contributor V

Sorry Mickey,

 

I have no idea what you mean?

 

I do not have  RS08KBxx so it hasn't been tested.  It  appears to be very similar to the other RS08s apart from using a S08 style clock so I would have expected it to work but it is quite possible that I've missed something.

 

If you are saying that it doesn't work could you try the following fixes in order (if you have the time of course):

 

  1. Disable Clock trimming
  2. Set up a project in Codewarrior/Eclipse (using the new configuration process) but use a separate Flash programming task.  The easiest way it to create a project targetting OSBDM and then change the settings to USBDM.
  3. Set up a standard project andenable debugging. This will require downloading the debug version of the DLLs, installing them and then enabling debugging - a bit painful.  This won't change anything but you can post the two log files here.  (usbdm_RS08_gdi.log, usbdm.log - these are in the %APPDATA% directory).

 

bye

 

0 Kudos

986 Views
Macias
Contributor I

Dear Pgo,

Please tell me, that is possible to remove 74LV125 from USBDM_CF_JS16 version of your device if I provide 3,3V power supply to my target and to JS16 device.

 

Best Regards,

Macias

0 Kudos

986 Views
pgo
Senior Contributor V

Dear Macias,

 

There are two considerations:

 

Will the USB work if the Vdd and Vusb33 are simply connected to a 3V3 regulator derived from USB 5V?

I'm unsure whether this is a permissible combination when operated as a USB device.  I had a look at this previously and thought not but now I think it is implied that it would be possible. See section 15.1.3 3.3 V Regulator in the RM, and the Electrical specs.

 

Will the USBDM firmware work ?

No - The code assumes external drivers and does not 3-state pins as required.  It might be possible to modify the code to achieve this and I will have a look when time permits.  There might also be some pin-sharing issues.

 

I have considered the possibility of a 'naked' BDM but haven't looked further.  This would obviously be good for a minimal cost on-board BDM for a development system.  It would not be advisable for a true BDM since the pins would be very unprotected (even if you limited things to 3V3).

 

bye

 

0 Kudos

986 Views
wrljet
Contributor II

Where can bare PCBs be purchased for the USBDM?

 

Bill

 

0 Kudos

986 Views
joncas
Contributor II

Hello Bill,

 

I had a batch of pcbs made that I can send you one (or a few) from -- they are the version for MC9S08JM60CLD, but without the circuitry for providing the programming voltage for RS08 devices and without the JTAG functionality for CF V2-4.

But I think you will find it extremely difficult to solder the 3-state buffer sn74lvc2g125DCT by hand -- it has tiny pins with 0.65mm pitch (IC1 in the attached picture), and there is not much space towards the adjacent resistors R3 + R17. The pins of the mcu are already a challenge ...

The only feasible method seem to me to be with a solder paste stencil and a small reflow oven (even a modified toaster oven will do!)

 

Best regards,

Robert

0 Kudos

986 Views
wrljet
Contributor II

Thank you both (pgo & joncas) for the info, help, and your work on this project.

 

Bill

 

0 Kudos

986 Views
pgo
Senior Contributor V

There are some links at the bottom of this page.  One of the suppliers (at least) provides blank boards for a JS16 version.

 

http://usbdm.sourceforge.net/

 

AFAIK there are no more-sophisticated bare boards available but some of the commercial assembled boards look atttractively priced when you consider the cost of components.

 

bye

 

0 Kudos

986 Views
joncas
Contributor II

Hello PGO,

 

your version 4 is terrific -- many thanks!

 

Just wanted to suggest a small improvement to the documentation: somehow there don't seem to be any links from the description pages at  http://usbdm.sourceforge.net/USBDM_V4.0/USBDM_JMxx/html/index.html to the download section of the installation files at http://sourceforge.net/projects/usbdm/files/

 

Maybe you could put a link in the menu frame on the left?

 

And on http://usbdm.sourceforge.net/USBDM_V4.0/USBDM_JMxx/html/main.html there is a small typo, it should be Ubuntu with a "u" at the end instead of Ubunto   (just to get the search engines to find the page!)

 

Many thanks again for all this !

0 Kudos

986 Views
nkgavali
Contributor II

 

 

Dear All,

 

      I've build the board for OSBDM from  USBDM_JMxxCLD version. I'm using JM32 and porting code of JM60 as given in the USBDM folder. When I connect it to PC, it detectes USB. Also it  pops up the configuration window when I connect it into Codewarrior for debugging.

     But, when I try to connect it to the target, it is giving me the "Fatal Error". I've checked in detail and found that there is no activity on RESET pin of the BDM connector.

    The target VCC is also OK. BDM pin is low when trying to connect the target.

Plz guide me to resolve this issue.

Thanks and Regards,

Nandulal K. Gavali

nkgavali@mindagroup.com

0 Kudos

986 Views
bendjy
Contributor I

Dear pgo!

 

When I try to connect to board with MC9S12DP512 the HiWave freeze and nothing hapens ( Only close and get error ).

The HW is USBDM-JS16.

The log files from debug DLL's is included.

Using USBDM with HiWave HSC08 and MC13213 is without problem. 

With the same hardware and the USBDM v3.2 the process is OK.

 

 

Thank You in advance!

 

bendjy 

0 Kudos

986 Views
pgo
Senior Contributor V

Dear Bendjy,

 

Have you applied the fix provided in the installation/errata directory on soureforge?  The logs appear consistent with the problem this fixed.

 

bye

0 Kudos

986 Views
rafael_freedom
Contributor I

Dear PGO,

 

I get the Linux version working on 64 bits, with small changes. I've been able to program a CFv1 device. I'm going to install the Codewarrior 10 Special Edition to check if the driver works reliably for debugging.

I'm also able to connect with gdb and debug a little bit, but the processor reboots with an error (usually invalid operation flag).

 

Waiting your response on the usbdm dev forum about the git repository :smileyhappy: to get the changes merged. I'm also going to test if it compiles in linux32 environment (i usually cross-compile apps for linux32 and windows - mingw).

 

Regards

--

Rafael Campos

0 Kudos

986 Views
xtronics
Contributor I

rafael_freedom -

 

I'm trying to get this working for CW_MCU_v10.0_Linux_SELH on a 64 bit system.

 

Do I need to rebuild this for 86_64 ?

 

Where is the source for the Linux code to build the Linux install?

 

If you could list a brief description of what you did to install on 86_64 ?

 

The executables are all complaining about

 

 error while loading shared libraries: libusbdm.so.4: cannot open shared object file: No such file or directory

 

While in the same directory?

 

 

0 Kudos

986 Views
xtronics
Contributor I

Ok - I did something that fixed it  (not sure what it was) - and there is apparently a dependanciy on:

 

libwxgtk2.8-dbg

 

 

Running the following :

 

 

$ ./TestUSBDM usbdm_dll_initialize()TestUsbdmApp::TestUsbdmApp()TestUsbdmApp::OnInit()TestUsbdmApp::OnInit() - Found 1 devices#

 

 

Not clear what input it is expecting or what the '#' means.

 

I've been making notes on this at:

 

http://wiki.xtronics.com/index.php/CodeWarrior_on_Linux#USBDM

 

0 Kudos

986 Views
pgo
Senior Contributor V

Dear xtronics,

 

As you have discovered:

  • USBDM requires the wxwidgets library under linux.  This is staticaly linked under windows (thats why the DLLs are so huge!)
  • testUSBDM is a command line utility - try typing ? (question mark) at the prompt.  It should really tell you this shouldn't it :smileyhappy:
  • The shared libraries libusbdm.so.4  and the required  should have been installed by the script - but I'm not a linux expert.
  • usbdm.rules should be installed by the script? Did I forget this? I don't have linux at the moment to check this.

bye


0 Kudos