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.

[参考译文] TM4C129XNCZAD:是否可以使用散聚 UDMA 进行定时器触发、带时间戳的四路 SSI 传输?

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/588890/tm4c129xnczad-are-timer-triggered-timestamped-quad-ssi-transfers-possible-with-scatter-gather-udma

器件型号:TM4C129XNCZAD

我想构建一个持续运行的流式 uDMA 传输、它的输出我在软件中进行转换、以便通过 TCP 套接字进行传输。  我理解并确信套接字转换工作正常、但我对 UDMA 散射/收集是否能够满足我的需求没有完全的把握。  应重复硬件计时器的请求、我希望重复散聚模式能够:

1) 1)在四路模式下使用四路 SSI 传输从外部 ADC 获取的数据块。

2) 2)块的最后一个采样被传输后、立即执行一个从 EMACTIMESEC/EMACTIMENANO 到存储器的单一传输、作为时间戳。  如果事实证明这是正确的、我可能决定改用计时器/计数器进行传输。

3) 3)通过中断将存储到软件的数据撤回。

4) 4)在  软件处理已放弃的数据时、将步骤1、2和3重复到另一个缓冲区中。  这是“乒乓”的“乒乓”,但这项工作实际上是通过散聚实现的。

5) 5)从步骤1开始。

