adau1467 core in sleep mode

Grettings.

I am tryin to get adau1467 working made a simple schematic just to see if i am getting feedback from ic 

mclk_out is working i can turn it off and power it up

Regardless from all my efforts on core_control page im seeing core status = core in sleep mode.

Anyone have some clues?

  • 0
    •  Analog Employees 
    on Jun 14, 2021 1:45 PM

    Hello ,

    Sorry for the delayed response.

    Please note that the "core stopped" after link+compile+download the project is known bug in sigmastudio.

    We suggest you to test the DSP by readback register. The DSP Readback block lets you read values back from the DSP at any point in your schematic design.The number displayed onscreen is the data value sent back from the DSP considering all the blocks to the left of the Readback block. Every time you click Read, this value will be updated with the latest from the DSP. By displaying the output value from any block, in any format desired, Readback is used extensively for debugging. Readbacks can also be used to hold values for a microcontroller to access over the control port.

     

    I am attaching the simple playback with DSP readback. Hope this helps.
     
    Regards,
    Lalitha.S

    Simple_PlayBack.zip

  • 0
    •  Analog Employees 
    on Jun 15, 2021 9:01 PM

    Hello Konstantin,

    There is a little here to unwrap for you. There are some issues with the display of the Start Core register and there is one register that is missing which is the Stop Core which is sometimes called the Kill Core register. 

    To the defense of the programmer these registers are difficult to program in the SigmaStudio standard objects. Let me direct you to the ADAU1452 datasheet. When I updated this datasheet a few years back I spent some time talking to the lead designer of the part to fully understand how these registers work and I also did many lab experiments to understand it and make an attempt to document it. 

    The DSP control registers start on page 118 and go to page 122. 

    Let me separate some of the topics. 

    Starting and stopping the core:

     There are two registers involved in doing this. 0xF403 is the Kill Core register. When it is changed to a "1" it stops the core immediately. As long as it is held at a value of "1" the core will remain stopped. To start it back up you must make sure this register is zero. Changing it to zero does not start the core it only allows it to be started. 

    Then the Start Core register is an edge triggered register. So when this register goes from zero to one it will start the core. So if this register is sitting at zero or at one makes no difference. It is an edge transition that does the job. This is why the SigmaStudio display of Core Stopped is not correct. The core is not stopped. it just means it has the value of ONE. Click on the button and it changes to Core Running but the program runs no matter the state of this register. It only starts the core when it is stopped. When it is running it makes no difference. 

    Now, on to the Core Status register. 

    Read the details in the datasheet for address 0xF405. 

    If you read that it is not running then it is not running. All the other values can happen during operation and do not mean there is a problem. 

    The core status of 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 sleeping waiting for the next interrupt. 

    Using the test of a DC cell and a Readback Cell that Lailtha suggested is the best way to tell if the core is running. The DC cell resides in DSP memory so clicking the readback will read the value of the DC cell so if there is a communication issue or if the program is not running then you will get garbage and not the correct value. The eval boards are all setup for SPI comms so there is no ACKs so SigmaStudio has no idea if the program was actually loaded in. The way to test it is to use the DC cell and readback to see if the program is alive and running. 

    So are you able to run programs?

    Dave T