Found an error in the Clock Diadram tab on the LPC812 processor.

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Found an error in the Clock Diadram tab on the LPC812 processor.

1,667 Views
alexanderandrij
Contributor I

Found an error in the Clock Diadram tab on the LPC812 processor. It looks like UARTFRGMUL is confused (must have a range of values from 0 to 255, but only 255 can be entered) and UARTFRGDIV (must have a fixed value of 255, but it does not). It should be exactly the opposite. To whom to address this problem?Снимок экрана от 2018-06-11 22-33-18.png

0 Kudos
Reply
1 Reply

526 Views
marek_neuzil
NXP Employee
NXP Employee

Hi Alexander,

I have checked the clock model against the reference manual but it seems that the clock model is correct. The clock model implementation represents the fractional scale factor of the divider that is described in the reference manual. The MULT value represent the numerator of the fractional divider and the DIV value represent the denominator value.

The UART_fractional_divider_output_frequency = UARTCLKDIV_output_frequency / (1 + MULT/DIV) =  UARTCLKDIV_output_frequency / ((DIV + MULT)/DIV) = UARTCLKDIV_output_frequency / ((256 + MULT) / 256)

Note: The only allowed value of the DIV is 256 (or 0 when fractional part is disabled).

Therefore the scale factor of the fractional divider  = (256 + MULT) / 256

i.e. divider = 256 + MULT, multiplier = 256.

See also the reference manual of the LPC812 (UM10601)

I understand that the clock model of this fractional divider is confusing but the model is correct. We will try to improve the representation of this UART fractional divider.

I have also checked the generated code and it seems that the register UARTCLKDIV (the DIV bitfield) is not initialized by the value of the denominator (256) in the generated initialization code. I will report this issue to the responsible development team.

Best Regards,

Marek Neuzil

0 Kudos
Reply