
DMAとCIPSを使用したオーディオ録音と再生
このデモは、PIC18F57Q43 Curiosity Nanoプラットフォームに基づいています。サウンド記録にはADCの使用、外部メモリモジュールとのインターフェースのSPI、再生のためのDAC、データ転送のためのDMA、およびサンプリング頻度を定義するタイマーの使用について詳しく説明します。このアプリケーションは、スイッチデバウニングにTimer2 HLTとCLCを使用し、クラスDパワー増幅にコンパレータとPWMを使用することも示しています。
関連文書
- 直接メモリアクセスとコア独立周辺機器を使用したオーディオ録音と再生(AN3548)
使用されているソフトウェア
- mplab®x ide 6.15またはnewer(microchip.com/mplab/mplab-x-ide)
- mplab®xc82.45または新しいコンパイラ(microchip.com/mplab/compilers)
- MPLAB®CodeConfigurator(MCC)5.3.7またはnewer(microchip.com/mplab/mplab-code-configurator)
- MPLAB®コードコンフィギュレーター(MCC)デバイスライブラリpic10 / pic12 / pic16 / pic18 mcus(microchip.com/mplab/mplab-code-configurator)
- Microchip PIC18F-Qシリーズデバイスサポート(1.23.425)またはnewer(packs.download.microchip.com/)
使用されているハードウェア
- PIC18F57Q43 Curiosity Nano Evaluation Kit(DM164150)
- Click Boards™(AC164162)のCuriosityNanoベース
- マイククリック(Mikroe-2563)
- フラッシュ2クリック(Mikroe-2267)
- protoクリック(Mikroe-1507)に実装されたパワーアンプ
ハードウェアのセットアップ
PIC18F57Q43 Curiosity Nanoボードと必要なクリックボードとの間の必要な接続を以下に示します。
- クリック1拡張は、マイククリックボードに接続します。これにより、AN1ピンを使用して、ANALOG音声信号をPIC18F57Q43にオンボードに転送します。マイククリックには、搭載された信号コンディショニングとフィルタリング回路があります
- Click 2拡張はFlash 2に接続します。クリックボードをクリックします。このボードには、MicroChipによるSST26VF064Bフラッシュメモリチップがあり、SPIを使用してマイクロコントローラーと通信します
- Click3拡張は、Proto ClickでカスタムメイドのクラスDパワーアンプ回路に接続します
Curiosity Nano Board Connections

protoクリック回路

フルシステムのセットアップ

protoクリック

ソフトウェアのセットアップ
MCCは、以下を構成するために使用されます。各コンポーネントの詳細と設定については、MPLAB Xプロジェクトを参照してください。
- システムセットアップ-CPUおよび割り込み
- TMR0- 10 kHzサンプリングタイマーを生成するために使用されます
- ADCC-アナログオーディオ信号のサンプリングと量子化に使用
- DAC1-アナログオーディオ信号を出力するために使用されます
- SPI1-外部メモリモジュールとの通信に使用されます
- DMA(DMA1、DMA2、DMA3、DMA4、DMA5、DMA6) - データ転送操作
- PWM1-オーディオアンプの鋸歯状の波形を作成するために使用されます
- CMP1 -SawTooth波形とDCオフセットDAC出力を比較するために使用され、PWM信号を生成してオーディオスピーカーを駆動する
- TMR2/4-CLC1/2とともに、ボタンのデバウンドに使用されます
- CLC1/2- TMR2/4とともに、ボタンのデバウンドに使用されます
- UART1-デバッグメッセージの送信と受信に使用されます
手術
アプリケーションを実行するには、Curiosity Nanoボードのボタンを使用します。
- デフォルトでは、アプリケーションは「アイドル」モードです。
- ボタンをダブル押して、「録音」モードを入力します。システムは、ボタンが再び押されて停止するか、メモリがなくなるまで録音を続けます。外部メモリが存在する場合、録音はそこに保存されます。それ以外の場合、録音は内部フラッシュメモリに保存されます。
- ボタンを1回押して、「再生」モードに入ります。システムは、ボタンが再び押されて停止するまで、または録音全体が再生されるまで、メモリに保存されている録音されたオーディオを再生し続けます。
- ボタンを長く押して「消去」モードに入り、メモリから記録全体を消去します。
Amplifierと一緒にProtoクリックで特別なボタンを使用できます。このボタンを長く押して、システムが単純なアンプとして機能し、オーディオを記録して保存しない「パススルー」モードに入ります。この特別なボタンをもう一度押して、「パススルー」モードを離れます。
オーディオは、Proto ClickでクラスDアンプを介して再生されます。 Protoクリックに乗って2つのジャンパーがあります。
- ジャンパーJ1は、マイククリックとヘッドフォンマイクの間でオーディオ入力ソースを選択します。 (ヘッドフォンマイクが3.5mmオーディオジャックに接続されていないときは、常にマイクをクリックします)
- ジャンパーJ2は、外部スピーカーと3.5mmオーディオジャックの間でオーディオ出力を選択します。外部スピーカーまたはヘッドフォンは、3.5mmオーディオジャックに接続できます。
注:ノイズ誘導を避けるために、「パススルー」モードでオーディオ出力とマイク入力の両方にヘッドフォンを選択しないようにすることをお勧めします。
まとめ
DMAは、さまざまな構成でレジスタ、RAM、フラッシュ間でデータを転送するのに最適な方法です。 CPUを解放して他のタスクを実行することに加えて、速度と使いやすさを可能にします。
DACは、8ビット解像度が高いため、サンプリングされたオーディオ信号のはるかに優れた再現を可能にします。 DACの緩衝出力は、信号を分解することなく、異なる周辺機器と直接大きな接続を形成します。これは、PWMとコンパレータとともに使用して、優れたクラスDパワーアンプを形成できます。
Timer2 HLTをCLCと組み合わせることで、優れたコードフリースイッチデバウンス手法を使用できます。