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 器件上使用 GPIO 实现快速并行数据采集

Guru**** 2529560 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1498718/mspm0g3507-fast-parallel-data-acquisition-with-gpios-on-mspm0g-devices

器件型号:MSPM0G3507

工具/软件:

尊敬的专家:

模块 一种   通过 GPIO 引脚尽快读取并行数据(例如、SAR ADC 的12至16位)的解决方案 、M0G M0+内核将运行@ 80 MHz (源自20MHz 时钟信号输入)。

两个问题:

  1. 是否可以选择将 DMA 与 GPIO 引脚结合使用( 数据输入 )到 SRAM 存储器? -阅读 TRM 它似乎只是 DMA 至 DOUT  器件
  2. 您能否提供一个简单的 代码示例以尽可能快地读取并行数据?

- 16位并行数据(GPIO)读入并存储到 SRAM 缓冲区(总共最多2KB 或1KB x 2字节)

-在执行循环中读取(最快的可能)?

-什么将是最大的 以这种方式进行数据采集的数据速率(以 MHz 或 MCU 周期为单位)? - GPIO 可以切换  

谢谢。此致、

Milen

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

    尊敬的 Milen:

    根据您的描述、您将使用 MSPM0的12-16个 GPIO 引脚实现外部 ADC 输出、对吗?

    1.正如您所说、我们的 DMA 无法将数据从 GPIO 输入寄存器传输到 SRAM 存储器。

    2.我认为在没有 DMA 的情况下获取 GPIO 数据有两种方法:

    -在主循环中轮询:这是最快速的方法。 但缺点是"采样"时间不在常量周期内。 它无法控制读数的两倍时间间隔。 并且它可能会受到其他中断任务的影响。

    -计时器中断采样:这种方法可以保留一个常量采样周期。 但会引入额外的中断响应时间。

    如果未执行其他任务、我认为80MHz 频率的最大数据速率可能约为 MHz 级别。