TI中文支持网
TI专业的中文技术问题搜集分享网站

CC1352P: ApiMac_mlmeSetRegBool(ApiMac_attribute_RxOnWhenIdle,false) not effective

Part Number:CC1352POther Parts Discussed in Thread: SYSCONFIG

Hi,

My application is based on SimpleLink SDK v4.20.

I need to make CC1352 work under two different RF, send and receive for 2.4GHz ZigBee most of the time, and occasionally send BLE data.

In the previous test, I found that I could not switch directly to the sending of BLE when ZigBee receiving was turned on.

Then I used the function in the api_mac library

ApiMac_mlmeSetRegBool(ApiMac_attribute_RxOnWhenIdle, false);

, set RF to IDLE, and sent BLE.

This works most of the time, but occasionally there is a problem: the function doesn't work.

I tried to get the return value of the function and used

ApiMac_mlmeGetRegBool(ApiMac attribute RxOnWhenIdle, &state);

to get the flag bit, and the result was that the function had taken effect and RF was IDLE, but ZigBee rx could still trigger an interrupt at this time.

In my code, from setting RF to IDLE state to sending BLE as blocking.

In another test, I paused the task for 10 seconds after setting RF to IDLE, commenting on all other code that opened RX, but still occasionally received ZigBee data,

the code is:

When the function fails:

So my question is:

Is there other way to ensure that RF can enter IDLE?

Thank you.

Yolande Wang:

Hello, 

you can try the following approach:

Use 

ApiMac_mlmeSetReqBool(ApiMac_attribute_RxOnWhenIdle, CONFIG_RX_ON_IDLE);

,

QiYi Duan:

Is there any difference?

,

Yolande Wang:

There is no difference.

The comment you sent says ‘False for sleepy device’, perhaps CC1352P needs to be sleepy when you call ApiMac_mlmeSetReqBool.

You can also try this out: disable unnecessary peripherals, such as timers, UART, ADC, or other communication interfaces.

,

QiYi Duan:

The word "False for sleepy device"  was not written by me, it is in the ti_154stack_config.h generated by the SysConfig tool.

The function:

ApiMac_mlmeSetReqBool(ApiMac_attribute_RxOnWhenIdle, true);

is use to make RF chenge into RX from IDLE

The function:

ApiMac_mlmeSetReqBool(ApiMac_attribute_RxOnWhenIdle, false);

is use to make RF into IDLE. And occasionally it doesn't work. My question is how do I make sure it works? Whether there are other ways to replace it?

,

Yolande Wang:

你好,

这个 API 是让 RF 常打开的。

我再确定一下,您是想关闭 ZigBee 的收发吗?

,

QiYi Duan:

Yes.

,

Yolande Wang:

Hello, 

you can read this document by clicking this link. 

The Dynamic Multi-protocol Manager (DMM) allows multiple wireless stacks to coexist and operate concurrently on a single radio on a CC13xx or CC26xx device. 

,

Yolande Wang:

https://dev.ti.com/tirex/explore/node?node=A__ADiP0nh6ykIsiD7uD.ug6w__com.ti.SIMPLELINK_ACADEMY_CC13XX_CC26XX_SDK__AfkT0vQ__LATEST

,

Yolande Wang:

您好,

您问题的疑惑点解决了吗?

,

QiYi Duan:

Hi,

I have other things to do these days. I will verify the solution using DMM as soon as possible.

,

Yolande Wang:

All right,  look forward to your feedback .

赞(0)
未经允许不得转载:TI中文支持网 » CC1352P: ApiMac_mlmeSetRegBool(ApiMac_attribute_RxOnWhenIdle,false) not effective
分享到: 更多 (0)

© 2024 TI中文支持网   网站地图 鲁ICP备2022002796号-1