I am using an android app which is taking a string and converting it to its ascii values and sending it to bluetooth module hc-05. Now i need to send this data to an UART receiver in an fpga. In what format is ascii data from the bluetooth module to the fpga? When the string has just one character it is working perfectly. Suppose if there is a character 'a' then the data received by UART is start bit followed by binary equivalent of a and then stop bit. When the string is having two characters. I want to know if there will be two separate start bits and stop bits for each character or just one start bit then the data bits (containing ascii equivalent for both the characters) and then one stop bit.

For example , if 'a' then data sent is 011000011(MSB 0 is start bit and LSB 1 is stop bit). if 'ab' then is the data sent is 0110000111000101(msb 0 is start bit and lsb1 is stop bit) or is it 011000011 011000101(like separate for both the characters)

Please clarify.

  • \$\begingroup\$ Each character (or byte) sent by a UART will be framed by a start bit and one or more stop bits. The stop bit is really just the line going back to its idle state for at lease oone bit time. \$\endgroup\$ Apr 25, 2019 at 15:01
  • \$\begingroup\$ While what you are seeking to do is possible you may be getting into territory where software is a better solution than dedicated logic. That points to either a simple external MCU (for example you might instead use a BLE MCU and communicate with the FPGA via SPI), or an internal soft core processor. \$\endgroup\$ Apr 25, 2019 at 17:46

1 Answer 1


Each character will have its own start and stop bits. This allows the receiver to re-frame on every character, giving it the greatest tolerance for speed mismatches.


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.