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.

[参考译文] TMDSDSK6416:使用 DSP 计时器生成短脉冲

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/793958/tmdsdsk6416-generate-short-pulse-with-dsp-timer

器件型号:TMDSDSK6416
主题中讨论的其他器件:TMS320C6416T

您好!

我正在尝试使用 DSP 的32位计时器生成短脉冲。 我使用的是 DSK6416板。 我需要脉冲宽度短至50ns-100ns、并且能够更改占空比。 我尝试读取定时器的 CNT 寄存器、并将 DATOUT 设置为在达到正确的宽度时在定时器的 TOUT 引脚上驱动。 问题是、当我使用 TIMER_setDatOut API 时、无法获得50-100ns 的脉冲宽度。 您可以得到的最短脉冲宽度为150ns。 下面是我的简单代码:

#include 
#include 
#include 


Timer_handle hTimer;

Timer_Config MyConfig ={
0x00000300、//时钟模式、内部时钟源 f_CPU/8、DATOUT 在 TOUT DSK 以1GHz 运行时驱动
0x0000003E、//f=125MHz/(该值) 1MHz 频率为例
0x00000000
};

void main ()
{

CSL_init ();
timer_config (hTimer、&MyConfig);
hTimer = timer_open (timer_DEV0、0);
timer_start (hTimer);

while (1)
{

if (timer_getCount (hTimer)<10)}{
timer_setDatOut (hTimer、1)}


;while (setOutTimer 0);}}(timer 0)




感谢你的帮助

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

    您好!

    您使用的是 DSK 电路板的哪个版本? 我看到有3个版本:V1 @ 600MHz、v2 @ 720MHz 和 v3 @ 1GHz。 您是否知道您的计时器的配置频率是多少?

    如果您在如下所示的简单 while 环路中切换计时器、脉冲宽度有多短?

    while (1)
    {
    timer_setDatOut (hTimer、1);
    timer_setDatOut (hTimer、0);
    } 

    此致、
    Sahin

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

    感谢你的答复。 我的 DSK 电路板为版本3、运行频率为1GHz。 我已将计时器配置为1MHz、计时器的输入时钟为125MHz。 我按照您的建议在一个简单的 while 环路中切换了计时器、并且得到了80ns 的脉冲宽度。 计时器应提供比该值更短的脉冲宽度。 如 TMS320C6416T 的数据表所示、定时器能够在高电平状态下输出5ns 脉冲持续时间。

    顺便说一下、是否有任何方法可以在不使用 DSP/BIOS 配置的情况下更改 DSP 内核频率?

    此致、
    Farzin