Undocumented memory location - ADAU1761
I noticed that the output files from SigmaStudio include the following function:
SIGMA_WRITE_REGISTER_BLOCK( DEVICE_ADDR_IC_1, REG_NON_MODULO_RAM_1_IC_1_ADDR , R19_NON_MODULO_REGISTERS_IC_1_SIZE, R19_NON_MODULO_REGISTERS_IC_1_Default );
This writes 0x0FFC to address 0x40E9. I don't see anything that documents what address 0x40E9 is in the datasheet. If this data is not transferred it seems to mess up any Non-Modulo data loading.
Audio Signal Processors
SigmaDSP Audio Processors
adau1761
Indeed, this register was not documented in the datasheet. It is the modulo RAM configuration register, and it needs to be written in the same way that SigmaStudio writes it after a Link-Compile-Download operation in order for your project to function correctly. I will add this to the list of ADAU1761 datasheet updates.
Does the value of the data loaded into this register change between different program compiles?
I think it potentially changes based on how many variables the compiler needs to store in data RAM.
Normally, variables are stored in parameter RAM, but sometimes we can get a code efficiency boost by using non-modulo data RAM instead, so I think the compiler dynamically sets the non-modulo boundary based on how many variables it places in that RAM space.
I'll forward this thread to the software team to see if they can confirm this to be true.
Natan, the software manager confirmed my above assumption is correct.
Thank you Brett, I will watch the value to make sure it is updated between builds.
Please log in to reply.