Post Go back to editing

software safeload memorypage ADAU1467

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.

 *_PARAM.h:

/* 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.