Topics

Multiple I2C devices with Raduino

Rob French (KC4UPR)
 

Hello,

I am looking to have multiple devices communicating via I2C with my stock Raduino.  Currently, I have of course the Si5351 on the Raduino, and I also have an I2C backpack on my slave.  The I2C backpack is a 5v unit, so I have removed it's onboard SDA/SCL pullup resistors, and so it shares the two 2.2k resistors on the Raduino.  

I am about to add a Teensy 3.2 into the mix, communicating as an I2C slave with the Raduino.  The Teensy documentation mentions that external pullups are required when using I2C.  I *think* this can also be the 2.2k resistors on the Raduino, but I just want to make sure.  Am I correct?  (Essentially the Teensy would be hooked up similarly to the second Arduino in this KD8CEC drawing, albeit with additional functions.)

http://4.bp.blogspot.com/-AZEv4ZFFX5o/XK9LsxTH5yI/AAAAAAAARDE/SRUZvN58P6cROA4Ul3b5vR5I4Z6O9qq6wCK4BGAYYCw/s1600/circuit2.png

Jerry Gaffke
 

You want one set of pullups to 3.3v on the i2c bus, the ones on the Raduino for the si5351 are sufficient for this.

That i2c bus is relatively slow, if you load it down with traffic from Nano to Teensy it may become too slow.
At that point, I'd recommend completely replacing the Nano with the Teensy somehow.
Maybe sooner, as it is usually easiest to just have all firmware on one processor.

W0EB reports that they have the Teensy driving the uBitx, available as a kit:  
    https://groups.io/g/BITX20/topic/34443691
That sounds like a great way to go.

Jerry, KE7ER



On Thu, Oct 10, 2019 at 04:43 AM, Rob French (KC4UPR) wrote:
Hello,

I am looking to have multiple devices communicating via I2C with my stock Raduino.  Currently, I have of course the Si5351 on the Raduino, and I also have an I2C backpack on my slave.  The I2C backpack is a 5v unit, so I have removed it's onboard SDA/SCL pullup resistors, and so it shares the two 2.2k resistors on the Raduino.  

I am about to add a Teensy 3.2 into the mix, communicating as an I2C slave with the Raduino.  The Teensy documentation mentions that external pullups are required when using I2C.  I *think* this can also be the 2.2k resistors on the Raduino, but I just want to make sure.  Am I correct?  (Essentially the Teensy would be hooked up similarly to the second Arduino in this KD8CEC drawing, albeit with additional functions.)

http://4.bp.blogspot.com/-AZEv4ZFFX5o/XK9LsxTH5yI/AAAAAAAARDE/SRUZvN58P6cROA4Ul3b5vR5I4Z6O9qq6wCK4BGAYYCw/s1600/circuit2.png

Rob French (KC4UPR)
 

Thanks, Jerry.

Yes, that was super interesting to me, especially with that Teensy 4.0... very fast!  However, it sounds like there may be some issues with attaching the audio adaptor to that, and/or perhaps issues with the Rev D audio adaptor that is suppsed to mount to the Teensy 4.0.  Currently, I have a Teensy 3.2 with the Rev C audio adaptor.

How slow is slow?  Right now, my Teensy doesn't talk to the Raduino at all... it just does DSP, and I "control" it via serial commands from the my computer.  My plan for controls is that the Teensy will have it's own set of encoders attached to it for adjusting filter selections/parameters, and it will periodically receive commands from, and send status to, the Raduino.  Commands would be along the lines of "switch to SSB filter", "switch to CW filter", etc. and status would be maybe a 10 Hz (max) update of brief information on the display (such as showing which filter is selected, providing a menu entry for a parameter to adjust, etc.)

Totally agree it would be nicer to have all firmware on one processor!