I am using Arduino uno board with Atmega 328 for i2c. The ic is not showing any clock signal on its SCL line on oscilloscope, The same code when used with different new atmega 328, and same code. It is showing a good clock signal on oscilloscope.

The ic whose i2c is not working can be still programmed and can be used for other purposes like serial communication , adc etc.

So, is there any way by which i can confirm and surely say that i2c of my atmega 328 is fried up. And what can be the possible methods by which it can be fried up.

  • I think you just did it. I mean, if you tested the new '328 in the very same board and with the same code you had the faulty one, then I think your scope shots just confirmed that the I2C is fried.
    – Ricardo
    Jan 12, 2015 at 15:55
  • Do you have a pull-up resistor attached the I2C lines?
    – Gerben
    Jan 12, 2015 at 20:24
  • Are you saying you swapped the processor chip on the Uno? Or your working test is a different board altogether? What pin on the Uno are you testing with your scope? Please post your test code.
    – Nick Gammon
    Aug 4, 2015 at 23:36

1 Answer 1


I2C (SDA-SCL) line needs to be pull up (place resistor on both to 5v input from master- the uno), it works with the arduino code for master-slave I2C (uno on master-severino on slave) using the code from arduino website (just be sure you set the address for the slave on the slave sketch (any number 1-126), it works for me that way, my pull up resistor is 10kohm, the same goes for my breadboard, if this is not doing the trick, maybe there's something wrong (I wouldn't know the answer to, just tried the i2c yesterday) update : on august5th (today) I just finished reading i2c's on atmel site, it is a complex one, there are several factors on why something is doing something on your twi comm, post your code, and maybe I have an answer

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.