CC2545/CC2544使用2.4G互联用于无线空鼠等功能遇到的问题如跳频
首先,CC2545作为Tx、CC2544作为Rx,两者均使用Auto Mode,同时都将turnaround times设置为130。目前我们项目中已实现单一频点传输时的所有功能。然后现在需要在不同频点实时切换,以保证抗干扰能力,遇到如下问题:
- CC2544在接收到数据包A1后立即调用halRfLoadAckPayload(),将应答包B1写入缓存,但是此时的B1在CC2545端接收不到,而是需要CC2545再发送一个包A2,CC2545才会收到应答包B1。请问,此问题能否解决,希望能做到主机发A1,能立即收到B1。
- 做频点切换时遇到一个情况。首先,两者会在固定的3个频点中循环切换尝试连接,连接上之后,CC2545周期性产生跳频时间、频点,两者同时切换至设定的频点再通讯。CC2545调用halRfSetFrequency()设置频率,并不是即时生效,而是需要调用halRfStartTx()才会切换频点。CC2544也是需要调用halRfStartRx()才会生效,但是CC2544调用这个后会影响原有逻辑,造成永久接收不到数据。后使用SEND_LLE_CMD(CMD_RX_TEST),目前使用比较正常,但是也会出现频点切换失败的情况,接着就无法回到初始3个固定频点,跟踪发现程序运行正常,但是只能重启CC2544才能重连。请问,在使用过程中切换频点需要进行哪些操作,才能正常切换?
- 另外,是否有更加详细、更有针对性的资料介绍LLE的具体运作情况的。或者是否有案例已经实现我所需要的功能?
盼回复!
jeenter:
怎么帮我把帖子移到蓝牙技术里了呢,我们没用到蓝牙呀。
jeenter:
有没有哪位高手能帮我回复一下呢?
jeenter:
目前为止,还没解决呢,谁有相同需求的呢?
Yan:
jeenter,
不知道是谁把帖子转过来的,
这应该还是2.4G 私有技术的问题,这里应该没有人了解,所以我还是把你转到私有技术那里吧,抱歉。
jeenter:
回复 Yan:
好的,感谢
Nutcracker:
使用 CC2544, CC2545 实现这种伪跳频机制确实比较少见,属于私有协议,TI 没有例程。关键是接收端的频率检测机制,没有做过很难给建议。一般若需要跳频就用CC2541 BLE了。这种私有的跳频机制感觉不太可靠,而且功耗很难保证。
jeenter:
回复 Nutcracker:
Nutcracker,你好!
非常感谢您的回复,现在我们遇到一个非常麻烦的问题就是接收机CC2544调用halRfSetFrequency()设置新频率后,它并没有立即切换,而是需要使用SEND_LLE_CMD(CMD_****)才会切换,而且这个有非常大的概率造成切换失败或者是LLE与MCU通讯中断,造成2544再也接收不到数据呢。不知道正规切换频率的操作是什么样的,会不会是我使用的方法不对?
Albin Zhang:
回复 jeenter:
Jeenter,
推荐你研究一下http://processors.wiki.ti.com/index.php/SimpliciTI
相信你会有很大收获。
BR. Albin