Nios® V/II Embedded Design Suite (EDS)
Support for Embedded Development Tools, Processors (SoCs and Nios® V/II processor), Embedded Development Suites (EDSs), Boot and Configuration, Operating Systems, C and C++
Comunicados
FPGA community forums and blogs have moved to the Altera Community. Existing Intel Community members can sign in with their current credentials.
12748 Discussões

UART problem - RRDY never set

Altera_Forum
Colaborador honorário II
1.931 Visualizações

I have a simple polled UART application which is not working as I expect: 

 

rs232_rx_control = IORD_ALTERA_AVALON_UART_STATUS(UART_BASE); 

if (rs232_rx_control & ALTERA_AVALON_UART_STATUS_RRDY_MSK) 

*pBuffer = IORD_ALTERA_AVALON_UART_RXDATA(UART_BASE); 

return 1; 

 

The baud rate is 57600 and I am generating the characters manually, so speed isn't the problem. 

The problem is that RRDY is never being set. The characters are being received into RXDATA. They overwrite the previous received character. 

I don't see any receiver overruns, framing errors or detected breaks. 

Transmitting characters is no problem for me. 

 

0 Kudos
6 Respostas
Altera_Forum
Colaborador honorário II
1.097 Visualizações

Maybe looked at the others bits of the status register (PE, FE, BRK) to see if the error doesn't come from here.

Altera_Forum
Colaborador honorário II
1.097 Visualizações

Solved this myself. 

 

I hadn't initialised the UART control register. I guess the default is to enable interrupts. 

 

With all interrupts disabled the code worked as expected.
Altera_Forum
Colaborador honorário II
1.097 Visualizações

Solved this myself. 

 

I hadn't initialised the UART control register. I guess the default is to enable interrupts. 

 

With all interrupts disabled the code worked as expected.
Altera_Forum
Colaborador honorário II
1.097 Visualizações

hey bmarshall, 

 

I'm facing the same problem, can you tell me how you initialised the UART control register and disabled interrupts.  

Thanx, 

Marek
Altera_Forum
Colaborador honorário II
1.097 Visualizações

I've been on vacation. 

I no longer have this code. Current version is interrupt driven.
Altera_Forum
Colaborador honorário II
1.097 Visualizações

No problem, I ended up understanding your previous post. By disabling the interrupts in the control register I got the code to work as expected. 

Regards, 

Marek
Responder