USART:「タイムアウト割り込みの誤ったクリア / トリガ」を追加
詳細:
RHR/MSR/LSR レジスタが読み出されたときに、USART が誤ってクリアしたり、タイムアウト割り込みをトリガしたりすることがあります。
回避方法:
CPU の使用事例の場合。
- タイムアウト割り込みが誤ってクリアされた場合:
- FIFO 内の保留データがタイムアウト割り込みを再トリガするため、これは有効です
- タイムアウト割り込みが誤って設定され、FIFO が空である場合は、次の SW 回避方法を使用して割り込みをクリアします。
- TIMEOUTH および TIMEOUTL レジスタでタイムアウト カウンタの High 値を設定します
- EFR2 ビット 6 を 1 に設定して、タイムアウト モードを周期的に変更します
- IIR レジスタを読み出して、割り込みをクリアします
- タイムアウト モードを元のモードに戻すには、EFR2 ビット 6 を 0 に戻します
DMA の使用事例の場合。
- タイムアウト割り込みが誤ってクリアされた場合:
- 次の周期的なイベントでタイムアウト割り込みが再トリガされるため、これは有効です
- ユーザーは、EFR2 のビット 6 を 1 に設定して、RX タイムアウト動作を周期的モードにする必要があります
- タイムアウト割り込みが誤って設定されている場合:
- これにより、DMA は SW ドライバによって破棄されます
- 次の受信データが有効であるため、SW で DMA が再度設定されます