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


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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/755061/lp5569-independent-mapping-for-simple-breathing-effect

器件型号:LP5569

大家好、

我仍在努力将简单的 LED 呼吸效果扩展到不同的映射选项。 我们的应用具有以下 LED 输出

LED1 -连接到白色 LED_A

LED2 -连接到白色 LED_B

LED3 -连接到白色 LED_C

LED4 -连接到 RGB LED_D (R)

LED5 -连接到 RGB LED_D (G)

LED6 -连接到 RGB LED_D (B)

LED7 -连接到 RGB LED_E (R)

LED8 -连接到 RGB LED_E (G)

LED9 -连接到 RGB LED_E (B)

我想使用一个非常简单的引擎来产生无限的呼吸效果、并将其与不同的5个 LED 同时闪烁白光相关联、一次一个 LED。 请注意、LED_A、LED_B 和 LED_C 将激活一行、LED_D 和 LED_E 将分别激活3行。 然后、我将需要5个与引擎1相关的不同 LED 映射。 是否可以动态更改映射?

该程序如下所示:

.segment 程序1.

map_addr led_a (如果我使用一个 LED 组合来定义一个 dw 指令、它会起作用)

SET_PWM 0

环路1:

斜坡1、100

斜坡1、-100

等待0.3

分支0、

环路1结束

我的问题是、如何定义我想要独立生成的5种不同组合的映射?

感谢你的帮助

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

    大家好、David、

    我在此附上示例代码供您参考。

    e2e.ti.com/.../LP5569_5F00_Example.zip

    我测试代码、它可以实现您的模式。

    如果问题得到解决、请帮助单击"解决"。

    谢谢。

    此致、

    Kenneth

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢您的代码 Kenneth、我已经在我们的系统上加载了代码、它执行了我认为可以查看代码的操作。

    遗憾的是、这不是我们的项目所需的。 我需要能够在一个 LED 上独立启用一个呼吸效果、使其他 LED 保持关闭状态、并且我们需要使用由微控制器控制的不同 i2c 命令激活它们。

    您发送给我的代码会及时生成一系列闪烁、但我需要一次独立控制(开/关)一个 LED。

    每个 LED 代表我们系统中的音频输入、一次只能启用一个。 通过遥控器、用户将选择一个输入(独立的选择情况)、输入的 LED 将以以下方式呼吸:

    输入1 -> LED_A 上的呼吸效果(所有其他 LED 关闭)
    输入2 -> LED_B 上的呼吸效果(所有其他 LED 关闭)
    输入3 -> LED_C 上的呼吸效果(所有其他 LED 关闭)
    输入4 -> LED_D 上的呼吸效果(所有其他 LED 关闭)
    输入5 -> LED_E 上的呼吸效果(所有其他 LED 关闭)

    如果出现以下情况、我可以实现我需要的目标:

    ——芯片还有几个引擎,不幸的是,情况并非如此。
    -可以通过 i2c 文件更改引擎的映射,但寄存器看起来是只读的。
    -使用变量 RA、Rb、Rc、rd 作为映射的信息容器。 但变量似乎不能用作 LED 映射编程函数的参数。

    这是我尝试做的超出此芯片功能的事情吗?

    此致、

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

    我很清楚您现在想要做什么。

    让我仔细检查一下、下周一回复您。

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

    非常感谢 Kenneth。

    此致、

    David

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

    大家好、David、

    您无需修改映射地址并将其视为以下代码:

    e2e.ti.com/.../2376.LP5569_5F00_Example.zip

     通过 I2C 在发动机停止后更改 ENGINE1_PROG_START 值、可以更改为另一个映射地址:

    在上图中、07h 表示 row2的 map_addr Row1和0Bh。

    您也可以为此尝试 RA Rb 和 Je。

    谢谢。

    Kenneth

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

    谢谢 Kenneth、

    有时间后、我会尽快对其进行研究。 当然是本周。

    最棒的

    David

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

    好的。 请告诉我们。

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

    肯尼思、您好!

    我显然在这里遗漏了一些东西。 我尝试增加循环次数、以具有5个不同的入口点、以相同的效果控制5个 LED。

    前两个入口点工作正常、但其余入口点则会不定期闪烁

    这是我使用 e2e.ti.com/.../LP5569_5F00_Example_5F00_5_5F00_LEDs.src.zip 的代码,我认为条目内存位置应该正确:

    LED1:0x07h

    LED2:0x0Bh

    LED3:0x0Fh

    LED4:0x13h

    LED5:0x17h

    当您说停止发动机时、这就是我所做的:

    1.停止发动机发送 Engine_Control1 (Reg.01h)和 Engine_Control2 (Reg.02h)来保持和停止发动机。

    2.更改 Engine1的入口点(Reg. 48h)

    3.通过 Engine_Control1 (Reg.01h)和 Engine_Control2 (Reg.02h)重新启用自由运行和运行引擎。

    我是否遗漏了明显的东西?

    谢谢、

    David