芯源半导体CW32
直播中

张龙祥

9年用户 1314经验值
擅长:连接器
私信 关注
[问答]

如何通过UART给芯片下载程序?

虽然公司里有ARM仿真器,但不知为何板子没把SWD口接出来,只接了UART出来。
这颗芯片通过什么软件可以通过UART把程序烧到芯片中?

回帖(1)

自我清欢

2025-11-28 18:12:40

好的,通过UART给芯片下载程序通常依赖于芯片内置的Bootloader功能。许多微控制器(包括ARM Cortex-M系列)在出厂时就在ROM中固化了一个特殊的引导程序(Bootloader)。这个Bootloader通常支持通过UART(有时也包括USB、I2C、SPI等)接收新的应用程序固件并烧录到Flash存储器中。


既然你的板子只引出了UART口,那这很可能就是设计者预留的固件更新和烧录通道。


以下是详细的步骤和方法:




  1. 确定芯片型号和厂商:



    • 这是最关键的一步!不同厂商(ST、NXP、Microchip、TI、GD、华大等等)的芯片,其内置Bootloader的启动方式、通信协议和使用的PC端软件都各不相同

    • 查看芯片丝印(上面的文字),通常能直接看到型号(如STM32F103C8T6, GD32F303CCT6, LPC1768, MKL27Z64等)。




  2. 查找芯片的Bootloader文档:



    • 去芯片制造商的官方网站,搜索你的芯片型号(例如 “STM32F103 bootloader manual” 或 “LPC1768 UART ISP guide”)。

    • 查找名为 “Bootloader”, “System Memory”, “ANxxxx” (应用笔记), “Programming Manual”“ISP” 的文档。

    • 重点关注:

      • 如何进入Bootloader模式: 这是核心!最常见的方式是在芯片复位(上电)时,将某个特定的引脚拉高或拉低(例如 BOOT0=1, BOOT1=0 对于很多STM32)。有时也需要特定的复位序列(如发送特定字符)。

      • 支持的UART接口: 是哪个UART端口?(UART1, UART0?)波特率是多少?(通常是固定值或自适应,常见的如115200)。

      • 通信协议: Bootloader使用的命令集是什么?(虽然PC端软件通常会封装好,但了解有助于排查问题)。

      • 支持的烧录文件格式: 通常是.hex.bin文件。





  3. 准备硬件连接:



    • 串口转换器: 你需要一个USB转TTL UART的转换器(如FT232RL, CH340, CP2102等模块)。

    • 接线:

      • 将转换器的 TX 连接到芯片UART的 RX 引脚。

      • 将转换器的 RX 连接到芯片UART的 TX 引脚。

      • 将转换器的 GND 连接到板子的 GND

      • 确保信号电平匹配! 大多数ARM芯片是3.3V,确保你的串口转换器输出也是3.3V电平(或者板子有电平转换电路)。连接5V TX到3.3V RX可能损坏芯片!

      • 控制Boot引脚: 根据文档要求,找到控制进入Bootloader模式的引脚(通常是BOOT0或类似命名的脚)。在复位(上电)前,你需要用跳线帽、杜邦线或开关将该引脚设置为所需电平(高或低)。


    • 复位控制: 你需要能控制板子的复位。通常板子上有复位按钮。如果没有,你需要控制芯片的nRST引脚(在复位前设置好Boot引脚后,手动拉低再拉高nRST)。




  4. 下载并安装厂商提供的PC端烧录软件:



    • 每个厂商几乎都有自己官方的、支持UART Bootloader烧录的软件。不要尝试用通用串口工具发送文件,这通常无效,因为需要遵循特定的协议。

    • 常见厂商软件示例:

      • STMicroelectronics (STM32): STM32CubeProgrammer (首选), 旧版有 STM32 Flash Loader Demonstrator (不再推荐,但部分老芯片可能还用)。

      • NXP (LPC, Kinetis, i.MX RT): MCUXpresso Secure Provisioning Tool / MCUBootUtility, 老产品用 lpc21isp (命令行工具)。

      • Microchip/Atmel (SAM, ATSAM): SAM-BA (SAM Boot Assistant)。

      • Texas Instruments (MSP432, TM4C): UniFlash, LM Flash Programmer。

      • GigaDevice (GD32): GD32 MCU ISP Programming Tool (通常由第三方提供,官方可能集成在IDE中)。

      • 华大半导体 (HC32): ISP编程工具 (通常在IDE包内或单独提供)。

      • 其他国产芯片:查阅其官方文档或SDK,通常会提供专用工具(命令行或GUI)。





  5. 操作步骤:



    1. 连接串口线: 将USB转TTL转换器正确连接到板子的目标UART引脚和GND。先不要连接转换器的TX/RX到板子TX/RX(防止干扰复位过程),或者确保转换器断电。

    2. 设置Boot引脚: 根据文档,将Boot引脚(如BOOT0)连接到高电平(VDD)或低电平(GND)。确保连接可靠。

    3. 连接转换器TX/RX: 将转换器的TX接板子UART RX, RX接板子UART TX。

    4. 启动PC软件: 打开你安装好的厂商烧录软件。

    5. 选择接口: 在软件中选择 UART / Serial Port 作为连接方式。

    6. 选择串口号和波特率: 在软件中选择你的USB转串口设备在电脑上出现的COM端口号(如COM3, COM4)。波特率按文档选择默认值(如115200),有时软件能自动协商。

    7. 复位芯片进入Bootloader:

      • 保持Boot引脚在设定状态。

      • 按住板子上的复位按钮不放

      • 点击软件中的“Connect”或类似按钮

      • 放开复位按钮。这个时序很关键,软件需要在复位释放后立即发送进入Bootloader的命令。如果软件不支持自动发送,可能需要先释放复位,再立即点连接。

      • 如果成功,软件通常会显示“Connected”、“Device detected”或列出检测到的芯片型号等信息。


    8. 擦除和编程:

      • 在软件中找到加载固件文件(.hex, .bin)的地方,选择你编译好的程序文件。

      • 根据需要选择操作:通常先Erase(擦除)目标扇区(或全片擦除),然后Program(编程/烧写)文件到Flash。也可能有Verify(校验)选项。

      • 点击执行按钮(如“Start Programming”)。


    9. 切换回运行模式:

      • 编程成功后,将Boot引脚设置回正常启动位置(通常是BOOT0=0)。

      • 再次复位芯片(按复位按钮)。这时芯片就会从Flash中的用户程序启动运行了。





