STM32
直播中

刘勇

8年用户 1420经验值
私信 关注
[问答]

STM32F2 DAC输出音频有噪声的原因?怎么解决?

配置为                          DMA_InitStructure.DMA_PeripheralBaseAddr = DAC_DHR12R1_Address;        .DMA_PeripheralDataSize = DMA_PeripheralDataSize_HalfWord;          .DMA_MemoryDataSize = DMA_MemoryDataSize_HalfWord;          .DMA_Memory0BaseAddr = Memory0BaseAddr;          .DMA_DIR = DMA_DIR_MemoryToPeripheral;          .DMA_BufferSize =bufferSize;          .DMA_PeripheralInc = DMA_PeripheralInc_Disable;          .DMA_MemoryInc = DMA_MemoryInc_Enable;//¶ÁÈ¡Êý¾ÝµÄÄÚ´æµØÖ·µÝÔö          .DMA_Mode = DMA_Mode_Circular;          .DMA_Priority = DMA_Priority_High;          .DMA_FIFOMode = DMA_FIFOMode_Disable;        .DMA_FIFOThreshold = DMA_FIFOThreshold_Full;        .DMA_MemoryBurst = DMA_MemoryBurst_Single;        .DMA_PeripheralBurst = DMA_PeripheralBurst_Single;        DMA_Init(DMA_STREAM_DAC,  DMA_InitStructure);}以0x0800填充memory,会有“嘀”的一声,按我设置的缓存大小应该是在DMA 传输一半跟结束的时候出现的。请问有没有人遇到过这种情况?之前在STM32F1上用过是可以的,没有这种噪声。


回帖(1)

梅利号

2024-5-14 18:14:23
STM32F2 DAC输出音频有噪声的原因可能有以下几点:

1. 电源干扰:电源不稳定或者电源滤波不良可能导致噪声。
2. 地线干扰:地线布局不合理或者接地不良可能导致噪声。
3. 布线问题:信号线与电源线、地线等干扰源过于接近,可能导致噪声。
4. 外部干扰:外部电磁干扰可能导致噪声。
5. 软件问题:DAC配置不当或者DMA传输问题可能导致噪声。

为了解决这些问题,可以尝试以下方法:

1. 确保电源稳定且滤波良好。可以使用线性稳压器或者增加电容来改善电源质量。
2. 优化地线布局,确保地线连接良好。使用星形接地法,将所有地线连接到一个共同的接地点。
3. 优化布线,避免信号线与干扰源过于接近。尽量使用短的信号线,并保持信号线与电源线、地线等干扰源的距离。
4. 增加屏蔽层,减少外部电磁干扰。可以使用屏蔽电缆或者在PCB上增加地线作为屏蔽层。
5. 检查DAC配置,确保配置正确。根据STM32F2的参考手册,正确设置DAC的触发方式、输出缓冲器等参数。
6. 检查DMA配置,确保配置正确。根据STM32F2的参考手册,正确设置DMA的通道、优先级、数据大小等参数。

你提供的代码片段是DMA配置的一部分,它设置了DMA的外设基地址、外设数据大小、内存数据大小等参数。确保这些参数正确设置,以避免DMA传输问题导致的噪声。

最后,可以使用示波器或者频谱分析仪来观察噪声的特性,以便更好地定位问题。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分