Is there a default method to monitor if a sigmastudio DSP (e.g. ADAU1452) is running properly after booting (via I2C)?
I would assume (or hope for) some register that indicates the DSP is properly booted and/or running. Or do we have to create something by ourselves to do this?
Personally, I just read back a register or DC block I know the value of. If it works, I assume it's running.
I tried using a DC block, but since the RAM is not cleared under reset this doesn't work...
Fixed it for now using a sawtooth generator at a very low frequency connected to a DSP readback block and just checking for changing values.
If anybody has a more standard approach or brighter idea please let me know.
The simplest way to check would be to read back the core status register (on the ADAU1452, for example, 0xF405). This will tell you if the core is running, paused, stalled, sleeping, etc. For the 1452, refer to page 117 of the datasheet for more information.
Hope this helps!
I know the topic is a bit old but I have a question regarding the different states of the core. We have our own design which runs in selfboot mode from a EEPROM connected to the SPI master port. The communication to the outside is handled via slave I2C interface to a main MCU. We are monitoring always the states of PANIC_CODE, HIBERNATE and CORE-STATUS. Sometimes we get the 0x0004 for the CORE_STATUS, which is stalled. Of course I know what running and paused mean but especially stalled and sleeping is not 100% clear for me. Could you explain me how the different states can be triggered?
Dont get me wrong the systems runs and we can control everything with the main MCU. But we have some random problems with the selfboot process, especially if we power up the full system (cold start). Then the DSP starts with wrong behavior and it is really hard to identify these random errors. Do you have any experience with that? If needed I can explain this issue more in detail.
Questions regarding CORE_STATUS:
Many thanks in advance and best regards,