Flash 烧写工具(1toN)

资源

概述

Ameba 1-N MP ImageTool 是 Realtek 公司专门为 Ameba 系列系统级芯片(SoC)开发的固件下载工具。该工具旨在提供高效、可靠的固件烧录解决方案,支持同时烧录多个 Ameba 设备。

../../rst_tools/image_tool_1toN/figures/mp_tool_1_n_tool_ui.png

硬件环境

固件下载的硬件设置如下所示:

../../rst_tools/image_tool_1toN/figures/mp_tool_1_n_hardware_topological_uart_usb.svg

软件环境

  • 环境要求:如 WinXP,Win7 或更高版本,Microsoft .NET Framework4.0。

  • 软件位置:

  • Ameba_1-N_MP_ImageTool.exe:{SDK}/tools/ameba/MP_ImageTool_1_N/Ameba_1-N_MP_ImageTool.exe

  • Device Profiles:{SDK}/tools/ameba/ImageTool/Devices/Profiles

备注

  • {MP ImageTool} 将在后面章节中指代 {SDK}/tools/ameba/MP_ImageTool_1_N

  • 如需通过 LOGUART 接口下载固件,需要先安装板载 USB 转 UART 适配器(例如 PL2303GC)的主控制器驱动,具体驱动请在相应 USB 转 UART 适配器厂商的官方网站查询。

  • 禁止移动或删除 {MP ImageTool}/Devices/Floaders/floader_amebaxxx.bin 文件, 因为烧录工具会先把 flashloader 烧录进 SRAM,然后 flashloader 负责后续量产固件烧录到 Ameba Flash。

  • 对于 WinXP 或 Win7,若需通过 USB 接口下载固件,需要先安装 USB 驱动 {MP ImageTool}/RtkUsbCdcAcmSetup.INF

固件下载

根据设备所处的状态,进入烧录模式的方法不同,从原理上解释,主要有两种方法:

  • 软件应用(含 ROM)预置了 reboot uartburn 指令,系统通过串口接收到该指令,即使是空片状态,也可以响应指令,使系统进烧录模式。如果设备串口可以正常响应 reboot uartburn 指令,无需额外操作,烧录工具会通过指令使设备自动进烧录模式,直接开始固件下载。

  • 硬件采用电气信号触发,把 LOGUART Tx 引脚接 GND,同时重启设备,最后断开 LOGUART Tx 引脚和 GND。如果设备不能借助软件方法自动进烧录模式,可通过硬件强制进烧录模式。关于 LOGUART Tx 引脚,可以参考 Trap 引脚 章节。

    • Realtek 公板,操作方法如下:

      1. 按下 UART_DOWNLOAD 按钮并保持按下状态。

      2. 按下 CHIP_EN 按钮。

      3. 松开 UART_DOWNLOAD 按钮。

    • 客户定制板,可能没有按钮可用,进入烧录模式方法如下:

      1. LOGUART Tx 引脚接 GND。

      2. 重新接通设备电源。

      3. 断开 LOGUART Tx 引脚和 GND。

    • 可以通过外部 DTR/RTS 控制 LOGUART TxCHIP_EN 引脚, 使设备自动进入烧录模式

      Realtek 公板中,提供了一种与 DTR/RTS 控制相关联的自动进入烧录模式的电路设计方案。该电路默认处于未激活状态,但可通过特定方法使能这一功能(有关启用方法,请参考 自动烧录方案)。一旦使能此功能,硬件板便可自动切换至烧录模式,仅需在工具软件中调整相应的配置参数(具体配置步骤详见 DTR/RTS 配置)。

      此外,客户也可以根据具体需求,自行设计和实现自动进入烧录模式的电路及其时序控制方案。

确认设备的状态之后,可以开始下载固件。

Ameba 1-N MP ImageTool 提供了两种模式以便用户进行固件下载:图形用户界面模式(GUI)和命令行模式(CLI)。以下是对这两种模式的详细介绍:

