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:链接20个电路板导致更新缓慢。 有什么想法?

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

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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/1313258/tlc59711-chaining-20-boards-is-causing-slow-update-ideas

器件型号:TLC59711

我有20块电路板链接在一起、似乎无法获得超过0.04秒的更快刷新率。 这只是使用一个简单的 python 脚本:

导入 argparse
导入板
导入 busio
导入时间
modules.ada_tlc59711导入 tlc59711

NUM_BOARDS = 20
如果 args.num_boards 不为 None
num_boards = int (args.num_boards)

num_pixels = num_boards * 4

SPI = busio.spi (board.SCKMOSI=MOSI)
LED = tlc59711.TLC59711 (spipixel_count=num_pixels)

AVG = 0
DELTA_COUNT = 0
增量= 0

Print ("{}-程序启动".format (round (time.time ()))"上的一个 LED 指示灯
While True
Delta = time.time()
LEDs.show()
DELTA_COUNT =Δ_COUNT + 1
Delta = time.time()-Δ
Avg =平均值+Δ
如果 delta_count >= 100
打印(avg / delta_count)
AVG = 0
DELTA_COUNT = 0
这是芯片链接这么多之后的局限性吗? 谢谢。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Mark:

    感谢您的联系、请给我一些时间来弄清楚。 我会尽快回复您。

    BR、Jared

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

    尊敬的 Mark:

    您能告诉大家 CLK 频率是多少吗?

    BR、Jared

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

    它运行在时钟速度为250MHz 的 Raspberry PI4上、

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

    尊敬的 Mark:

    您能否告诉我您发送到器件以更新 每个通道16位亮度的数据格式? 还有事吗?

    BR、Jared

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

    我正在使用此库:

    https://github.com/adafruit/Adafruit_Circuit TLC59711/blob/main/ adafruit_tlc59711.py

    它在标题的评论中有这一点:

    #如何发送:
    #我们发送的第一个数据由链中的最后一个设备接收。
    #设备第 N 个(244Bit = 28字节)
    #写命令(6Bit)
    # WRCMD (固定: 25H)
    #功能控制数据(5 x 1位=5位)
    # OUTTMG 1位
    # GS 时钟边沿选择
    # 1 =上升沿、0 =下降沿
    # EXTGCK 1位
    # GS 参考时钟选择
    # 1= SCKI 时钟、0=内部振荡器
    # TMGRST 1位
    #显示定时重置模式
    # 1=在闩锁脉冲时强制输出,0=不强制复位
    # DSPRPT 1位
    #显示重复模式
    # 1=自动重复
    # 0=OUT 仅在消隐或内部锁存脉冲后打开
    #空白1位;
    # 1=空白(输出关闭)
    # 0=OUT ON -由 GS-Data 控制
    # IC 上电将此设置为1
    # BC-Data (3 x 7位= 21位)
    # BCB 7位;
    # BCG 7bit;
    # BCR 7位;
    # GS-Data (12 x 16位=192Bit)
    # GSB3 16位;
    # GSG3 16位;
    # GSR3 16位;
    # GSB2 16位;
    # GSG2 16位;
    # GSR2 16位;
    # GSB1 16位;
    # GSG1 16位;
    # GSR1 16位;
    # GSB0 16位;
    # GSG0 16位;
    # GSR0 16位;
    #器件 Nth-1 (244Bit = 28字节)
    #设备.
    #设备2
    #设备1
    # 8个时钟周期的短暂休息(666ns ... 2.74ms)
    #生成锁存脉冲
    #+ 1.34uS
    #次更新。
    #""

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

    尊敬的 Mark:

    TLC59711似乎只支持50MHz CLK、我不确定250MHz CLK 的行为如何。

    根据您的程序、1个器件有244位、20个器件总共244 * 20位。 因此、我使用最大 CLK 频率来计算刷新率。 它应该是4880*20ns = 97.6us。 因此、我认为刷新率可以快于0.04s。

    BR、Jared

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

    所以问题是我在创建 SPI 对象时没有设置 busio 库的波特率。 对不起所有的问题,这是一个软件问题,根本不是硬件问题。 感谢您的提示回答。