手把手教你给小智T113板卡配置UART3调试串口(基于Tina5.0 SDK)
手把手教你给小智T113板卡配置UART3调试串口基于Tina5.0 SDK刚拿到小智T113开发板时第一件事就是配置调试串口。没有正确的串口输出就像在黑箱中调试——你看不到U-Boot的启动信息也抓不到内核崩溃的日志。本文将用最详细的方式带你从原理图分析到实际验证完成UART3的完整配置流程。我遇到过不少开发者卡在串口配置这一步常见问题包括引脚复用冲突、设备树配置遗漏、波特率不匹配等。通过本文你不仅能学会标准操作流程还能掌握排查问题的实用技巧。我们会基于Tina5.0 SDK但方法同样适用于其他全志T113开发环境。1. 准备工作与环境确认在开始修改配置前需要确保开发环境正确搭建。以下是必要的准备工作硬件准备小智T113开发板确认型号为T113-S3USB转TTL串口模块推荐使用CH340G或CP2102芯片杜邦线若干建议使用不同颜色区分TX/RX/GND软件环境Tina5.0 SDK v1.2Buildroot构建系统终端软件推荐使用MobaXterm或SecureCRT文本编辑器Vim或VSCode均可注意使用前请用万用表确认USB转TTL模块的电压为3.3V5V电平可能损坏T113芯片。验证SDK完整性cd ~/tina5.0 ./build.sh config确保能正常进入配置界面选择正确的方案Target: t113 Subtarget: xiaozhi_t1132. 硬件原理图分析配置串口的第一步是确定硬件连接。小智T113的调试串口使用UART3对应芯片引脚为PB6和PB7。从原理图可以看到关键信息信号线芯片引脚板载接口功能说明UART3_TXPB6J5-3串口发送UART3_RXPB7J5-4串口接收GND-J5-2信号地连接USB转TTL模块时需注意开发板的UART3_TXPB6接转接模块的RX开发板的UART3_RXPB7接转接模块的TX务必连接GND形成共地常见错误TX/RX交叉连接错误导致无输出 2.忘记连接GND导致信号不稳定 3.使用了错误的串口引脚如误接UART03. 配置U-Boot串口输出U-Boot阶段的串口配置在sys_config.fex中完成。这个文件定义了全志芯片的引脚复用和基础配置。操作步骤定位配置文件vi device/config/chips/t113/configs/xiaozhi/sys_config.fex找到UART3相关配置修改为[uart3] uart_tx port:PB0671defaultdefault uart_rx port:PB0771defaultdefault uart_used 1参数说明7表示引脚复用功能7UART31表示上拉电阻使能两个default保持默认驱动强度和电平保存后重新编译U-Boot./build.sh -p xiaozhi_t113 -k 5.4 -m uboot验证修改grep -A 5 uart3 out/t113/xiaozhi_t113/compile_dir/target/uboot-*/sys_config.fex4. 内核调试串口配置Linux内核需要单独配置串口主要通过设备树完成。在Tina5.0中相关文件位于device/config/chips/t113/configs/xiaozhi/board.dts具体修改确保UART3节点启用uart3 { pinctrl-names default; pinctrl-0 uart3_pb_pins; status okay; };检查引脚复用配置pio { uart3_pb_pins: uart3-pb-pins { pins PB6, PB7; function uart3; }; };确认没有其他功能占用PB6/PB7/* 禁用可能冲突的节点 */ spi0 { status disabled; };设置内核控制台输出make kernel_menuconfig确保以下选项开启Device Drivers - Character devices - Serial drivers - SUNXI UART Driver Boot options - Kernel command line - consolettyS3,1152005. 完整编译与烧录完成所有修改后执行完整编译./build.sh -p xiaozhi_t113 -k 5.4生成固件位于out/t113/xiaozhi_t113/tina_t113-xiaozhi_uart3.img使用PhoenixSuit工具烧录镜像按住开发板FEL按钮上电选择生成的img文件点击升级开始烧录6. 测试与问题排查烧录完成后连接串口终端波特率115200你应该能看到如下输出序列U-Boot启动日志U-Boot 2020.04 (Nov 12 2022 - 15:30:25 0800) Allwinner Technology内核启动信息[ 0.000000] Booting Linux on physical CPU 0x0最终进入系统shellxiaozhi_t113 login:如果看不到输出按以下步骤排查检查硬件连接确认TX/RX没有接反测量PB6/PB7电压应有3.3V电平验证配置# 检查U-Boot配置 strings u-boot.bin | grep uart3 # 检查内核设备树 dtc -I dtb -O dts out/t113/xiaozhi_t113/compile_dir/target/linux-t113/image/sun8iw20p1.dtb | grep uart3测量信号用示波器观察PB6/PB7是否有波形检查波特率是否匹配115200 8N17. 高级配置技巧修改默认波特率 在sys_config.fex中增加[uart3] uart_baud 1500000多串口同时使用 如果需要保留UART0做其他用途uart0 { status okay; };早期调试输出 在内核配置中启用Kernel hacking - Early printk自动登录配置 修改/etc/inittab添加ttyS3::respawn:/bin/login -f root实际项目中我曾遇到一个棘手问题系统启动后串口突然无响应。最终发现是某个GPIO驱动错误配置了PB7引脚。通过cat /sys/kernel/debug/pinctrl/pio/pinmux-pins命令可以实时查看所有引脚复用状态。