
使用DMA和CIPS進行錄音和播放
該演示基於PIC18F57Q43好奇心Nano平台。它詳細介紹了ADC用於聲音錄製的用法,用於與外部內存模塊接口的SPI,用於播放的DAC,用於數據傳輸的DMA以及使用計時器來定義採樣頻率。該應用程序還證明了Timer2 HLT和CLC進行開關辯式辯論的使用,以及用於D類功率放大的比較器和PWM。
相關文檔
- 使用直接內存訪問和核心獨立外圍設備的錄音和播放(AN3548)
使用的軟件
- Mplab®X IDE 6.15或更新(microchip.com/mplab/mplab-x-ide)
- Mplab®XC8 2.45或較新的編譯器(microchip.com/mplab/compilers)
- Mplab®代碼配置器(MCC)5.3.7或更新(microchip.com/mplab/mplab-code-configurator)
- Mplab®代碼配置器(MCC)設備庫PIC10 / PIC12 / PIC16 / PIC18 MCUS(microchip.com/mplab/mplab/mplab-code-configurator)
- Microchip PIC18F-Q系列設備支持(1.23.425)或較新(PackS.Download.microchip.com/)
使用的硬件
- PIC18F57Q43好奇心Nano評估套件(DM164150)
- 好奇心納米基礎,用於點擊板™(AC164162)
- 麥克風點擊(Mikroe-2563)
- Flash 2單擊(Mikroe-2267)
- 在原始點擊(Mikroe-1507)上實現的功率放大器
硬件設置
PIC18F57Q43好奇心納米板與所需點擊板之間的必要連接如下:
- 點擊1擴展連接到麥克風單擊板。這使用AN1 PIN將模擬語音信號傳遞到ADC板上PIC18F57Q43。麥克風點擊具有信號調理和板上的過濾電路
- 單擊2擴展連接到Flash 2單擊板。該板具有Microchip的SST26VF064B閃存芯片,並使用SPI與微控制器進行通信
- 單擊3擴展連接到proto上的自定義D類功率放大器電路
好奇心納米板連接

原始點擊電路

完整的系統設置

單擊原始

軟件設置
MCC用於配置以下內容。有關每個組件的詳細信息和設置,請參閱MPLAB X項目。
- 系統設置 - CPU和中斷
- TMR0-用於生成10 kHz採樣計時器
- ADCC-用於模擬音頻信號的採樣和量化
- DAC1-用於輸出模擬音頻信號
- SPI1-用於與外部內存模塊通信
- DMA(DMA1,DMA2,DMA3,DMA4,DMA5,DMA6) - 數據傳輸操作
- PWM1-用於為音頻放大器創建鋸齒波形
- CMP1-用於比較鋸齒波形與DC偏移DAC輸出以產生PWM信號以驅動音頻揚聲器
- TMR2/4-與CLC1/2一起用於擊敗按鈕
- CLC1/2-以及TMR2/4,用於擊敗按鈕
- UART1-用於發送和接收調試消息
手術
要運行應用程序,請使用好奇心納米板上的按鈕。
- 默認情況下,該應用程序處於“空閒”模式。
- 雙按按鈕輸入“記錄”模式。該系統將繼續記錄,直到再次按下按鈕停止,或者它的內存不足。如果存在外部內存,則將記錄存儲在那裡。否則,錄製將存儲在內部閃存中。
- 按一下按鈕輸入“播放”模式。該系統將繼續播放存儲在內存中的錄製音頻,直到再次按下按鈕停止,或者是否播放了整個錄製。
- 長按按鈕輸入“擦除”模式,然後從內存中刪除整個錄製。
在proto上單擊放大器,可以在Proto單擊上提供一個特殊的按鈕。長按此按鈕輸入“通行”模式,其中系統充當簡單的放大器,並且不會記錄和存儲音頻。再次按下此特殊按鈕以離開“通行”模式。
音頻將通過Proto Click上的D類放大器播放。 Proto單擊有兩個跳線:
- Jumper J1選擇麥克風和耳機麥克風之間的音頻輸入源。 (當耳機麥克風未連接到3.5mm音頻插孔時,請始終選擇麥克風單擊)
- Jumper J2選擇外部揚聲器和3.5mm音頻插孔之間的音頻輸出。外部揚聲器或耳機可以連接到3.5毫米音頻插孔。
注意:建議避免在“通過”模式下選擇音頻輸出和麥克風輸入的耳機,以避免引起噪音。
概括
DMA是在不同配置中以寄存器,RAM和Flash之間傳輸數據的好方法。除了釋放CPU執行其他任務外,它還可以速度和易用性。
由於8位分辨率更高,DAC允許更好地複制採樣的音頻信號。 DAC的緩衝輸出直接與不同的外圍物形成了良好的連接,而不會降低信號。這可以與PWM和比較器一起使用,以形成出色的D類功率放大器。
Timer2 HLT可以與CLC結合使用,以獲得出色的無代碼開關辯論技術。