图形用户界面模式

下载步骤

图形界面固件下载步骤如下:

  1. 双击 {MP ImageTool}/Ameba_1-N_MP_ImageTool.exe

  2. 点击 Chip Select 选择芯片型号。

    备注

    一旦芯片型号选定,界面上灰掉的按键/复选框表示该功能不支持当前芯片型号。

  3. 配置参数:

    Baudrate:

    固件烧录波特率,默认值是 1500000

    Image:

    点击 Browse 按键选择待烧录的目标固件

    Addr(hex):

    烧录固件的起始地址

    Leg(hex):

    指定固件烧录长度,一般选择目标固件的时候会自动计算该值

    以及其他 可选配置 参数。

  4. 点击 Scan Device 按键, 显示框会列出当前 PC 连接的设备端口

    • 如果使能 USB Download , 扫到的为 USB 端口.

    • 如果不使能 USB Download ,扫到的为非 USB 端口.

    备注

    如果没有正确显示可用端口,可以检查设备驱动是否没有安装或者正在安装,这种情况一般在设备第一次接入 PC 的时候会出现。

  5. 选择要下载固件的设备端口.

  6. 确认设备是空片或者已进入烧录模式或者在正常可以接收指令状态

  7. 点击 Download ,开始下载固件

    ../../rst_tools/image_tool_1toN/figures/mp_tool_1_n_operation.png

如下图所示,固件下载过程中,每个设备端口后面会显示一个绿色进度条,表示当前设备下载进度。进度条前端有计时显示,后端有一个小灯泡,鼠标放在小灯泡上,可以指示当前烧录状态。烧录结束,小灯泡变成绿色对勾,表示正常烧录结束。

../../rst_tools/image_tool_1toN/figures/mp_tool_1_n_image_download_ok_1.png
../../rst_tools/image_tool_1toN/figures/mp_tool_1_n_image_download_ok_2.png

可选配置

工厂模式

此功能是为防止量产过程中,因误触界配置面上的某些功能,导致量产过程失败而设计。使能工厂模式,图形界面上某些功能会被禁掉。

../../rst_tools/image_tool_1toN/figures/mp_tool_1_n_factory_mode.png

工厂模式的配置参数会保存在 {MP ImageTool}/Setting.ini,所以下次重启也会继续开启工厂模式。 如果需要退出工厂模式,有两种方式可选:

  1. 关闭{MP ImageTool}/Ameba 1-N MP ImageTool.exe.

    1. 删掉 {MP ImageTool}/Setting.ini.

    2. 修改 {MP ImageTool}/Setting.iniFactoryMode 参数为 False.

      ../../rst_tools/image_tool_1toN/figures/mp_tool_1_n_parameters_modification.png
  2. 重新打开 {MP ImageTool}/Ameba 1-N MP ImageTool.exe ,图形界面就会恢复正常可操作模式。

校验

此功能是指下载结束,是否需要做校验,确认下载进设备的固件正确。

方法:在 下载步骤 第 3 步时勾选 Verification 复选框。

Flash 擦除

该功能表示是否要在下载开始之前对 Flash 全片擦除。

方法:在 下载步骤 第 3 步时勾选 ChipErase 复选框。

跳过系统数据区域

此功能表示下载过程是否跳过系统数据区域。

方法:在 下载步骤 第 3 步时勾选 Skip System 复选框。

USB 下载

此选项表示是否通过 USB 端口下载固件。

方法:在 下载步骤 第 3 步时勾选 USB Download 复选框。

如果使能 USB 下载,需要点 Profile Browse 键导入目标芯片的 profile 文件。

跳过 Wi-Fi 校准

此选项表示下载过程是否跳过 Wi-Fi 校准。

方法:在 下载步骤 第 3 步时勾选 Skip Wifi calibration 复选框。

支持大于 16M Flash 下载

