既存のサンプルプログラムを解析し、それをなぞってコーディングするのに苦戦していてなかなか進んでいません。データシートで理解した通りのコーディングがしてあればよいのですが、そうでないところも多々あり・・まあ往々にして自分の理解違いなんですが。
コーデックのデータモードで割込み都度にデータを送受信しますが送信、受信それぞれに8バイト4ワードのバッファを用意しておきます
1サンプリング間隔=1フレームは8タイムスロットに分割され、16ビットステレオモードのときは以下のように順にデータが転送されるようです
コーデックによるデータバッファの更新は割込みで行われるので常時受信バッファの参照、送信バッファへの書込みが直接できます。
モトローラ製評価ボードのサンプルプログラムでは無限ループの中でSSISRレジスタでフレーム同期をチェックして受信バッファの内容を送信バッファにコピーするという処理をしているので、アナログ側から見るとライン入力した信号がそのままライン出力に折り返されてくる動作になります
このコピー処理の始まりと終わりにパラレル出力ポートをトグルしてみると確かに周期的にON/OFFしていることがわかります。ただその間隔は平均では設定したサンプリング周波数通りの48kHz’(1/48ms)程度なのですがフレーム間隔が1/44ms~1/54msくらいでばらつくのと単なるバッファ間コピーにフレーム時間の半分くらいも要しているのが何か変です