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 communication problem

Other Parts Discussed in Thread: TMS320F2808, PCA9517

Hello,

 

I'm having problems with the I2C communication with the TMS320F2808 ..The Slave is never answering to his slave address. I'm using the code example for this device (2808): FIFO mode. with the only change is that i haved to activate the nack interruption to clear the bb bit... because each time after send the slave address, the nack interruption flag goes to 1 and the communication is stoped. With the nack interruption activated i can clear the bb bit, and try again the communication. However the slave is never responding to his address (0x02) ... Why the slave is no responding to his address?. I guessed it was because the voltage level difference (2808  3.3v and slave 5v) so i put a buffer (an 74LVC4245) but it still doesnt work. 

Any ideas?

 

thanks,

Eduardo

.. 

  • hi, Eduardo

    Do you solve this problme??  

    I using the f28335 module and honeywell pressure sensor. Sensor is 5v, so I guess need a logic level translator, max3377 it does.

    in my case to still doesnt work slave too.  I wonder  the problem is software or haraware.

    My present state doesnt know software problem or hardware problem. So, first step is solve to hardware problem. My solution is max3377.

    But  My solution is possible wrong to read your text.  if logic level translator bad solutionn, how did you solve this problem.

    Please let me know how can i do??

     

  • The I2C bus is bidirectional and uses open collector drivers with pullups. Generally, you may damage the 3.3V device if you pull it up to 5V and you will not meet specs for the 5V device if you pull up to 3.3V (although this configuration may work in low speed/short lengths with very reduced margin).  Generally, if you want to mix 3.3v and 5v devices the easiest way to meet all requirements is with a purpose designed I2C level-translator chip e.g. PCA9517. There are several similar chips from TI and NXP.

    It is rather tricky to determine which direction to drive under various conditions (e.g. clock stretching). These chips handle this but pay careful attention to the data sheets.