设备 OTP 默认支持<=16MB 的 flash 容量,如果产线设备搭载的大于 16MB 容量的 flash,并且烧录的固件大于 16MB,则需要使能该功能。 该功能表示支持大于 16MB Flash 的下载,如果使能,工具会帮助编辑 OTP,以使能芯片 4-byte Flash 寻址功能,从而支持烧录大于 16MB 的 flash。

方法:在 下载步骤 第 3 步时,勾选 Option –> Support for >16MB Flash Download

保存擦除/下载过程的 Flash 写保护处理方法

下载固件过程中,可能会遇到 Flash 写保护置位,导致下载不了的情况,此时 MP ImageTool 会弹窗,引导使用者做进一步操作处理,该功能的作用就是保存当前的处理方式,下一次遇到 Flash 写保护置位的情况,会直接按第一次操作方法处理,无需再次人为介入。

  • 如果烧录工具检测到 Flash 写保护,弹窗提示如下:

    ../../rst_tools/image_tool_1toN/figures/mp_tool_1_n_flash_block_protection_detected.png
  • 或者,可以在 {MP ImageTool}/Setting.ini 文件设置 ProcessFlashBPsForEraseProcessFlashBPsForDownload 保存,以防产线在量产过程中出现误选导致下载失败。参数 ProcessFlashBPsForEraseProcessFlashBPsForDownload 表示:

    • 1:Tool will remove the Flash protection and restore the Flash protection when erase/download.

    • 2:Tool will abort erase/download when detect Flash block protection.

    ../../rst_tools/image_tool_1toN/figures/mp_tool_1_n_setting_ini.png

方法:在 下载步骤 第 3 步时,勾选 Option –> Remember Flash Protection process for erase/download

如果下载过程遇到问题,可以参考 常见问题 章节,确认是否为常见典型问题。

命令行模式

下载步骤

MP ImageTool 同时也支持命令行模式下载。在 Windows 的命令行窗口执行 {MP ImageTool}/Ameba_1-N_MP_ImageTool.exe 并且带着指定的参数,v2.5.11 版本之后,命令行模式支持一次带入多参数指令模式。

命令行下载固件方法如下:

  1. 必须设置参数项

    1. 芯片型号

      参数 -c/--chip [amebasmart|amebalite|amebadplus] 带入目标 IC 型号。

      $Ameba_1-N_MP_ImageTool.exe -c amebaxxx
      CHIP:            AMEBAXXX
      
    2. 波特率

      参数 -b/--baudrate <value> 带入下载波特率参数.

      $Ameba_1-N_MP_ImageTool.exe -b 1500000
      BAUDRATE:            1500000
      

      备注

      波特率可设置参数为 115200, 128000, 153600, 230400, 380400, 460800, 500000, 921600, 1000000, 1382400, 1444400, 和 1500000。

    3. 固件选择

      参数 -i/--image <image_path> 带入要下载的固件。

      $Ameba_1-N_MP_ImageTool.exe -i E:\test\image_path\image_all.bin
      FILE PATH:            e:\test\image_path\image_all.bin
      
    4. 下载起始地址

      参数 -a/--address <value> 带入固件要下载的起始地址。

      $Ameba_1-N_MP_ImageTool.exe -a 0x08000000
      ADDRESS:            0x08000000
      
    5. 固件大小

      参数 -l/--length <value> 带入要下载的固件的大小,如果下载默认固件长度,可以不计算,带入 0x0 即可(必需带入),工具会自动计算固件长度。

      $Ameba_1-N_MP_ImageTool.exe -l 0xa500
      LENGTH:  0XA500
      

      备注

      此参数一定要带入要下载的固件长度(或者 0x0),如果不带入,工具会使用 Setting.ini 文件的默认值,有可能不符合实际固件大小。

  2. 检查设置参数

    参数 --show setting 可以列出当前设置的参数情况。

    $Ameba_1-N_MP_ImageTool.exe --show setting
    CHIP:            AMEBAZ
    BAUDRATE:       1500000
    IMAGE:           e:\test\image_path\image_all.bin
    ADDRESS:        0x08000000
    SKIP SYSTEM:     False
    LENGTH:          0x0
    ProcessFlashBPsForErase:    0
    ProcessFlashBPsForDownload:    0
    VERIFICATION:    True
    SAVELOG:         True
    

    备注

    下载开始前,这些参数只需要设置一次,MP ImageTool 会保存在根目录的 Setting.ini 文件。

  3. 固件下载

    配置好参数之后,参数 -d/--download <dev1> <dev2>-d/--download added 带入目标端口,即可开始下载。

    • -d/--download added 可以给所有通过 --add device 指令添加过的端口下载固件。

      $Ameba_1-N_MP_ImageTool.exe -d added
      
    • -d/--download <dev1> 可以下载指定的<dev1>, 并且不会修改通过 --add device 指令添加的端口列表。

      $Ameba_1-N_MP_ImageTool.exe -d COM4 COM5
      1  COM4 SUCCESS
      2  COM5 SUCCESS
      

