USIC ( Serial Communication ) Question

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Not applicable
Hello,

I'm testing UART001 app(v1.10) on dave project.

I can't understand what receive interrupt can't operation when I send multiple char.
and I checked USIC1_CH1 register, I found something that is "An alternative receive event has occurred."

so XMC4500 don't occur receive event after occurred the event("An alternative receive event has occurred.")

How can I solve this state?

thank you.

My UART app setting is
Operation Mode : Full Duplex
Desired Baud Rate : 9600
Stop Bit : One stop bit
Data bits: 8
Transmit FIFO : 2, Trigger Limit : 1
Receive FIFO : 2, Trigger Limit : 0

Signal Connection : FIFO Receive Buffer Interrupt

and I'm testing via j-link debug.

TEST CODE---------------------------------
void rs485Int()
{
if(UART001_GetFlagStatus(&UART001_Handle1,UART001_FIFO_STD_RECV_BUF_FLAG) == UART001_SET)
{
UART001_ClearFlag(&UART001_Handle1,UART001_RXIDLE_FLAG);
UART001_ClearFlag(&UART001_Handle1,UART001_ALT_REC_IND_FLAG);
UART001_ClearFlag(&UART001_Handle1,UART001_RECV_NOISE_FLAG);
UART001_ClearFlag(&UART001_Handle1,UART001_FORMAT_ERR0_FLAG);
UART001_ClearFlag(&UART001_Handle1,UART001_FORMAT_ERR1_FLAG);
UART001_ClearFlag(&UART001_Handle1,UART001_REC_FRAME_FIN_FLAG);
UART001_ClearFlag(&UART001_Handle1,UART001_DATA_LOST_IND_FLAG);
UART001_ClearFlag(&UART001_Handle1,UART001_RECV_IND_FLAG);
UART001_ClearFlag(&UART001_Handle1,UART001_FIFO_RECV_BUF_ERR_FLAG);
UART001_ClearFlag(&UART001_Handle1,UART001_FIFO_ALTRECV_BUF_FLAG);

/* Read the received data to the buffer */
ReadData = UART001_ReadData(UART001_Handle1); <= Break Point
}
}
0 Likes
2 Replies
Not applicable
I got this problem that is occure when stopped by debugger. so I can't hook break point in ISR.
0 Likes
Not applicable
Hi june.shin,

I believe this is referring to XMC4500 device.
Suppose the Standard Receive (RIF) is triggered when valid data received and if the data received has parity error, Alternative Receive (AIF) will be triggered instead.
But due to error in the hardware, alternative received may be trigger instead of standard receive even with valid data.
This behaviour is indicated in our device Errata Sheet.

For the workaround, you may enabled both standard receive and alternative receive into a single ISR.
Therefore, whichever flags is set (RIF or AIF), both will triggers the interrupt.
0 Likes