微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI蓝牙设计交流 > cc2540 oad空中升级复位问题

cc2540 oad空中升级复位问题

时间:10-02 整理:3721RD 点击:

求助各位ti的工程师,为什么我的板子做oad空中升级后需要我手动复位才能用啊,OAD升级之后不是有个自动复位的功能的吗?我有一块其他的板子就不需要手动复位,实在搞不懂为什么啊,如果实在不行加软件复位的功能,这应该在哪边加啊,不知道oad升级完之后程序跑到哪边去了???

yang,

你确定你的oad已经完成了吗?手动重启后,有没有检查是否运行了新的固件呢?

在oad_target.c 中,oad过程写flash的代码是oadImgBlockWrite(),当完成之后,
如果你定义了 FEATURE_OAD_SECURE,就会直接调用HAL_SYSTEM_RESET()重启,

不然会通过checkDL()做校验,如果通过的话,也会调用HAL_SYSTEM_RESET()重启系统。

一般默认情况下应该不会定义FEATURE_OAD_SECURE,所以我估计你的问题有可能在checkDL()中校验没通过。你可以设置断点看看,最后会不会来这里。

如果上面一切都正常,那么是否硬件设计上有问题呢?

谢谢yan热心解答,我手动复位的话是执行了新的固件,这个肯定,然后如果我的checkDL()没有通过,我的oad升级是不会成功的吧,这时候我手动复位也不会执行我的新程序,而且我有一块板子同样的程序不需要手动复位就执行新的固件,如果是硬件有问题,您觉得会有那边有问题呢?我的复位脚加了电容接了地的。

yang,

没错,如果你手动重新启动运行的是新的固件的话那应该说明校验已经通过了。

复位引脚电容有跟TI的参考设计比较过吗?

另外,供电部分的电路呢?

yan:

之前我说的好的板子是买的开发板,而我们自己做的板子会有问题,供电部分我发现一个问题,就是给芯片供电的vcc那边理论上要有个电感和一个电容,这应该是起到芯片瞬间启动,防止大电流对芯片的冲击的,相当于是一个滤波,这个应该是和vcc离的很近把,我发现我们自己的电路PCB走线离得比较远,您觉得这块会是问题的原因吗?如果不是您觉得供电这边应该注意哪些呢?谢谢

yang,

TI的板子如果没问题的话,那应该就是硬件问题了,你可以试一下外部供电,VCC接个外接电源看看会不会还有问题,再检查一下电路设计。

  谢谢

重新布板解决问题了么,我觉得无法重启可能是因为重启用到的看门狗功能,看门狗的时钟是32K的,协议栈默认使用32k OSC。

你的板子应该是省略了这个玩意。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top