备注

v2.5.11 版本之后, 命令行参数支持一次带入多个参数执行下载。

$Ameba_1-N_MP_ImageTool.exe -c amebad -b 1500000 -a 0x08000000 -l 0xa500 -i e:\test\image_path\image_all.bin -s true -d COM4 COM5
1  COM4 SUCCESS
2  COM5 SUCCESS

可选配置

扫描设备端口

参数 --scan device 用于扫描当前连接到 PC 的串口设备。

$Ameba_1-N_MP_ImageTool.exe --scan device
USB Serial Port (COM4)
USB Serial Port (COM5)

执行此命令后,终端会显示当前已连接的所有串口设备的信息。

添加/移除端口

在生产环境中,为了简化固件下载的过程,你可以使用 MP ImageTool 来固定设备的端口设置,这样每次执行下载指令时就不需要手动指定端口。

当确定了生产线中设备的端口,可以执行相关指令,tool 将这些端口添加到 {MP ImageTool}/dev_config.txt 中或从中移除。这样,MP ImageTool 可以自动识别和使用这些端口。

$Ameba_1-N_MP_ImageTool.exe --add COM4 COM5
COM4 added!
COM5 added!
$Ameba_1-N_MP_ImageTool.exe --show device
COM4
COM5
$Ameba_1-N_MP_ImageTool.exe --remove COM5
COM5 removed!
$Ameba_1-N_MP_ImageTool.exe --show device
COM4

一旦设备端口固定并记录下来,后续进行下载时就可以省去 --download 参数时指定端口的步骤,MP ImageTool 会自动选用已记录的端口,详细可参考 下载步骤 第 3 步。

USB 下载

如果目标设备支持 USB 下载,在 下载步骤 第 1 步设置。

方法:参数 -u/--usbdownload [true|false] 设置是否使能该参数.

  • True:使能 USB 下载

  • False:不使能 USB 下载

$Ameba_1-N_MP_ImageTool.exe –u true
USBDOWNLOAD:    True

如果使能 USB 下载,需要同时通过参数 -p/--profile <path> 带入 profile。

$Ameba_1-N_MP_ImageTool.exe –p E:\MP_Image_Tool\image_all.rdev
PROFILE:  e:\mp_image_Tool\image_all.rdev

备注

如果使能 USB 下载功能,此时通过 --scan device 获取的端口号为 USB 端口 ,反之,则为 UART 端口。

校验

参数 -v/--verify [true|false] 在固件下载过程中用于指定下载完成后是否要进行校验。

  • True:校验

  • False:不校验

$Ameba_1-N_MP_ImageTool.exe –v true
VERIFICATION:  True

该参数需要在 下载步骤 第 1 步带入。

Flash 擦除

参数 -e/--chiperase [true|false] 用于控制在下载固件之前是否需要对设备的 Flash 进行全片擦除。

  • True:全片擦

  • False:不做全片擦

