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.

[参考译文] TLC59711:LED 亮度变化较大、PWM 变化较小

Guru**** 2546020 points
Other Parts Discussed in Thread: TLC59711

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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/1121271/tlc59711-large-changes-in-led-brightness-for-small-pwm-changes

器件型号:TLC59711

大家好、

我正在尝试使用此器件创建非常平滑的淡入/淡出过程、但出于某种原因、当输入非常低的数字时

进入给定通道的 PWM 值(例如值1、然后是2、然后是3)、我看到不应该出现的相对较大的变化。

在过去的两年中、我一直在使用16位 PWM 来处理 LED 淡入/淡出过程、我知道这里有什么问题。 范围为65535个可能值、例如

细微的变化甚至不应被眼睛察觉。

我想在控制该器件时缺少一些东西。 我想了解我看到的是什么原因以及如何修复它。

谢谢、

NIR

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

    NIR、您好!

    很高兴为你提供帮助。 请提供相关信息,例如:

    原理图和 PCB 布局

    2.示波器捕获电源轨和通信线路(如果有)

    3.控制代码

    此致、

    Steven

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

    嗨、Steven、

    谢谢你。 由于此项目仅处于概念验证阶段、我已经使用了两个 Adafruit 的 TLC59711分线板(https://www.adafruit.com/product/1455)级联在一起、并将它们连接到了 Adafruit 的 MetroMini (https://www.adafruit.com/product/2590)、后者是兼容的 Arduino 板。

    一切都运行良好、我可以控制每个 LED 的亮度。 唯一的问题是我在原始帖子中提到的问题。 我在尝试

    以了解代码中是否有可能导致此问题的东西。  

    下面是 该示例的简单源代码(请参阅我在"NIR"下代码中的注释)、我还随附了该库。

    /*********
    这是我们的 Adafruit 12通道 PWM/LED 驱动器的一个示例

    立即在 Adafruit 商店购买!
    ---- > www.adafruit.com/.../

    这些驱动器使用 SPI 进行通信、需要2个引脚
    接口:数据和时钟。 电路板是不可行的

    Adafruit 投入时间和资源来提供此开源代码、
    请通过购买来支持 Adafruit 和开源硬件
    来自 Adafruit 的产品!

    由 Limor Fried / Ladyada 为 Adafruit Industries 撰写。
    BSD 许可证、上述所有文本都必须包含在任何重新分发中
    (二 /

    #include "AdafruIT_TLC59711.h"
    #include

    //您已将多少个板链接在一起?
    #define NUM_TLC59711 2.

    #define data 11.
    define clock 13

    //AdafruIT_TLC59711 tlc = AdafruIT_TLC59711 (NUM_TLC59711、时钟、数据);
    AdafruIT_TLC59711 tlc = AdafruIT_TLC59711 (NUM_TLC59711);

    void setup(){
    Serial.begin(9600);



    //如果使用 UNO/AVR,则取消注释该行,因为10必须是输出
    //使硬件 SPI 正常工作
    引脚模式(10、输出);

    tlc.begin();

    tlc.setPWM(2,1);// NIR:这条线用于控制每个 LED 亮度。 例如、在这里、我尝试使用 PWM 值1来控制 LED 2
    TLC。write();
    while (1)

    }e2e.ti.com/.../Adafruit_5F00_TLC59711.he2e.ti.com/.../Adafruit_5F00_TLC59711.cpp

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

    NIR、您好!

    感谢您的回复。

    1.如何为设备供电?

    2.通信接口的 CLK 频率是多少? 您是否检查了通信信号是否稳定并满足时序要求?

    3.两个级联器件是否都出现了上述问题?

    4.您能否通过 SDTO 引脚从移位寄存器中读出224位数据? 我需要检查您是否在 TLC59711中输入了正确的位。

    此致、

    Steven

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

    嗨、Steven、

    这一问题在两个级联器件上都出现。 是的、通信非常稳定、运行良好。 中不认为这是硬件问题、因为

    所有命令都能正常工作。  读取器件的 D/S、第17页、内容为:

    "TLC59711可使用增强型频谱脉冲宽度来调节每个输出通道的亮度
    调制(ES-PWM)控制方案。 每个输出的 PWM 位长度为16位。 16位的使用
    长度可实现65536亮度阶跃、从0%到100%亮度"

    这非常好、正是我需要的项目。 但是、第18页的内容是:

    "增强型频谱(ES) PWM 将总显示周期分为128个显示段。 总显示
    周期是指第一个灰度时钟输入到空白后的65536灰度时钟输入之间的周期
    (位213)被设定为"0"。 每个显示周期有512个灰度值、最大值"

    这是我迷路的部分。 这实际上是否意味着每个 LED 只能具有512个 GS 值、而不是65、536个? 因为这是它看起来的方式

    才能采取行动。 如果您从65536值范围中更改单个值、您将看不到它、但如果您从512个可能值范围中更改单个值、您肯定会看到它、我确实会看到它。

    你怎么看?  

    NIR。

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

    NIR、您好!

    [引用 userid="440156" URL"~支持/power-management-group/power-management/f/power-management-forume/1121271/tlc59711 -大变化- LED 亮度-小- PWM -变化/41583664#4158364]*这是否意味着每个 LED 只能具有65、512和536个 GS 值? [/报价]

    不可以。 每个输出通道可具有65536个亮度步长。  

    此致、

    Steven