On Fri, Jan 31, 2025, 8:37 PM Maciej W. Rozycki via cctalk < cctalk@classiccmp.org> wrote:
> On Fri, 31 Jan 2025, Paul Koning wrote: > > > > FWIW I was able to get reliable serial communication under Linux of up > to > > > 3.5Mbps with off-the-shelf proper PCIe UART hardware clocked at > 62.5MHz > > > despite that line drivers used with said hardware (soldered onboard) > were > > > spec'd for up to 1MHz only[1]. This was with plain PIO > interrupt-driven > > > operation, but then the UARTs used had decent FIFO sizes of 128 > characters > > > and the FIFO trigger level for the interrupt was reasonably set. > > > > > > Finally at 4.0Mbps data corruption reproducibly triggered, but it was > > > garbled rather than lost characters, so I conclude the reason was > either > > > line drivers finally giving up or the transmission frequency hitting > the > > > bandwidth limit of the serial communication cable used. > > > > Was that with an actual RS232 port, i.e., a device using RS232 signal > > levels, or a "TTL" logic level serial port? I'm guessing the latter. > > I'm not sure what you mean by 'a "TTL" logic level serial port', please > elaborate. Do you mean signalling used between the UART and line drivers > by any chance, such as with a serial connection made between UARTs without > actual line drivers in between? > Yes. That's the overwhelming majority of usage these days. At least for me when not dealing with retro gear. I've only seen such serial connections between onboard devices, such as a > SoC's onchip UART wired to an FTDI-like device soldered next to it on the > PCB for a USB serial console, which seems an industry's recent workaround > with development hardware for the usual lack of serial ports with modern > general-purpose computers. I don't expect this to work very well over a > cable unless very short. > Yea, line drivers are to make runs over a few feet. Warner > In my high speed experiments, I found that the limit for RS232 data > > rates comes from the relatively slow rise/fall times implemented in > > RS232 drivers. If you have a port that uses logic levels the > > transitions are likely to be much faster so loss of signal integrity > > occurs only at much higher speeds. With the RS232 drivers I have used > > (MAX3222), 250 kbps is roughly the upper limit. > > The serial port hardware I refer to uses a UART wired to a Zywyn ZT3243F > line driver, which according to the manufacturer's datasheet signals at > ±5V minimum transmitter voltage levels and accepts up to ±25V receiver > voltage levels and: "Meets or Exceeds the EIA/TIA-232F and CCITT V.28/V.24 > Specifications for VCC at +3.3V ±10% and +5V ±10% Operations." While the > transmitter voltage levels are not the highest recognised by the standard > I do believe this line driver does comply with RS-232. > > As I say the datasheet explicitly says: "Guaranteed data rate 1000kbps," > and according to my findings quoted above it is indeed the case (and well > beyond). [Yes, I got it wrong by writing 1MHz rather than 1Mbps, a mental > slip I suppose.] > > NB I've also used the TI TRS3122E line driver, suitable for operation > with 1.8V signalling per my requirement, and it is also documented to > handle "data rates up to 1000kbps, while maintaining RS-232-compatible > output levels." I haven't got a chance to go beyond 230400bps with this > device though, but these two samples do suggest that supported operation > at 1Mbps isn't that uncommon for currently available RS-232 line drivers. > > I've looked up the MAX3222 datasheet and it does say 250kbps max though; > I guess it's older technology then? > > Does this answer your question? > > Maciej >