インテル® Agilex™ ハード・プロセッサー・システムのテクニカル・リファレンス・マニュアル

ID 683567
日付 1/19/2023
Public
ドキュメント目次

21.4.3.3. 自動CTSモード

次の条件が発生すると、自動CTSモードがアクティブになります。†

  • AFCE (MCR.AFCEビットが設定されている)
  • FIFOバッファーが有効になっている (FIFO Buffer Control RegisterのIIR_FCR.FIFOEビットを介して)

自動CTSが有効 (アクティブ) になっている際に、UARTトランスミッターは、cts_n入力が非アクティブ (High) になると無効になります。これにより、受信を行っているUARTのFIFOバッファーがオーバーフローすることを防ぎます。†

最後のストップビットの中央より前でcts_n入力が非アクティブにならなかった場合、トランスミッターが無効になる前にさらに1つの文字が送信されます。トランスミッターが無効になっている際は、送信FIFOバッファーに書き込みを続け、オーバーフローさせることも可能です。†

自動CTSモードでは、次のシーケンスが必要です。

  1. UARTのステータスレジスターを読み出し、送信FIFOバッファーがフルであることを確認します (UART Status RegisterのUSR.TFNFが0に設定されている)。†
  2. Transmit FIFO Level (TFL) レジスターを介して現在のFIFOバッファーのレベルを読み出します。†
  3. プログラミング可能なTHRE割り込みモードを有効にし、FIFOバッファーフルのステータスにLSRからアクセスします。†

FIFOバッファーフルのステータスを使用している場合、ソフトウェアでは、送信FIFOバッファーへのそれぞれの書き込みの前にこのステータスをポーリングすることができます。cts_n入力が再びアクティブ (Low) になると、送信が再開します。FCR.FIFOEビットでFIFOバッファーが無効になっている場合は、他の設定に関係なく自動フロー制御も無効になります。自動CTSが実装されていない、もしくは無効になっている場合、トランスミッターはcts_nの影響を受けません。†

図 118. 自動CTSのタイミング