$Ameba_1-N_MP_ImageTool.exe –e true
CHIPERASE:  True

该参数需要在 下载步骤 第 1 步带入。

DTR/RTS 配置

如果设备支持 DTR/RTS 控制模块自动进 download 模式,参数 -g/--dtrrtsconfig [true|false] 可以使能/不使能该功能.

  • True:使能

  • False:不使能

    $Ameba_1-N_MP_ImageTool.exe –g true
    DtrRtsConfig:  True
    

该参数需要在 下载步骤 第 1 步带入。

保存擦除/下载过程的 Flash 写保护处理方法

下载固件过程中,可能会遇到 Flash 写保护置位,导致下载不了的情况,此时下载工具会弹窗,引导使用者做进一步操作处理,该功能的作用就是保存当前的处理方式,下一次遇到 Flash 写保护置位的情况,会直接按第一次操作方法处理,无需再次人为介入。 参数 -f/--processflashbpsforerase | -n/--processflashbpsfordownload <value> 可以帮助设置是否使能该功能, value 可以配置参数如下:

1: Tool 会删除 Flash 写保护位,继续擦除/下载操作,结束后再把写保护置起来。

2: Tool 如果检测到 Flash 写保护,会取消擦除/下载。

$Ameba_1-N_MP_ImageTool.exe –f 1
ProcessFlashForErase:  1
$Ameba_1-N_MP_ImageTool.exe –n 1
ProcessFlashForDownload:  1

该参数需要在 下载步骤 第 1 步带入。

保存日志

参数 -s [true|false] 可以设置是否保存下载日志。

  • True:保存

  • False:不保存

$Ameba_1-N_MP_ImageTool.exe –s true
SAVELOG:    True

该参数需要在 下载步骤 第 1 步带入。

GPIO/PWM 指示

在生产线上通过 USB 接口下载固件时,自动识别哪些设备已成功下载,而无需重新连接或手动检查设备是一项重要的功能。利用 GPIO/PWM 指示功能,可以有效地实现这一目标。以下是这种功能的具体配置和实现方法:

  1. 首先关闭 {MP ImageTool}/Ameba 1-N MP ImageTool.exe

  2. 打开根目录 {MP ImageTool}/Setting.ini 文件并配置 ProgramConfig (默认值: 0).

    具体的 ProgramConfig 配置位描述,参考下表。

    Bit

    Description

    [63:32]

    Download indication configuration:

    • For GPIO indication

      • Bit[63:33]: Reserved

      • Bit[32]: GPIO output level

    • For PWM indication

      • Bit[63:57]: PWM duty cycle (0~100, unit: percent)

      • Bit[56:32]: PWM period (unit: us)

    [31:30]

    Download indication strategy:

    • 0: Disable

    • 1: GPIO indication after download success

    • 2: PWM indication after download success

    • 3: Reserved

    [29:16]

    Download indication PIN name, refer to the SoC-specific definition of PinName for MBED API

    • GPIO: all GPIO pins can be selected

    • PWM: PWM channels can be selected

    [15:2]

    Reserved

    [1:0]

    NAND Flash bit flip fail level:

    • 2/3: Reserved

    • 1: Fail at fatal bit flip error, i.e. bit flip count > ECC level

    • 0: Fail at bit flip error, i.e. bit flip count >= ECC level

  3. 保存 {MP ImageTool}/Setting.ini 重新打开工具开始下载.

读 MAC 地址

指令 -r/--readmac 可以协助读取设备的 MAC。

$Ameba_1-N_MP_ImageTool.exe -r COM4
COM4  FF-FF-FF-FF-FF-FF

合并固件

参数 --combine "<image1_path>;<image2_path>" --offset "<image1_offset><image2_offset>" [--output "<image_all_output>"] 可以协助用户合并固件, 参数释义如下:

  • combine: <image1_path>, <image2_path>表示要合并的 image,多个并列。

  • offset: <image1_offset>, <image2_offset>: 要合并的 image 的 offset,需要和 combine 的参数值一一对应。

  • output: 可选参数,指定合并的 image_all.bin 的输出路径,如果不指定,默认输出到 tool 根目录。

