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.

[参考译文] LP5569:呼吸效果

Guru**** 2535150 points
Other Parts Discussed in Thread: LP5569

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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/790600/lp5569-breathing-effect

器件型号:LP5569

如何使用 LP5569实现呼吸效果? 是否有必要使用对引擎进行编程? 如果是、我如何对它们进行编程、如果不是、那么另一种方法是什么。

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

    如果您使用发动机、这很容易。

    请参阅以下应用报告。
    www.ti.com/.../snva822.pdf
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我对突出显示的数字感到困惑。 0x09、0x78、0xa8来自哪里?

    为什么环路从0到16? 为什么使用 i+j*32?

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

    0x09、0x78、0xa8是 ENGINE1/2/3_PROG_START 寄存器。

    您可以从.hex 文件中找到这些数据。

    for 循环用于通过 i2c 将32*16字节数据阵列移动到芯片 SRAM。

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

    好的、我明白了。 但现在我面临另一个问题。  我的写入操作不能正确进入 SRAM。 当我在地址5c、5a、5e、60、62、64、66、63页上写入任何值时、当我从这些地址回读时、我始终得到00。 其他地址提供正确的值。 但这些地址存在问题。 我还尝试将00写入整个存储器、并读回、我得到全零。 这意味着我的写入将到达存储器。 我已附加了一个文件、其中写入了从逻辑分析仪收集的数据。 第一列是写入存储器第0页的随机值、第二列显示将00写入第0页。 我用红色突出显示了这些地址。 另请查看代码。

    e2e.ti.com/.../untitled.pdf

    uint8_t load_SRAM ()
    {
    
    send_buffer[0]= 0x02;
    send_buffer[1]= 0x00;
    send_size = 2;
    if (fail =led_driver_send ()
    )返回0;
    hal_gppt_delay_ms (2);
    
    send_size = 1;
    recv_size = 1;
    led_driver_recv ();
    SEND_BUFF[0]= 0x02;
    SEND_BUFFER[1]= 0x54;
    SEND_SIZE = 2;
    if (FAIL =LED_DRIVER_SEND ()
    )返回0;
    hal_GPT_DELAY_ms (2);
    
    SEND_SIZE = 1;
    recv_SIZE = 1;
    LED_DRIVER_recv ();
    SEND_BUFFER[0]= 0x3C;
    LED_DRIVER_RECV ();
    SEND_BUFFER[0]= 0x4B;
    SEND_BUFFER[1]= 0x09;
    SEND_SIZE = 2;
    if (fail =led_driver_send ()
    )返回0;
    
    send_buffer[0]= 0x4C;
    send_buffer[1]= 0x22;
    send_size = 2;
    if (fail =led_driver_send ()
    )返回0;
    
    send_buffer[0]= 0x4D;
    send_buffer[1]= 0x7D;
    send_size = t_driver = 0x4+
    
    
    
    (t_j
    
    = 0x4+);send_driver = 0x4+= t_j=0[t_send_j = t_buffer[t_j = 0+;end_buffer[t_buffer = 0_j];t_buffer[t_buffer[t_j_
    
    
    if (fail =led_driver_send()
    )返回0;
    uint8_t add = 0x50;
    for (uint8_t i = 0;i<32;i++)
    {
    send_size = 2;
    send_buffer[0]= add;
    send_buffer[1]= table[i+(j*32)];
    
    if (fail=send_size = 1
    
    ;send_buffer =
    0x3c
    
    = 0_return = 0_ms;r_r_r_se_ms = 0_rechn_size_ms = 0[rend_r= 0];grend_rend_r_r= 0_r_
    //led_driver_recv ();
    send_buffer[0]= add;
    send_size = 1;
    recv_size = 1;
    led_driver_recv ();
    if (receive_buffer[0]!= table[i+(j*32)])
    //返回0;
    hal_gppt_delay_ms (10);
    add = add + 1;
    }
    
    }
    
    send_buffer[0]= 0x70;
    send_size = 1;
    recv_size = 6;
    led_driver_recv ();send_buffer[0]
    = 0x02;send_buffer[0];
    SEND_BUFFER[1]= 0xA8;
    if (FAIL =LED_DRIVER_SEND ()
    )返回0;
    SEND_BUFFER[0]= 0x01;
    SEND_BUFFER[1]= 0xA8;
    if (FAIL =LED_DRIVER_SEND ()
    )返回0;
    
    } 

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

    请检查 LED_ENGINE_CONTROL2寄存器(地址= 2h)是否为00h。 如果是、请使用10h。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我不会受到任何影响、因为写入不会到达 SRAM。 此外、如果您在末尾看到上述代码、我将0xa8写入 LED_ENGINE_CONTROL 寄存器。 但首先、所有数据都应正确加载到 SRAM 中、而不会发生这种情况
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是否可以将 MISC (2Fh)设置为0x48? 我想确保地址自动递增已启用。

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

    我已经启用了自动递增功能、我正在使用内部时钟、没有电荷泵。

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

    e2e.ti.com/.../register_5F00_2019_5F00_0411_5F00_035402.txtWhat's 您的输入电压?

    您是否在没有 SRAM 的情况下打开了 LED? 如下所示的寄存器设置。

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

    是的、我能够在没有 SRAM 的情况下打开所有 LED。