京微齐力(Hercules)离线编程

  • 支持硬件:Vllink 2X

  • 支持硬件:Vllink Basic2

一、准备工作

1.1 接口准备

1.2 固件准备

  • Fuxi中生成.acf格式的固件

  • 依次点击菜单栏中的Tools->Command-Line Windows...,打开Fuxi Design Console

  • 执行:acftobin.exe ./outputs/your_project_name.acf,就会在./outputs目录下生成your_project_name.acf.bin

  • 记录your_project_name.acf.bin的文件长度,当前尚未支持固件压缩,所以长度不得超过1MB

    $ ls -al ./outputs/*.bin
    -rwxrwx---+ 1 xxx xxx 555020 May  1 14:02 ./outputs/your_project_name.acf.bin
    
  • 十进制555020换算成十六进制,即:0x8780C,用例中会用到

1.3 离线编程器准备

  • 将离线编程器固件升级到 V00.56-202608021157 或更高

  • 通过 Vllink 2026 Consoleyour_project_name.acf.bin载入Data Block 0

  • 修改运行模式Mode=customize,此模式会强制配置Vref_Voltage_mV=0Vout=disable

  • 根据需要修改Customize_CMD,修改方法见下文

1.4 编程过程

  • trig_once模式下,编程器立刻执行编程过程,若未连接目标芯片,失败退出

  • trig_button模式下,可以先给编程器上电,然后接上已上电的目标芯片,按按键触发编程

  • trig_vref模式下,可以先给编程器上电,然后接上已上电的目标芯片,VRef脚电压被目标芯片抬高即自动触发烧录

  • trig_rxd_rise模式下,可以先给编程器上电,然后接上已上电的目标芯片,机台通过RXD脚给出上升沿即自动触发烧录

  • trig_rxd_fall模式下,可以先给编程器上电,然后接上已上电的目标芯片,机台通过RXD脚给出下降沿即自动触发烧录

  • 烧录过程中蓝灯闪烁;烧录成功绿灯常亮;烧录失败黄灯常亮

  • pass_txd_rise/pass_txd_fall配置后,烧录成功时TXD脚输出对应边沿提示机台

  • fail_srst_rise/fail_srst_fall配置后,烧录失败时SRST脚输出对应边沿提示机台

1.5 接口电气特性

  • 下载器DC3接口的所有逻辑IO均经74LVC1T45电平转换,其外侧IO电平以VRef为参考电压

  • VRef为目标芯片的通讯电压,与机台控制板电压(记为V_CTRL)不一定匹配

  • VRef未上电时,74LVC1T45输出高阻,所有逻辑IO均无效

  • 任务过程中若VRef发生变化,SRST/TXD输出电平随之漂移,可能产生边沿毛刺,被机台误判为pass/fail提示

  • VRefV_CTRL不一致的情况下,若电压偏差较小,可使用二极管/肖特基二极管匹配电平;若电压偏差较大,则需使用MOS/BJT/电平转换芯片/光耦等进阶匹配机制

  • 机台对接可用IO:SRST/TXD为输出(VRef有效时可输出0VVRef电平),RXD为输入

二、命令

  • hercules_prog:京微齐力编程命令

2.1 子命令综述

子命令

功能

状态

auto

自动化执行离线编程功能

开发中

2.2 子命令说明-auto

  • 命令格式:hercules_prog auto [target_type] [trig_type] <lz4> <autoreset> <boost> <pass_txd_rise> <pass_txd_fall> <fail_srst_rise> <fail_srst_fall> <flash [data_select] [addr] [size]> <chip [data_select] [size]>

  • target_type:芯片类型,必填

    target_type

    芯片类型

    M5

    M5系列

    M7

    M7系列

    HR02

    HR02系列

    H1D03

    H1D03系列

    P1

    P1系列

    H3

    H3系列

    P0

    P0系列

    H7

    H7系列

  • trig_type:触发方式,必填

    trig_type

    触发方式

    trig_vref

    VRef脚电平上升沿触发

    trig_button

    按键按下事件触发

    trig_rxd_rise

    RXD脚电平上升沿触发

    trig_rxd_fall

    RXD脚电平下降沿触发

    trig_once

    触发一次后退出

  • 【暂未支持】~~lz4:声明载入编程器的数据文件是lz4压缩格式,选填~~

  • autoreset:操作完毕后复位芯片,选填

  • boost:以最高可探测档位时钟与目标芯片通讯,可获得最快编程速度,但不建议启用,选填

  • pass_txd_rise:烧录成功后,TXD脚输出上升沿提示机台,选填

  • pass_txd_fall:烧录成功后,TXD脚输出下降沿提示机台,选填

  • fail_srst_rise:烧录失败后,SRST脚输出上升沿提示机台,选填

  • fail_srst_fall:烧录失败后,SRST脚输出下降沿提示机台,选填

  • 补充说明:pass_txd_risepass_txd_fall互斥,不能同时使用;fail_srst_risefail_srst_fall互斥,不能同时使用;pass_txd_*fail_srst_*可同时使用

  • flash [data_select] [addr] [size]:对Flash编程

    1. data_select:当前仅支持data0,使用 Vllink 2026 Console 载入

    2. addr:目标Flash的编程起始地址,一般填入0x0,必须是以0x开头的十六进制

    3. size:目标Flash的编程长度,建议使用所载入文件的长度,且必须是以0x开头的十六进制

  • chip [data_select] [size]:对Chip编程

    1. data_select:当前仅支持data0,使用 Vllink 2026 Console 载入

    2. size:目标Chip(SRAM)的编程长度,建议使用所载入文件的长度,且必须是以0x开头的十六进制

  • 补充说明:chipflash互斥,不能同时使用;chip也不要与autoreset同时使用

2.3 子命令用例-auto

  • 例1:Customize_CMD=hercules_prog auto H7 trig_vref autoreset flash data0 0x0 0x8780C

    1. 目标芯片是HME-H7;通过VRef脚探测目标板的IO电平触发编程;烧录完成后自动复位芯片

    2. 烧录对象是Flash,对象Flash的烧录起始地址是0,长度是0x8780C

  • 例2:Customize_CMD=hercules_prog auto H7 trig_button boost chip data0 0x8780C

    1. 目标芯片是HME-H7;通过编程器的按键按下事件触发编程;使用最高可用档位时钟通讯

    2. 烧录对象是Chip,长度是0x8780C

  • 例3:Customize_CMD=hercules_prog auto H7 trig_rxd_fall pass_txd_rise fail_srst_rise flash data0 0x0 0x8780C

    1. 目标芯片是HME-H7;机台通过RXD脚下降沿触发编程

    2. 烧录成功后TXD脚输出上升沿提示机台;烧录失败后SRST脚输出上升沿提示机台

    3. 烧录对象是Flash,烧录起始地址是0,长度是0x8780C