This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

nRF52840 Low power mode enable for peripheral example

Hello,

I am working to replace my BM70 with nRF52 series. So it has to be quick and simple solution. So, I used nRF52840 USB dongle as my slave (Peripheral Example code).

It worked great. But now every some minutes device goes to Deep sleep which we can only wake up via RESET.

I want to put device in Low power mode when not connected to master. but still broadcast all the time. So, when Master is looking for that MAC address, I can connect to it.

Please refer me if there is any Documentation or Example code in community.

I am very new to this community, So if i am posting at wrong place please help me post at the right place.

Thanks

Jay

Parents
  • Hello Bjorn,

    I have implemented your given example and unit is advertising all the time. But It consumes same current as all the time 2mA which is very high. I have few more Questions.

    1> How do I know its Slow Advertise mode? 

    2> Is there a way to have nrf goes to sleep after 180 S and it advertise every 1 minutes for x seconds? and if times out goes back to sleep.

    3> How Do I achieve maximum power saving as my application is only using UART while connected. No other GPIO needed.

    Thanks

    Jay

  • Hi Jay, 

    Jigar said:
    1> How do I know its Slow Advertise mode? 

    When you call ble_advertising_start you also need to state which advertisement mode you want to use. 

    Jigar said:
    2> Is there a way to have nrf goes to sleep after 180 S and it advertise every 1 minutes for x seconds? and if times out goes back to sleep.

     Yes, you can setup a application timer that starts advertising every minute and then stops advertising after x seconds. For the timeout you can just set the APP_ADV_DURATION in main.c

    Jigar said:
    3> How Do I achieve maximum power saving as my application is only using UART while connected. No other GPIO needed.

     The UART should be un-initialized when it is not in use. So before you put the nRF in sleep mode you should uninitialize the UART and when you wake up and need to use it you should reinitialize it. 

    Best regards

    Bjørn

     

  • Hello,

    Can I uninitialized UART if there is no Event? How? I tried many ways dis not work.

    Basically, what I want is 

    1> My BLE is continuous in SYSTEM ON mode. When Master connects to it then Initialize UART. does it work and then goes back to Slow Advertise mode and un initialized UART.

    Is it possible?

    Can you please advise?

    Thanks

    Jay

  • Should I do Complete UART_INIT() which also includes FIFO_INIT. this may cause Buffer overflow.

    Thanks

    Jay

Reply Children
No Data
Related