UDMA 散聚/聚是否能够做到这一点?

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

    从读取 TM4C129XNCZAD 中可以看到、"散聚"和"乒乓"都使用 主和副数据结构、因此我认为您不能 同时使用"散聚"和"乒乓"。

    如果在传输最后一个采样时您似乎只需要散聚来收集时间戳、那么您可以使用乒乓模式进行传输、并读取中断中的时间戳以完成块吗?

    不确定所需时间戳的精确度、以及中断处理延迟/抖动是否会导致所收集时间戳出现问题。

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

    切斯特您好:

    感谢您的快速回答!  我不应该将散聚和乒乓命名混合在一起。  我的意思是只使用散聚硬件机制、虽然在 SG 传输序列中会嵌入乒乓式缓冲器交替模式。  时间戳的要求非常严格、如果可能、需要几百纳秒、因此我希望由硬件负责传输。  我认为中断延迟是一个大问题、因此我不想为此使用中断。

    此致、

    Leo Bredehoft

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

    建议的计划是否可行?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我不想使用硬件计时器请求来触发收集 DMA、而是想在 GPIO 下降沿触发 SPI DMA 读取、从 ADC "忙"信号失效。 在完成几千个此类 SSI 忙触发传输后、我想存储来自 EMACTIMESEC/EMACTIMENANO 的时间戳并引发中断。 然后、我要将该过程重新开始到另一个缓冲区中。 这将是一个循环的、连续的过程。 在构建硬件之前、我想知道这是否可以通过芯片来实现。 谢谢!
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    根据 TM4C129XNCZ 数据表第9.2.6.6节"外设散聚"、如果 EMACTIMESEC/EMACTIMENANO 传输被视为存储器到存储器的传输、看起来可能会发生这种情况。 有人知道吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如果我正确理解了您的问题、您需要使用来自外部 ADC 的 GPIO 下降沿来触发 SPI 读取操作。 这应该起作用、您实际上应该让 UDMA 对 SSInDR (数据寄存器)执行虚拟写入以启动 SPI 传输(假设 TM4C 是 SPI 主站)。 然后、您将需要另一个 UDMA 来将 SPI 接收到的数据复制到 RAM 缓冲器中。 要在大约一千次 ADC 转换后从 EMAC 寄存器中创建读取时间、您可以将同一 ADC BUSY 信号连接到计时器引脚、并使用计时器对事件进行计数。 当事件计数匹配时、让它触发第三个 UDMA 通道、以从 EMAC 寄存器复制到 RAM 并创建中断。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Bob -相信您的指导是非常明智和聪明的。 (当然、"勾选"就像这样。)

    现在-海报的请求是为了(避免)"构建硬件"(4月27日发布、12:38)、直到他的理解/希望得到验证。

    他不能避免使用 launchpad 来"构建硬件"、该 launchpad 已连接到"ADC 评估板"中(假设有确切或相似的 ADC 可用)、因此他的关键/关键操作要求可能是"淘汰?"  这种技术(通常)使我的小组能够得出合理的结论、即使"最终硬件"具有"蒸气"一致性时也是如此。    (尚不存在或不可用!)

    根据经验-这种方法的发展和常规做法将在这里证明对如此(许多)有利...   ("现实世界"中的论坛帮助较少。)

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

    每个 SSI 读取传输(作为主器件)将由 Bi-SSI 模式下的8-10字节(包括2个 Bi-SSI 开销)组成、每次传输一个 GPIO 请求。 我想 SPI 传输将是散聚传输、并在一定程度上将 SG 列表回循环到第一个命令以进行连续操作。

    我不确定如何为硬件连续交替缓冲方案构建 SG 列表、每个缓冲器传输1000次。 它也不必交替。 更可取的做法可能是直接流式传输到单个旋转缓冲区中、该缓冲区的数据由后台任务或低优先级中断中的任务生成。 我可以这样做吗? 如何循环进行硬件保证的连续传输、而无需在中断例程中进行 DMA 重新编程? 我已经流式传输、不允许抖动、ADC 采样率接近2M 样本/秒,因此中断延迟不能直接影响采样传输--它需要由硬件管理。 我希望我不必构建一个包含1000个描述符的任务列表。

    我需要能够限制时间戳和样本之间的时间。 如果两个 DMA 流同时启动、那么我可以认为最后一个 SSI 传输在存储时间戳的几个内部总线延迟内。 这是合理的吗? 可能时间戳 DMA 的优先级比 SSI DMA 高、它可用于在任务列表上执行某种实时操作、强制缓冲区绕回/切换与时间戳同时进行。

    从 GPIO 转换到接口上的 SSI 传输开始、您期望的最大延迟是什么? 这将设置采样率的上限。

    如果需要、您可以通过 TI 存档的电子邮件与我联系、我们可以设置电话。

    此致、
    Leo Bredehoft
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我有一个 TM4C129X 开发板、我很乐意用它来测试想法。 但是、如果您在上述要求中找到了一个关键因素、我可能只需跳过该要求、然后求助于一些基于 EPLD 的外部帮助、选择最适合 MCU 的接口。 在软件方面、该设计在执行一些手动优化的位打包后、通过以太网对接收到的数据进行流式传输、这仍然会使75%的处理器产生开销。 这只是供参考--我想我的软件在控制之中。 我在 e2e.ti.com/.../2174529上获得了精通网络的 TI 人员的帮助
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    请问您的“4月27日,2:57”帖子是否针对我?

    我喜欢细节和您(非常)深思熟虑的任务描述。 详细程度(可能)过度挑战-因此是公司/ I -最总是倒退、"实时实验-可复制"到"演示"关键/关键事实。

    由于您的要求如此之多、"复杂且移动的零件"-在我看来、"亲吻"和系统、个人、渐进的验证是唯一(最好的方式)继续进行的!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是的、我回应了实验想法。 考虑到工作所面临的时间压力、我尝试在经验确定的优化和此设计只是外设支持领域的快速结果之间进行权衡。 如果我能够通过在这里颁布知情法令来成功地进行设计,那么我希望有时间进行大量的实验。 感谢您的评论--欢迎您提出任何建议。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    谢谢您-请注意、今天注册为"第14天"、因为您的(初始)帖子已到达。
    您的要求的性质非常复杂-并且似乎(并非完全)"随时准备"(甚至)这里有才华的供应商员工。 (也许)

    我喜欢使用"系统、渐进、紧密结合的实验"来获得(真实)对偶数(尤其是)关键和复杂器件行为的理解和验证!   尤其是在"时间是关键"的时候。

    很明显-您很聪明/经验丰富、能够体会到(有时)这种"实验"将会发现(甚至)经过改进/替代的方法/手道-既不 是通过"照明不足/探测/提取"到达的、 也不是通过正常 论坛来发现的!