0
\$\begingroup\$

I'm a hobbyist. I ran across a peculiar TTL-level UART, the 74LVC8153 (PDF). I'd like to connect one or more of these to a laptop using a USB-to-serial device, and the most widely used USB-to-serial seems to be the FTDI232.

Difficulty...the 74LVC8153 part requires peculiar framing: 2 start bits (low, high), 7 data bits, and 1 stop bit. The data and stop bits are fine, but "two start bits" is a different story. I've looked at the data sheets I could find for the FTDI232, its device drivers, traditional Linux/MacOS terminal drivers, the stty command, etc. There seems to be no direct support for 2 start bits anywhere.

Does this kill the idea or is there some way around it? For example I found this FTDI232 trick for setting nonstandard baud rates, but nothing about framing. Or is there some other USB-to-serial device that supports more framing alternatives, or a sort of "raw mode" where I could just send it bits that control the transmit line?

\$\endgroup\$
1
  • 1
    \$\begingroup\$ I’d suggest it is more effort to try to coax a serial device to suit your obscure chip. Considering there are single chip solutions to do the usb->parallel conversions that don’t require such shenanigans. Something like an Arduino Leonardo (getting quite dated) should have examples that work out of the box. \$\endgroup\$
    – Kartman
    Jul 18 at 0:42
4
\$\begingroup\$

No, the FTDI FT232RL, nor any other UART to my knowledge, can be set to the framing mode required by your chip.

However, it is not a hardware framing selection problem, but a software data encoding problem which is easily solved.

After all, the datasheet does mention that the chip is compatible with UART serial data format. It just does not mention an example how to do it.

Since you need to break the transmitted parallel data output byte into two nybbles and send them as two bytes that also contain the address bits and the extra start bit as standard UART data bytes anyway, you can simply use standard 8N1 framing and send the second start bit for the chip as data bit that is always 1.

\$\endgroup\$
2
\$\begingroup\$

How about: shift your TX data up by 1 bit and set the LSB to 1. This will set the ‘ST2’ bit position to 1. You’d then continue to use 8N1 UART setting as normal on the FTDI side.

As it is your driver needs to do special data formatting to form the 2-byte address / data sequences, so one way or another your host application has to twiddle bits.

\$\endgroup\$
1
\$\begingroup\$

That is a rather weird device.

The second start bit must be a 1, and that is followed by three address bits, then four data bits. To talk to it from a normal UART, you set the least significant bit of the byte to 1, then the next three bits are the address, LSB first, and finally four data bits, also LSB first. You need to send two bytes to pass a single 8 bit data byte.

I don't think you can use it as a substitute for a normal UART.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.