classroom 发表于 2025-4-11 15:00

dsPic33a ADC触发DMA问题

我正在尝试设置一个简单的测试,使用DMA将ADC的采样传输到缓冲区。
当缓冲区满时,我希望发生中断,这样我就可以通过UART发送样本。
我可以让ADC触发SCCP1事件。我通过测试转换完成位并将单个样本发送到UART来测试这一点。看起来ADC运行正常。https://forum.microchip.com/servlet/rtaImage?eid=a58V4000000JFY1&feoid=00N3l00000FRqlI&refid=0EMV4000004yytR

然而,无论如何我都无法让ADC触发DMA。或者,让DMA中断服务程序(ISR)触发。https://forum.microchip.com/servlet/rtaImage?eid=a58V4000000JFY1&feoid=00N3l00000FRqlI&refid=0EMV4000004yz4j
我在main()函数中设置DMA通道的源地址和目标地址。(已附上)
DMA应将500个样本传输到缓冲区,然后中断服务程序(ISR)应被调用。如果我在第31行设置了一个断点,它***无法被触发。我在这里是不是漏掉了什么很明显的事情?

单片小菜 发表于 2025-4-11 15:40

DMA如果直接使用ADC和串口,通道之间是否有干扰?

勇敢的大白菜 发表于 2025-4-11 15:49

单片小菜 发表于 2025-4-11 15:40
DMA如果直接使用ADC和串口,通道之间是否有干扰?

这个不会有干扰的。没有问题的。

喂什么玩意 发表于 2025-4-25 16:09

为了使DMA传输和触发DMA中断服务程序工作,我们可以逐步检查你的实现并确定可能的遗漏或设置问题。

一点点晚风 发表于 2025-8-29 12:36

ADC 触发 DMA 问题常表现为数据采集异常,如丢包、错位或不触发。多因配置错误:触发源选择不当(如未选正确 ADC 通道)、DMA 传输模式错(如循环 / 单次混淆)、优先级冲突,或 ADC 与 DMA 时钟不同步。需检查触发边沿、数据长度匹配,确保 DMA 中断使能正确,并用示波器验证触发信号时序。

野玫瑰 发表于 2025-9-16 15:57

dsPIC33A 的 ADC 触发 DMA 常遇问题:触发源配置错误,需正确设置 ADC 触发源(如定时器、外部信号);DMA 通道映射不当,要关联 ADC 缓冲区与 DMA 通道;优先级冲突,需合理配置 DMA 优先级。解决时检查 ADC 转换完成标志使能,确保 DMA 传输长度与 ADC 缓冲区匹配,用示波器验证触发信号。
页: [1]
查看完整版本: dsPic33a ADC触发DMA问题