I started work with UART of lPC1788,in that I did the following settings for PCLK as 12MHZ and baud rate as 115200 but while i am simulating this code the baud rate is not assigned as 115200 or approx.
uint32_t uart0_init() {
LPC_SC->PCONP |=(1<<3); //Enabling power/clock for UART0
LPC_SC->PCLKSEL |=(1<<0); //Selecting PCLKDIV value as 1 for PCLKSEL
LPC_IOCON->P0_2 = 1; //Selecting fn. 001 for P0.2(U0_TXD)
LPC_IOCON->P0_3 = 1; //Selecting fn. 001 for P0.3(U0_RXD)
LPC_UART0->LCR =(0x83); //Selecting DLAB=1,1 stop bit,Parity bit and 8-bit character length
LPC_UART0->DLL = 0x04; //For PCLK=12MHZ and baud rate as 115200,DLL=4(in dec.)
LPC_UART0->DLM = 0x00; //For PCLK=12MHZ and baud rate as 115200,DLM=0(in dec.)
LPC_UART0->FDR =(0x85); //DIVADDVAL=1(3:0) and MULVAL=2(7:4) in FDR calculated from the FRest value
LPC_UART0->LCR =(0x03); //Disabling DLAB=0
LPC_UART0->FCR |=(7<<0); //Enable FIFOEN,TXFIFORES and RXFIFORES in FCR(0,1,2)
LPC_UART0->FCR |=(0<<0); //Disable FIFOEN,TXFIFORES and RXFIFORES in FCR(0,1,2)
//NVIC_EnableIRQ(UART0_IRQn);
//LPC_UART0->IER = IER_RBRIE | IER_THREIE | IER_RXIE;
return 1;
}
For me its coming near 384615,its totally different.Is there any calculations to be done to obtain exact of 115200 baud.
Please do clear for me..
Thanks in advance for suggesting experts..
Why not used the CMSIS library code? It has routines, which when called (with correct parameter passing) will work as desired. It saves a lot of your time.
Hi D.7, Ya used the CMSIS library code,even in CMSIS they used PCLKSEL value as 0x00000002.But I want PCLK as 12Mhz and baud rate of 9600 to send a data to PC like devices.
With that PCLKSEL value I am getting PCLK of 60MHZ,so what I asked.