MAX14830:Set RxFIFO trigger level

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

MAX14830:Set RxFIFO trigger level

764 Views
surendradhobale
Contributor III

Hello,

   I am facing the problem of the RX overrun in the max14830. I was trying to set the RxFIFO level to one value ( say 32 word), the value is set properly. Also enable the MAX310X_IRQ_RXFIFO_BIT and MAX310X_IRQ_TXFIFO_BIT.

i.e in drivers/tty/serial/max310x.c

/* Enable RX, TX, CTS change interrupts */ 
 val = MAX310X_IRQ_RXEMPTY_BIT | MAX310X_IRQ_TXEMPTY_BIT | MAX310X_IRQ_RXFIFO_BIT | MAX310X_IRQ_TXFIFO_BIT;
 max310x_port_write(port, MAX310X_IRQEN_REG, val | MAX310X_IRQ_CTS_BIT);

also added the trigger level,

max310x_port_write(port, MAX310X_FIFOTRIGLVL_REG,
                      MAX310X_FIFOTRIGLVL_RX(32) | MAX310X_FIFOTRIGLVL_TX(2));

Now when the rxdata reach the value , interrupt gerenated. But its only once. After that data is receieved more than the trigger level value, interrupt is not generate.

RXFIFO keep increasing data and once 128 word inside the FIFO, its RX overrun error occurs.

This overrun issue is not come in 9600 baud rate. But higher baud rate. I have checked this on kernel 3.14 and 4.1 kernel.

Why could be the issue ? How we can handle this ?

Thanks for the support !!

Regards,

Surendra

Labels (2)
Tags (3)
0 Kudos
1 Reply

484 Views
Yuri
NXP Employee
NXP Employee

Hello,

   I think it would be better to work with fixed (size) block of data, say - half of FIFO
to avoid FIFO under / over flow. I mean for each interrupt whole block of data should

be read / written.

Have a great day,
Yuri

-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos