-1
\$\begingroup\$

I'm working on a project which involves a Texas Instruments DSP microprocessor communicating with an Adafruit BLE Friend UART device. The UART device has a 9600 Baud data mode, but the datasheet doesn't specify how many stop bits or parity bits to use, and I'm not sure how to configure the UART module on the DSP chip if I don't know that data format. The UART devices also has the option of using CTS and RTS pins.

I'm wondering, does CTS and RTS replace the stop/start/parity bits when communicating through UART? If that's the case, I don't know how I would establish communication, as the UART module on the DSP doesn't allow me to have 0 stop/start bits. Here's a link to the datasheet for the BLE UART Friend, if that helps https://learn.adafruit.com/introducing-the-adafruit-bluefruit-le-uart-friend/introduction. Any help or advice would be greatly appreciated, thank you!

\$\endgroup\$

3 Answers 3

2
\$\begingroup\$

No, RTS/CTS clearly cannot replace start or stop bits, they serve an entirely different purpose. They control the so called "data flow" (whether the device is ready to accept data). Most devices don't need RTS/CTS any more, because all involved components are fast enough to accept data at the full speed. But for that particular device, the spec sheet says you need to use them. So you need to wire all 5 lines (TX, RX, RTS, CTS and GND).

If data bits/parity is not specified, you can assume it is 8 data bits, 1 stop bits and no parity. That's the default that's used by 99% of all devices today.

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

No, CTS and RTS do not replace stop/start/parity bits.

They are handshake pins that are used to signal that when a device is ready to accept data or busy doing something else so data must not be sent.

Unless something specific is said, it is a reasonable assumption that any default settings include no parity and 1 stop bit.

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

Format: 8N1 is the default choice, and given that there’s protocol-level options for error checking, there’s little reason to choose any other options. This has nothing to do with flow control, discussed below.

Flow control: you can choose ‘hardware’ (CTS/RTS) or ‘software’ (XON/XOFF). At 9600 baud there’s no motivation for hardware flow control, that only comes into play at higher baud rates.

The BLE module should be able to work without flow control, its data rate is much higher (at least 200kbps), so it’s unlikely it will need software flow control either, but check its datasheet. There will be a driver-level link manager that deals with this.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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