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.

[参考译文] TLC5973:为 TLC5973 LED 驱动器实施精确的微秒级延迟所需的帮助

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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/1430442/tlc5973-assistance-needed-for-implementing-precise-microsecond-delay-for-tlc5973-led-driver

器件型号:TLC5973

工具与软件:

尊敬的支持团队:

我目前正在处理一个涉及 TLC5973 3通道12位 LED 驱动器的项目。 在实施数据传输的精确时序要求(尤其是在 delayMicroseconds() 功能方面)的过程中、我面临着一些挑战。 TLC5973数据表规定、写入"0"或"1"位的时序必须遵守基于周期时间的特定限制(t_CYCLE)。

具体而言:

  1. 当×"0"时、第二个上升沿应不早于 t_CYCLE 距第一个上升沿0.9 μ s 发生。
  2. ×"1"时、第二个上升沿应在 t_CYCLE 第一个上升沿后0.5 μ s 内发生。

我在实现准确的 delayMicroseconds() 功能时需要帮助来满足这些要求。 如果您能提供以下方面的指导或建议、我将不胜感激:

  • 使用忙等待环路或硬件计时器实现精确的微秒级延迟。
  • 可用于在微控制器上实现此类精确延迟的任何示例代码或库建议。

此外、如果您在将 TLC5973与标准微控制器搭配使用时有任何具体注意事项或配置、请告知建议。

下面我写了一个代码请检查。
#define CASCACK_NUM 1.
#define WRT_CMD 0x3AA
void led_test (void)
GSout0[0]=0X666;
GSout1[0]=0x666;
 GSOUT2[0]=0x666;
for (Device_j=0;Device_j<cascade_NUM;Device_j++)//N-1级联器件数据
   SDI_Data=(((uint64_t) WRT_CMD)<<36)+(GSout0[Device_j]<<24)+(GSout1[Device_j]<<12)+GSout2[Device_j];
   for (bit_i=0;bit_i<48;bit_i++)//write Data
       {
   if ((SDI_Data>>(47-位_I))&(0x0001))
           {
               端口。 P8 = 2;// GPIO HIGH (GPIO 2高电平)
               for (delay_u32 = 0;delay_u32<7;delay_u32++);//1us delay
        端口。 P8 = 0;//GPIO 低电平
               for (delay_u32 = 0;delay_u32<7;delay_u32++);//1us 延迟
               端口。 P8 = 2;// GPIO HIGH (GPIO 2高电平)
               for (delay_u32 = 0;delay_u32<7;delay_u32++);//1us delay
               端口。 P8 = 0;// GPIO low
               for (delay_u32 = 0;delay_u32<35;delay_u32++);// 5us 延迟
           }
           设计
           {
               端口。 P8 = 2;//GPIO 为高电平
               for (delay_u32 = 0;delay_u32<7;delay_u32++);//1us delay
               端口。 P8 = 0;//GPIO 低电平
               for (delay_u32 = 0;delay_u32<41;delay_u32++);// 6us delay
           }
}
       for (delay_u32 = 0;delay_u32<63;delay_u32++);// 9us delay
}
返回;
}
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Sanjay:

    感谢您发送编修! 让我在电子邮件中讨论一下。

    BR、Jared