$Ameba_1-N_MP_ImageTool.exe --combine "E:\image1.bin;E:\image2.bin" --offset "0x00000000;0x00004000" --output E:\image_all.bin
Offset0: 0x00000000, Image0: E:\image1.bin
Offset1: 0x00004000, Image1: E:\image2.bin
Images have been combined successfully, size: 12KB, path: E:\image_all.bin

CLI 帮助说明

工具支持的参数列表可以通过 --help 获取,如下所示

$Ameba_1-N_MP_ImageTool.exe --help
Ameba 1-N MP ImageTool 2.5.13.0
Copyright ?  2016
-a ADDRESS, --address=ADDRESS                                                  Set start download address
-b BAUDRATE, --baudrate=BAUDRATE                                               Set download baudrate
-c CHIP, --chip=CHIP                                                           Set target chip
-d [COMx COMy COMn|added], --download=[COMx COMy COMn|added]                   Target device to download
-e TRUE|FASLE, --chiperase=TRUE|FASLE                                          Erase chip or not before download
-f PROCESSFLASHBPSFORERASE,
   --processflashbpsforerase=PROCESSFLASHBPSFORERASE                           Process flash BPs for erase or not when download
-g TRUE|FASLE, --dtrrtsconfig=TRUE|FASLE                                       Set Dtr/Rts config or not
-h FLASHPIN, --flashpin=FLASHPIN                                               Set flashpin for download
-i IMAGE, --image=IMAGE                                                        Set target image path
-k TRUE|FASLE, --skipsys=TRUE|FASLE                                            Skipsys or not when download
-l LENGTH, --length=LENGTH                                                     Set target image length
-m TRUE|FASLE, --support4bytesaddrmode=TRUE|FASLE                              Support 4-byte address mode or not when download
-n PROCESSFLASHBPSFORDOWNLOAD,
   --processflashbpsfordownload=PROCESSFLASHBPSFORDOWNLOAD                     Process flash BPs for download or not when download
-p PROFILE, --profile=PROFILE                                                  Set target device profile path for download
-r [COMx COMy COMn|added], --readmac=[COMx COMy COMn|added]                    Target device to read mac
-s TRUE|FASLE, --savelog=TRUE|FASLE                                            Save log or not when download
-t CheckFlashAddrModeTimeoutSecond,
   --checkflashaddrmodetimeoutsecond=CheckFlashAddrModeTimeoutSecond           Timeout(unit:s) used to pop confirmwindow for check flash address mode
-u TRUE|FASLE, --usbdownload=TRUE|FASLE                                        Select usb download or not
-v TRUE|FASLE, --verify=TRUE|FASLE                                             Set verification or not when download
-w TRUE|FASLE, --skipwifi=TRUE|FASLE                                           Skip wifi for AmebaZ2
--add=COMx COMy COMn                                                           Add target device
--remove=COMx                                                                  Remove target device
--combine=IMAGE1;IMAGE2;IMAGEx                                                 Combine images together
--offset=OFFSET1;OFFSET2;OFFSETx                                               Images' offset to combine
--output=OUTPUT                                                                Combined images output path
--erase=addr length COMx COMy COMn                                             Erase target device at addr with length(KB)
--show=setting|device                                                          Show setting or device
--scan=device                                                                  Scan devices
--help                                                                         Display this help screen
--version                                                                      Display version information

下载结束,如果打印信息显示下载失败,可以查看根目录 {MP ImageTool}/log 文件夹下的日志文件,查找失败原因。

通用参数配置

{MP ImageTool}/Setting.ini 文件用于配置 MP ImageTool 的通用设置。

备注

在配置 {MP ImageTool}/Setting.ini 文件之前,一定要先关掉烧录工具。

详细日志显示

