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.

[参考译文] MSPM0G3507:[MSPM0G]使 UART、ADC 和 AMP;DMA 正常工作时出现问题。

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1210632/mspm0g3507-mspm0g-problem-getting-uart-adc-dma-to-work

器件型号:MSPM0G3507
"Thread: SysConfig"中讨论的其他器件

尊敬的所有人:
我当前正在尝试配置 MSPM0G3507、工作方式如下:

-使用 DMA 发送/接收的 UART (UART0)。
- PWM (TIMA1)处于中心对齐模式、并在每个 PWM 周期的中间触发 ADC0和 ADC1。
- ADC (ADC0/1)、用于转换多个通道(启用 FIFO 的序列模式)、并使用 DMA 将数据传输到全局变量 gAdc0Values 和 gAdc1Values 中。
 - DMA 被配置为"重复块"、并且在 ADC0/1发出 DMADONE 中断时重新使能


我的测试应用程序当前执行以下任务:
1)使用自动生成的代码 fom sysconfig 来初始化外设(SYSCFG_DL_init())。
2) 2)为 ADC0和 ADC1配置 DMA
3) 3)为 UART0配置 DMA
4.a)在无限循环中发送"Hello\r\n"
4.b)发出 DMADONE 中断时、在相应中断服务例程中重新启用 ADC0、ADC1和 DMA。


问题1)"gAdc0Values "(resp."gAdc1Values" )中的 AD 值在主循环中不可用。
当我在 ADC0或 ADC1的 ISR 中设置断点时、数组 gAdc0Values/"gAdc1Values 包含有效的 AD 值。 但是、如果我在主线中设置断点、则整个数组都设置为0。 因此、数组似乎在某个时候过载、但我不知道原因。


问题2) ADC+DMA 似乎会在一段时间后阻止 UART/DMA。
主循环在无限循环中发送"Hello\r\n"、因此等待传输完成、然后再启动另一个循环。 发送945字节后、函数残桩等待 DMA 通道完成、但这永远不会发生。 该问题可以重现、并且始终在发送相同数量的字节数后发生。 禁用 ADC 后、不会出现此问题、因此它在某种程度上可能是相关的。

感谢任何帮助。

此致、

Thomas