2021/03/27(土)LPC55xx I2S : FIFO buffer configurations and usage
参照: NXP LPC55S1x RM R1.3, 37.8.4項 *1
FIFO buffer configurations and usage
Flexcomm Interfaceは、処理されるデータのサイズに応じて、いくつかのデータパック/アンパックの実現性をサポートしています。FIFOの使用方法の詳細は、I2S Configuration register 1(CFG1)レジスタのDATALENフィールドの値と、その他のコンフィギュレーションビットによって決定されます。
DATALENに4~16のデータビット数を指定した場合
- FIFOは幅32ビット、深さ8エントリで構成されます。
- バスとFIFO間の各データ転送は、32ビットワードに収まる左右の値のペアになります。左と右のデータの順序は、RIGHTLOWコンフィギュレーションビットで選択できます。
- ONECHANNEL = 1でチャネルペアを構成した場合、転送されるのは1つの値のみで、公称では左の値となります。
DATALENに17~24のデータビット数を指定した場合
- この場合、FIFOは幅48ビット、深さ8エントリで構成されます。
- バスとFIFO間のデータ転送は、PACK48コンフィギュレーションビットおよびDMAが有効かどうかによって異なります。
- DMAが有効な場合、すべての転送はFIFOWRまたはFIFORDで行われます。DMAが有効でない場合は、I2S機能で選択されたデータ方向に応じて、FIFOWRまたはFIFORDとFIFOWR48HまたはFIFORD48Hで交互に転送されます。
- いずれの場合も、2回の転送で左右の値のペアが構成されます。左と右のデータの順序は、RIGHTLOWコンフィギュレーションビットで選択できます。
- PACK48 = 0の場合、2つの転送はいずれも17~24ビットのデータを定義します。PACK48 = 1の場合、最初の転送では32ビットのデータが提供され、2回目の転送では定義されたペアデータを完成させるために必要な残りのデータが提供されます。
- チャネルペアがONECHANNEL = 1で構成されている場合は、FIFOWRまたはFIFORDレジスタを使用して左の値のみが転送されます。
DATALENに25~32のデータビット数を指定した場合
- この場合、FIFOは幅32ビット、深さ8エントリで構成されます。
- バスとFIFOの間の各データ転送は、左から右の順に1つの値となります。
- ONECHANNEL = 1でチャネルペアを構成した場合は、1つの値のみが転送されます。