we are having problems when trying to disable and re-enable PLL after ADAU1452 has self booted through I2C eeprom.
Here is a brief description of my project: I built a custom-board including ADAU1452, AD1937 as Codec and some other parts beeing controlled by the Master Control Port via I2C. ADAU1452 is in selfboot-mode connected to a I2C 512kB eeprom. ADAU1452 I2C-Master and I2C-Slave-Port is tied together and also tied to eeprom, AD1937 and so on. Eeprom is programmed via USBi Interface using "Wirte latest compilation USB" while its WP-pin (and selfboot pin on 1452) is pulled low. All this configuration works great so far.
What we do is let the DSP boot from the eeprom so that it has a basic configuration. Then when running we change parameters (volumes, matrix, GPIOs, ...) through I2C (later that will be derived from an USB-I2C Bridge - in an XMOS device). This is also tested and working fine.
Now I wanted to change the CLKOUT Frequency while running.
[Scenario 1] When I load my program through USBi (I2C) into the DSP I can change this as intended by setting the MCLK OUT Frequency and afterwards disable and re-enable PLL. That's nice and works as expected.
[Scenario 2] After flashing exact that same program into EEprom and the let ADAU1452 self boot from it disable/re-enable does not work the same way!:
- PLL disable does nothing (reading back register says it is still enabled!)
- PLL re-enable seems to disable PLL for MCLKOUT stops working and can never be activated again until we reboot.
I watched I2C data for both scenarios and the commands are the same. But only when loading program through USBi and then applyinig this commands it works as it should.
I hope my discription is somehow understandable. Please ask wenn you need more or other details.
Does anyone have an idea for this behavior? Any help or input will be greatly appreciated!