The two devices are the BDM proper and a CDC serial interface. The documentation for the latter is incomplete. - Sorry!

The two devices in the composite device support the usual BDM interface as well as a serial over USB interface. They are pretty much independent so you do not need to install two drivers unless you want the functionality of both.

The other device is a CDC serial driver. The required inf file is in the driver directory however I'm unsure if the hardware you are using supports the serial interface. If not, there is no need to install the second driver.

The JMxx firmware build in V4.3 accidently included the CDC feature - It should have been disabled for this hardware version. This is probably why it appears in the hardware you are using.

The two devices are the BDM proper and a CDC serial interface. The documentation for the latter is incomplete. - Sorry!

The two devices in the composite device support the usual BDM interface as well as a serial over USB interface. They are pretty much independent so you do not need to install two drivers unless you want the functionality of both.

The other device is a CDC serial driver. The required inf file is in the driver directory however I'm unsure if the hardware you are using supports the serial interface. If not, there is no need to install the second driver.

The JMxx firmware build in V4.3 accidently included the CDC feature - It should have been disabled for this hardware version. This is probably why it appears in the hardware you are using.

The installation instructions indicate the use of Zadiag to install the USBDM driver. The "Driver Files" directory was not meant to be in the upload. Sorry for the confusion. It will be deleted in the next version.

I'm unsure which program you are referring to about the version number. The current flash images on Sourceforge all report as 4.3 in the Bootloader utility and the programmers report the same version for the DLL and firmware after flashing.

I wonder if you could explain in terms understandable to someone not yet familiar with the Eclipse version of CW how to compile the USBDM-JM60 firmware with CDC serial interface enabled?

I saw that version 4.3 had it accidentally enabled, so it shows in the Windows device manager, and looking at the CW project for version 4.6, I see you have build versions with the serial interface enabled for the JB16 hardware.

But looking at the configure files, I couldn't see what would need to be changed, since CAP_CDC already seems to have a non-zero value? (had been putting off trying the Eclipse version of CW, but this seems to be the moment...)

I spent some time trying to find a problem with this but I've had mixed results. As far as I can tell the BDM is doing the right thing but (under windows) every odd USB packet is being dropped - sometimes. I've had it run 10 hours without problem and then remove and re-plug and have it behave intermittently.

I've done the following:

The V4.7 CDC code has been re-written (trying to eliminate this bug) but without change in results.

I've built a simple USB analyser - haven't found a problem with the USB traffic.

Anyway - It would appear that the problem is not with the BDM but with the driver installation (I hope). This still needs some checking and I have not tested with V4.6. I've had 100% success with the V4.7 version and a modified installation inf file.

If convenient can you try re-installing the serial driver using the attached inf file. This may improve the V4.6 performance but I can't guarantee this since I'm unsure what is actually wrong with the driver installation.

To re-install the driver it would be necessary to uninstall using the Device Managerand then re-install using the provided inf file.

I was wondering whether the problem might not be something with the baud tolerance of the JM's SCI, because I noticed that for example, when connecting with the debugger going where the target clock is not trimmed accurately and runs a few percent too fast, the CDC communication has garbage characters, but restarting the target without the debugger so the clock is accurate, the transmission works fine.

This is certainly possible. The CDC stuff involves a lot of interrupts both from the serial interface and the USB pipes. I suspect that there is an infrequent timing problem. I re-wrote the CDC code in V4.7 to address some issues but didn't come across any problems in testing.

There are other more pressing issues that I need to address so this will be on hold for the moment. I hope the performance is workable.

Also, note that the CDC code doesn't have flow control so I would expect it to drop characters at high baud rates if the USB is busy. There is very limited RAM available for buffering especially in the JS16 version. I thought this a resonable compromise considering that it is intended for a debugging situation rather than production.