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.

[参考译文] TCA6507:在Arduino开发板中初始化后,无法更改LED

Guru**** 2456050 points
Other Parts Discussed in Thread: TCA6507

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/603371/tca6507-unable-to-change-the-led-once-initialized-in-arduino-development-board

部件号:TCA6507

您好,

我正在我的其中一种设计中使用TCA6507 LED驱动器。 我已将RGB LED连接到驱动器IC,并且正在开始初始化寄存器以打开绿色LED (已连接到P1)。

我正在发送的寄存器值是:

字节自动增量模式= 0x10;

selection0 = 0x00;//使用气缸组0打开绿色LED
selection1 = 0x02;
selection2 = 0x02;
fadeOn = 0x08;//Bank1:0毫秒;Bank0:1024毫秒
fulllyOn = 0x60;//Bank1:512毫秒;Bank0:0毫秒
fadeOff = 0x08;//Bank1:0毫秒;Bank0:1024毫秒
firstFullyOff = 0x6A;//Bank1:512毫秒;Bank0:2048毫秒
secondFullyOff = 0xCA;//Bank1:4096毫秒;Bank0:2048毫秒
maxIntensity = 0xF2;//Bank1:100 % ;Bank0:12.5 %

字节初始化= 0x88;

我正在使用以下命令将值写入I2C总线:

Wire.beginTransmission(LedDriver_Address);
wire.write (autodIncrementMode);//将IC设置为自动递增模式
wire.write (selection0);
wire.write (selection1);
wire.write (selection2);
wire.write (fadeOn);
电汇(fulllyOn);
wire.write (fadeOff);
wire.write(firstFullyOff);
wire.write (secondFullyOff);
wire.write (maxIntensity);
WIR.WRITE (主强度);
wire.write (初始化);
wire.endTransmission (LedDriver_Address);

我可以设置绿色LED指示灯与BANK0属性配合使用。

稍后我要使用以下命令将连接到P0的LED更改为红色

selection0 = 0x00;//红色LED
selection1 = 0x01;
selection2 = 0x01;

Wire.beginTransmission(LedDriver_Address);
wire.write (0x10);//将IC设置为自动递增模式
wire.write (selection0);
wire.write (selection1);
wire.write (selection2);

 wire.endTransmission (LedDriver_Address);

但IC驱动程序却关闭了。 我能知道我的实施方法有什么问题吗,以及是否有其他方法可以获得相同的结果吗?

附注

如果我正在发送以下代码:

selection0 = 0x00;//红色LED
selection1 = 0x01;
selection2 = 0x01;

Wire.beginTransmission(LedDriver_Address);
wire.write (0x10);//将IC设置为自动递增模式
wire.write (selection0);
wire.write (selection1);
wire.write (selection2);

wire.write (fadeOn);
电汇(fulllyOn);
wire.write (fadeOff);
wire.write(firstFullyOff);
wire.write (secondFullyOff);
wire.write (maxIntensity);
WIR.WRITE (主强度);
wire.write (初始化);
wire.endTransmission (LedDriver_Address);

一旦我写入这些命令,它仍在关闭

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

    您好,Sunil,

    我需要知道您要向TCA6507发送什么十六进制值。  我还 希望看到您的SDA和SCL信号的示波器,以确认您正在正确发送信号,并且该信号质量良好。  

    Francis Houde

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    嗨! 第一次初始化时,我将向寄存器发送以下十六进制值:

    字节自动增量模式= 0x10;

    selection0 = 0x00;//使用气缸组0打开绿色LED
    selection1 = 0x02;
    selection2 = 0x02;
    fadeOn = 0x08;//Bank1:0毫秒;Bank0:1024毫秒
    fulllyOn = 0x60;//Bank1:512毫秒;Bank0:0毫秒
    fadeOff = 0x08;//Bank1:0毫秒;Bank0:1024毫秒
    firstFullyOff = 0x6A;//Bank1:512毫秒;Bank0:2048毫秒
    secondFullyOff = 0xCA;//Bank1:4096毫秒;Bank0:2048毫秒
    maxIntensity = 0xF2;//Bank1:100 % ;Bank0:12.5 %

    字节初始化= 0x88;

    这将使P1处的绿色LED闪烁。 工作正常。

    现在,我只是将S0,S1和S2寄存器更改为

    selection0 = 0x00;//红色LED
    selection1 = 0x01;
    selection2 = 0x01;

    闪烁P0处的红色LED。

    然后重写寄存器,如下所示:

    Wire.beginTransmission(LedDriver_Address);
    wire.write (autodIncrementMode);//将IC设置为自动递增模式
    wire.write (selection0);
    wire.write (selection1);
    wire.write (selection2);
    wire.write (fadeOn);
    电汇(fulllyOn);
    wire.write (fadeOff);
    wire.write(firstFullyOff);
    wire.write (secondFullyOff);
    wire.write (maxIntensity);
    WIR.WRITE (主强度);
    wire.write (初始化);
    wire.endTransmission (LedDriver_Address);

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

    您写入到选择寄存器的值是有意义的,如果光线熄灭,它们显然会产生一些影响(因此,这可能不是与零件的通信问题)。 您是否检查过是否有任何硬件问题可能会阻止红色LED指示灯亮起? 要运行的一个简单测试可能是交换绿色和红色LED,查看绿色LED是否仍然亮起,或者红色LED是否能够亮起(如果安装在"工作"端口上)。

    最大