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.

[参考译文] TMS320F28069:XINT1-3 — 关联的 16 位计数器 — DMA 传输

Guru**** 2611705 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1570163/tms320f28069-xint1-3---associated-16-bit-counter---dma-transfer

器件型号:TMS320F28069


工具/软件:

您好专家!

我们的实际情况:

我们希望使用 XINT1 和 XINT3 作为外部中断源、没有(!) 触发相应的中断。 没有问题,这肯定是有效的。

在 spruh18i.pdf 的第 192 页上、我们找到了以下信息:

对于 XINT1、XINT2 和 XINT3、还有一个 16 位计数器、每当出现中断边沿时、该计数器就会复位为 0x000
FET。 这些计数器可用于准确地为中断发生添加时间戳。 XINT1CTR
除中断号外、到 XINT3CTR 是相同的;因此、参见图 1-106 和表 1-131
将外部中断的寄存器表示为 XINTnCTR、其中 n =中断编号。

问题:如何获取每个 16 位计数器的值? 我们可以使用 DMA 吗? 如果是、如何执行此操作?

如下图所示(摘自 pdf 第 172 页)、似乎存在 DMA 支持。

是否可以通过 DMA 将 16 位计数器传输到 RAM? 如果没有,如何获得结果,如果“准确的时间戳“

在每个中断边沿上复位吗? 请记住:不能使用 ISR ...

提前感谢您!

Atti

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

    您好、Atti、

    让我看看这个、然后回到您那里。

    此致、

    Delaney

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

    尊敬的 Delaney:
    感谢您的回答。

    请让我重新解释一下我们的需求、分别是我们(可能的)目标:

    1.)
    由于无法修改使用中的硬件(数千片滚入现场)、因此没有可用的 eCAP 模块。

    2.)
    我们要读取与 XINT1 关联的 16 位计数器。 在我们的情况下、这必须离线发生、因为不再可以使用中断(时序!)。

    如果“每当检测到中断边沿时、就会复位为 0x000 “、则如何读取与 XINT1 关联的 16 位计数器  (请参阅

    以上为蓝色文本)? 该控制器是否使用影子寄存器类型来保持计数值?

    这就是为什么我们主要考虑使用由 XINT1 触发的 DMA 通道。


    此致、
    Atti

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

    您好、Atti、

    让我看看这个、然后回到您那里。

    此致、

    Delaney

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

    您好、Atti、

    抱歉,我有点困惑 — 您是否有疑问,由于固件无法修改,如何使用调试器检查此寄存器值?

    “发生离线“是指未连接调试器的情况下? 还是您在主循环中是指没有触发中断(我假设这样)?

    若要在主循环中读取此计数器值、您可以采用轮询方法来持续检查 XINT 中断标志。 该标志变为高电平后、您可以将相关的 XINTx_CR 寄存器读取到变量中。 您是否在软件中尝试过此操作? 我假设在清除 XINT 条件标志之前计数器本身实际上不应该被清除、但我不确定。

    此致、

    Delaney