在 MP ImageTool 的 {MP ImageTool}/Setting.ini 文件中,通过配置 ShowDetailLog 参数,可以控制是否显示烧录过程的详细日志信息。

  • True:启用

  • False:禁用

ShowDetailLog           =True

该参数需要在烧录开始之前设置。

下载进度条显示

在控制台使用 command line 烧录时,如果需要显示烧录进度,可以配置 {MP ImageTool}/Setting.ini 文件的 DownloadProgressDisplay ,在控制台显示下载进度。

  • True:显示

  • False:不显示

DownloadProgressDisplay           =True

该参数也可以在 下载步骤 第 1 步带入。

DTR/RTS 配置

如果设备支持 DTR/RTS 控制模块自动进 download 模式,可以配置 {MP ImageTool}/Setting.ini 文件的 DtrRtsConfig 使能该功能。

  • True:使能

  • False:不使能

DtrRtsConfig           =True

SRAM 固件烧录

MP ImageTool v2.5.24 之后的版本, 支持烧录 mp shrink 固件到 SRAM。烧录结束,模块会自动重启,此时可以通过指令和模块交互而不需要硬重启。

MP shrink 固件的 SRAM layout 如下:

Image type

StartAddress

EndAddress

km0_km4_app.bin

0x2001A000

0x20080000

../../rst_tools/image_tool_1toN/figures/mp_tool_1_n_mp_shrink_image_address_setting.png

自动烧录方案

Ameba 模块在实际使用过程中,有可能会遇到需要自动进烧录模式或者强制重启的场景,本章节主要描述 Realtek 公板搭载的可以支持 SoC 自动进烧录模式的解决方案。

电路设计

Realtek 公板配套的 USB-UART 转换芯片是 PL2303GC,电路设计如下,可以实现上述两个功能。

../../rst_tools/image_tool_1toN/figures/mp_tool_1_n_auto_download_schematic_diagram.png

上述电路中,UMH3N 是两个完全相同的 NPN 三极管。输入信号和输出信号的真值表对应关系如下:

Input

Output

DTR

RTS

CHIP_EN

LOGUART_TX

0

0

1(EXT PU)

1(EXT PU)

1

1

1(EXT PU)

1(EXT PU)

0

1

1

0

1

0

0

1

关于时序有以下几点需要注意:

  1. 对于 DTR 和 RTS 的控制和上层逻辑是相反的,芯片管脚信号对应名称为 DTR_N 和 RTS_N。即上层 API 控制输出 1 时,实际对应芯片管脚输出是 0。因此编写 flow 时需要注意一次转化。补充上述真值表为:

    Windows API Control Input

    Input

    Output

    DTR

    RTS

    DTR_N

    RTS_N

    CHIP_EN

    LOGUART_TX

    1

    1

    0

    0

    1(EXT PU)

    1(EXT PU)

    0

    0

    1

    1

    1(EXT PU)

    1(EXT PU)

    1

    0

    0

    1

    1

    0

    0

    1

    1

    0

    0

    1

  2. 目前检查所有 EVB,CHIP_EN 均有做外部上拉,但是 LOGUART_TX 只有 DP 的 EVB 做了外部默认上拉。没有做上拉的 TX pin 在 CHIP_EN 拉低期间会处于 floating 状态,对应三极管会因为集电极浮空无法提供电流而不能正常打开。因此使用该功能时务必注意要将 LOGUAT_TX 外部上拉电阻(10K)上件

  3. 实际进入 DOWNLOAD MODE 需要 CHIP_EN 在拉高之后一段时间内 TX 一直维持低电平保证芯片内部电路可以 latch 到。由于 CHIP_EN 是由 0 变为 1,也就是对应的三极管有打开变为关闭状态。0 变 1 的过程是通过外部上拉电阻实现的。而 TX 是 1 变 0,三极管由关闭变为导通状态。该过程是三极管驱动实现的。因此为了保证时序(CHIP_EN 变为高电平时 TX 已经为低),CHIP_EN 上需要挂载一个电容让 CHIP_EN 拉高的过程慢一些,该电容 EVB 上 一般默认上件 1uF 即可。

  4. 在芯片内部 latch 进入 DOWNLOAD mode 之后,芯片电路机制在间隔一段时间之后接管 LOGUART_TX pin 并且控制该 pin 推 0 推 1。为避免此处电路控制同时驱动,需要 软件控制时序 ,在完成 latch 后关闭控制 TX 的三极管。

