Teensy 3.0 i2c endTransmission() bug

ou, so i have to attach some external ones, daaamn :(, well ill do so and get back to you ( i really hoped to avoid external pullups) but when there is no other way .. what you gonna do...
 
Believe me, I tried to get those internal pullups enabled. It should be possible, according to the chip's documentation, but there seems to be a bug in the chip where enabling the weak pullups while in I2C mode causes an extremely strong pullups (basically driving the line high).

Even if the internal pullups did work, they might not be strong enough. The ones in AVR are just barely able to make I2C work with moderate length wires to 1 chip.

Here's how the signals look using 10K resistors. This is a Teensy 3.0 and a Teensy 2.0 connected together on a breadboard.

scope_13.png

Changing to 1K resistors dramatically improves the signals:

scope_14.png
 
Thx Paul, i will add 1k external pullups and see how that goes.
Also (just a side note) but i am pretty sure you already tried it, did you try writing the pin configuration "manually" ? a while back when i was working on ppm sampling code, i noticed that PORT_PCR_MUX() wasn't doing what it was supposed to (or it was just some underlying error i made), but i think its worth looking into if you haven't already tried that.
 
Back
Top