常见问题及排查:



  • 无法连接/检测不到设备:

    • Boot引脚设置错误或接触不良: 仔细检查文档要求,确保电平正确且稳定连接。

    • 复位时序不对: 严格按照软件要求操作复位步骤(按住复位->点连接->释放复位,或相反)。多试几次。

    • 串口线接错: 检查TX->RX, RX->TX, GND->GND。确保转换器本身工作正常(可用串口调试助手自发自收测试)。

    • COM端口号选错: 在设备管理器中确认转换器使用的COM端口号。

    • 波特率不匹配: 尝试软件支持的其他波特率(如果有选项)。

    • 电平不匹配: 确认转换器输出电平是3.3V。

    • Bootloader被禁用: 极少数情况下,芯片选项字节可能禁用了Bootloader(通过SWD烧录时误操作可能导致),这时只能通过SWD恢复。


  • 烧录失败/校验失败:

    • 文件格式错误: 确保使用软件要求的格式(.hex或.bin)。

    • 目标地址错误: 确认烧写地址是否正确(通常是0x08000000)。

    • Flash区域被保护: 检查是否之前通过SWD设置了读/写保护,需要先解除保护(这通常需要通过SWD完成)。

    • 连线干扰: 确保接线可靠,远离干扰源。降低波特率试试(如果支持)。

    • 电源不稳: 确保板子供电稳定充足。



总结关键点:



  1. 查芯片型号 -> 找官方Bootloader文档。

  2. 搞清进入Bootloader模式的方法(Boot引脚电平 + 复位)。

  3. 用厂商提供的专用PC烧录软件(STM32CubeProgrammer, MCUBootUtility, SAM-BA等)。

  4. 接线正确:TX->RX, RX->TX, GND->GND,注意电平(3.3V)。


只要你找到了对应芯片的确切文档,并严格按照其要求操作进入Bootloader模式和连接UART,使用厂商提供的工具,成功率是非常高的。祝顺利!

举报

更多回帖

发帖
×
20
完善资料,
赚取积分