Reply by david July 15, 20082008-07-15
Thank you so much Richard, I see now SPRUER6B, because it is not present
in documentation of my DM6437 EVM board.

Regards,

David
Reply by Richard Williams July 15, 20082008-07-15
Christophe B,

Over Run has to do with receiving, not transmitting.

The TI web site indicates the OR bit is set when the receive buffer is full and another complete
byte is received.
The reasonable fix is for a slower data transmitter rate from the external data source. A better
fix is for the local software to empty the receive buffer before returning from the interrupt.
A best fix is for the UART communication to handshake with the external data source, so only 1 data
byte sent by the external source then wait for the handshake before sending the next data byte.
The Clear-to-Send signal would work well for the handshake.

The TI web site documents indicate clearing the OR bit is simply a matter of reading the LSR register.

R. Williams

---------- Original Message -----------
From: christophe blouet
To: david , dsp
Sent: Tue, 15 Jul 2008 05:14:24 +0200
Subject: RE: [c6x] UART Overrun Condition

> If your _UART enters overrun, then you have to stop it and restart communication.
> It means you sent too many messages and uart was not able to transmit them, you should
> wait before to send a new word that the previous one was sent.
>
> > To: c...
> > From: c...@gmail.com
> > Date: Tue, 15 Jul 2008 00:00:39 +0200
> > Subject: [c6x] UART Overrun Condition
> >
> > I have read spru997a, but I don't know what to do when uart goes in
> > overrun condition (OE = 1 in LSR).Which uart register I have to set?
> >
------- End of Original Message -------
Reply by Richard Williams July 15, 20082008-07-15
David,

You might also read SPRUER6B for insight into some of the programming details.

note especially the 06h interrupt source status (which includes OR) and how to handle it.
it says to simply read the LSR to clear the status bits.

R. Williams
---------- Original Message -----------
From: david
To: dsp
Sent: Tue, 15 Jul 2008 00:00:39 +0200
Subject: [c6x] UART Overrun Condition

> I have read spru997a, but I don't know what to do when uart goes in
> overrun condition (OE = 1 in LSR).Which uart register I have to set?
>
Reply by Richard Williams July 15, 20082008-07-15
David,

I see two possibilites (you will have to experiment a bit)
1) just read some of the bytes from the UART receive buffer and know that the software has lost one
or more bytes of data. Keep reading/saving the data until the receive buffer is empty.
2) use the Power and Emulation Management Register (PWREMU_MGMT), bit 13 URRST to reset the UART
receiver. Then reinitialize the UART receiver.

R. Williams

---------- Original Message -----------
From: david
To: dsp
Sent: Tue, 15 Jul 2008 00:00:39 +0200
Subject: [c6x] UART Overrun Condition

> I have read spru997a, but I don't know what to do when uart goes in
> overrun condition (OE = 1 in LSR).Which uart register I have to set?
>
Reply by christophe blouet July 15, 20082008-07-15
If your _UART enters overrun, then you have to stop it and restart communication.
It means you sent too many messages and uart was not able to transmit them, you should wait before to send a new word that the previous one was sent.

> To: c...
> From: c...@gmail.com
> Date: Tue, 15 Jul 2008 00:00:39 +0200
> Subject: [c6x] UART Overrun Condition
>
> I have read spru997a, but I don't know what to do when uart goes in
> overrun condition (OE = 1 in LSR).Which uart register I have to set?
>
Reply by david July 14, 20082008-07-14
I have read spru997a, but I don't know what to do when uart goes in
overrun condition (OE = 1 in LSR).Which uart register I have to set?