This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Issue on AIC3254 -- Applied Gain is not equal to Programmed Gain

Hi, Support Team,

I'm using AIC3254 to generate BEEP in my product. At first, I wrote a script to run on the EVM board, and it worked very well. However, it can't work in my product with the same script.
The script consists of a series of I2C instrctions. I send it to 3254 via the I2C interface by my product's MCU. After sending, I can read all the values of Page 0 and Page 1 from 3254 via I2C as well. I compared the read-out values with the register values in the EVM board and found them all the same but 4 differences:

PAGE 0:
Register_36 : EVM is 0xCC ,my product is 0x44
Register_37 : EVM is 0xEE ,my product is 0xEE
Register_38 : EVM is 0x11 ,my product is 0x00
Register_71 : EVM is 0x04 ,my product is 0x84

PAGE 1:
Register_63: EVM is 0xF3 ,my product is 0x03

I studied the manual, and found most of these registers are related to the status flags which indicate that there may be some problems on “Applied Gain is not equal to Programmed Gain”.
It's so weird. The circuit and the settings of my product are almost the same with EVM board. I wander what kind of condition will cause such register value differences? And what mistake might cause it reporting “Applied Gain is not equal to Programmed Gain”?

Due to the urgent timeline of the project, I really hope for your prompt respond. I appreciate in advance.

Thanks and BR,
Lara

  • Hi, Lara,

    Most I2C problems are caused by:

    - incorrect sequence

    - incorrect timing

    - incorrect pull-up resistor/bus loading

    Please check the sequence and timing on the EVM, and then try to duplicate that on your system.

    -d2

  • Hi, Don,

    Thanks for your prompt reply!

    There might be some misunderstanding about my question. I don't have any I2C problems. As I mentioned in my previous post, I can write in and read back the Page0 and Page1 registers inside 3254 correctly without any problem.

    What confused me are the read-only status flags that I showed in the post above, say the 4 differences of the register values between EVM board and my product.

    I am wandering what kind of condition might make these registers reporting "Applied Gain is not equal to Programmed Gain" ? I can't find any clue about it in the user manual. I have configured my product according to the EVM board as the same as possible. Why the script could work well on the EVM board, whereas it could not work in my product? What possible mistakes would lead to this error reporting "Applied Gain is not equal to Programmed Gain" ?

    BTW: You might have noticed that the status flags read from my product have shown that the power of DAC, ADC, LOL, LOR, HPR and HPL are all ON now, just the status of GAIN values of these components are abnormal.

    Thanks and BR,

    Lara

  • Hi, Don,

    Thank you again for taking your time to reply to me during your weekend time. I really appreciate!

    Thanks and BR,

    Lara