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

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

19.4.5.1. スレーブにおけるSPIシリアル転送およびSSPシリアル転送

「Motorola SPI Protocol」および「Texas Instruments Synchronous Serial Protocol (SSP)」において、SPIシリアルプロトコルとSSPシリアルプロトコルについてそれぞれ説明しています。†

SPIスレーブが受信専用 (TMOD=2) の場合、現在送信シフトレジスターにあるデータがスレーブデバイスが選択されるたびに再送信されるため、送信FIFOバッファーに有効なデータを含める必要はありません。ステータスレジスター (SR) のTXEエラーフラグは、TMOD=2の場合は設定されません。このモードを使用する場合は、Transmit FIFO Empty Interruptをマスクする必要があります。†

SPIスレーブがマスターにデータを送信する場合は、シリアルマスター・デバイスによって転送が開始される前に、送信FIFOバッファーにデータが存在することを保証する必要があります。送信FIFOバッファーにデータが存在しない場合にマスターがSPIスレーブへの転送を開始すると、エラーフラグ (TXE) がSPIステータスレジスターで設定され、前回送信されたデータフレームがtxdで再度送信されます。継続的なデータ転送を実現するには、データがすべて送信される前に送信FIFOバッファーが空にならないことを保証する必要があります。Transmit FIFO Threshold Level Register (TXFTLR) を使用してプロセッサーに早期割り込み (Transmit FIFO Empty Interrupt) を行うことで、送信FIFOバッファーが空に近い状態であることを示すことができます。DMAコントローラーを使用している場合は、DMA Transmit Data Level Register (DMATDLR) を使用してDMAコントローラーに早期に要求を行い、送信FIFOバッファーが空に近い状態であることを示すことができます。FIFOバッファーにデータが満たされることで、シリアル転送を続行することができます。†

受信FIFOバッファーがFIFO Full Interrupt要求を生成するたびに受信FIFOバッファーを読み出し、オーバーフローを防ぐ必要があります。Receive FIFO Threshold Level Register (RXFTLR) を使用し、受信FIFOバッファーがフルに近い状態であることを早期に示すことができます。DMAコントローラーを使用している場合は、DMA Receive Data Level Register (DMARDLR) を使用してDMAコントローラーに早期に要求を行い、受信FIFOバッファーがフルに近い状態であることを示すことができます。†