完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
大家好,任何人都可以提供任何帮助都会非常感激。我试图ADHS模块与标准DMA控制器(不是集成控制器,它是ADC本身的一部分)一起工作,但运气不佳。频率3.2MHz。ADC设置为12bit,定时设置为3.5 MSPS。使用标准轮询方法和在数据就绪中断之后读取值都很好。我有DMA设置来使用数据就绪标志作为触发器读取ADCDATAX寄存器。DMA正在触发,如果启用,中断将按原样发生,但是我从ADCDATAX寄存器得到的所有信息都是零。我已经确保了源和目的地是物理地址,而不是虚拟地址,并且地址在调试时看起来是正确的。MA初始化代码:uint32_t srcptr=_PLIB_VirtToToPhys((const无效*)&;ADCDATA4);SYS_DMA_信道传输集(iScanData.dmaCdmaCh3Handle(iScanData.dmaCh3Handle,(const void*)smaCdmaCh3Handle,(const void*)sccmaCh3Handh3Handle,(const void*)scdmaCdmaCdmaCh3Handh3Handle,(const void**)sccdmaCdmaCh3Handh3Handh3Handle,(const void***)sccdmaCddmaCddddddmaDDDDCHANNEL_OP_MODE_AUTO,DMA_TRIGGER这是不起作用的。但是,如果我将DMA指向系统内存中的某个位置,它就会正常工作,并返回正确的数据值:静态uint32_t值=256;uint32_t srcptr=(uint32_t)&value;它工作得很好。任何关于如何从ADC读取它的建议都非常感谢。我使用的是HARMony 2.06、XC32 2.10和PIC32MK1024MCF064。案例。
|
|
相关推荐
3个回答
|
|
深入挖掘(参考数据表第74页的表4-4),这是否是总线仲裁问题?如果我是对的,有人知道是否有可能给ADC模块提供DMA控制器读/写访问?
|
|
|
|
常规DMA不能访问ADC寄存器,如表4-4所示。因此,任何试图让DMA从ADC获得数据的尝试都不起作用。ADC应该有自己的专用DMA,可以直接将数据复制到SRAM。但是我不能告诉您如何用ADC驱动程序和谐地设置它,但是PLIB_ADCHS_DMASetup、PLIB_ADCHS_DMASourceEnable和PLIB_ADCHS_DMAEnable函数可能有帮助。
|
|
|
|
感谢拉里的回复,我得出了同样的结论,我也在努力让专用DMA工作。我原来没有走那条路的原因是我希望数据获取完全由DMA来处理,但是由于专用DMA被限制为128字缓冲器,所以我看不出没有使用标准中断的方法。当缓冲区是圆形的并且共享一个公共中断时,您无法确定哪个缓冲区已满,而不询问计数寄存器和调整缓冲指针。
|
|
|
|
只有小组成员才能发言,加入小组>>
5161 浏览 9 评论
1999 浏览 8 评论
1928 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3171 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2226 浏览 5 评论
731浏览 1评论
613浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
503浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
629浏览 0评论
527浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 22:48 , Processed in 1.160106 second(s), Total 80, Slave 64 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号