0

I have an MCU sending out a series of 14 byte UART frames (using DMA) via RS232 at a high frequency of 8KHz. I've configured the baud rate at both ends to 1843200. I'm using FTDI TTL-232R-3V3 cable supporting upto 3Mbaud.

Each 14-byte frame holds a sync byte and when checked at the receiving end, at 1843200 baud, the dataframes themselves are in sync without any missing bytes. However, the values within each datafield are corrupted.

I tried reducing the dataframe size to 10 bytes and still the problem continued. So I tried lowering the baud rates. The values in the 10-byte frame are good upto 1.3M Baud but when I go further to 1.4MBaud, the corruption in the values starts again.

Now, I would like to understand why this issue occurs despite my cable supporting up to 3Mbaud. Is this an issue of the driver?- I'm using the VCP driver. Also, I'm using a pyserial to read out the serial data from the port, could that be the trouble maker? If yes, any alternatives?

  • 1
    Your use of *"frame"* is misleading. At the UART level, a *frame* is just one character or byte. There is no *"frame"* for a packet or message at the datalink layer of asynchronous communication. So *"reducing the dataframe size"* (or simply the number of bytes) should not affect the results. Testing indicates a baudrate limitation, which is not a programming issue. Vote to close. – sawdust Feb 05 '21 at 20:52
  • At these high baud rates, the signal timing has to be highly accurate. Perhaps your MCU or ftdi dont agree exactly on the frequency. You would need to check on an oscilloscope. I suggest you move your question to https://electronics.stackexchange.com/ – meuh Feb 05 '21 at 21:11
  • Cool, I'm moving this question to [electronics.stackexchange.com](https://electronics.stackexchange.com). Thank you for your comments guys, I'm closing this question. – WilliamR Feb 08 '21 at 14:35

0 Answers0