CC2541 OAD无线升级遇到问题总结

最近做BLE CC2541 OAD空中升级,鉴于256K的flash,如果编译代码code大的话,存储空间显得有些力不从心。有的人会采用双CPU工作,主从形式,不过显得有些奢侈。Flash分成三个区:bootloader(BIM)、Image-A、Image-B区。bootloader(BIM)区是固定的不用改,Image-A应该尽量小,这样Image-B才会有足够的升级空间。遇到的问题列一下:
1.在PC端用SmartRF Flash Programmer软件下载好BIM、Image-A之后,BIM下载时Actions要选择全部擦除芯片。下载Image-A要选择烧录到前一个映像后面Append and verify。然后打开BLE Device Monitor软件进行Image-B bin文件写入。遇到端口无反应CC2541 OAD无线升级遇到问题总结_第1张图片
这是因为USB Dongle固件的问题,在作为BTool\BLE Device Monitor 使用前,需要下载对应的固件,在协议栈目录下:c:\Texas Instruments\BLE-CC254x-1.4.0\Accessories\HexFiles\CC2540_USBdongle_HostTestRelease_All.hex下载后就可以识别端口了。
2.下载了BIM和Image-B,用BLE Device Monitor加载Image-B .bin文件后,点击Start开始升级,一会就断开连接,软件自动关闭。如下:

CC2541 OAD无线升级遇到问题总结_第2张图片

这是可能由于软件版本太低的原因,下载最新的即可。
不过感觉在PC端升级时间太长,可以适当修改从机的连接参数,速度会提升。如:

// Minimum connection interval (units of 1.25ms, 80=100ms) if automatic parameter update request is enabled
#define DEFAULT_DESIRED_MIN_CONN_INTERVAL     16//80

// Maximum connection interval (units of 1.25ms, 800=1000ms) if automatic parameter update request is enabled
#define DEFAULT_DESIRED_MAX_CONN_INTERVAL     16//800

// Slave latency to use if automatic parameter update request is enabled
#define DEFAULT_DESIRED_SLAVE_LATENCY         0

// Supervision timeout value (units of 10ms, 1000=10s) if automatic parameter update request is enabled
#define DEFAULT_DESIRED_CONN_TIMEOUT          50//1000     

// Whether to enable automatic parameter update request when a connection is formed
#define DEFAULT_ENABLE_UPDATE_REQUEST         FALSE//TRUE

更多技术文章浏览请关注:

百家号:
https://author.baidu.com/home?context=%7B%22app_id%22%3A%221646108714303504%22%7D&wfr=bjh

头条号:
https://www.toutiao.com/c/user/8115738721/#mid=1646025109246987

你可能感兴趣的:(蓝牙4.0/BLE)