ガレスタさんのDIY日記

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

i.MX RT1050 SAIメモ1

自分用メモです。
割り込みに関して

FIFO Request Flag
FIFO Warning Flag
FIFO Error Flag
Sync Error Flag
Word Start Flag


がある。
ここでよく使うものについてだけ触れておこうと思う。

FIFO Request Flag

FIFO闘値の割り込みのこと。
あらかじめ設定しておいた闘値に達した時に割り込みフラグを発生することができる。
STM32のSAIではハーフとか1/4とかそんな感じで説明されている
(STのSAIは32[bit] x 8[word]だがi.MX RT1050は32 x 32もある)

FLAG SET         :闘値設定値より大きい場合にセットされる。
FLAG CLAER     : less than or equalとあるように値設定値小なりイコールでクリアされる。
設定するにはTCR1レジスタの4−0ビットをいじる

FlFO Warning Flag

Txの場合はFIFOemptyでSET、not emptyでCLEAR
Rxの場合はFIFOfullでSET、not fullでCLEAR

FIFO Error Flag

FIFO アンダーフロー時にSETされる一回セットされるとTCSRレジスタのFEFをクリアするまでTxからゼロデータが吐かれ続ける。

TCR4[FCONT]ビットがセットされている場合ソフトクリアなしで継続される。
オーバーフローが発生した場合RCSR[FEF](FIFOラーフラグ)がセットされる。
フラグクリアされるまではデータは捨てられてしまうので注意。
RCSR[FEF]クリア前にRxFIFOは空にすべき(マニュアルではshould〜みたいに書いてるのでどうなんでしょうね?)
RCR4[FCONT]は送信と同じ感じでエラーの際継続の有無

このフラグは割り込みのみ生成可能(DMAはなし)

ここでいうアンダーフローは送信コントローラがFIFO読みに言った際データがない状態、一方オーバーフローはRxFIFOがフルでその状態で次のデータがきてしまって溢れること。