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.

[参考译文] LP5562:LP5562上的 I2C 地址配置问题-返回错误地址(0x30而不是0x60)

Guru**** 2434610 points
Other Parts Discussed in Thread: LP5562, LP5810

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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/1487459/lp5562-i2c-address-configuration-issue-on-lp5562---incorrect-address-returned-0x30-instead-of-0x60

器件型号:LP5562

工具与软件:

大家好!

我遇到了的 I2C 地址配置问题 LP5562 的符号 TI . 根据数据表、LP5562的默认 I2C 地址应为 0x60 、可以使用修改此地址 ADDR_SEL0 ADDR_SEL1 如一节中所述 7.3.9 ADDR_SEL0、ADDR_SEL1引脚 应用和实现部分。

但是、尽管正确配置了 ADDR_SEL0 ADDR_SEL1 的特定引脚 0x60 地址(ADDR_SEL0至 GND 和 ADDR_SEL1至 GND)、使用 I2C 扫描仪时返回的地址为 0x30 、这似乎不正确。

引脚配置:

  • ADDR_SEL0 应连接到哪个 VCC GND (0).
  • ADDR_SEL1 应连接到哪个 VCC GND (0).
  • 所有其他 I2C 引脚均已正确连接。

我怀疑读取可能存在问题 R/W 或上的逻辑电平来改变电平 ADDR_SEL0 ADDR_SEL1 但我无法确定问题的确切原因。

下面是我已经检查的内容:

  • ADDR_SEL0和 ADDR_SEL1引脚配置 :按预期正确连接到 GND。
  • I2C 扫描程序 :用于检测地址、但返回的地址是 0x30 (而不是 0x60 )。

问题:

  1. I2C 扫描仪返回的地址是否考虑了读取/写入位、这可能会导致地址显示为 0x30 而不是 0x60
  2. 是否仍然存在问题 ADDR_SEL0 ADDR_SEL1 引脚、而无需考虑上拉/下拉电阻器? 问题可能出在这些引脚的连接或实际电压电平上?

