ガレスタさんのDIY日記

電子回路、Web、組み込み、自作エフェクターを語るblog

i.MX RT1050 SAI概略

一番最初に書くべきだったけど許してください

SAI(Synchronous Audio Interface)

マルチなプロトコルに対応したオーディオペリフェラルのこと。
最近のSTM32「Serial Audio Interfaceと呼ばれてる」とかにも載っている.

f:id:gsmcustomeffects:20180118231736p:plain

図を見てもらえればわかる通りに二つのブロックから構成されている。
2つのブロックをそれぞれ別に設定したり同期して使用することも可能

対応プロトコル

結構多くのプロトコルに対応している

  • I2S
  • Left justified,Right justified
  • 左寄せ
  • TDM
  • PCM
  • カスタマイズ
  • AC97

特徴

  • クロック柔軟性が高い(tx、rx独立も可能)
  • 広範囲サンプル周波数に対応(SDKでは8k~96kまで対応)
  • FIFOフレームが32Wordまで対応(32bit x 32)
  • データ詰めも柔軟に対応可能
  • FIFO関連の割り込みフラグが結構多い(DMAリクエストも同様)
  • 多くのデータラインを持つ(SAI1は4本のデータラインを持っている)

まとめ

STM32のSAIとの違いはFIFOの大きさ、割り込み生成フラグの種類、データラインの数ぐらいかな
i.MXRT1050はFreescale由来のペリフェラルが引き継がれてる。
大きな違いとしてはDMAがあげられる。オーディオのアプリケーションの場合ペリフェラルの組み合わせでパフォーマンスが決まるのでデータ処理に直結するDMA関連が柔軟当面ではアドバンテージがあると思う。
さらにRAM関連も見直されて柔軟になっているし期待できる。

一方STM32もH7になってからDMAの種類が変わってきているのでそちらも評価を行なって行く予定である。