Post Go back to editing

DSP Core is SLEEP mode after loading program.

Category: Datasheet/Specs
Product Number: ADAU1462

Hello,

I'm having a slight issue with the ADAU1462 DSP. I have a custom designed board that uses the DSP, and am loading software onto the board via SPI external microcontroller.

My issue is that after loading a simple S/PDIF IN to Serial Audio Out program from Sigma Studio, the core status register (0xF405) is reading 0x0011 which according to the datasheet corresponds to "core sleeping".

From what I gather in the datasheet, if the core is not killed, not hibernating, and started, the only way it would sleep is if the program issues a sleep instruction, OR if there is a PANIC flag somewhere.

All panic flags are enabled, but the panic register is showing 0 (no panic). This leads me to believe that somehow my SigmaStudio program is causing the core to sleep, but I'm not sure why it would do this.

I have previously successfully programming an ADAU1701 with the same method, again using SigmaStudio, and it has worked perfectly each time.

Thank You,

  • Hello Ernastovich,

    I don't think this will be a problem; it's almost an expected behavior, below is the reason.

    Regarding the Core Status register - 0xF405. 

    when you read this register, and if it says ''the core is not running'', then the core is not running. you should have to check for the reason in that situation.

     All the other values can happen during operation and do not mean there is a problem. In your case, when you read the register, you get the 'core is sleeping' and when I tried with a pass thru program in my eval board, I also got the same.

    The core status of core running means it is running the program. Once the program finishes running for the sample period. The core will go to sleep to wait for the next frame interrupt. So, if the program is small, it is actually difficult to catch the core when it is running the program, it is easy to catch it as it is sleeping since the majority of the sample period it is done with the program and it's sleeping and waiting for the next interrupt. 

    if you want to verify if the core is running, then add a DC cell and readback cell in your schematic. If you are using Sigma studio then you can click the readback cell and verify that it's reading the correct value. You can also read the readback cell's address from the uC to verify the correct value. if there is a communication issue or if the program is not running then you will get garbage and not the correct value. In this way you can verify if the core is running.

    Regards,

    Harish