[蓝牙]

CC1310 两线 Serial Bootloader 方案

[复制链接]
1183|25
手机看帖
扫描二维码
随时随地手机跟帖
yyller|  楼主 | 2020-9-2 09:06 | 显示全部楼层 |阅读模式
CC1310是TI Simplelink MCU系列中支持Sub-1G的SOC.针对很多客户需要串口进行固件升级的应用需求,CC1310内置了基于ROM的bootloader, 该bootloader支持UART和SPI两种接口.详细信息可参考TI CC1310的用户指南(http://www.ti.com/lit/pdf/swcu117) 以及TI应用文档SWRA466A, CC2538/CC26xx Serial Bootloader Interface (http://www.ti.com/cn/lit/swra466)。传统的bootloader至少需要三跟连线,这篇博客主要介绍如何实现两线bootloader并基于TI Flash Programmer 2(http://www.ti.com/tool/flash-programmer)工具和CC1310 Launchpad(LAUNCHXL-CC1310)评估板对芯片实现UART的固件烧写。
两线bootloader工程设置
CC1310 三线bootloader如下图左,除了串口的两根连线外,还需要一个专门的I/O进行启动模式的控制。针对很多客户产品只有一个对外的串口接口,提出了下图右的两线Bootloader方式,这个方式将BOOT_IO 与CC1310的UART RX复合使用。
如下图BOOTLOADER的串口配置所示,UART和SPI的口是固定的I/O, 不能设置其他的I/O。CC1310 Launchpad 使用的是7*7 RGZ的封装,下面我们需要设置BOOT_IO
BOOT_IO的设置在ccfg.c文件中,需要配置两个宏,一个是有效触发电平, 一个是DIO的编号。我们将有效触发电平设置成高有效,BOOT_IO设置为DIO3。修改如下代码。同时,为了使能Bootloader功能,需要定义下面两个宏SET_CCFG_BL_CONFIG_BOOTLOADER_ENABLE和SET_CCFG_BL_CONFIG_BL_ENABLE为0xC5
#define SET_CCFG_BL_CONFIG_BOOTLOADER_ENABLE         0xC5
#define SET_CCFG_BL_CONFIG_BL_LEVEL 0x0 // Active low to open boot loader backdoor
#define SET_CCFG_BL_CONFIG_BL_PIN_NUMBER 0x02 // DIO number for boot loader backdoor
#define SET_CCFG_BL_CONFIG_BL_ENABLE                 0xC5
编译,烧写固件。
编译生成目标升级Bin固件
这里以TI的CC1310 SDK的pwmled_CC1310_LAUNCHXL_tirtos_ccs例程,编译需要升级的固件。有两个地方需要设置,一个是设置ARM Hex Utility中的memory width和rom width为8,一个是Build, Step中的post build添加,${CCS_INSTALL_ROOT}/utils/tiobj2bin/tiobj2bin.bat ${BuildArtifactFileName} ${BuildArtifactFileBaseName}.bin ${CG_TOOL_ROOT}/bin/armofd.exe ${CG_TOOL_ROOT}/bin/armhex.exe ${CCE_INSTALL_ROOT}/utils/tiobj2bin/mkhex4bin.exe
设置生成bin文件。 如下图。

编译工程,得到pwmled_CC1310_LAUNCHXL_tirtos_ccs.bin
通过Flash Programmer2对目标芯片完成两线串口Bootloader烧写
应用文档SWRA466A中,对应的提供了一个命令行小程序sblAppEx,用于固件升级,因为程序编译较早,有些版本运行会出错。而很多用户不知道的,Flash Programmer2 具有通过串口进行固件烧写的功能。下面, 具体介绍用Flash Programmer2进行串口固件升级的具体操作如下:
1. 按照图X所示,连接UART口和BOOT IO口, BOOT IO (即DIO2) 接低点平, 复位系统. 由于我们设置的是低点平进入Bootloader状态,复位后,芯片进入ROM Bootloader模式
2. 在Flash Programmer2 的左上角 Connected devices中,选择XDS110 Class Application, Unknown (这是CC1310 Launchpad自带的UART口,如果是你自己的串口,也可以在这里看到)

3. 选择好Unknown后,在左下脚的Select Target Device… 下拉菜单中选择对应型号CC1310F128

4. 选择好芯片好. 右键, 选择Connect, 与目标芯片建立UART通信, 如下图

5. 选择需要升级的固件BIN文件, 这里选取之前步骤生成的pwmled_CC1310_LAUNCHXL_tirtos_ccs.bin文件

6. 升级成功后,可以从Flash Programmer最下方的状态窗口看到更新

7. Dd
至此,我们就实现了两线Bootloader

使用特权

评论回复

相关帖子

quickman| | 2020-9-12 22:24 | 显示全部楼层
cc1310_低功耗_小体积_串口透传模块  

使用特权

评论回复
jstgotodo| | 2020-9-12 22:24 | 显示全部楼层
CC1310是否有不带TI-RTOS的例程  

使用特权

评论回复
iamaiqiyi| | 2020-9-12 22:24 | 显示全部楼层
cc1310 怎样实现ook调制方式      

使用特权

评论回复
dzfansman| | 2020-9-12 22:25 | 显示全部楼层
如何查看CC1310程序的RAM使用量  

使用特权

评论回复
sanxingnote7| | 2020-9-12 22:25 | 显示全部楼层
cc1310中怎么获取rssi         

使用特权

评论回复
backlugin| | 2020-9-12 22:25 | 显示全部楼层
谢谢楼主分享的资料了。   

使用特权

评论回复
sdCAD| | 2020-9-12 22:26 | 显示全部楼层
cc1310_传感器模块_   

使用特权

评论回复
fengm| | 2020-9-12 22:26 | 显示全部楼层
CC1310详细介绍         

使用特权

评论回复
updownq| | 2020-9-12 22:26 | 显示全部楼层
了解CC1310软件开发         

使用特权

评论回复
sanfuzi| | 2020-9-12 22:27 | 显示全部楼层
CC1310 集成了 SUB-1G 无线收发器和工业级 ARM

使用特权

评论回复
iamaiqiyi| | 2020-9-12 22:27 | 显示全部楼层
如何实现CC1350与CC1310 Sub-1GHz 通信

使用特权

评论回复
jstgotodo| | 2020-9-12 22:27 | 显示全部楼层
CC1310有没有可以使用的官方协议栈  

使用特权

评论回复
dzfansman| | 2020-9-12 22:27 | 显示全部楼层
可以使用cc1310模块  

使用特权

评论回复
quickman| | 2020-9-12 22:27 | 显示全部楼层
cc1125跟cc1310能互通吗  

使用特权

评论回复
sanxingnote7| | 2020-9-12 22:27 | 显示全部楼层
TI CC1310
低于 1GHz下载数据表  

使用特权

评论回复
fengm| | 2020-9-12 22:27 | 显示全部楼层
软件开发教程有吗?            

使用特权

评论回复
sdCAD| | 2020-9-12 22:27 | 显示全部楼层
推荐CC1310软件速成   

使用特权

评论回复
sanfuzi| | 2020-9-12 22:27 | 显示全部楼层
CC13xx硬件参考原理图,硬件设计师必读   

使用特权

评论回复
updownq| | 2020-9-12 22:27 | 显示全部楼层
例程到编写差异化定制应用   

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

132

主题

241

帖子

1

粉丝