Teensy 4.0 not working as Slave Reader with Wire

Status
Not open for further replies.

FRS

Active member
I recently updated my project from the Teensy 3.2 to the Teensy 4.0, as I was running out of processing power for audio portion of my project.

In my project I have a Teensy 3.2 (interface processor, acting as Master Writer), sending new data over to the Teensy 4.0 (audio processor, acting as Slave Reader) using I2C and the Wire library.
Code was working fine when sending data from one Teensy 3.2 to another 3.2.
After upgrading to the Teensy 4.0, the Slave Reader has no response to data being sent from the Master Writer.

Tried loading the Master Writer and Slave Reader Wire examples into each processor, and still no communication between the two.
Have double checked all SDA and SCL connections, and have also tried various pull up resistors on the I2C lines: 1k, 2.2k, 4.7k... still nothing.

Took a look at the Wire library in Teensy, and see WireIMXRT.cpp file but noticed the following:

void TwoWire::begin(uint8_t address)
{
// TODO: slave mode
}

void TwoWire::end()
{
}

Can someone confirm if this is why I'm unable to use the Teensy 4.0 as a Slave Reader using Wire?

Or anyone have a solution using the Teensy 4.0 as a Slave Reader using the Wire library?
 
For anyone else running into this problem, I have found that Arduino EasyTransfer library gets the job done, and uses only 1 wire instead of 2.
There are a few libraries like Teensy4_I2C out there, but I couldn't get them to work with my existing code, and without other conflicts of instances using the Wire library.

Hopefully someday the Wire library will support Slave mode for T4.0
 
Status
Not open for further replies.
Back
Top