Post Go back to editing

ADSP-BF609 HIBERNATE -> FULL ON

Thread Summary

The user encountered issues waking up the BF609 DSP from hibernate mode using PB15 as the wakeup signal. The solution involved ensuring the VDD_INT power domain is shut off using SYS_EXTWAKE, as demonstrated in the provided sample code. The code also includes a blinking LED program to verify the wakeup from hibernate mode, which resets the processor upon wakeup. The user confirmed the issue was resolved after implementing these changes.
AI Generated Content

HI,

     In CCES, I called "adi_pwr_SetPowerMode(ADI_PWR_MODE_HIBERNATE);" to make DSP(bf609) hibernate,

     and call "adi_pwr_EnableWakeupSignal (ADI_PWR_WAKEUP1, ADI_PWR_WAKE_POL_LOW, true);" to make PB15 as the wakeup signal.(PB15 is a button).

     I guess when i push the button (PB15) DSP will wake up and continue to run. I light a led after hibernate, but when i push the button(PB15) the led does not light. I want to know how can i wake up the DSP from hibernate, and what the Phenomenon is after wake up. If it will continue run after wake up ? Should i configure something to make the DSP normal?

    

     Can you give me an example code to help me know how to wake up the dsp to full on?

     Please find the attached code which we used for hibernate mode:

BF609_freq_mode_change.c.zip
  • There's a Software and Tools Anomaly Report for this issue.  To locate the Anomaly Reports see this FAQ https://ez.analog.com/docs/DOC-2437.  The issue reference number is 48092.

  • Hi,

    As Matt pointed out there is an anomaly related to the power API which limits its usage to put the processor in Hibernate and DeepSleep mode.

    I have attached a simple code which can be used to put the BF609 to Deepsleep or Hibernate mode (using HIBERNATE/DEEPSLEEP #defines). You can use this code till the PI related anomaly is fixed.

    Note that in case of wakeup from Deep sleep mode, the code execution continues from the point where the processor was put into deepsleep, while in case of Hibernate, the wakeup forces the reboot of processor.

    Regards,

    Nabeel

    Hibernatecode.zip
  • Hi Nabeel,

        We use your code, but not wake up successfully.

         Result is: PB15 is high, but no interrupt, no wake up.

        Tested both deep sleep and hibernate mode, result is the same.

        

        We test PB15 with LED or GPIO interrupt, both are ok.

        

        Btw, when in the hibernate mode, what's the status of the GPIO? High or low? Thanks!

    Br,

    Nicolas,

  • Hi Nicolasli, 

    I have attached a sample code to test both  hibernate and deep sleep mode., with pushbutton as the wakeup source.

    1) Deep Sleep:

        a) Enable DEEPSLEEP  (#define) on  core 0 and 1

        b) Compile and execute the code.

       Code execution : LED1, LED2 - Indicate the idle status of Core 0/1  and LED3/LED4 blink after processor comes  out of  deep sleep.

    2)  Hibernate mode

         a) Enable HIBERNATE (#define) on Core 0 and disable DEEPSLEEP  (#define) on Core 1.

         b) Compile and execute the code.

        As  in hibernate mode, there is no power dissipation on the VDD_INT power domain, and the processor resets coming out of hibernate mode.

        There are two ways to check the processor is in hibernate mode or not.

       1) Check the VDDINT voltage, it will be '0' if processor is in hibernate mode

       2)  Flash a program

          a) Flash a blinking led program.

          b) Execute hibernate code.

          c) Assert the wake up push button Blinking LED will execute.

    (I have attached a blinking LED program for your reference, it generates a LDR file on SPI Slave boot mode.)

    I have tested this code with

    EZ-kit board 1.0, with silicon rev 0.1 . Cross Core version 1.0.2.0

    Please let me know if you have any problems with the  code.

    Thanks,

    Akash

    attachments.zip
  • Hi AkashA,

        It works on the ezkit, but not functional on our current board.

         The VDDINT is not zero on our board, is it the reason why it's not functional?

         Is there any other pin may cause the system not to wake up?

        Btw, in the hibernate mode, if the VDDINT is not zero, what's the power consumption now? I remember it's 40uA in the datasheet. Thanks!

    BR,

    Nicolas,

  • Hi Nicolasi,

    A) In hibernate mode, there is no power dissipation on the VDD_INT power domain as long as the voltage

    regulator powering VDD_INT is shut off. On the EZ-kit, it is disabled using the SYS_EXTWAKE (Drives low during hibernate).

    Does your current board uses the same method ?

    if you can share your schematic either here or on private support may be I can help you better.

    Another the code that I had provided utilized PE12, as the wake -up source. if you are using any other defined wake up sources ( Table 5.5 , Bf60x Hardware Reference Manual ) for your current board then you will have to modify the code.

    Thanks,

    Akash

  • Hi Akash,

      

        Problem is solved, now it's can wake up now.

        Our VDD_INT is not shut off because we don't use SYS_EXTWAKE, we will add this later, thanks!

    BR,

    Nicolas,