以上第四点的时序有以下几个因素影响:

  • 因为 CHIP_EN 挂载了电容,实际 RTS 变为 1 之后,TX 立刻被拉低,但是 CHIP_EN 会间隔一段时间再拉低,1uF 电容 CHIP_EN 滞后的时间大约是 10ms ——T1

  • 芯片内部电路在 CHIP_EN 变为高电平之后 10ms 左右对 TX 值进行 latch ——T2

  • 芯片内部电路在 CHIP_EN 变为高电平之后 40ms 左右接管 TX pin ——T3

因此,软件控制 RTS 拉高之后,需要 delay [T1+T2, T1+T3]范围内的时间再拉高 DTR,保证既可以 latch 进入 download mode,又可以在芯片接管 TX 之前放开对 TX 的控制避免 short。

软件时序

Reset 及 Auto download 的建议 flow 如下,下面 flow 中的配置讯息均是指 WINDOWS API 中的控制信息,已经经过一层转化。

自动重启时序要求:

  1. DTR = 0

  2. RTS = 1

  3. DELAY 200ms

  4. RTS = 0

  5. DTR = 0

自动进入烧录模式时序要求:

  1. DTR = 0

  2. RTS = 1

  3. DELAY 200ms

  4. DTR = 1

  5. RTS =

  6. DELAY 35ms

备注

如果客户自定义了上述时序,则需要联系 FAE 定制对应的 1-N MP ImageTool 版本。

PL2303GC 驱动要求

不同的 windows 系统,PL2303GC 的驱动版本要求如下:

  • Win10 安裝的版本 >= 5.1.8.0

  • Win11 安裝的版本 >= 5.2.8.0

可以直接在 Windows 系统上更新,也可以去 Prolific 官方网站下载安装。

另外,由于 PC 在有新的 USB 设备插入时,会对此时空闲的且正在连接的 USB 设备进行枚举,这时 PL2303GC 的 DTR/RTS 会有一系列的输出,所以增减 USB 设备会影响已连接设备的 DTR/RTS 状态,需要 disable 掉,配置方法如下:

PL2303 端口 –> 右键属性 –> 端口设置 –> 高级 –> Disbale DTR/RTS INIT signal, 确定,保存。

../../rst_tools/image_tool_1toN/figures/mp_tool_1_n_dtr_rts_disable_init_signal.png

常见问题

下载失败

如果固件下载失败,试着强制进烧录模式再次下载。

如果传输过程被中断,或者校验失败,进度条最后会有一个红底叹号,可以查看日志,试着解决导致失败的问题,重新下载。查看日志的方式有两种:

  • 把鼠标移动到红底叹号上,错误信息即显示出来,如下图示。

../../rst_tools/image_tool_1toN/figures/mp_tool_1_n_download_is_fail.png
  • 如果使能保存日志功能,检查根目录 {MP ImageTool}/log/ 文件夹的日志文件,获取详细的下载日志,查看失败原因。

    Start Tool from UI
    Scan Device Start
    Scan Device End
    Start to Download...
    COM56 Open Port error
    

备注

这种查看方式,需要确保下载开始之前,使能保存日志功能。

Flash 写保护

如果烧录过程中遇到 Flash 被写保护,从而下载失败,可以参考 保存擦除/下载过程的 Flash 写保护处理方法 章节。

下载过程中断电

如果在下载过程中偶发终端掉电问题,会导致下载失败,这时可以重新进烧录模式并重新开始下载。