简体中文
简体中文
English
联系我们
注册
登录
语言
简体中文
简体中文
English
联系我们
登录
注册
返回主站
layout空间导航

FR801xH系列芯片授权烧录

更新时间:2021-11-25 03:14:00下载pdf

固件烧录

芯片支持两种烧录方式串口烧录J-link SW 接线烧录,下面介绍两种烧录方式
使用时需注意两种烧录方式的区别

  • 串口烧录:支持烧录和全片擦除
  • J-Link SW 烧录:只支持写不支持擦除

基于 Keil + J-Link的烧录方式

  • 连接硬件
    按下图将J-Link工具链接到开发板上
    FR801xH系列芯片授权烧录

  • 配置Keil

  1. 安装Keil5

  2. 安装完 Keil 工具后,需安装 keil 工具的 Cotex-M3 库软件包:https://www.keil.com/dd2/arm/armcm3/

  3. 需完成 Fr801xH J-link 在线下载程序的支持,将 (Fr801xH SDK/Tools/FR8010H.FLM) 文件拷贝到如下目录

    C:\Keil_v5\ARM\Flash

  4. 在Keil工程中进行如下配置

    • 选用J-Link作为调试工具
      FR801xH系列芯片授权烧录

    • 配置调试方法为 SW
      FR801xH系列芯片授权烧录

    • 在 flash download 选项卡中配置下载选项,点击add 选中配置文件
      FR801xH系列芯片授权烧录

    • 配置使用 Debug Driver 进行 flash 的烧录
      FR801xH系列芯片授权烧录
      通过以上配置就可以实现在 Keil 的 IDE 中进行 flash 的调试和烧录。

采用 PC 烧录工具+串口进行烧录

在芯片的 J-Link 调试口被复用成别的功能,或者系统会进入睡眠时,则无法通过上述方法进行烧录。这时可以采用 PC 烧录工具加串口的方式进行烧录,这一方法原理是:在芯片一上电时,内部 boot 程序会尝试通过串口与外部工具进行通信,在握手成功之后就可以进行烧录等后续操作。

芯片对应引脚 串口工具对应引脚
芯片PA3(TXD) RX
芯片PA2(RXD) TX
VCC VCC3.3V
GND GND

具体操作如下:

  1. 安装 USB 转 UART 驱动软件,取决你所用的串口工具
  2. 打开 PC 端串口烧录工具
    FR801xH系列芯片授权烧录
    选择正确的串口号,导入 DAT 文件(选择要烧录的 bin 文件),然后打开串口,进入等待连接状态。
    FR801xH系列芯片授权烧录
  3. 将串口工具的 TX 连接到芯片 PA2(芯片端的 RX),RX 连接到芯片的 PA3(芯片端的 TX)。
  4. 将串口工具的地和供电同时与芯片的地和供电连接,这时芯片与 PC 工具握手成功后在工具端会显示已经连接,然后点击写入所有内容即可将程序烧录到芯片中
    FR801xH系列芯片授权烧录
    注意事项:因为串口工具的 TX 会串电到芯片端,所以接线连接顺序要符合上面的 2 和 3 步骤所描述的流程。
  5. 烧录完成后,按下复位键复位 FR8018HA。PC COM口打印信息,表示固件正常运行。
    FR801xH系列芯片授权烧录

该日志打印需在SDK中开启以下两个宏定义
#define TUYA_BLE_LOG_ENABLE 1
#define TUYA_APP_LOG_ENABLE 1

烧录授权

获取授权

请参考Bluetooth LE 系列授权中“生产凭证”章节。

烧录授权

  1. 使用USB转TTL工具,连接芯片 UART2
  2. 打开云模组烧录授权工具,选择只授权
    FR801xH系列芯片授权烧录

注意:根据当前代码设置,要使用 UART2 来授权固件,波特率使用和代码配置一致,只授权。

   uint32_t ty_uart2_init(void)
   {
       system_set_port_pull(GPIO_PA2, true);
       system_set_port_mux(GPIO_PORT_A, GPIO_BIT_2, PORTA2_FUNC_UART1_RXD);
       system_set_port_mux(GPIO_PORT_A, GPIO_BIT_3, PORTA3_FUNC_UART1_TXD);
                                                                                                                                                                                                                                         
       uart_init(UART1, BAUD_RATE_115200);
       NVIC_EnableIRQ(UART1_IRQn);
       uart2_is_init = true;
       return TUYA_BLE_SUCCESS;
   }