2016-04-04 07:53 AM
On power up, I want to be able to initialize various registers and also the coefficient RAM to set things like the MIX#1 coefficients, however I found something strange.
When the STA311B is released from reset (RESET is high), there is a delay that I measured of 19 seconds that the input mixers read as follows:From the APWorkbench log viewer:Command ->CRA 1A0Result ->scriptEvent(): Coef[1A0h:1A4h]=>000000h, 000000h, 000000h, 000000h, 400000hWhich is incorrect according the the datasheet. This means that channel 1 input mixer 1 is set to 0x000000 which is not correct, it should be 0x7FFFFF.After 19 seconds, eventually the result is right:Command ->CRA 1A0Result ->scriptEvent(): Coef[1A0h:1A4h]=>7FFFFFh, 000000h, 000000h, 000000h, 000000hThe problem I am experiencing is that until 19 seconds has passed, I can not set the mixers to a values that I require! Even setting this value from the GUI seems to work, but reading back the value is wrong. Once 19 seconds has passed, then I can read the default value, and then change this value to my required value.What am I doing wrong? Can anyone else reproduce this?Attached is my configuration file. Note that I have an external microcontroller settings all these values. I am reading these back using the Read All function in APWorkbench.2016-04-05 06:39 PM
Hi Stephane ,
please check if the I2S clock and XTI clock were stable during STA311B initializing . or you can use APWorkbench to control STA311B fully and ignore setting from MCU , then read out mixer coefficients value just after reset by APWorkbench (a neagtive pulse must be applied in reset pin), due to default setting value is same as the one your read out after 19 seconds . Thanks YT2016-04-08 05:50 AM
Ok, I do see a correlation between the startup time and the LRCKI being present. The STA311B has the XTI and the BICKI right away, but the LRCKI doesn't start for about 20 seconds (we have a wireless module that needs to boot before it starts outputting this clock)
So what is the logic here. The DSP needs all of these clocks before the RAM can be written to? I still don't understand why the RAM is being overwritten once the LRCKI is present. I don't have a problem writing to the configuration registers, only RAM.Stephane2016-04-10 06:34 PM
Hi Stephane,
Due to mixer and EQ setting had been implemented by RAM writting , to prevent unwanted noise in audio band , the writting action had been synchronized by words clock( LRCK), so to set right coefficients , we need to provide stable I2S clock to STA311B. For normal register setting , due to I2C clock had been provided by master , then it's no problem to set corrected value without I2S clock for STA311B. by the way, since BICK was available , is it possible to provide LRCK to STA311B ? due to it can be generated from BICK ( divided by 64,48 or 32 , depends on your I2S words length). thanks YT