SigmaStudio v4.6 ADAU1452 Interface Read cell & Interface Write cell

Hi Team,

I am using SigmaStudio v4.6 for ADAU1452. My product configures MP7 GPIO as input.

The "Interface Read" and "Interface Write" cells in the "Toolbox --> Inputs And Outputs" category, says "The Interface Read block takes value from one of eight interface registers and makes it available in the schematic design". 

What are these "EIGHT" registers? Are they like "MP6_READ (0xF536)" register and "MP7_WRITE (0xF527)" register in the ADAU1452 data sheet? But there are 14 registers in the data sheet, why only "EIGHT" registers are available here.

regards,

ping

  • Hello Ping,

    In the Sigma300/350 ( The ADAU145x and ADAU146x family of parts ) These are only memory locations that a microcontroller can pick up or change with the idea that it would be saved when power is lost then replaced when power is restored. This is up to the system controller to do the saving and restoring. For the SigmaStudio program they are just a memory location. The objects that use these cells will take the value from the interface read and if the setting has changed then it will update the number and send it out to the interface write block which will update the memory location for the next sample period. 

    I have this program where I set it up to have a default value on startup. This might help to better understand how this works. 

    Also, you can look in the Params tab in the capture window and find the location of the InterfaceRead. Then you can enter a number directly in there and see it change in the program. This is how a controller would change it. 

    2018.ADAU1452 Test of Interface read and write with Default Setting.dspproj

    Also, I almost forgot to mention. That if you want to save the settings to EEPROM then you will have to use the Interface Read and Write that is in the Master Control Port folder in the Tree Toolbox. 

    Dave T

  • Hi Dave,

    Thanks for your quick answer.

    In my application, MP7 is the GPIO Input signal. What are the differences between "GPIO_7" cell (General Purpose Input) and "INTERFACE_7" cell (Interface Read)?

    When do I use GPIO_7 cell vs. INTERFACE_7 cell if they are the same thing?

    regards,

    ping

  • Hi Dave,

    Also, are these eight "interface read" cells and "interface write" cells ways provided by the SignamStudio for exchanging data between ADAU1452 and an external MCU? Are these 32-bit data? And where are they located in ADAU1452 can only be known by look up the information in the "Capture" window?

    regards,

    ping

  • Hello ping,

    The GPIO cells and the interface read and write have absolutely nothing to do with each other. 

    Interface Read and Write is a mechanism for storing the current value of an object that uses a setting of some sort based on a table. Typically these are volume controls that use a table of gain values. This defines the gain of the cell. The cell is either controlled from a rotary encoder or two push buttons, one for UP and one for DOWN. The setting ( the index of the table) has to be saved from one sample period to another.

    So a memory location is used to store the value. At the start of the frame the cell will pick up the value in memory, then if the button was pressed or the encoder turned, it will increment or decrement the number and pull out the gain setting to use from the table. Then it saves the new index number back to the memory location. It picks up the value using the interface read and stores the new value using interface write. 

    The compiler will give you the memory location that is being used. 

    The fact that it only has 8 positions is a limitation from a very old part and the programmers have never updated this to remove this limitation. If you need more than 8 then you can use a simple FeedBack cell but unfortunately that cell does not expose its memory location for you to use. This is a problem if you want to have your system controller pick up the current value and update it. You can use a readback to pick up the value but there it no way to update it. There is another resent post I put up that explains this and shows a work-around. 

    To answer some of your other questions.

    So yes, this is 32 bit data and you can see the location using the Params Tab in the Capture window. 

    Dave T

  • Hi Dave,

    Thanks for your quick answers.

    Can these memory locations that are tied with its corresponding "Interface Read" cell and "Interface Write" cells be accessed from an external MCU via either SPI or I2C?

    How do my external MCU access the content of these memory locations if the above answers are YES? Please direct me to where more information located.

    regards,

    ping