MPC8378 DUART value read when RX FIFO is empty

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

MPC8378 DUART value read when RX FIFO is empty

720 Views
EAlepins
Contributor V

Hi,

With MPC8378 DUART module, what value will be read from the RX FIFO if it is empty? (i.e. what is URBR value when ULSR[DR]=0 or UDSR[RXRDY]=1). I'm interested in FIFO mode. Whatever the DMA mode is.

Thanks,

Étienne

0 Kudos
4 Replies

714 Views
Pavel
NXP Employee
NXP Employee

Usually the last character will be read from DUART FIFO if DUART FIFO is empty.

0 Kudos

710 Views
EAlepins
Contributor V

Hi,

 

Thanks for your quick answer. Why do you say "usually"? Could you confirm on a board that behavior?

It makes a huge difference in my design. Indeed, I want to process the DUART data without intervention of the core (without interrupts) by using a DMA that will pop at a fixed rate the words received, even if there are no new words. Then SW, will analyze all the words and discard those which are false words. If reading an empty FIFO returns 0x00 or 0xFF for example, then I can manage to never send that kind of data. However, if the last word is returned, then I'll have to make my sent data vary each time to be able to detect false words.

Thanks,

Étienne

0 Kudos

700 Views
Pavel
NXP Employee
NXP Employee

Data from empty FIFO is not specified.

Use the UFCR register for setting a receiver FIFO trigger level to control the received data available interrupt, and select the type of DMA signaling.

See the Section 22.3.1.6 in the MPC8379 Reference Manual.

0 Kudos

695 Views
EAlepins
Contributor V

Hi,

Data from empty FIFO is not specified.

That's the point. That's why I am opening a support question. Could you ask design team what the behavior is?

UFCR[RTL] won't help since in my system won't use interrupts. It will rather use a timer-controlled DMA which will pull-out of the DUART's RX FIFO bytes at the same rate as the rate on the physical line. That's the only method we found to avoid SW overhead and complexity of using interrupts that frequently switches the applications context to/from an ISR.

Thanks,

Étienne

0 Kudos