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
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
Dear pgo,
I'm trying to first flash freshly assembled simplest JS16 USBDM. I did a full erase via Bootloader GUI, then programming, it seems to be a success according to your documentation, but then device boots back into JS bootloader mode.
Now, looking into documentation I see in the installation manual (actually seen it right away):
"Note that this programming is only needed once. You may notice that the programmer gives a error message similar to
Doing CRC ...
CRC Checksum Error
Error while doing CRC.
This indicates that the Flash image does not have a valid CRC. USBDM does not use the CRC feature available in the JS16 and hence this error message is to be expected and may be ignored. "
Yes, JS Bootloader complains about checksum as expected. But now there's passage in the JS reference manual:
"When BLMS pin and BKGD/MS are high during power-on-reset (POR), a CHECKSUM BYPASS
flash location is examined. If it is equal to 0xFF, a flash CRC is calculated for the flash array and
compared with a FLASHCRC 16-bit word. If the result does not match, then the bootloader mode
is entered." - section 4.5.2.1
So, is not it that very checksum JS bootloader is complaining? If that is true, then freshly programmed JS16 chip will boot again into bootloader and never into user code, right?
Regards,
Vitaly.
Dear vluban,
The CHECKSUM BYPASS flash location is programmed to 0x00 in the JS16 image provided. You can verify this by examining the S19 file:
S104FFBA0042 => location 0xFFBA <= 0x00
This means that the clause you quoted does not apply.
There must be some other reason why it is booting into this mode. I have programmed a few blank chips using the gui bootloader without any problems.
You can also refer to the flow chart 4.5.4.4 Flow Chart to further clarify boot operation.
bye
Dear pgo,
Then I'm kind of at loss. I've assembled second unit, same behavior. I've checked all power voltages, Vusb, crysral frequency, everything seems to be fine... BKGD is at +5, BLMS shows 0.5V, apparently driving led low (btw, is it normal when LED is constantly lit?) More over, JS Bootloader recognizes the device and works with it... What's the heck this could be, any ideas what else to check?
Regards,
Vitaly.
I've even lifted the BLMS pin from PCB to check just in case that PCB might have not quite short of this pin to ground, no luck, it still boots into JS Bootloader
Heck, inserted it into another usb port, now it says: "Freescale JM60 Bootloader". Well, I still have 10M resistor in parallel to that crystal, time to change it to 1M...
Got it to work. Resistor was a culprit...
Thanks PGO! Next time when you see something like that, it might be that resistor
Dear vluban,
The earlier V3.2 design indicated a 10M resistor for the crystal. This has been updated in the current designs:
http://usbdm.sourceforge.net/USBDM_V4.5/USBDM_JS16/html/index.html
I'm sorry if this was the cause of your problem.
bye
Dear pgo,
Thanks and no problem, I've noticed that change, albeit it says "do not replace resistor if it works"
Thing is, I did this board almost a year ago but had no time to assemble it until now.
Thanks again!
Crystals vary a lot, also. Which affects that resistor.
hi pgo:
thanks a lot for your great job on usbdm.
I have already used it in my development. It works nice.thanks again.
these days I am working on Kinetis MCUs - K60N512. and I used the OSBDM(OSJTAG).
and I want to know is there any plan to support Kinetis by USBDM in the future?
Dear chaoyi,
I intend looking at this in the near future. The ARM debug interface is well documented but is rather complicated. In one mode it is based on JTAG so initially I intend seeing if it is possible to implement an interface on the USBDM versions that support JTAG (The CFVx versons).
It may be possible to do a SWD interface on the simpler BDMs but this may require modification to the circuit to change the reset output to support 3-state operation (currently it operates as open-drain).
In any case it's on hold until I get a Kinetis (or other ARM) chip.
bye
Hi -
What about just for flashing support on Kinetis? I'm currently looking for some sort of tool outside of the IDEs that provides a mechanism for flashing. Looking at the OSBDM API it doesn't look like it would be terribly complicated to write something that would simply read in a fully-preprocessed bin file and write it into flash. Would it really be as simple as bringing up the device halting it and laying down the firmware starting at the correct address?
I'm not hugely familiar with USBDM, since my previous experience is mainly with other ARM platforms rather than with other Freescale devices, but it appears that what this is is a custom firmware for the hardware debug interface, with software tools that provide debugging interfaces and flash tools? I'm mainly a Mac & Linux user, and I'd be quite interested in seeing your tools usable and available on one or both of those platforms. I'm not sure how much work is involved or how I can be of help, however. At this point, I'd mainly just like a flashing tool that doesn't require installing a full IDE since I tend to use a command-line build environment and not Windows :smileyhappy:
Dear jbsnyder,
The next version of USBDM will include a stand-along programmer for (some of) the Kinetis CPUs. This will be similar to the existing programmers provided for the other targets and support GUI and command-line use.
bye
Dear puke7381,
I don't have many HCS12 devices to test with so the HCS12 programmer is limited in the devices it supports.
You can edit the device file provided with the programmer to add new devices providing their Flash is similar to the existing supported devices but I can offer no guarantees.
The file to edit would be:
HCS12 Devices.cfg
or in the latest release
hcs12_devices.xml
The files look a bit scary but the required information is quite small - Basically family (HCS12), name, RAM area, EEPROM area, Flash area and partIDs. The following is based on a quick look at the data sheet:
<device family="HCS12" name="MC9S12HZ128"> <clock type="External" /> <memory type="ram"> <memoryRange end="0x3FFF" start="0x2800" /> </memory> <memory registerAddress="0x0110" type="eeprom"> <memoryRange end="0x07FF" start="0x0400" /> </memory> <memory registerAddress="0x0100" type="flash"> <memoryRange end="0xFFFF" start="0x4000" /> </memory> <sdid value="0x1402" /> <sdid value="0x1403" /> <note>Untested</note> </device>
bye
Hi pgo
Thank you for your answer. I had a look to V4.3 and I found the sources files for CodeWarrior V10. Again, thank you very much for your great job.
Regards,
Joël
Hi
I'm interested by USBDM JS16 version for HCS08 devices. I found the PCB and the schematic on http://usbdm.sourceforge.net/. I also found the S19 file in http://sourceforge.net/projects/usbdm/files/ to program the JS16 microcontroller.
Maybe I'm wrong, but I thought the project was open source, but I do not found the source files used to generate the S19 file for the JS16 microcontroller.... Is the source code available ? If yes, where ?
Thanks for your help and for your job !
Regards,
Joël
Dear Joël,
I haven't uploaded the Firmware files for V4.4. They are very little changed from those in V4.3 available on sourceforge.
I probably won't upload them again until V4.5.
I had intended setting up GIT but it has presented some difficulties so it's on hold for the moment.
bye
Dear All
If you do not want to DIY USBDM, can go to the link below to buy, size, and prices are currently low.
Bye~