I am working on an SPI driver for an ADAU1467 and want to change parameters on the fly with the software safeload. For the implementation I took the datasheet on p. 87 as reference. Unfortunately, the safeload did not work.
However, it works if the ADAU1467 is controlled via the ADUSB2Z with SigmaStudio. With a logic analyzer I could see that SigmaStudio sets the register SECONDPAGE_ENABLE to 0 (SECONDPAGE_ENABLE = 0 --> Page 1).
Now in my driver I use the defines in *_PARAM.h file to decide which memory page I use. But in this file the define resolves to 1. According to my understanding this means it is located on memorypage 2, so SECONDPAGE_ENABLE = MEMORYPAGE_SAFELOADMODULE_DATA_SAFELOAD0 (which equals 1). The header file for the memorypage only defines values 1 or 0.
/* Module SafeLoadModule - SafeLoadModule*/
#define COUNT_SAFELOADMODULE 18
#define DEVICE_SAFELOADMODULE "IC1"
#define ADDR_SAFELOADMODULE_DATA_SAFELOAD0 21689
#define MEMORYPAGE_SAFELOADMODULE_DATA_SAFELOAD0 1
#define ADDR_SAFELOADMODULE_DATA_SAFELOAD3 21692
#define MEMORYPAGE_SAFELOADMODULE_DATA_SAFELOAD3 1
#define ADDR_SAFELOADMODULE_DATA_SAFELOAD2 21691
#define MEMORYPAGE_SAFELOADMODULE_DATA_SAFELOAD2 1
#define ADDR_SAFELOADMODULE_DATA_SAFELOAD1 21690
#define MEMORYPAGE_SAFELOADMODULE_DATA_SAFELOAD1 1
#define ADDR_SAFELOADMODULE_DATA_SAFELOAD4 21693
#define MEMORYPAGE_SAFELOADMODULE_DATA_SAFELOAD4 1
#define ADDR_SAFELOADMODULE_ADDRESS_SAFELOAD 21694
#define MEMORYPAGE_SAFELOADMODULE_ADDRESS_SAFELOAD 1
Am I doing something wrong or is this a bug in the export function? Is the safeload module always located on MEMORYPAGE 1 regardless?
I use SigmaStudio V4.6 and the ADAU1467 DSP.