整个新的工程只增加了test部分和去掉了IAR预编译的POWER_SAVING宏定义,编译后烧录进芯片观察,仿真时芯片隔一秒复位一次,非仿真时一点反应都没有,但使用1.4版本库竟然没有这个问题,这个真的是新版本的BUG吗?
发现此问题是在做一个新的项目中使用了BLE-CC254x-1.5.0.1版本库,程序已经加入看门狗,但会出现死机,死机现象为蓝牙搜不到,串口没工作,按键没有反应,整个芯片不知道出于什么状态,但之前的1.4版本从未测试出此问题,及时把1.4版本的看门狗去掉也不会出现死机现象,刚开始以为是修改程序后出现问题,就用一个什么都未更改的库程序测试看门狗,竟然没有反应,请高手回答!!!!!
实验①:新的实验,同样的程序(1.5版本库)在另外一块demo板上用仿真器供电看门狗竟然可以正常复位,在产品板上用仿真器供电运行看门狗也无法复位,下面为产品板原理图,实验过把RESET管教的上拉电阻和电容都去掉,看门狗仍然无效。
请问看门狗和电路应用有关系吗?
产品板原理图(看门狗不起作用)
demo板原理图(看门狗起作用)
实验②:在1.5版本库程序直接调用 HAL_SYSTEM_RESET();程序烧录到产品板,在仿真状态下程序可以复位,在非仿真状态下程序毒不能复位,这个宏定义都不起作用。
Alvin Chen:
#define WD_INIT_1000MS()st( WDCTL = 0x00; WDCTL |= 0x08; )//间隔时间为1000MS的看门狗启动
#define WD_INIT_250MS()st( WDCTL = 0x00; WDCTL |= 0x01; WDCTL |= 0x08; )//间隔时间为250MS的看门狗启动
#define WD_INIT_15_625MS()st( WDCTL = 0x00; WDCTL |= 0x02; WDCTL |= 0x08; )//间隔时间为15.625MS的看门狗启动
#define WD_INIT_1_9MS()st( WDCTL = 0x00; WDCTL |= 0x03; WDCTL |= 0x08; )//间隔时间为1.9MS的看门狗启动你上面的的定义250MS一次,此外你有测试BLE-CC254x-1.5.0.1里面的提供的peripheral固件在你的板子上吗?
Alvin Chen:
回复 Alvin Chen:
C:\Texas Instruments\BLE-CC254x-1.5.0.16\Accessories\HexFiles\CC2541_SmartRF_SimpleBLEPeripheral.hex
YiKai Chen:
你有定時去踢狗嗎
wenguang zhan:
回复 YiKai Chen:
请看标题,没有添加喂狗程序,现在的问题是开启了看门狗没有添加喂狗程序,芯片非仿真状态下不复位
wenguang zhan:
回复 Alvin Chen:
上面的写的看门狗时间有误,当时是试了所有的看门狗时间都无效,板子其他功能都正常,连接手机APP,串口什么都正常,只有非仿真状态下看门狗不能复位,同时做了只用仿真器供电运行也无法复位,目前得出来的结论是只有反正状态下才会复位,但我的程序烧录到另外一个实验用的demo板非仿真状态下用仿真器供电运行竟然可以复位,请问电路对看门狗有影响吗?待会上原理图
Alvin Chen:
回复 wenguang zhan:
你好,我在CC2541 keyfob测试没有这个问题。
wenguang zhan:
回复 Alvin Chen:
你好,请看下从新上传的原理图,看门狗和电路应用有关系吗?我在别的demo板测试也没有这个问题,非常奇怪,希望高手解答一下
Alvin Chen:
回复 wenguang zhan:
你其他板子有焊接32k晶振吗?
wenguang zhan:
回复 Alvin Chen:
那个可以的demo板有焊接晶振,待会我吧可以的demo板电路图上传上去
Alvin Chen:
回复 wenguang zhan:
你需要焊接32k晶振或者如果不焊接则需要修改使用内部RC震荡。