咨询几个HCI层的API函数
Hi All
小弟实在对以下几个API函数有些疑问,求解答:
1. 设置发射功率:HCI_EXT_SetTxPowerCmd();
注释说CC2540支持-23、-6、0、4dBm,而CC2541不支持4dBM模式。
请问使用CC2541的器件,如果写入参数为LL_EXT_TX_POWER_4_DBM会怎么样?是设置失败呢?还是会出错。。。
2.HCI_EXT_ClkDivOnHaltCmd();实在没看懂这个函数的注释。。。
想知道写入参数 HCI_EXT_DISABLE_CLK_divIDE_ON_HALT 或 HCI_EXT_ENABLE_CLK_divIDE_ON_HALT
会有什么影响。。。
3.HCI_EXT_SetFastTxResponseTimeCmd();
注释说:That is, the transmit response time will tend to be no longer than the connection interval....When disabled, the transmit response time will be no longer than slave latency + 1 times the connection interval.
是否可以这么理解:如果这个参数为Enable则SlaveLatency参数的设置等于无效。只有在Disable的情况下,从机才会根据SlaveLatency参数触发连接事件呢?
而这个默认就是Enable,也就是说我在初始化时设置SlaveLatency参数后,其实还要对这个函数设置为Disable才有效吧?!
4. HCI_EXT_ResetSystemCmd();系统复位命令。这里面的硬件复位,应该不会导致晶振需要重新起振吧?!
5. HCI_EXT_OverlappedProcessingCmd();这个API也实在没看懂。。。什么是重叠处理?使能/禁止有什么不同!
别让我再回头看注释了,看的懂就不用来这里问了。
求解答啊,谢谢!
糟糕~
看帖的有,回帖的没。。。
TI的专家快来帮忙啊。。。
shaokai,
1,放心,这个命令,如果你试图对CC2541设置4dBm,它会直接返回告诉你参数无效。
2,这条命令,Enable 的话,会在MCU空闲的时候降低主频来降低功耗,但是会影响到DMA控制器搬数据。
3,这个可以在你slave latency 无论是不是0的情况下,在最近的connection event中立即把数据发出去,当然,slave latency如果有的话,还是其作用的。
4,很有意思的问题,注意,你在PM3 模式下,所有晶振都是关闭的,PM2 模式下,32M 的也是关闭,正常运行的时候再起振,所以,不同模式下,你硬件复位,结果会怎么样,应该跟软件无关,你可以看一下main()函数里面HAL_BOARD_INIT()的时候晶振的操作。
5,请看这个wiki: http://processors.wiki.ti.com/index.php/OverlappedProcessing,所以,多看看TI 的wiki,非常有好处。
你是个好学的孩子,喜欢问各种问题,不过还真是要提醒你多去看看TI的wiki和TI提供的各种开发指导,比如协议栈安装好就带了很多文档,你要的这些HCI 命令的解释,我记得,在TI_VLE_Vender_Specific_HCI_Guide.pdf 里面应该就有的,很详细 ,或者上网搜索看看,一定要用google搜,不要用百度 :)
Yan
1.OK.
2.目前我已经设置HCI_EXT_HaltDuringRfCmd(HCI_EXT_HALT_DURING_RF_DISABLE);
看来这部分,我还是保留设置为Disable放心点,我才不在乎那一点点功耗。
3.OK
4.你是说,调用这个函数,设置看门狗溢出复位之后,系统在初始化还是会重新配置系统时钟。是这个意思吧?!
5.OK。看看去。
我去,我已经奔三了!
有些资料前期看了,当时看的有很多不懂,以上几个我也是在TI_BLE_Vendor_Specific_HCI_Guide.pdf看的注释。
实在理解不了才来问的。
shaokai,
4,是的:)