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

P89LPC932 Auto Buad Detect

My project uses a P89LPC932 @ 11.0592 MHz
and CCLK equal to Fosc (11.0592MHz).

UART uses BGRG1:BGRG0 as Baud Rate Generator.

Buad = CCLK/((BRGR1,BRGR0)+16)

I want to mensurate width of pulse by ICA of CCU. A series pulses comes from a 'U' (55 HEX).

When Down edge of Start Bit comes, ICA capture first value T1.

When Up edge of First Data Bit comes, ICA capture second value T2.

So we have got a Count , Count = T2 - T1.

My question :

How can we set BGRG1:BGRG0 from Count ?

e.g. BGRG1:BGRG0 = Count * x +/- y ?

Parents
  • "So We must Detect Baud of MCU addressed immediately.

    if We can get Count = T2 - T1, and set BGRGx from Count, it is fast !"


    Personally, I'd still use 'Count' to look up BGRG values out of a table like Michael suggests in his last paragraph.

    If you want to calculate it, assuming you have the CCU configured with 1:1 prescale, wouldn't that be:

    BGRG1:BGRG0 = Count * 8 - 16?

Reply
  • "So We must Detect Baud of MCU addressed immediately.

    if We can get Count = T2 - T1, and set BGRGx from Count, it is fast !"


    Personally, I'd still use 'Count' to look up BGRG values out of a table like Michael suggests in his last paragraph.

    If you want to calculate it, assuming you have the CCU configured with 1:1 prescale, wouldn't that be:

    BGRG1:BGRG0 = Count * 8 - 16?

Children
No data