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.

I2C TLV320AIC3204 PROBLEM

Other Parts Discussed in Thread: TLV320AIC3204

hi all

i have written the i2c code on TM4C series microcontroller, but i have no idea why i cant get the expected output from the EVM board of aic3204, mind to help me check, i have put the JMP3 and JMP4 chorted with each other act as pull up for sda and scl. suppose it work, but still unable to work, anyone can help me check

thank

  • Hello,

    The issue you are having can be caused a wide variety of things.

    Are you using the EVM standalone or with the USB-MODEVM? How is it connected to the microcontroller and other sources?

    What are you trying to get the TLV320AIC3204 to do? Have you tried using the EVM software from this page HERE first to get it up and working and experiment with the EVM’s capabilities? I would recommend that you can get the EVM with the USB_MODEVM working with a host computer first. In this mode, you can execute the same functions as running the EVM in standalone so I would first make sure it works with the desired scripts you plan to run with the microcontroller.

    If you can verify that this works, the scripts you are trying to run are correct and then It comes down to communication issues and setup.

    Regards,

    Matt

     

  • hi Matt

    i am using evm with usb-modevm, the program i have written can be function using aic3204 cs, i have tested out what i needed to have in the system. the script is function as what i have expected.

    now i am connecting it to i2c with mcu. when i am using mcu, there is data in the mcu. when i trransfer out data losses and noise appear in the evm, check through oscillioscope. i am not sure which root cause of signal loss

    1. programming problem (still checking)

    2. am i connect i2c correctly (i have put the jumper into pull up for both SDA and SCL)

    3. since the device application i have check 

    for example i try to write it first line which is 30 00 00 

    then start, 7 bit device address (0x30), 8 bit register address (0x00) then 8 bit register data(0x00) then stop

    then until the last line, i loop it back to first line, i am not sure is this correct way to write the i2c data for the codec. is it a must to loop back to first line after the last line is sent to codec

  • Hi,

    Sounds like you have done a good job so far of debugging. It sounds like a setup issue somewhere.

    Also, you should not have to loop through your I2C data. Once the registers are written they should stay in that state unless you power down or have some other reason for clearing them.

    I would try writing a single register to a different value than the default, just once using your MCU with the EVM mod plugged into your computer.

    Then pull up the “register tables” and “Status Flags” window in the AIC3204 CS software to see if you are writing that register. The status flag may also show why it is not working. Make sure to hit refresh to get the most recent register readings. You may have to change the I2C source between the MCU and the USB_MOD when you write to the EVM from the MCU vs. reading registers from the CS software to do this test. In other words you need to make sure you are using the right I2C source at the right time.

    Have you made sure that when using MCU, you are not trying to communicate I2C through the EVM-MOD at the same time? Use the oscilloscope to make sure your MCU can drive the datelines correctly and that the EVM-MOD  I2C source is not holding those pins at the wrong state.

    See section 2.4 in EVM user’s guide.

    Have you checked the position of SW1 & SW2?

    Have you verified that your pull-up is correct with the oscilloscope/multimeter?

    Regards,

    Matt

  • hi Matt

    do you mean the i2c cannot be looped? and is the device address for 3204 always 30 since i always modified it getting 30 from device address. and is the codec slave address is 0x18?

    AIC3204 CS i have written based on design and configuration for aic32x4 and modified a bit, what do you mean by recording, is it recording when the i2c is being transfer from MCU to 3204?

    i have tried using osc, but found that when my SDA having data, my SCL no data from MCU, when it is connected to the USB-EVMODE data totally losses and it is with noise and no data seem to be transfer as the osc show the signal with noise in stationary i have no idea why

    for the SW1 is by default when in the packing suppose is 3.3V

    for SW2 i have been changed it during doing EEPROM when using 3204 CS, which sw2.2 and sw 2.8 is move to the right.

    the pull up resistor is i have put in jumper which data sheet mentioned JMP3 and JMP4

    while i not yet test via scope

  • Hello,

     

    The I2C does not have to be looped since you are using it for register configuration.

    When you write I2C data for part configuration, you are setting specific registers to a specific value which will control how the part functions. Once the register is written, it will stay in the same state until it is cleared by some other function or the part is powered off.

    It sounds like in issue with the configuration of the EVM. I would use an I2C sniffer to help debug. We recommend the one from HERE.

    It sounds like you have 2 problems to fix:


    1. You need to make sure that the I2C data you are sending form the MCU is configured correctly without it connected to the EVM. You need to verify both SDA and SCL before you can expect the EVM to work.

    2. It sounds like that when you do connect the MCU to the EVM, you cannot drive the I2C data pins correctly. When you try connecting the MCU, keep the same jumper and switch configurations as stated in the user manual.

    If you look at the schematics for the USB_Mod on page 43 in the user manual, the I2C from your MCU should be connected at the header pins J6. J6 also allows an easy connection to ground which must be shared between the EVM and your MCU.

    On startup, the TAS1020 will begin to communicate through the I2C lines for EEPROM configuration. During this time, you MCU should not communicate. After I2C activity from the TAS1020 subsides, then you should be able to write to the AIC3204 part using the MCU.

    Regards,

    Matt

  • hi Matt

    i will be re write the program on MCU, feeling there is some error occur