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.

[参考译文] MSP430FR5969:使用DMA处理多个ADC信道

Guru**** 2540720 points
Other Parts Discussed in Thread: MSP430FR5969

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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/581685/msp430fr5969-handle-multiple-adc-channels-using-dma

部件号:MSP430FR5969

您好,

我想使用 MSP430FR5969的4个ADC通道来连续计算正弦波的RMS。

我想知道我是否可以使用DMA来处理这4个通道。 如果可能,我如何 使用DMA按顺序读取这些信道。

谢谢,此致,

Maisie

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

    您可以使用ADC信道序列模式和ADC12IFG触发DMA传输。 但由于勘误ADC43,DMA将在每次ADC转换结束时触发,而不是在通道序列结束时触发。 由于每个转换都存储在不同的内存地址(ADC12MEM0至ADC12MEM3)中,并且您只有3个DMA通道可供使用,因此还会遇到进一步的困难。 您可以增加源地址以进行补偿,但这需要DMA传输大小为4,然后才能中断并更改目标地址。 此类似主题中也讨论了此问题: e2e.ti.com/.../58.0609万

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

    使用一个DMA将ADC转换从固定源传输到递增目标(阵列),并使用第二个低优先级DMA在重复单传输模式下有效地将第一个DMA的源地址从ADC12MEM0更改为ADC12MEM3, 这可能是ADC43勘误表的一种可能的变通办法,同时不会在尽可能长的时间内干扰传输。 另一个感兴趣的话题: e2e.ti.com/.../

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

    hii感谢您的迅速回复,

    您想说,使用两个DMA通道吗??

    根据我的理解,我们使用 ADC信道序列模式和ADC12IFG触发DMA传输。 另一方面,对于DMA,源地址和目标地址必须递增。其中目标是阵列。

    那么我的DMA是否知道我  配置的序列结束(ADC12MEMx REG),并在此停止? 也不清楚在哪个ADC12IFG上我的DMA将 被中断?

    此致,

    Maisie

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是的Maisie,使用两个DMA通道,它们都在ADC12IFG上触发。 请记住,由于ADC43勘误表,DMA将在每次ADC转换结束时触发,而不是在通道序列结束时触发。 第一个DMA通道是目标阵列的大小,并相应地增加阵列, 第二个DMA通道处理ADC43勘误表时,使用与序列中ADC通道数相等的大小,使用ADC12MEMx寄存器地址重复递增第一个DMA通道的源地址。 第一个DMA通道应在完成整个阵列的传输后触发中断。

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

    您好,Ryan,

    非常感谢您提供的帮助。 :)

    就像你说的,我做了什么。 我使用了一个DMA通道和ADC信道序列模式和ADC12IFG来触发DMA传输(ADC12MEM0至ADC12MEM3)目的地也被设为增量。此外,DMA传输大小设为4,因此DMA信道仅在读取所有四个ADC信道后中断一次。

    而且它很有效!

    此致,

    Maisie