- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I'm developing a GAP peripheral. I want to put the MCU to deep sleep while BLE is advertising. Can use BLE to wake the MCU up when there is a connection? Thanks in advance. I really appreciate your help.
Solved! Go to Solution.
- Labels:
-
BLE
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
Whenever the device advertises, there is an interval where you send advertisement packets, followed by a period of blanking. The Chip can go into deepsleep at the time of this blanking alone. The chip will be automatically waken up during the next adv interval. This has been implemented in all our example projects in PSoC Creator.
Regards,
- Madhu Sudhan
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
Whenever the device advertises, there is an interval where you send advertisement packets, followed by a period of blanking. The Chip can go into deepsleep at the time of this blanking alone. The chip will be automatically waken up during the next adv interval. This has been implemented in all our example projects in PSoC Creator.
Regards,
- Madhu Sudhan
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Dear Madhu.
Thanks so much. I really appreciate for your help. I found that explanation in AN92584 - Designing for Low Power and Estimating Battery Life for BLE Applications (http://www.cypress.com/file/140991/download). Looks like BLESS wakes up the CPU twice every time it advertises. First when BLESS enter the active mode and again at end-of-event.
Suppose I want my BLE to advertise continuously without timeout and I want my program to perform a specific task after BLE advertises 10 times. Is there a reliable way to count the number of advertising? Or should I set the timeout and restart advertising after CPU finishes a specific task?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
In your BLE component, you can go to Gap Settings -> Advertising settings. Once there, you'd want to set the Minimum and Maximum advertising intervals to the same value, say 100ms. This isn't perfect, but each interval will be close to the same duration.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
You could use the API CyBle_GappSetNumOfAdvPkts() for transmitting a fixed number of ADV packets.
Please note that at every ADV event , we are transmitting 3 ADV packets through the ADV channel 37/38/39.
Please refer the BLE component datasheet for more details on the API.
-Gyan