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.

[参考译文] TLC59116:LED 未亮起

Guru**** 2494635 points
Other Parts Discussed in Thread: TLC59116, OPT3001

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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/720986/tlc59116-leds-not-turning-on

器件型号:TLC59116
主题中讨论的其他器件: OPT3001

您好!

我们有一个简单的板、I2C 上只有2 x TLC59116、但。 一个具有 HW 地址、选择位为0、另一个位为1。

我发送以下代码(main()中只有几行代码,但 LED 不会亮起。 示波器上的 I2C 通信是正确的、我看到所有3个字节、包括每个字节的 ACK、因此器件正在接收数据。

您能告诉我吗:

-我是否遗漏了什么

-我需要在之前或之后运行一些其他命令才能打开 LED?

-您能不能用正确的字节/命令序列来编写一个包含伪代码的片段  

非常感谢

Rick

//撰写消息
i2cData[0]= 0xC0;// I2C 从地址(包括硬件配置的 A0)+ R/_W 位
i2cData[1]= 0x14;//控制寄存器
i2cData[2]= 0x01;//将 LED 完全打开
i2cDataSz = 3; //消息大小

I2CState = I2C_SendMessage (I2C_2、i2cData、i2cDataSz); 

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

    您好、Rick、

    请尝试使用 allcall 地址 0x68来测试地址是否正确。

    在此、我随附我们的代码供您参考。

    e2e.ti.com/.../5086.TLC59116-Sample-Code.zip

    请告诉我这是否能解决您的问题。

    谢谢。

    此致、

    Kenneth

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

    谢谢 Kenneth、

    发送0x68时没有发生任何情况。 LED 仍然未亮起。

    感谢您的代码、有一些函数未定义、因此我看不到它们执行的操作。 它们看起来是库的一部分。 因此、例如 I2C_masterSendMultiByteStart 有2个参数、但我看不到它的实现。

    出于这一原因、也由于我看到 I2C 通信正常工作、我最初要求提供详细的伪代码、以便甚至只打开一个 LED。

    请你这么做。 包括要发送的任何代码、甚至是在尝试打开任何 LED 之前可能需要的最基本的设置/配置。

    因为我们需要尽快解决这个问题,因为一周内有一场贸易展览,周末的到来,我们必须尽快解决这个问题。 我还想请您注意我可能在以防万一时发布的任何更新。

    提前感谢:)

    此致
    Rick

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

    肯尼思、您好!

    今天我的帖子没有得到回复,现在这是非常紧急的,请你尽快回复(非常亲切的问!! :))向我的帖子发送您昨天的消息。

    我尝试了0x68、但它也不起作用。  

    请参阅随附的协议分析器波形、其中显示0x68 (0xD0移位)和0xC0 (0x60移位)。

    您可以看到通信正常、因此没有问题、IC 会向完整消息发送 ACK。 这只是了解从生产线写入新 IC 以启动和运行的命令/数据的确切序列的问题。 这就是我首先要问的问题、只是代码和操作的伪代码列表、以便打开第一个 LED、之后我可以自己完成其余的工作。

    我假设您也很忙、这样可以节省您(和我)的时间并避免来回走动、您能否单独回答以下每个问题并详细回答以下问题:

    最重要的一个... 正如我在原始帖子中所询问的、您是否可以在伪代码中写入所有内容(即写入 I2C 端口的每个值、以便从 PCB 制造的首次引导(即全新芯片)到打开 LED。  

    2.您能用代码再次检查我的原始帖子吗? 这是主代码中唯一的代码、并且 IC 之前从未进行过编程。 打开 LED 所需的全部功能是什么?还是在之前或之后需要其他一些设置? 是否有一些模式可以首先配置?

    3.在尝试了解该代码数小时后,我在顶部发现它适用于 OPT3001。 您是否发送了错误的代码?

    4、大部分 I2C 功能都没有源代码、所以我不知道它们到底是怎么做的。 对于传递给函数的值、#defines 也是如此(它们缺失)、因此我无法再次调试它们传递的内容。 您能给我发送完整的代码/文件吗?

    再次感谢! )

    Rick

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

    代码是正确的、它是根据以前的代码编写的、因此某些信息可能不会被删除。

    无论如何、让我为您提供通过使用 Allcall 地址快速检查来实现此目的的完整步骤、您也可以通过数据表获取该地址:
    1.发送 MODE1 (Addr = 00h)及数据01h 以选择全呼地址;
    2.用00h 发送模式2 (地址= 01h);
    3.发送 Addr = 02h 至 Addr = 11h、FFh 用于设置 PWM0-PWM15;
    4.对于 FFh、设置 Addr = 12h 以设置 GRPPWM;
    5、例如、设置 Addr = 13h 为3Fh;
    6.将 Addr = 14h 设置为 Addr = 17h 至 FFh;
    7、将 Addr = 1Ch 设定为 F8h。

    这将打开您的所有 LED。

    请告诉我您的反馈。

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

    谢谢 Kenneth、

    现在、它似乎起作用了。 )

    唯一的问题是、它仅在我使用0x60地址而不是全呼调用时才起作用。 我不清楚全呼是如何工作的。 我尝试用谷歌搜索它、还在数据表中查看了详细信息、但只能找到关于它的工作原理和设置方法的简短不清楚的解释。

    两个问题:

    1.请您向我解释一下"全呼"是如何工作的、或者我在哪里可以找到有关它的详细说明

    2.数据表中也提到了您发送给我的那些步骤。 我看不到它们。 它们是什么页面?

    再次感谢您的帮助! )

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

    所有呼叫地址也称为广播地址。

    这些步骤未描述、但提到了寄存器、您可以参考函数以了解如何配置它们。

    如果您认为这可以回答您的问题、请帮助您单击"解决"。

    谢谢。
    此致、
    Kenneth