The address of a particular parameter might be changing when new modules are inserted or deleted from the schematic. In some cases, a fixed address is need for a particular parameter irrespective of the changes in the schematic to avoid the need to recompile (and therefore re-validate) micro-controller code. The “Indirect Parameter Access Table” provides a mechanism to maintain a fixed address for selected set of parameters within a schematic.
This feature can be accessed by right clicking on the IC as shown below. This option is first enabled once a schematic is first compiled. The feature is supported in SigmaStudio 3.13 or above. It is currently supported for the ADAU144x, ADAU145x, and ADAU146x families of SigmaDSP processors.
This feature allows microcontroller (uC) code to not need to be generated concurrently to a DSP image (Program Memory / Parameter memory). Instead users can develop their uC code independently from the DSP program/parameters being used. Such DSP image can be later placed separate in a known location in EEPROM (or flash) for it to be downloaded by the uC. Doing this will allow independent loading of the DSP schematic without the need to affect the uC code that deals with non-static run-time changes.
|GUI Control Name||Default Value||Range||Function Description|
|Table Length||5||5 - 1000||Number of Parameters in the Table|
|Indirect Address||NA||NA||Indirect Address to access the parameter. This address is maintained as a fixed value irrespective of any changes in the schematic.|
|Module||NA||NA||Lists the modules in the schematic|
|Parameter||NA||NA||Lists the parameters for the selected module.|
|Param Address||NA||NA||Actual Parameter Address in the Schematic. This might change when there are changes in the schematic|
|Format||8.24/5.23||8.24/5.23/32.0/28.0||Fixed point format of the parameter|
|Value||0||Changes depends on Format||Value to be written for the parameter/ Value Read back from the target|
|Enable Read||false||true/false||To enable the readback for a particular parameter.|
|Start Address||First Indirect Address||Indirect Address range||Start address for the indirect parameter access|
|Number of Loads||1||Table Length||Number of sequential loads to be performed from the 'Start Address'|
|Update||NA||NA||Updates the indirect parameter and writes the same to the target|
|Write||NA||NA||Updates the single indirect parameter and writes the single parameter to the target|
|Defragment||NA||NA||Defragments the table reordering the table|
|Page||1||1-100||change page option|
Indirect Parameter Access Table Can be configured using the following steps.
Follow the steps below to initiate the load using Write option in the SigmaStudio GUI.
Follow the steps below to initiate the load using Update option in the SigmaStudio GUI.
A write or update will cause the corresponding value boxes to be highlighted in green.
Follow the steps below to initiate the load form the external microcontroller.
Lets assume the following Indirect Parameter Table.
To write the 5 filter coefficients from micro-controller.
Note that read will work only if the 'Enable Read' button is checked for the particular parameter before the compilation. The parameter values are copied from the actual address to the indirect address (Fixed address) after processing every sample. So the parameter value read has maximum of 1 sample delay.
Follow the steps below to initiate the read using SigmaStudio GUI.
Follow the steps below to initiate the read from the external microcontroller.
Note: Write will not work for a parameter when read is enabled. To implement both write and read of a same parameter, two separate indirect addresses should be used as shown below.
Here same 'gain' parameter from 'Single1' module is mapped to two indirect addresses, 24585 and 24586. Indirect address 24585 can be used to read gain parameter and 24586 can be used to write the parameter.
The address of 'start_address' and 'num_of_loads' registers can be found from the export files. Indirect Parameter Access Table is placed after the SafeLoad data. Export file also contains all the indirect addresses defined.
Parameters can be added to the indirect parameter access table by right clicking on the modules after compilation.