This post is a followup to my original post number 9985. When U1DLL = 0x01, U1DLM=0x00, and is used with the fractional divisor U1FDR to set the baudrate, the device properly transmits at the assigned baudrate, but does not receive at the assigned baudrate. I have conducted a series of elementary tests using the frequency 117187 and a PC com port terminal set to 115200 baud. The program (genesis from Keil's example to give credit) transmits characters from the LPC2148 to the PC, reads characters from the PC, and echos them back to the PC. The frequency 117187 can be acquired with multiple settings using a 12 MHz clock, or 15 MHz PCLK: UART_baudrate = PCLK/(16*(16*U1DLM+U1DLL)) * (MulVal/(MulVal+DivAddVal)) U1DLL, MulVal, DivAddVal, Equation 0x01 0x1 0x7 117187 = 15000000/16/(1)*(1/8) 0x02 0x1 0x3 117187 = 15000000/16/(2)*(1/4) 0x03 0x9 0xF 117187 = 15000000/16/(3)*(9/24) In each case, the tranmit of characters worked fine, but in the case of 0x01, the receive characters were garbled. I do have set U1FCR |= 0x01, which the manual says is required for correct operation. Is there an errata on this? Does UART0 have the same issue? Is there a way around this that I don't know? This is important to me because I have to work with 500000 baud signal, and U1DLL=1 seems like my only option without swapping crystals. JP
Message
Confirmed: U1DLL = 0x01 does not recieve on LPC2148 using fractional divisor
2005-11-03 by jp_thrower
Attachments
- No local attachments were found for this message.