Forum Rule: Always post complete source code & details to reproduce any issue!
Page 2 of 2 FirstFirst 1 2
Results 26 to 28 of 28

Thread: Teensy 3.0 i2c endTransmission() bug

  1. #26
    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...

  2. #27
    Senior Member PaulStoffregen's Avatar
    Join Date
    Nov 2012
    Posts
    20,309
    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.

    Click image for larger version. 

Name:	scope_13.png 
Views:	279 
Size:	39.7 KB 
ID:	162

    Changing to 1K resistors dramatically improves the signals:

    Click image for larger version. 

Name:	scope_14.png 
Views:	292 
Size:	34.8 KB 
ID:	163

  3. #28
    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.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •