【已解决】T5 3.13.6 使用uart外接语音芯片初始化失败。
版本:wukong 3.13.6
平台:T5
硬件:带屏幕、带1306语音芯片
软件:tuyaos_demo_wukong_ai
问题描述:配置使用外部audio_in和audio_out,程序运行到TUYA_CALL_ERR_LOG(wukong_audio_input_init(&audio_cfg));后就没有log了。.config文件不让上传,加了个.txt后缀
是否必现:是
版本:wukong 3.13.6
平台:T5
硬件:带屏幕、带1306语音芯片
软件:tuyaos_demo_wukong_ai
问题描述:配置使用外部audio_in和audio_out,程序运行到TUYA_CALL_ERR_LOG(wukong_audio_input_init(&audio_cfg));后就没有log了。.config文件不让上传,加了个.txt后缀
是否必现:是
目标:T5 3.13.6 使用 UART 外接语音芯片初始化时卡死(wukong_audio_input_init 后无 log)
代码关键发现:
GPIO64 三重复用 + 无效引脚
CONFIG_UART_CODEC_BOOT_IO_NUM=64 、 CONFIG_UART_CODEC_SPK_FLOWCTL_IO_NUM=64 、 CONFIG_TUYA_AI_TOY_SPK_EN_PIN_NUM=64 三处都用了 GPIO64
GPIO64 = TUYA_GPIO_NUM_MAX ,在 T5 平台是无效/禁用引脚标记
tuya_board_config.h :GPIO64 先被设为 OUTPUT(boot_io) 又被重设为 INPUT(flow_io),时序冲突
结果:boot 信号无法输出、流控引脚无效,语音芯片无法正常启动和通信
UART 波特率锁定超时
tdd_comm_audio.c:653 : tal_semaphore_wait 等待 5 秒超时,信号量由 UART 波特率锁定触发
硬件无响应 → 超时失败
芯片型号与 config 不匹配
用户说硬件是"1306语音芯片",但 CONFIG_UART_CODEC_VENDOR_CI1302=y
wukong_audio_input_uart.c:68 :CI1302 实际走的是 1302 协议,如果硬件不兼容则 UART 通信协议不匹配
EVB 标准板参考配置差异大
EVB 标准板: audio_trigger=GPIO4, spk_en=GPIO19
用户配置完全偏离参考设计
结论(高置信):
双重问题导致卡死:
GPIO64 是无效引脚且三重复用 → boot 信号/流控/SPK_EN 全部失效 → 语音芯片无法启动和通信
硬件 1306 芯片 vs config CI1302 协议 → UART 协议可能不匹配 → 波特率锁定超时
🛠 方案:
修正 GPIO 引脚配置(必须)
根据实际硬件原理图重新分配 SPK_EN / BOOT_IO / SPK_FLOWCTL / audio_trigger 引脚
参考 EVB 板配置: audio_trigger=GPIO4, spk_en=GPIO19
验证:修改 config 重新编译,观察日志是否出现 audio init success
确认语音芯片型号(必须)
确认硬件上到底是 1306 还是 CI1302,1306 不在涂鸦支持的 CI1302/GX8006 列表中
如不兼容 CI1302 协议则无法通过 UART 方式使用,需联系涂鸦确认 1306 兼容性