工具/软件:
尊敬的 Dirs。
我想使用 Hercules 处理器生成10kHz 正弦波、并让 ADC 对反馈信号进行采样。
我尝试的方法是使用 DMA 以包含正弦波的查找表来重新加载 PWM 模块。
同时、当 DMA 结束事务(一个完整波形)时、我想触发 ADC 转换。
我在第一阶段失败了、无法让 DMA 正常工作。 有人可以帮忙吗?
谢谢你。
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
工具/软件:
尊敬的 Dirs。
我想使用 Hercules 处理器生成10kHz 正弦波、并让 ADC 对反馈信号进行采样。
我尝试的方法是使用 DMA 以包含正弦波的查找表来重新加载 PWM 模块。
同时、当 DMA 结束事务(一个完整波形)时、我想触发 ADC 转换。
我在第一阶段失败了、无法让 DMA 正常工作。 有人可以帮忙吗?
谢谢你。
尊敬的 Txema:
我们可以在数据传输块之后使用 DMA 生成块传输完成中断。
以下示例可参考一次:
e2e.ti.com/.../0434.DMA_5F00_Memory_5F00_to_5F00_Memory_5F00_Transfer_5F00_RM57.zip
在上面的示例中、我正在执行一个数据存储器块到存储器的传输、在执行存储器到存储器传输后、我配置为生成一个块传输中断。 在该块传输中断中、我再次触发传输。 希望这对您有所帮助。
--
此致、
Jagadish。
尊敬的 Jagadish:
瞬时回答要比您小。 我想我在问题中可能提供了太多的细节、并以某种方式"稀释"了我最大的挑战、目的是提供一个更全面的背景来说明我要做的事情。
我最大的挑战不是设置 DMA 通道或在传输完成后获取中断。
我没有工作的是 、每次 PWM 周期结束时、PWM 模块都会请求将新值加载到 CMPA 比较寄存器中。
这是我迄今为止尝试过的:
/*启用 DMA */
dmaEnable();
dmaEnableInterrupt (DMA_CH0、BTC、DMA_INTA);/* DMA_CH0为最高优先级*/
dmaReqAssign (DMA_CH0、42);/* PWM6 SOCA 中的 Ch 42 */
在我已选中"Enable ADC SOCA"并将 SOCASEL 设置为"CTR_PRD"时。 我假设 SOCA 与编程手册"SCI4 Receive /"中所述的 SOCA 相同 ePWM6_SOCA / MIBSPI2[12]/MIBSPI4[12]/GIOB[2]"