In ADAU1452, Is Burst write a method to implement safeload mechanism or does it have any other use case?
I'm not sure I fully understand the question, but usually burst mode is for pushing large amounts of data, such as initial programming after a reset. I don't think burst is a safeload method.
What we call "Burst Write" writes directly to memories in the DSP and is NOT consider part of the safeload mechanism. To do safe load you need to write indirectly to the memories (in chunks of 5) using intermediate (reserved) memory locations. The difference is that you will let the DSP do the direct memory address at a SAFE time to avoid falling into filter instability. Do you understand the safe-load process?
Hope this helps.
Are those Safeload Addresses fixed or can we modify it using SigmaStudio
They are fixed in the sense that the linker / SigmaStudio framework is programmed to always place them in the same memories. They are not fixed in the sense that they are fixed hardware registers (except in the case of the ADAU1701).
For practical purposes, consider them fixed.
Follow-up question to the Safeload memory locations: I understand that the compiler determines these addresses, but they are typically starting at 0x14. I have microcontroller code that implements safeload writes, so is there a way to acquire these addresses through exported files, e.g. the header files that are produced by "Export System Files" in SigmaStudio? Or can you describe the conditions under which they might change? It would be problematic to change these when code is recompiled, of if a different DSP program is downloaded.
You can find the safeload address in SigmaStudio using the "Params" tab that is part of the Capture window.
In this example the data would be in location address 20-24 with the start address of where the data will be written is in location 25 and the number of words in location 26. Writing to the "num_safeload" will initiate the safeload at the next safe time.
I am pretty sure it is not in the Export System Files output for some reason.
Also, count on it to change when you have made changes to the schematic and re-compiled.
Address and value changes for cells are handled symbolically when system files are exported and then used in my microcontroller code. Could I request that doing the same for software safeload addresses be an added feature?
I agree with you 100%. I will make the request.
Hi Dave, how are you sir?
I am trying to get the Safeload to work, and I looked on the capture window and couldn't find the safeload address like you've shown.
Compiler_output file does not show safeload at the address it's supposed to be:
Address: Module: Param:0x0 __SafeLoad_Module__ data_SafeLoad  =0x00000000,0x00000000,0x00000000,0x00000000,0x000000000x5 __SafeLoad_Module__ address_SafeLoad =0x000000000x6 __SafeLoad_Module__ num_SafeLoad =0x00000000
And finally, on the *PARAM.h file, the safeload is shown with a different address as well:
/* Module SafeLoadModule - SafeLoadModule*/#define MOD_SAFELOADMODULE_COUNT 7#define MOD_SAFELOADMODULE_DEVICE "IC1"#define MOD_SAFELOADMODULE_DATA_SAFELOAD0_ADDR 24576#define MOD_SAFELOADMODULE_DATA_SAFELOAD1_ADDR 24577#define MOD_SAFELOADMODULE_DATA_SAFELOAD2_ADDR 24578#define MOD_SAFELOADMODULE_DATA_SAFELOAD3_ADDR 24579#define MOD_SAFELOADMODULE_DATA_SAFELOAD4_ADDR 24580#define MOD_SAFELOADMODULE_ADDRESS_SAFELOAD_ADDR 24581#define MOD_SAFELOADMODULE_NUM_SAFELOAD_ADDR 24582
I am scratching my head here. Could you enlighten us?
Retrieving data ...