Arduino Mega: I2C TWI is dead

Hi everyone,

my I2C interface is no longer working. Not sure the reason (maybe I shorted Vcc).

How do I know it is the i2c interface? When measuring SCL pin with my osciloscope I read something around 400mV. Considering that it has a pull-up resistor I should read 5V (Am I wrong?). There is no signal variation when I activate Wire in my code.

SDA is constantly at 5V.

Do you have any sugestion or should I change my ATMEGA1280 chip?

Thanks, Douglas

Do you have an external pullup or internal pullup? If internal, maybe it's not active (or you mistakenly deactivated it somewhere in your code).

If it's external, try pushing and holding the reset button and measuring the voltage. If it's still ~0V then that's a good sign that either a) the pin is bad and shorted to GND (replace the chip), or b) you have an external short somewhere else.

-- Check out our new shield:


I have a external pullup (the pullup resistor from Arduino Mega design). I have nothing connected to my arduino board, no i2c device, no shield, nothing.

I performed the test you sugested and the voltage is still ~0. I believe the I2C port is damaged because everything else works. I tried Blink Led example and it worked. Tried other ports and also worked.

Not sure if there is any other tests I can perform.

Thank you.

That evidence points towards a bad chip, but it's not easy to replace these SMT chips so you might want to see if other people have some ideas before forging ahead with that.

Just to check, what value is your pull-up resistor? If it's too small it's possible you drew too much current from the pin while it was active.

-- Check out our new shield: