新唐MCU技术
直播中

钱一辰

8年用户 1037经验值
私信 关注
[问答]

如何使用ISP功能对Nuvoton 8051 MCU系列进行ISP升级?


  • 如何使用ISP功能对Nuvoton 8051 MCU系列进行ISP升级?

回帖(2)

夏日余晖

2025-8-26 17:25:34

通过 8051 ISP-ICP 编程器:

启动 8051 ISP-ICP 编程工具后,用户可以选择“ISP”作为“编程器类型”来进行 ISP 升级。


  • 详情请参考8051 ISP-ICP编程器BSP(板级支持包)中的“8051 ISP编程器,v7.15.pdf”。

  • 通过 COM 端口:

    After starting the 8051 ISP-ICP programming tool, the user can select "ISP by COM Port" as the "Programmer Type" to perform ISP upgrades.


举报

陶醉了的猫

2025-8-27 17:57:59

使用 ISP (In-System Programming) 功能对 Nuvoton (新唐科技) 8051 系列 MCU 进行固件升级是一种非常方便的方法,无需额外的专用编程器。以下是详细的步骤和指南:


核心概念:


Nuvoton 8051 MCU 内部通常包含两块主要的 Flash 区域:



  1. APROM (Application Program ROM): 存放用户应用程序代码的地方。ISP 的主要目标就是更新这块区域。

  2. LDROM (Loader ROM): 出厂时预烧录了一段不可更改的小程序(Bootloader)。这段程序负责执行 ISP 功能,通过特定的通信接口(通常是 UART)接收来自 PC 上位机工具的数据并将其烧录到 APROM 中。


ISP 升级流程详解:




  1. 硬件准备:



    • 目标板 (MCU): 确保你的 Nuvoton 8051 目标板可以正常上电工作。

    • ISP 接口连接:

      • 最常见:UART (串口):

        • 将 PC 的 USB 转串口适配器(如 FT232, CH340, CP2102 等)的 TX 连接到 MCU UART 的 RX 引脚。

        • 将 PC 的 USB 转串口适配器的 RX 连接到 MCU UART 的 TX 引脚。

        • 将两者的 GND 连接在一起。


      • 其他接口 (具体型号支持): 部分高级型号可能支持 USB、SPI 或 CAN 作为 ISP 接口。请查阅你具体 MCU 型号的 DataSheet 确认支持的 ISP 接口和引脚定义。


    • Boot 配置引脚 (关键!):

      • 大多数 Nuvoton 8051 MCU 都有一个或多个专用的 Boot Pin (ISPEN, P2.7, P3.2 等) 或通过 Config Bit 配置启动源。

      • 进入 ISP 模式的关键操作就是:在 MCU 复位或上电时,使 Boot Pin 处于特定的电平状态(通常是低电平)。 这个特定状态会强制 MCU 从 LDROM (Bootloader) 启动,而不是从 APROM (用户程序) 启动。

      • 查阅 DataSheet:必须找到你所用 MCU 型号的 DataSheet,查看 "System Configuration" 或 "Bootloader" 章节,明确:

        • 哪个引脚是 Boot Pin (或启动源选择引脚)?

        • 该引脚需要在复位/上电时是拉高 (1) 还是拉低 (0) 才能进入 ISP 模式?


      • 实现方法: 通常通过在目标板上设计一个跳线帽、拨码开关或按钮,将该引脚连接到 GND (低电平) 或 VDD (高电平)。最简单的方法是临时用杜邦线将该引脚连接到所需电平。


    • 电源: 确保目标板通过 USB 或外部电源适配器稳定供电。PC 的 USB 转串口适配器通常不能提供足够的电流给整个目标板供电。

    • 复位信号 (可选但推荐): 为了方便操作,最好将 PC USB 转串口适配器的 DTR 或 RTS 信号连接到 MCU 的 /RESET 引脚(可能需要一个简单的晶体管或电阻电容电路来转换电平)。这允许 ISP 工具自动复位 MCU。如果不连接,则需要手动复位。




  2. 软件准备:



    • 下载官方 ISP 工具: 前往 Nuvoton 官方网站。通常路径是:技术支持 -> 下载 -> 软件工具 -> 开发工具 -> NuMicro ISP Programming Tool

    • 选择正确版本: 确保下载与你 MCU 所属系列兼容的 ISP 工具版本(例如 NuMicro ICP Programming Tool,ISP 功能通常集成在 ICP 工具中)。

    • 安装工具: 在 PC 上安装下载的 ISP 编程工具。

    • 准备固件文件: 准备好你要烧录到 APROM 中的 HEX 文件或 BIN 文件(通常是你的应用程序编译链接后生成的文件)。




  3. 启动进入 ISP 模式 (Bootloader):



    • 方法一:冷启动进入 (最常用):

      1. 确保 PC 与目标板的 UART 连接正确。

      2. Boot Pin 设置为进入 ISP 模式所需的电平 (根据 DataSheet,通常是拉低)。

      3. 断开目标板电源。

      4. 打开 PC 上的 ISP 编程工具。

      5. 在 ISP 工具中选择正确的 COM 端口 (对应你的 USB 转串口适配器)。

      6. 给目标板上电。 此时 MCU 复位启动,检测到 Boot Pin 状态有效,会运行 LDROM 中的 Bootloader。

      7. 在 ISP 工具中点击连接按钮 (Connect)。如果成功,工具状态栏会显示连接成功信息,并能识别出 MCU 型号。


    • 方法二:软件复位进入 (如果当前用户程序支持):

      1. 目标板在正常运行用户程序 (APROM)。

      2. 通过预先在用户程序中实现的命令 (如特定的串口命令) 或按下用户程序定义的按键,触发一个软件复位流程。

      3. 在复位前,用户程序将特定的标志写入 Flash/RAM 或配置寄存器,指示复位后需要进入 ISP 模式 (Bootloader)。

      4. MCU 复位后,Bootloader 检查这些标志,如果设置正确,则停留在 Bootloader 等待 ISP 连接。

      5. 打开 ISP 工具并连接。(此方法无需操作 Boot Pin,但需要用户程序支持)。


    • 方法三:通过 ISP 工具复位进入 (如果连接了 DTR/RTS 到 /RESET):

      1. 将 Boot Pin 设置为进入 ISP 模式所需的电平 (通常是拉低)。

      2. 在 ISP 工具中选择 COM 端口。

      3. 直接点击工具中的连接或 ISP 按钮。

      4. 工具会通过 DTR/RTS 信号线自动拉低 /RESET 引脚复位 MCU。

      5. MCU 在复位启动时检测到 Boot Pin 状态有效,进入 ISP 模式并被工具识别。





  4. 使用 ISP 工具进行编程:



    1. 成功连接后,ISP 工具会显示检测到的 MCU 型号等相关信息。

    2. 在工具界面中找到加载固件文件的地方 (通常是 "Browse", "Load File", "Open" 按钮)。选择你准备好的 HEX 或 BIN 文件。

    3. 选择编程目标区域:通常是 APROM。如果程序需要配置字 (Config Bits/Config Words),确保也选中相关的配置选项。

    4. 配置选项 (可选但重要):

      • 波特率: 如果连接不稳定,可以在工具中选择更低的波特率尝试 (Bootloader 通常支持多种波特率)。

      • 编程后动作: 选择编程完成后 MCU 的行为。常见选项:

        • Reset and Run: 复位 MCU 并从 APROM 启动新程序 (最常用)。

        • Stay in ISP Mode: 保持连接状态,方便再次编程。

        • Run LDROM: 再次运行 Bootloader (不常用)。


      • 安全锁定位: 根据需要选择是否加密 APROM 或 LDROM 以防止读取。


    5. 执行编程: 点击工具的 "Program", "Start ISP", "Download" 或类似按钮开始编程。

    6. 等待完成: 工具会显示编程进度条和状态信息(擦除、编程、校验等)。整个过程需要几秒到几十秒,取决于固件大小和波特率。

    7. 确认结果: 编程完成后,工具应显示 "Success", "PASS" 或类似信息。如果选择了 "Reset and Run",MCU 会自动复位并运行新的用户程序。




  5. 退出 ISP 模式:



    • 编程完成后,如果选择 "Reset and Run",MCU 会自动退出 ISP 模式开始运行新程序。

    • 如果选择 "Stay in ISP Mode" 或需要手动退出:

      • Boot Pin 恢复为正常启动 APROM 所需的电平 (根据 DataSheet,通常是拉高或悬空)。

      • 手动复位目标板或通过 ISP 工具发送复位命令。MCU 复位启动时检测到 Boot Pin 无效,就会从 APROM 启动用户程序。





常见问题及解决方法 (FAQ):




  1. ISP 工具无法连接 / 找不到设备:



    • 检查 Boot Pin 设置: 这是最常见的原因! 确保在复位/上电瞬间引脚电平绝对正确。用万用表测量确认。

    • 检查 COM 口: 设备管理器里确认 USB 转串口适配器分配的 COM 口号是否正确?驱动是否安装好?ISP 工具是否选择了这个 COM 口?

    • 检查串口线连接: TX-RX 是否交叉连接?GND 是否连接?线缆是否完好?尝试更换线缆或适配器。

    • 检查波特率: 尝试在 ISP 工具中选择更低的波特率 (如 115200, 57600, 38400)。首次连接波特率可能与最终编程波特率不同。

    • 检查电源: 目标板是否稳定供电?USB 转串口适配器是否开启?测量目标板 VDD 电压是否正常。

    • 检查复位: 如果工具支持自动复位但没连接 /RESET 线,需要手动复位。确保复位电路正常工作。

    • 检查 MCU 是否损坏: 确认 MCU 本身能运行最基本的程序(如点灯)。

    • 查阅手册确认 ISP 模式进入条件: 不同型号可能有细微差别,务必再看 DataSheet。




  2. 编程失败 / 校验错误:



    • 稳定性问题: 降低波特率。确保电源稳定无干扰。检查串口线是否过长或质量差。

    • 文件错误: 确认编译生成的 HEX/BIN 文件是有效的、完整的。

    • 目标区域错误: 确认编程的是 APROM,而不是 LDROM 或其他区域。

    • 配置字错误: 错误的配置字设置(如时钟源、看门狗)可能导致编程后无法运行或无法再次进入 ISP。编程前仔细核对配置字设置(通常从用户工程的配置头文件或链接脚本中获取)。如果完全锁死,可能需要使用 ICP 方式擦除。

    • Flash 损坏 (罕见): 反复擦写次数过多可能导致坏块。




  3. 编程后程序不运行:



    • Boot Pin 未恢复: 编程结束后,Boot Pin 是否恢复到正常启动 APROM 的电平?然后是否复位了?

    • 配置字错误: 检查编程配置字是否正确(特别是时钟源、复位源、看门狗)。

    • 程序本身问题: 新程序编译是否有问题?能否在仿真器或 ICE 上正常运行?

    • 中断向量偏移: 某些 Bootloader 会占用部分中断向量地址。用户程序的中断向量表可能需要偏移。查阅 MCU 手册 Bootloader 章节和编译器文档。




重要提示:



  • 务必查阅 DataSheet: 以上步骤是通用流程,最关键的一步是找到你具体使用的 Nuvoton 8051 MCU 型号的官方 DataSheet (Datasheet) 和 Technical Reference Manual (TRM)。里面会有详细的 Bootloader 操作说明、Boot Pin 定义、支持的通信接口和波特率、配置字定义、ISP 流程时序图等。

  • 官方工具: 务必使用 Nuvoton 官方提供的 NuMicro ISP Programming Tool(通常集成在 ICP 工具包内)。第三方工具可能不兼容。

  • 稳定电源: Flash 编程对电源稳定性要求较高,使用质量好的电源适配器。

  • 避免干扰: 保证串口通信线路尽量短,远离高频干扰源。


通过仔细遵循以上步骤,并结合具体 MCU 型号的文档,你应该能够成功使用 ISP 功能对 Nuvoton 8051 MCU 进行固件升级。如果在查阅手册后仍有问题,可以访问 Nuvoton 官方论坛或联系其技术支持寻求帮助。

举报

更多回帖

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