Thomas

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

    您好、Thomas:

    1. 是的、我认为 I2C 扫描器没有将写入/读取位转换成数据、因此对于0x60、它将是 b0011 0000。 您可以使用示波器捕获从器件地址数据波形来检查实际位值。
    2. ADDR_SELO 和 ADDE_SEL1设置应该没有问题。  

    此致、

    Felix

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

    感谢 Felix 的澄清! 现在我知道扫描仪由于 R/W 位的原因可以显示0x30


    同时,如果有人遇到类似的问题,或者可以建议其他事情检查,我很乐意听到你的想法!

    再次感谢您的帮助!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    一个非常有趣的事情
    当我通过 Arduino IDE 运行点火程序时:
    我的 RGB LED 上有 VCC 电压(https://www.lcsc.com/datasheet/lcsc_datasheet_2410121250_Foshan-NationStar-Optoelectronics-NH-B2020RGBA-HF_C2874116.pdf):)
    • 在 MCU 板的阴极(引脚3)和 GND 上、我有3.3V 的电压。
    • 在绿色引脚(引脚4)和 GND 上、我有1.4V。
    • 在红色引脚(引脚1)和 GND 上、我有1.9V 电压。
    • 在蓝色引脚(引脚2)和 GND 上、我具有2.2V 电压。
    在测量时、如果我用手指触摸 RGB LED 的测量引脚、则会在我的手指和我实验的一个金属部分之间消耗电流。  它略微亮起、电压升高
    我有点失望,我从来没有见过类似的东西。
    Thomas
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Thomas:

    我想您提到了"在 阴极上(引脚3)"应该是"在阳极上(引脚3)"、对吗?

    LED 灯略有亮起、这是因为会有通过您的手指生成到接地端的电流路径。 我想您触摸了 LED 的阳极、对吗?

    此致、

    Felix

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

    尊敬的 Felix:  

    是的,你是对的,红色箭头确实指示阳极,但我做了一个印刷错误。

    另一方面、当我触摸 CATODES 时、LED 会亮起(红、蓝或绿)、我创建了一个电流消耗的桥接器!

    Thomas

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

    您好、Thomas:

    好的、我也做了一个地形错误。 我想说您触摸了 LED 的阴极。

    对于特殊的 RGB LED、大约 uA 级电流将点亮 LED。 当您触摸 LED 的阴极时、您的手指可以在阴极和连接器上的 GND 之间构建桥。  

    此致、

    Felix

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

    感谢 Felix 的帮助!
    确实必须有一个"通过我"的当前回报。

    我追求的是、LP5562不提供电流、而是根据数据表充当灌电流。
    现在我不明白为什么在 I2C 总线上可以看到 LP5562、它看起来没有激活。

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

    您好、Thomas:

    您能否详细解释最后一句话? 你不明白什么? 它是否仍与触摸阴极时 LED 弱亮有关? 或者、您在通过 I2C 控制 LP5562时是否遇到过一些问题?

    实际上,我们发布了最新的4通道 RGBW LED 驱动器与 I2C 接口 , LP5810,它涵盖了 LP5562的所有功能,更易于控制。

    此致、

    Felix

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

    是的、当然!
    感谢您的提问

    环境:

    我需要一个用于控制应用的 RGB LED (颜色代码=设备状态)
    我已安装 LP5562 从获取其 I2C 信号 RAK19007 + RAK 4631 位置。

    在为 RAK 卡提供的应用程序中、我无法使 LED 亮起。
    所以我开始用 Adruini IDE 和一些简单的代码和测量。
    我仍然不明白为何无法通过 I2C 与 LP5562通信 RAK 或者 Arduino IDE Application"。
    一切似乎正确,无论是接线,遇到的电压,接地,代码.

    感谢 Felix 的帮助、我在您的帮助下理解了一些事情!

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

    您好、Thomas:

    好的。 为了点亮 LED、我们需要首先确保成功进行通信(I2C 写入/读取)。

     您曾提到"您无法通过 I2C 与 LP5562通信"、这意味着您仍然无法写入或读取 LP5562寄存器。

    此致、

    Felix

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

    嗨、Felix、  

    是的、现在我可以读取寄存器:

    LP5562寄存器值:
    
    寄存器0x0:0x40 (二进制:1000000)
    
    寄存器0x1:0x3F (二进制:111111)
    
    寄存器0x2:0x0 (二进制:0)
    
    寄存器0x3:0x0 (二进制:0)
    
    寄存器0x4:0x0 (二进制:0)
    
    寄存器0x5:0xAF (二进制:10101111)
    
    寄存器0x6:0xAF (二进制:10101111)
    
    寄存器0x7:0xAF (二进制:10101111)
    
    寄存器0x8:0x1b (二进制:11011)
    
    寄存器0x9:0x0 (二进制:0)
    
    寄存器0xA:0x0 (二进制:0)
    
    寄存器0xB:0x0 (二进制:0)
    
    寄存器0xC:0x0 (二进制:0)
    
    寄存器0xD:0x0 (二进制:0)
    
    寄存器0xE:0x0 (二进制:0)
    
    寄存器0xF:0xAF (二进制:10101111)
    
    寄存器0x70:0x39 (二进制:111001)
    
    寄存器0x10:0x0 (二进制:0)
    
    寄存器0x11:0x0 (二进制:0)
    
    寄存器0x2E:0x0 (二进制:0)
    
    寄存器0x2F:0x0 (二进制:0)
    
    寄存器0x30:0x0 (二进制:0)
    
    寄存器0x31:0x0 (二进制:0)
    
    寄存器0x4E:0x0 (二进制:0)
    
    寄存器0x4F:0x0 (二进制:0)
    
    寄存器0x50:0x0 (二进制:0)
    
    寄存器0x51:0x0 (二进制:0)
    
    寄存器0x6E:0x0 (二进制:0)
    
    寄存器0x6F:0x0 (二进制:0) 
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Thomas:

    好的、您可以帮助捕获并提供写入命令波形吗?

    此致、

    Felix

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

    尊敬的 Felix:

    很抱歉响应时间太长。
    我还没有示波器,但我很快就会有一个!

    但我有一些有趣的数据:

    • 阳极(+)至输出1-Out2 Out3:0V (这可能是 LED 熄灭的原因)
    • 阳极(+)至 GND:3.3V (似乎正确)
    • GND 转 OUT 1-Out2 Out3:1.1至1.9V

    我的印象是、LP 5562不会让任何电流通过 GND!

    我将继续调查...

    谢谢!

    T.

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

    您好、Thomas:

    好的、下面的图是否正确? 这毫无意义。

    此致、

    Felix

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

    100%正确 Felix。

    你现在明白我的观点吗?  哈哈

    Thomas

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

    您好、Thomas:

    我认为硬件连接可能会有一些问题。

    除了这一点、对于软件、我建议您按照以下指南在"直接 I2C 寄存器 PWM 控制模式"下配置器件、只需4个步骤即可打开 LED。

    1. 使能芯片、将0x40写入寄存器0x00;
    2. 启用内部时钟、将0x01写入寄存器0x08 (默认情况下、器件配置为使用外部时钟)
    3. 将 所有 LED 输出配置为通过 I2C 寄存器控制、将0x00写入0x70;
    4. 将非零 PWM 写入寄存器0x02、0x03或0x04

    此致、

    Felix

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

    尊敬的 Felix:

    谢谢! 代码工作正常、感谢您的帮助、我终于找出了错误。

    这是内部时钟、因为在我的原理图上、它位于 GND、必须进行调整以获取其内部时钟!

    非常感谢您的帮助与耐心。 谢谢 Felix