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.

[参考译文] UCD3138:此设备可以提供的最快中断是什么?

Guru**** 2540720 points


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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/1076329/ucd3138-what-is-the-fastest-interrupt-this-device-can-provide

部件号:UCD3138
“线程:测试”中讨论的其它部件

你(们)好,

我正在尝试中断以更改切换周期和占空比。 中断期小于200ns, 计时器中断(15.625MHz,64 ns)很难实现这一中断期。 请问是否还有其它频率较高的中断,如果有,我可以用什么例子吗?

谢谢

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

    ARM7内核的标称指令周期为32 ns。  ARM 估计,平均指令需要1.9个指令周期。  意味着您可以在200 ns 的时间内执行3个指令。  但我认为,内部处理器整理进入中断至少需要9个指令周期,而不是计算您需要推入或预载的寄存器。  所以你不能这么快地打断。  请注意,您正在请求5 MHz 的中断,这意味着带宽非常高。  除非您尝试进行高速信封跟踪或类似的操作,否则您不需要太多带宽。   

    如果您能告诉我们您需要做什么,也许我们可以告诉您如何使用高速状态机和 UCD 专用控制引擎的故障处理能力来完成这项工作。  它设计用于处理高速设备。  要使用200 ns 的处理器执行有意义的操作,您可能需要一个更昂贵,更耗电的微控制器。   

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

    伊恩,您好,感谢您提供信息。 我正在尝试执行双脉冲测试,第一个脉冲为165 ns (T1-t0)),关闭100ns (T2-T1),打开100ns (T3-T2),然后关闭(T3之后)。 你有什么建议吗? 谢谢你。

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

    UCD 不是一个很好的任意模式生成器。  可能可以使用同步引脚并在 DPWM 上使用同步引脚重置另一个引脚,然后使用 IntraMux 和 Edge Gen 逻辑执行巧妙的操作,但这会耗费大量头骨汗水和时间。  如果要接近,可以尝试将 DPWM 引脚转换为 I/O,并执行一系列 Dpwm0Regs.DPWMCTRL1.All = x 语句,其中只更改 GPIO _A_VAL 和 GPIO _B_VAL 位。  您不能只写入单个位,因为这需要读取,一些逻辑操作和写入,这需要太长的时间。  向所有人写入将需要3到5个指令周期,它将在球场上。  你可以用一两个 NOP 指令来接近165。  当然,你的分辨率是32 ns。   

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

    谢谢,伊恩。 如何将脉冲更改为100 ns,它是在中断中实现的?

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

    不, 中断太慢,正如我所解释的。  您可以使用 DPWM 执行单个100 ns 脉冲,但它不能在单个切换周期中执行不同的脉冲。   

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

    我明白了。 谢谢,伊恩。