4 Replies Latest reply on Jul 23, 2018 5:48 AM by jan.raiff_3478636

    DeepSleep Mode

    jan.raiff_3478636

      Hi,

       

      I’m a German student in electronic engineering and using the CYBLE-014008-Eval with the Pioneer Kit in my bachelor dissertation. It’s about replacing infrared in remote controls with BLE. A modified UART protocol is used as interface -> a startcondition is followed by a frame of UART Bytes. The startcondition will be cut in software before the input-signal is routed to a UART component.

       

      The attached project is based on “Day020_BLE_UART” in “100_Projects_in_100_Days” .

       

      It’s working very well so far inclusive the normal sleep-mode but I have to reduce the power consumption while advertising a bit more. I tried to use “deepsleep” but every experiment failed. The current was still at ~5mA. 0,5mA is from an external circuit.

       

      I tried to apply different examples read “AN92584 - Designing for Low Power…” and looked in this community, but I haven’t found what I am doing wrong. If I replace " CySysPmSleep();” with “CySysPmDeepSleep();” in the main-function the controller is freezing. Reducing the clock frequency is not possible because than the program isn’t working correctly after that.

      All the other codes used in the examples haven't worked too.

       

      Thank you!
      Jan

        • 1. Re: DeepSleep Mode
          Gyan Chand

          Hello jan.raiff_3478636 ,

           

               As you might have already gone through the AN 92584 and have seen in table #2 that in System DeepSeep only available Digital Peripherals are WDT, BLESS ,SCB(I2C/SPI only) and not Timers and UART and hence if you  put the system in DeepSleep ,you would not be able to generate the correct 'StartCondition' of your frame. Once the system goes into DeepSleep Low Power state only available sources for waking up the system in your project are BLESS( BLESS interrupt at every Advertisement and Connection interval ) and LP Comparator.

          All your protocol timings are dependent on UDB Timer ISR.

           

          -Gyan

          • 2. Re: DeepSleep Mode
            jan.raiff_3478636

            Hello Gyan,

             

            thank you for your reply!

            I only want to go into deepsleep while advertising. There i don't need UART and the timer. The communication is only activ while connected to an other BLE device.

            Do I need to switch them seperatly off before going to deepsleep?

            I think I have to optimize the "if" commands only to execute “CySysPmDeepSleep();” while the bless state is advertising.

             

            Jan

            • 3. Re: DeepSleep Mode
              Gyan Chand

              Hello jan.raiff_3478636 ,

               

                 If you want to put the system in DeepSleep only while advertising then you can optimize the "if" commands only to execute “CySysPmDeepSleep();” while the bless state is advertising. ( As you just said).

               

              -Gyan

              • 4. Re: DeepSleep Mode
                jan.raiff_3478636

                Hello Gyan,

                 

                I changed the "if"s and now it's working. Thank you so much for your helping me and for putting my thoughts on the right track!

                 

                Jan