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.

[参考译文] TMS570LC4357:具有 DMA 且无中断的 ADC

Guru**** 2385390 points
Other Parts Discussed in Thread: TMS570LC4357, HALCOGEN
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1495834/tms570lc4357-adc-with-dma-and-no-interrupts

器件型号:TMS570LC4357
主题中讨论的其他器件: HALCOGEN

工具与软件:

我将尝试在没有任何中断的情况下将 DMA 与 TMS570LC4357的 ADC1一起使用。 我的目标是以 RTI 配置的速率对 ADC 采样、我已将这一速率配置为 ADC 的硬件触发器。 一旦 ADC 转换完成(针对一个单一组中的2个通道)、它应该触发 DMA 执行一个传输、这个传输操作只需将新的 ADC 转换结果复制到一个缓冲区中、这个缓冲区已经被配置为在 HalCoGen 和连接器文件中被共享。  

我已经附上了相应的 adc.c 和 main.c 文件。 我的后一个目标(注释掉了代码)是将 DMA 连接到第二个传输、这样我就可以跟踪自上次检查以来发生的 DMA 传输数量。  

毕竟、DMA 不会触发传输、ADC 似乎不会 成功转换任何结果。 是否有任何指导或建议?

e2e.ti.com/.../8831.HL_5F00_adc.c

e2e.ti.com/.../4520.HL_5F00_sys_5F00_main.c

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    作为更新、ADC 现在至少成功转换一次结果(我看到 ADC FIFO 缓冲器更新)。 有一些 HalCoGen 错误。 但我看不到 DMA 仍然将它们写入 adcSampleBuffer。 编辑:交换了 dest 和源地址、修复了这个问题、现在可以看到 在 adcSampleBuffer 中写入的索引0和1、并且没有任何其他内容-还更新了 FRDOFFSET。  我已经使用 HalCoGen 和连接器文件建立了共享存储器区域。

    因此、我仍然受困于对我的 DMA 数据包配置提出质疑、因为我希望整个缓冲区会自动填满并绕回

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    嗨、Spencer、

    您能否查看这个经过测试的 ADC-DMA 示例:

    e2e.ti.com/.../7750.ADC_5F00_with_5F00_DMA_5F00_RM46.zip

    这并不是在同一器件上、但是在同一控制器系列上。 因此、请将其作为参考、并验证您的与 DMA 相关的配置一次。

    ——
    谢谢、此致、
    Jagadish。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    谢谢本示例。 从示例中可以看出、我的 DMA 配置可以开始使用了。 我意识到 RTI 的触发似乎有问题。 发现我丢失了设置 COMP0CLR 寄存器以及 INTCLRENABLE 来自动清除 RTI 的中断标志。  

    正确设置 RTI 后、我能够正确配置其他一切并解决问题。