Teensy 3.5 I2C issues

Status
Not open for further replies.

tohoU

New member
Hello everyone,

I was using a Teensy 3.6 to controll a selfmade transceiver.
Sadly i send it to heaven and no I´m trying to use a Teensy 3.5 instead, but I2C doesn´t work.
The problem is I am using some devices who need the wire.h library because of their libraries.
Has anyone found a solution already?

Greetings and thanks for the help :p
 
No idea? As there is no information to be able to help you with.

That is yes I have played around with I2C on T3.5 and T3.6, including testing the Wire library on Wire, Wire1, Wire2 (and optionally on T3.6 Wire3).

But again for someone to help you, it would help to have additional information.

What device are you hooking up? Can it run on 3.3v?
Does the device provide Pull Up Resistors and/or have you addded some?
What pins are you connecting to?
What is "Their libraries" ?
Example code?
 
The solution I found is to use the i2c_t3 library for I2C which I wouldn't like to use because it would be a lot of work to adjust everything I programmed already.

I want to communicate with a Si5351A and a ADAU1978. Both running on 3.3V. I am using 5k1 Pull Up Resistros and was also testing some 3k3. I am using the SDA0 and SCL0 on both teensy's, pin 18 and pin 19.
The main Problem is the Si5351A library which I took out of NT7S github. It worked already everything fine with the Teensy 3.6 but with the Teensy 3.5 I don't get a connection done. Already tried to measure it with an oscilloscope but couldn't find any signal on both of the I2C pins. The ADAU wouldn't be a big problem to reprogram because I wrote this library myself but I wouldn't like to reprogramm the library of the Si because this programm should be reprogrammed as easy as possible for everybody who want to use the transceiver.
The only thing I am doing is to set both I2C pins and running the init method of the Si5351A and the sendToAdau method. Code below:

Code:
Wire.setSDA(18);
Wire.setSCL(19);

si5351.init(SI5351_CRYSTAL_LOAD_8PF, (uint32_t) 26804600, 0);

void sendToADAU(byte addr){
  Wire.beginTransmission(adauAdress);
  Wire.write(addr);
  Wire.write(ADAU_Register[addr]);
  Wire.endTransmission();
}

The one thing I do not understand is why the Teensy 3.5 doesn't even try to pull the 3,3V of the I2C connection to GND. It simply does nothing.

I hope this is enough information.
Thank you for your help!
 
In your code, there is no Wire.begin(). Did you check the source code of the si5351 library if it’s perhaps there? It must be somewhere to work.

But before all, you should take a more systematic approach, put your code aside and run an I2C scanner example sketch to make sure that it’s not a hardware problem. If that works, you might probably blame the author of the library for missing T3.5 support
 
Should not be a problem to solve from the Teensy and software end. The T_3.5 if wired the same as to T_3.6 should work the same - only change may be the processor/bus speed changing the effective or usable i2c rate.
 
Status
Not open for further replies.
Back
Top