单片机/MCU论坛
直播中

杨海清

7年用户 1724经验值
私信 关注

使用计时器和DMA分量测量10 Hz-4,000 Hz之间的信号频率,CY8C6136BZI-F34无法让DMA配置按预期运行的原因?

装置: CY8C6136BZI-F34
IDE:PSoC Creator
设计目标:使用计时器和 DMA 分量测量 10 Hz-4,000 Hz 之间的信号频率。
设计方法:每 200 ms,从一个时钟从 36 MHz 的计数器中读取之前的 32 位时间戳的 6 个元素的缓冲区。
DMA 从时钟分量计数寄存器传输到阵列的 32 位位置。
这是单字(32 位)传输,传输到应从数组元素 0 到 5 的位置。数组的每个触发器都应转到下一个索引。
问题:我无法让 DMA 配置按预期运行。 当我将 Y-Count 设置为 6 时,它只是在向数组位置(第 0 个位置)写入一个值。 当我将 X-Count 设置为 6 时,它似乎每当 HZ_IN_1 信号处于高电平时就会传输,而不仅仅是在上升边缘。 在 PSOC 硬件的其他版本(如 PSOC5LP)中,DMA 组件 CAN 配置为 EDGE 触发。 我认为它可能默认为 LEVEL 触发,并在输入信号为 " 1 " 时反复传输值。


                                                                                                                                                                                                                                                                                                                                                                                                                        
            

回帖(1)

陈伟

2024-1-29 17:46:59
在CY8C6136BZI-F34上配置DMA时不能按预期运行的可能原因有以下几点:

1. 配置错误:可能是DMA的配置参数设置错误。需要确保DMA的X和Y Count的值正确设置。X-Count表示每次传输的数据量,Y-Count表示传输的次数。根据描述,应该将Y-Count设置为6,X-Count设置为4。

2. 中断问题:在DMA传输期间,如果中断被触发并且中断处理函数中存在延迟操作,可能会干扰DMA的正常运行。建议在DMA传输期间禁用相关的中断。

3. DMA通道冲突:可能存在其他使用DMA通道的组件或中断。在设计中,需要确保其他组件或中断没有占用DMA通道。

4. DMA触发问题:DMA通过配置一个触发源来启动传输。可能是触发源设置不正确导致传输无法启动。需要确保触发源与所需的时钟计时器相匹配。

针对上述可能的原因,请仔细检查和确认DMA的配置参数、中断设置、DMA通道占用情况以及触发源设置是否正确,并根据需要进行调整。
举报

更多回帖

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