I2S モジュールと PRCM モジュールの両方で、内部オーディオ クロック ソースを選択する必要があります:
- I2S:AIFWCLKSRC = 2
- PRCM:I2SBCLKSEL.SRC = 1
PRCM:I2SCLKCTL.SMPL_ON_POSEDGE レジスタの設定は、BCLK のどのエッジで WCLK 信号をサンプリングするかを指定するものとします。この設定は、I2S:AIFFMTCFG.SMPL_EDGE レジスタの設定と同じである必要があります。
MCLK、BCLK、WCLK 周波数、WCLK デューティ サイクルは次のように設定されます。
- MCLK 周波数 = 48MHz/PRCM:I2SMCLKDIV.MDIV
- BCLK 周波数 = 48MHz/PRCM:I2SBCLKDIV.BDIV
- WCLK の場合、構成はデューティ サイクルによって異なります (PRCM:I2SWCLKDIV。WDIV は WDIV と呼ばれます):
- 単相 (DSP フォーマット): PRCM:I2SCLKCTL.WCLK_PHASE = 0
- WCLK は 1 BCLK 周期の間 high となり、その後、WDIV[9:0] (1 ~ 1023) で指定された BCLK 周期数の間 low となります。
- WCLK 周波数 = BCLK 周波数 / (1 + PRCM:I2SWCLKDIV.WDIV[9:0])
- 二相 (I2S、LJF、RJF 形式): PRCM:I2SCLKCTL.WCLK_PHASE = 1
- WCLK は、WDIV[9:0] (1 ~ 1023) BCLK 周期分だけ high 状態となり、その後 WDIV[9:0] (1 ~ 1023) BCLK 周期分だけ Low 状態となります。
- WCLK 周波数 = BCLK 周波数 / (2 × WDIV[9:0])
- ユーザー定義:PRCM:I2SCLKCTL.WCLK_PHASE = 2
- WCLK は、WDIV[7:0] (1 ~ 255) BCLK 周期分だけ high 状態となり、その後 WDIV[15:8] (1 ~ 255) BCLK 周期分だけ Low 状態となります。
- WCLK 周波数 = BCLK 周波数 / (WDIV[7:0] + WDIV[15:8])
クロック信号 MCLK、BCLK、WCLK の信号生成は、PRCM:I2SCLKCTL.EN = 1 を設定して有効化する必要があります。PRCM:I2SCLKCTL.EN = 0 のとき、MCLK、BCLK 信号、WCLK 信号は静的 Low になります。