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.

[参考译文] TMS320F28379D:加载 CLB 计数寄存器

Guru**** 2611165 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/984936/tms320f28379d-loading-the-clb-count-register

器件型号:TMS320F28379D

您好!

我正在尝试加载计数器的计数寄存器。  根据 TRM 第26.4.2.2节,“这个寄存器可以在计数开始前被静态加载,也可以在运行时被动态加载。”  这让我相信、除了事件机制之外、还有其他方法可用于加载计数寄存器。  这是真的、还是我误解了这句话、而且必须始终使用这些事件?

谢谢、

ED

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

    Ed 您是正确的。 在运行时、使用 C28x、"CLB 写入接口"函数可以更新计数器。 CLB 有许多示例、其中许多示例都应包含这一点。  

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

    你好、Nima、

    CLB_writeInteface 函数用于写入计数器和 HLC 的外设寄存器。  但我看不到用于写入计数器计数寄存器的示例。  我目前的理解是、写入该值的唯一方法是、当相应块上发生事件时、从计数器的加载寄存器或 HLC 的寄存器中写入该值。  但是、有一种机制可以通过只读的 CLB_DBG_CX 寄存 器读取计数寄存器。  我希望有一种类似的方法来编写它、这种方法只能通过微处理器来完成、不需要事件。  有这样的能力吗?

    谢谢、

    ED

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

    你是对的。 我说错了。 我过去就是这样做的:

    1.将 CTR 的新值写入 FIFO。

    2.生成触发器以使 HLC 运行程序。

    3. HLC 将 FIFO 中的值拉至 CX。

    CLB 的 EX7:

    CLB_writeInterface(CLB1_BASE, CLB_ADDR_COUNTER_1_LOAD, period);
    HWREG(CLB1_BASE + CLB_LOGICCTL + CLB_O_BUF_PTR) = 0U;
    HWREG(CLB1_BASE + CLB_DATAEXCH + CLB_O_PULL(0)) = period;
    HWREG(CLB1_BASE + CLB_DATAEXCH + CLB_O_PULL(1)) = duty;
    CLB_setGPREG(CLB1_BASE, 1 << TRIGGER_PWM_UPDATE_SHIFT);

    NIMA

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

    有道理。

    谢谢你 Nima、

    ED