cancel
Showing results for 
Search instead for 
Did you mean: 

How do I transmit data via UART, which is not connected to the ST-LINK to a Windows computer? Which drivers are needed?

KSOdin2
Associate III

This question uses the STM32H723

So I am transmitting data at 7MB/s over UART to a PC. Currently, it uses UART3, which is connected to the ST-LINK. When I view the data on the Windows PC it is fine but every now and then the received data is wrong, and it misses quite a few transmissions. I believe the error is from the UART data passing through the ST-LINK. (Please let me know if UART3 does not actually pass through the ST-LINK when transmitting)


_legacyfs_online_stmicro_images_0693W00000bkrHyQAI.png 

To check if this is true I am using a TTL to USB cable (https://thepihut.com/products/usb-to-ttl-serial-cable) to send the data to the PC. This all works fine, and when I use a Raspberry Pi, the data can be viewed and is correct. However, I am struggling to replicate the result on a Windows PC.

When I connect the TTL to the USB cable to the PC it appears as a USB-Serial-Controller, and I need to assign it a driver. I've tried the STM drivers to make it into an STMicroelectronics STLink Virtual port, but this does not work. So I was wondering if anyone knows what driver is needed? I've looked into FTDI drivers, but they don't seem to work either.

I've struggled to find help online as most tutorials have the device automatically set to COM port as they are using the main connection.

Any help would be great thank you!

3 REPLIES 3

>>So I am transmitting data at 7MB/s over UART

That kinda strains credulity, but whatever..

With the ST-LINK you're going thru two UART connections, asynchronous serial isn't known for reliability or speed, you'd need to use some kind of protocol to manage flow, integrity and retrying.

Using a SiLabs or FTDI USB-to-CMOS Serial would involve less intermediaries, perhaps speeds to 1Mbps in the normative sense.

For higher speeds perhaps Ethernet, or USB-HS connectivity, using a class of USB device better suited to data transfer in the direction of interest.

I think I'd be hard pushed to get the volume of data you're talking about on to an SD card

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..
AScha.3
Chief III

maybe :  B -> Bit : >transmitting data at 7MBit/s over UART < :)

If you feel a post has answered your question, please click "Accept as Solution".

Thank you.

7MB/s was working correctly, but it seems the Windows could not process it quickly enough. I swapped to a Linux OS and it still had the same issue.

The options at the moment are:

  1. Use a high-speed cable like the one you mentioned or the "FTDI Chip C232HD-DDHSP-0."
  2. Ethernet
  3. Writing to an external SD card and extracting the data later.

Thanks for your thought on the topic

UPDATE: I could also be using the wrong cable. It seems that the cable I am using, which I linked above, may be unable to do a high baud rate. This could lead to the error I have found.