Kinetis UART SFIFO reserved bit becomes set during Rx underflow (using PE)

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

Kinetis UART SFIFO reserved bit becomes set during Rx underflow (using PE)

ソリューションへジャンプ
1,292件の閲覧回数
luc28
Contributor II

I am using the Processor Expert serial LLD component to send and receive data with UART1 on the Kinetis K10DX128VLL7.

At some point in time, the UART keeps the last character in the buffer and releases it when the next byte comes in .

To recreate the problem, I use the debugger to stop the processor, send a message longer than the uart buffer(>8), and start the processor.

This creates an overflow in the uart and the uart keeps the last character in the buffer (until the next one comes in, then the previous one is released and the new one is kept).

This also causes reserved bit in the SFIFO register to be set.

Using AS1_Init and AS1_Deinit functions, I have tried to reset the UART but that simply prevents me from receiving any data at all and the reserved bit is still there.

Questions:

What does that bit mean? (SFIFO = 85 where 0x4 bit mask is reserved)

How can I prevent that reserved bit from being set?

How can I reset the UART in this condition?

KinetisUart1RegistersAfterUnderflow

KinetisUart1RegistersAfterUnderflow.jpg

KinetisUart1RegistersAfterSystemResetAndInitialisation

KinetisUart1RegistersAfterSystemResetAndInitialisation.jpg

Thank you

Luc

ラベル(1)
0 件の賞賛
返信
1 解決策
876件の閲覧回数
luc28
Contributor II

The problem seemed to have disapeared as we fixed the collisions on the half duplex serial link

元の投稿で解決策を見る

0 件の賞賛
返信
2 返答(返信)
877件の閲覧回数
luc28
Contributor II

The problem seemed to have disapeared as we fixed the collisions on the half duplex serial link

0 件の賞賛
返信
876件の閲覧回数
gerry26
Contributor I

Hi Luc,

I have a similar problem to the one you described above and I would like to ask you to elaborate on the nature of your solution.

In my case there is an UART overflow, caused by interrupt long latency, which leaves the system with no active interrupt but with a char in the buffer.

This prevents from new char to be received. the only thing that releases the UART interface is D read.

Following this read the interface is released and the RX flow runs once again.

Tnx,

Gerry

0 件の賞賛
返信