Fast Asynchronous Serial Communication

Serial with 12 Mbit/s

last updated: 2025-01-10

Intro

I want to communicate from my PC with an FPGA over a normal serial interface with high bitrates. With USB high bitrates are possible but up to 12 Mbit/s?

Hardware

I tested some USB/serial adapter and could get 3 MBit/s with some. To get higher bitrates I needed a cable with an high speed chip from FTDI (FT2232H). I found an FTDI cable with this chip called C232HM-EDHSL-0 at reichelt.de.

I connected my oscilloscope to the orange cable (black is GND).

I use this cable under Linux (Kubuntu 24.10) with no special driver needed. A test with a modem program was difficult, because a custom bitrate over 10 Mbit/s was not possible. So I used Python with the following code:

    #!/usr/bin/env python

    import serial
    from time import sleep

    SER_PORT = "/dev/ttyUSB0" # check with 'sudo dmesg'
    SER_SPEED = 12000000

    ser = serial.Serial(SER_PORT, SER_SPEED) # open the serial port
    for i in range(1000000):
        data = [85,85] # "UU", 0b0101010101010101
        data2 = bytearray(data)    
        ser.write(data2)
        sleep(0.000001)
    ser.close()

reflow pc1