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.

[参考译文] TLC5940:使用 Raspberry Pi 控制 TLC5940 (3b):行为不一致

Guru**** 2434570 points
Other Parts Discussed in Thread: TLC5940

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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/664965/tlc5940-controlling-tlc5940-with-raspberry-pi-3b-inconsistent-behaviour

器件型号:TLC5940

你好

我尝试使用 Raspberry Pi 3b 的 ARM 组件(裸机、因此未安装操作系统)来驱动 TLC5940。

我使用4个内核中的3个。 内核0在管理初始化(GPIO、屏幕帧缓冲器等)后、正在修改存储 LED 颜色的缓冲区、内核1正在管理空白、XLAT 和 GSCLK、而内核2正在将数据从 LED 颜色缓冲区传输到输入移位寄存器(SIN 和 SCLK)。 内存中有1个变量称为"BufferFeded"、允许 core1和 core 2之间同步。 最初、此 var 为0 (LED 颜色缓冲区不为空)。

我已经全面阅读了数据表、我的环路包括:

对于内核1:

-将空白设置为高(高)

- MainLoop1:

-当 BufferFed=0时,转至 MainLoop1

-将空白设置为 H

-将 XLAT 设置为 H

-将 XLAT 设置为 L (低)

-设置 BufferFed=1 (内核2可能再次启动以填充输入移位寄存器)

-将空白设置为 L

- GSLKLoop:

-µs 内部计时器将 GSLK 设置为 H,然后定期设置为 L (我每4 μ s,然后我每秒有60个周期)

虽然我们没有4096个脉冲,但返回到 GSLKLoop

-返回 MainLoop1

对于 core2:

- MainLoop2:

- BufferFed=1时,转至 MainLoop2

- ByteLoop2:

-读取缓冲区中的一个字节(从最后一个字节到第一个字节、相对于 MSB 到 LSB)

- BitLoop2:

-检查最高有效位并相应地设置 SIN

-将 SCLK 设置为 H,然后设置为 L

-向左移动数据字节

-如果我们没有检查完整字节,请返回 BitLoop2

-要从8位值转换为12位值、请再添加4个 SIN=L、然后 SCLK=H、然后 SCLK=L

-检查我们是否已完成所有字节的操作,如果不是,请返回 ByteLoop2

-设置 BufferFed=1

-返回 MainLoop2

它运行良好、但并不是很长时间、我有一个视频展示了它:

www.youtube.com/watch

这是它工作的最长时间... 如您所见、它最终会停止。

我已经检查了屏幕上写入的值、并且没有内存泄漏(堆栈指针是常量的、显示变量所在的内存显示它正常运行)、那么什么?

您是否有任何想法、为什么这不能无限期地工作?

感谢你的帮助。

Cathy L.

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

    您好、Cathy、

    您是否每4096 GSCLK 发送一次空白脉冲以复位 GSCLK 计数器:

    您还可以共享原理图以供参考吗?

    谢谢。

    此致、

    Kenneth

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

    你好 Kenneth

    很抱歉、我昨天找到了答案、但我没有立即在这里发帖。

    是的、我在正确的时间发送了空白。

    问题在于 Raspberry Pi 3的输出引脚提供0V 或3.3V 电压、而我用+5V 电压为 TLC5940供电、而不是+3.3V 电压。 一旦我改变、它就开始工作。 功率耗散有问题?

    总之、非常感谢您的帮助

    Cathy L.