LPC4330-Xplorer i2s LPCOpen sample

NXGのサンプルに引き続きLPCOpenのi2sを使用してみます。 
Jpeg
LPCOpenは以下のページからダウンロードできます。 
https://www.lpcware.com/content/nxpfile/lpcopen-software-development-platform-lpc43xx-packages 
 
LPCXpresso v7.9.2_493 IDEにサンプルをインポートします。この中の periph_i2sプロジェクトを使用します。 
このサンプルには、ポーリングと割り込みとDMAを使ったサンプルが含まれています。 
ただし、これを使用するには、UARTでコマンドを送る必要があります。幸いにもXBeeをつなげておいたのですんなりとコマンド送信ができました。 
ビルドも難なく通り、書き込みも難なく終わりデバッグできますが、ギターを鳴らしても音が聞こえません。 
Decimator volumeが大きくADC入力が減衰しすぎのようです。NXGのサンプルと同じ値にしました 
UDA1380_REG_DECVOL_DEFAULT_VALUEの0xE4E4を減衰でなく増幅側の0x0F0Fに変更しました。 

音が聞こえるようになりました。音が大きすぎるのでこれも
NXGのサンプルで変更したようにしました 
UDA1380_REG_MSTRVOL_DEFAULT_VALUEの0x0000を0x8080に変更しました。 

その他の設定は、
48kHzで16bitデータ長になっています。16bitなので送受信時にFIFOから1読み書きで行っています。 

ポーリングは、転送が追い付いていないのか、ノイズだらけで使い物になりません。
 
割り込みは、リングバッファを使うとADとDAがかみ合わないのかノイズがでるのでNXGと同じようにバッファをつかず、直接転送すれば使用できます。 
DMAは、ノイズありませんが、ADCからDACへ直接転送している設定なので入力を処理して出力に出すことができません。メモリに転送する方法を探ろうと思います。
当面、割り込みを改造して遊んでみようと思います。

© 2014 Spineedge Corporation.