
使用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结合使用,以获得出色的无代码开关辩论技术。