完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我有一个应用程序,我需要对ADC进行比较快速的采样。足够快的地方中断CPU开销时间(矢量ISR和退出ISR)消耗太多的CPU。所以第一个想法是DMA是DMA的答案。大多数人都知道,对于DSP,采样定时是关键的,当SPI~CS线路被设置为有效(低)时,这个特定的ADC就开始转换。现在只需在PIC24E上计时就可以了。没有问题。您启用~CS,编写下一个信道多路复用器,读取以前的数据,禁用~CS。这很容易。我在ADC上有4个频道,这个ADC的工作方式是,你给它下一个频道来转换MOSI(SPI TX),然后你拿回你请求的上一个频道。所以这是一个循环在所有4个通道与下面的写/读对(16位)。请求之间的时间间隔是采样周期的1/4,以便每个通道在采样周期被采样。写入通道1ADC多路复用通道0数据写入通道2ADC多路复用通道1数据写入通道3ADC多路复用通道2数据写入通道4ADC多路复用通道3数据我正在读取数据。DMA和SPI部分都在设备数据表和家庭概述中。大部分的配置对我来说是显而易见的。我可以看到如何配置DMA,这样传入的读取数据就被传输到内存。我困惑的是如何用正确的MUX值编写SPIXBUF寄存器。没有办法触发DMA在我能看到的硬件中写入SPIxBUF。与计时器没有任何联系。它说明要让事情顺利进行,你必须写到SPIxBUF。所以我想如下。配置两个DMA通道,一个用于读取,一个用于写入。必须配置两个通道,但不必同时使用这两个通道。启用读通道并保持写入通道禁用。设置PWM输出以处理~CS信号时序。PWM持续时间(有源低脉冲)将足够长,以便SPI发射机可以完成MOSI/MISO交换加上一些净空。当信号变低时,设置PWM中断来中断。启用PWM中断并创建PWM ISR。在PWM ISR中,我手动将下一个ADC复用信道写入SPIXBUF。ISR还通过增加多路复用信道来跟踪多路复用信道。在SPI事务上读回的数据使用DMA自动流到存储器。ADC数据通过信道1、2、3、4、1、2、3、4、……交织到存储器中。我将我的DMA存储变量设置为SAMPLE缓冲器[BuFiStsie](4)以匹配交织。我设置的DMA在16位字模式,连续操作,自动地址增量和计数的BuFFSIZE * 4。这为数据创建了一个循环缓冲区。我可以从DSP例程中的DMA寄存器中读回指向缓冲区的当前指针,这样我只使用包含稳定数据的数据位置。这种配置在作为采样点的硬件中为ADC~CS信号提供了精确的定时,然后允许我低开销地到达s挞的SPI交易,这是没有关键的时机。用这种方法我只有一个中断。也许我可以从论坛成员或微芯片支持团队那里得到一些反馈。你觉得这个方法怎么样?还有另一种方法开销更低吗?也许另一个PIC家族有一个更好的DMA系统,可以直接用硬件触发定时器?
|
|
相关推荐
1个回答
|
|
忽略最后一个帖子。我以为诺斯盖说要用ISR。现在我深入阅读了DMA文档,我想我明白他在暗示什么。我可以用一个定时器或输出比较(OC)IRQ来驱动SPI,而不需要ISR。下面是我对我需要做的解释。1。将dMax ReqBist.IRQSEL配置为适当的定时器或OC IRQ的正确值。我有定时器2、3、4、5和OC 1、2、3、4的选项,所以有很多灵活性。2。配置具有SPIXBUF寄存器地址的DMAX PAD。3。为SPI写创建一个4深DMA缓冲区,每个ADC通道多路复用器设置一个位置,并使用自动地址增量特性循环通过缓冲区。其他用于DMA参数(方向,…)的misc配置,定时器或OC外围配置以及SPI外围配置。因此,在每个定时器或OC中断(无论我选择什么),DMA都将把下一个DMA缓冲元素写到SPI外围。我将尝试一下。如果这工作,那么整个采样过程将由硬件驱动。
|
|
|
|
只有小组成员才能发言,加入小组>>
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 20:45 , Processed in 1.146991 second(s), Total 78, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号