CC2541晶振频率调谐保存
CC2541拉低某些引脚进入工厂测试模式,调用 HCI_EXT_EnablePTMCmd 使能量产测试模式,然后调用 HCI_EXT_ModemTestTxCmd 进行定频输出测试,
使用 HCI_EXT_SetFreqTuneCmd 对晶振频率进行调谐,完成后调用 HCI_EXT_SaveFreqTuneCmd 函数保存,
重新上电复位进入工厂测试模式,发现定频输出的频率还是未调谐前的频率。似乎保存没有成功。
若自己将调谐后的 FREQTUNE 寄存器保存在 FLASH 中,初始化后对 FREQTUNE 重新赋值,发现也不能输出调谐后的频率。Debug状态下观察,寄存器 FREQTUNE 自动修改回默认值了。
为什么?请 TI 的大虾帮手分析一下。
设置好后调用下HCI_EXT_SaveFreqTuneCmd 。
This setting will only remain in effect until the device is reset unless HCI_EXT_SaveFreqTuneCmd is used to save it in non-volatile memory.
谢谢!有调用,但 reset 后又恢复了,不知道问题出在哪里。
可以用下面的方法验证,复位后是可以保存的。
你可以使用IAR的DEBUG,并可以观察Freqtune寄存器,如下图:
FREQTUNE默认是0x0F,如果没保存应该就是这个值,如果保存了应该是一个小于0x0F的值
我验证上面的API函数,结果是确实能保存。
我也是用这个方法验证,但不行啊?能不能发你验证过的demo给我试下?
fuhuiming@victon.cn
我试来试去都不行啊,复位后就变成0x0F了,谢谢!
就是hosttest,协议栈里面的例子。 注意下,你的库是不是用的支持PTM的库