用户程序烧录

备注

前置知识: Boot ROM说明

准备工作

  1. 串口硬件连接:

    使用支持半双工通信的串口模块,连接SPV1x的GPIO06。通常只需要连接双方的GND和TRX信号线。 如果串口模块的IO需要额外的参考电压,则将串口模块的参考电压引脚连接至SPV1x的IOVCC。

  2. 设置SPV1x进入升级状态:

    两种实现方式:(A) 先拉低GPIO06,然后进行SPV1x上电,上电后释放GPIO06。(B) 通过置位软件升级请求标志位,然后软件复位,让SPV1x进入升级状态。

上位机使用说明

  1. 主界面描述

    ../_images/odt-main.png
  2. 下载配置界面描述

    在主界面下,点击菜单栏的“配置”,选择“下载参数配置”,即可打开下载配置界面。

    1. “通用”选项卡

      ../_images/odt-window-general.png

      “通用”选项卡下有“数据分片”设置。由于APP数据比较大,在下载的过程中,需要将APP按一定大小切片为数据片,然后逐数据片进行下载。 通常,数据片的大小越大,程序的下载速度越快,但下载出错的可能性也越大。

    2. “串口下载”选项卡

      ../_images/odt-window-serial.png

      “串口下载”选项卡下有“波特率”设置。通常,波特率越大,下载速度越快,但下载出错的可能性也越大。“波特率”下拉列表中已内置了常用的波特率, 用户也可以直接输入特定的波特率数值。

    3. 其他选项卡

      ../_images/odt-window-misc.png

      “其他”选项卡内容暂时为空。

  3. 固件加密界面描述

    在主界面下,点击菜单栏的“工具”,选择“固件加密”,即可打开固件加密界面。

    ../_images/odt_encrypt.png

    固件加密会将CPU的指令代码部分进行加密。加密秘钥格式为十六进制的32bit数据,如“0x1357acdf”(可省去“0x”前缀,字母不区分大小写)。

  4. 读取设置界面描述

    在主界面下,点击“读取”按钮,即可打开读取设置界面。

    ../_images/odt-window-select.png
  5. 固件下载操作

    1. 选择要下载的固件。

      从APP下拉列表中选择需要下载的程序,或者使用“载入”按钮从磁盘选择一个程序。

    2. 选择“仅升级CPU数据”或“升级整个APP”。

      APP由CPU代码和资源数据组成。首次下载建议选择“升级整个APP”,后续如果只更改程序代码,生成新的APP时,就可以选择“仅升级CPU数据”,以节省下载时间。

    3. 选择下载用的串口。

    4. 如果芯片flash的接线为半双工方式,则勾选“半双工flash”选项。

    5. 点击“下载”按钮。

  6. 固件读取操作

    1. 如果芯片flash的接线为半双工方式,则勾选“半双工flash”选项。

    2. 点击主界面的“读取”按钮

    3. 在读取设置界面中,输入起始地址和数据长度信息,并选择对应的文件以容纳读取的数据。

    4. 点击读取设置界面的“确认”按钮

注意事项

  1. 常见下载失败原因

    1. 串口硬件连接错误。

      处理方式:检查硬件连接。

    2. SPV1x未进入升级状态。

      处理方式:尝试再次让SPV1x进入升级状态。

    3. 上位机串口号选择错误。

      处理方式:确认选择的串口号为连接SPV1x的串口。

    4. 下载波特率过大。

      处理方式:尝试降低下载波特率。

    5. 数据切片大小过大。

      处理方式:尝试减小数据切片大小。

    6. 芯片flash的接线方式与“半双工flash”选项不一致。

      处理方式:尝试更改“半双工flash”选项后再下载。

  2. 关于半双工串口模块

    SPV1x下载过程的通信,只用到GPIO06这一个引脚通信,数据的发送和接收都在这个引脚上进行。 因此,外部串口模块也需要支持仅用1个引脚进行串口的发送和接收。为了防止信号的冲突,还要求串口模块在不发送数据时,模块一直处于接收状态。 此外,不同厂家的串口模块,支持的波特率上限不一样(有些串口模块最高只支持1M的波特率)。在相同波特率下,各厂家的波特率误差也不同。

  3. 下载过程中,由于flash的擦除较为耗时,上位机进度条可能在0%处停留几秒,属于正常现象。

  4. 在进行上电进入下载模式这个操作时,要确保上电前,芯片处于掉电状态。如果芯片断电前进入了低功耗模式,那么芯片从断电到完成掉电过程会需要较长的时间(需要数秒钟)。可以在芯片断电后,通过手动给VCC电容放电(强制掉电),或者按一下唤醒按键,加速芯片的掉电。

  5. 不同版本上位机略有差别,请以实际使用的上位机版本为准。