This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

UART with RL-ARM in low clock speed

Hello,

We have an application for LPC2368, based on RL-ARM, that run UART communication.
This is working very well.

For power consuming reasons, we need to slow the MCU clock down to 4 MHz (based on Internal Osc.).
Now, the UART work well up to 57600 baud rate. But in 115200 bps, I cannot receive any data although sending data work well. The debugger isn't even reach the UART IRQ at all.

In the data sheet I found that "Standard baud rates such as 115200 can be achieved with any crystal frequency above 2 MHz."

What can be the problem?
Is it possible that there is a conflict between UART and RL-ARM?

Parents
  • Have you verified your baudrate?

    That you can send means that your baudrate is correct - or close enough - that the other side can accept the data. But is it close enough that your device will accept data from the other side?

    The obvious thing to do is to use a oscilloscope to measure the exact baudrate of outgoing data.

    Remember that as you reduce the input clock to the UART baudrate generator, you also get a smaller and smaller divisor. So each value one tick up or one tick down of the divisor results in a larger baudrate error. 4MHz does not result in an even divisor for your 115200 baud. 4000000/115200 is 34,7222. And the UART requires 16x the baudrate frequency so 4000000/16/115200 is 2,17. A divisor of 2 would then have an error of 8,5%.

    Have you made use of the fractional baudrate correction?

Reply
  • Have you verified your baudrate?

    That you can send means that your baudrate is correct - or close enough - that the other side can accept the data. But is it close enough that your device will accept data from the other side?

    The obvious thing to do is to use a oscilloscope to measure the exact baudrate of outgoing data.

    Remember that as you reduce the input clock to the UART baudrate generator, you also get a smaller and smaller divisor. So each value one tick up or one tick down of the divisor results in a larger baudrate error. 4MHz does not result in an even divisor for your 115200 baud. 4000000/115200 is 34,7222. And the UART requires 16x the baudrate frequency so 4000000/16/115200 is 2,17. A divisor of 2 would then have an error of 8,5%.

    Have you made use of the fractional baudrate correction?

Children