Is my I2C dead? How best to troubleshoot?

Status
Not open for further replies.

Slabshaft

Member
I think my I2C functionality may have died on my 4.0. Everything was working flawlessly for the last week until I2C communication suddenly died after unlpugging USB and plugging back in. Here is what I've been able to conclude thus far:

  • Pins 18 and 19 no longer respond to any 3.3V digital input signal. All other pins on that side of the board still respond to digital inputs.
  • Pins 16 and 17 do not respond to any attempts to use Wire2 for I2C communication. (Is Wire2 supposed to work on 16 and 17 like I assume?)
  • SPI still works (Running an ILI9341 TFT).

All I2C is routed from from two Arduino Nanos through a logic level shifter to the Teensy.

Other things tried:
Checked level shifter outputs - All good
Checked all breadboard connections and jumper wires - All good
Factory reset the Teensy (3 times) - Still no I2C

Is there another way to verify with certainty that the I2C functionality is dead? If so, what other functions might be affected? The unit seems to be working otherwise, so I could keep it around for other projects not needing the dead pins or I2C, but it's still a bummer. In the meantime I just ordered two more 4.0s.
 
Do you happen to have an oscilloscope? If so, then upload the Examples>Wire>Scanner sketch to your Teensy 4 and check for activity on pins 18 & 19.
For this quick test you can even omit the usual pull-up resistors on SDA & SCL. I just checked this on a Teensy 4.
[don't forget to open the serial monitor when running the sketch...or comment out //while (!Serial);]

Paul
 
The data sheet shows an absolute maximum voltage on the I/O pins of OVdd+0.3V. With the USB supply pulled it is easy for external circuits to exceed that. Normally I wouldn't worry about I2C because of the passive pullup resistors but you state you are using level shifters. If those could source significant;y more current than a resistor of several thousand Ohms, then that could cause trouble.
 
Thanks for the input! After a few resets and a bunch of time running the I2C scanner sketch on the oscilloscope, everything looked fine (although the 10K pullup resistors on my level shifter seem kinda big). It seems to have resolved itself. Although I did reduce the I2C line voltage for now just to be on the safe side.
 
Status
Not open for further replies.
Back
Top