T5_3.13.3开启ENABLE_TUYA_UI配置后开机时间过长

Wi-Fi 设备、蜂窝设备、WuKongAI、开发板、TuyaOS 移植等


Post Reply
Ann
Posts: 1

T5AI_BOADE_EYES开启ENABLE_TUYA_UI配置以后,开机播报语音和点亮屏幕时间从4秒变成了7秒左右,3.13.3和3.13.6都存在这个问题,3.12.25几乎不受影响,请有没有什么方法可以缩短时长?

愚者千虑必有一得
Posts: 901

Re: T5_3.13.3...

test reply verification

愚者千虑必有一得
Posts: 901

Re: T5_3.13.3和3.13.6开机时间过长

您好!

这个问题的根因在于 T5AI_BOARD_EYES 板型在 3.13.x 版本中开启 ENABLE_TUYA_UI 后,会初始化双屏显示,从而增加了约 23 秒的开机时序。

根因分析

在 src/miscs/gui/display/tuya_ai_display.c 的 tuya_gui_lcd_driver_init() 函数中:

Code: Select all

#if defined(T5AI_BOARD_EYES) && T5AI_BOARD_EYES == 1
    info->exp_type = TUYA_SCREEN_EXPANSION_V_EXP;   // 双屏垂直扩展
    info->lcd_num = 2;                               // 2 个屏幕(SPI2 + SPI3)
#else
    info->exp_type = TUYA_SCREEN_EXPANSION_NONE;
    info->lcd_num = 1;
#endif

tuya_gui_lcd_open() 会对两个屏幕分别调用 tal_display_open(),每次 SPI ST7735S 初始化(reset pulse + 寄存器配置时序)需约 11.5 秒,两路串行初始化合计增加约 23 秒。3.12.25 版本该双屏路径尚未存在,因此开机时间增量不明显。

排查方法

先在 tuya_gui_poweron_page_quick_start() 中加时间戳确认瓶颈:

Code: Select all

PR_NOTICE("lcd_driver_init start: %d ms", tal_system_get_millisecond());
rt = tuya_gui_lcd_driver_init((VOID *)&info);
PR_NOTICE("lcd_driver_init end: %d ms", tal_system_get_millisecond());
rt = tuya_gui_lcd_open((VOID *)&info);
PR_NOTICE("lcd_open end: %d ms", tal_system_get_millisecond());

优化方法(三选一)

  1. 将第二路屏幕的 tal_display_open() 改为在独立线程中执行,主屏初始化完成后无需等待从屏即可点亮背光播报语音,从屏后台继续初始化,可节省约 11.5 秒。

  2. 缩短 LCD 复位脉冲时间:在 ST7735S 驱动中找到 reset 低电平保持时间(通常 10100 ms),ST7735S datasheet 要求最短 10 us,可将其缩短至 15 ms,两屏共节省约 20200 ms。

  3. 如果 3.12.25 版本开机时间可以接受,可暂时锁版本,等官方 SDK 优化该双屏串行初始化路径后再升级。

如有进一步问题欢迎继续讨论!

Post Reply