CYBT-333032 / how to calculate the baud rate error

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
MaYa_3009166
Level 1
Level 1
5 replies posted 5 sign-ins First reply posted

Hello Cypress,

https://community.cypress.com/t5/WICED-Studio-Bluetooth/CYBT-343026-UART-baud-rates/m-p/51281
Another person has already been asked in this thread, but there is no answer.

Please tell me how to calculate the baud rate error dut to use a custom baud rate not on a table.

Thanks,
Manabu

0 Likes
1 Solution
Owen_Zhang123
Moderator
Moderator
Moderator
5 questions asked 500 solutions authored 250 sign-ins

If the baud rate is higher than 1.5M, the dlbr is used as a direct divider.

For example, if you choose 3M, then dlbr will be (0x100-0x8), the baud rate is 24/8M.

 

If the baud rate is lower than 1.5M, then the dlbr is used for 16* divider and the dhbr is used for 1* divider. There are two parts for dhbr, the high 4-bits and low 4-bits.

For example, if you need a 1M baud rate, dlbr is (0x100-1) and dhbr is 0x44. It means the baud rate is 24/(16+4+4)M.

 

For your question, if you choose 2625000, then the dhbr will be (0x100-0x9), the actual baud rate should be 2666666.

View solution in original post

4 Replies
Owen_Zhang123
Moderator
Moderator
Moderator
5 questions asked 500 solutions authored 250 sign-ins

As you can see from the description in the datasheet, the UART baudrate is divided from 24M clock.

It can be divided by any integer from 24M.

For example, if you need a 921600 baudrate, it is 24M/26=923076 and the error is 0.16%.

Owen_Zhang123_0-1612689025899.png

 

 

0 Likes

Hello Owen,

Please explain about DHBR / DLBR resistor.

From your attachment, I think DLBR will be used if it is not divisible by 24(48)MHz.
What kind of calculation is used to determine UART clock(24/48MHz) / DHBR / DLBR from the baud rate set by "wiced_uart_transport_cfg_t" ?

For example, How to calculate the baud rate error when 2,625,000bps is specified in "wiced_uart_transport_cfg_t"?

Thanks,
Manabu

0 Likes
Owen_Zhang123
Moderator
Moderator
Moderator
5 questions asked 500 solutions authored 250 sign-ins

If the baud rate is higher than 1.5M, the dlbr is used as a direct divider.

For example, if you choose 3M, then dlbr will be (0x100-0x8), the baud rate is 24/8M.

 

If the baud rate is lower than 1.5M, then the dlbr is used for 16* divider and the dhbr is used for 1* divider. There are two parts for dhbr, the high 4-bits and low 4-bits.

For example, if you need a 1M baud rate, dlbr is (0x100-1) and dhbr is 0x44. It means the baud rate is 24/(16+4+4)M.

 

For your question, if you choose 2625000, then the dhbr will be (0x100-0x9), the actual baud rate should be 2666666.

Hello Owen,

I understand that use the baud rate of 24M divided by an integer, the error is minimized.

Thank you.
Manabu

0 Likes