mbed Serial port driver question

13 Apr 2017

Hello

I am attempting to connect a large number (66) of mbed devices (Nucleo F303K8) through USB2.0 and access them as serial COM ports on a bare bones Win 7 x64 machine. I've been working with the F303K8 platform over the past year using the STSW-LINK009 driver (http://www.st.com/en/embedded-software/stsw-link009.html).

As I have scaled above 24 F303K8 devices on a single machine I have encountered semi-random communication failures. The mbed COM port is visible, I can open a serial port connection but am not able to receive data that the F303K8 is sending. I've discussed the problem with a serial communications expert who believes my approach is sound but suspects that there is a bug in the mbed serial driver.

Looking into the mbed serial driver has led me to the following: https://developer.mbed.org/handbook/Windows-serial-configuration and associated discussions (https://developer.mbed.org/forum/bugs-suggestions/topic/1186/?page=1#comment-16745 seems particularly relevant but wasn't able to solve my problem).

I have tried wiping my hard disk and restarting the process with the mbedWinSerial_16466 driver. However, I encounter and have been unable to solve the "No mbed Microcontrollers were found" problem. When I first connect the Nucleo Windows identifies it as an "ST-Link Debug" device. When I try to override the driver Windows tells me either that "WPD FileSystem Volume Driver" is correct and up to date or that the mbedSerial_x64.inf file in the mbedWinSerial_16466 package are not compatible with my system (the same error is given for the other *.inf files as well).

Three questions:

1. Is the Serial driver in the STSW-LINK009 package actually different than the mbedWinSerial_16466 driver?

2. How do I get Windows to see the F303K8 Nucleo as an "mbed Serial Port" rather than an "ST-Link Debug"?

3. Any other suggestions?

Thank you very much!

20 Apr 2017

Perhaps windows itself isnt really capable of that many com port at same time? try linux?

Or better yet, a serial bus like i2c might be more cost effective or appropriate. With i2c, you could have a single nucleo as i2c master, and then program each other nucleo as an i2c slave with its own unique slave address. That way you would only need two wires and ground between all your boards, rather than a bunch of usb hubs.

20 Apr 2017

The Nucleo boards run ST-Link, so as far as I'm aware you need to use the ST-Link driver for the serial port to function correctly.

There can definitely be issues with running lots of mbed boards simultaneously via USB (we run into issues all the time when we run tests on mbed OS). One big factor that contributes to this is the USB hub that you use. You want to use an MTT usb hub (vs STT) for best performance. See this page for more info: http://www.cypress.com/knowledge-base-article/single-transaction-translatorstt-and-multiple-transaction-translator-mtt