Multiple Displays with Pico and Multiplexers
Re: Multiple Displays with Pico and Multiplexers
Re: Multiple Displays with Pico and Multiplexers
steadystate wrote:It is my understanding that I can *independently* run multiple ssd1306 OLEDs that share the same address on a common I2C bus using a Pico and a TCA9548A multiplexer when programming in C or Micropython. Is this possible with Circuitpython as well?
steadystate wrote:Is it possible to use two TCA9548A boards (each with a different address on the same I2C bus) and independently run ssd1306 OLEDs of the same address on channels of each TCA9548A board?
steadystate wrote:Would I need multiple display busses to use more than one TCA9548A board
steadystate wrote:since they each have a unique address?
steadystate wrote:Is this even possible on a single Pico using Circuitpython?
Re: Multiple Displays with Pico and Multiplexers
steadystate wrote:Would I need multiple display busses to use more than one TCA9548A boardadafruit_support_mike wrote:Yes.steadystate wrote:since they each have a unique address?adafruit_support_mike wrote:Just the opposite: all the displays have the same address, so you need the TCA9548As to manage the connections between the displays and the microcontroller.
Re: Multiple Displays with Pico and Multiplexers
steadystate wrote:Sorry, what I meant was "since all of the TCA9548A boards have a unique address, would I need a separate display bus for each TCA9548A?"
Re: Multiple Displays with Pico and Multiplexers
adafruit_support_mike wrote:steadystate wrote:Sorry, what I meant was "since all of the TCA9548A boards have a unique address, would I need a separate display bus for each TCA9548A?"
No.
From the microcontroller's viewpoint, its SDA and SCL lines are its display bus. All your TCA9548As will have their input sides connected to that.
Each TCA9548A has a set of internal switches that connect the input SDA and SCL lines to some combination of its eight output SDA/SCL lines. In general, we only connect one output pair at a time so, for instance, the microcontroller thinks TCA9548A.SDA[1] and TCA9548A.SCL[1] are just part of its SDA/SCL bus. Then you can open that pair of switches and close another so the microcontroller thinks TCA9548A.SDA[3] and TCA9548A.SCL[3] are part of its SDA/SCL bus.
If you have multiple TCA9548As connected to the microcontroller's SDA/SCL lines, you have more ways to do the same basic thing. You can set the switches in all the TCA9548As to the microcontroller thinks TCA9548A[1].SDA[1] and TCA9548A[1].SCL[1] are extensions of SDA/SCL, or TCA9548A[4].SDA[3] and TCA9548A[4].SCL[3] are.
You can have up to eight TCA9548As with unique addresses connected to the microcontroller's SDA/SCL lines. Each of those controls connections to eight output SDA/SCL pairs, so you can have a total of 64 OLED displays the microcontroller can use, even if all the displays have the same I2C address. Your code will have to control the TCA9548A switches so the microcontroller only sees one display at any time. The microcontroller always thinks it's talking to a single SDA/SCL bus, while the TCA9548As control which display is part of that bus at any time.
Re: Multiple Displays with Pico and Multiplexers
Re: Multiple Displays with Pico and Multiplexers
Re: Multiple Displays with Pico and Multiplexers
Re: Multiple Displays with Pico and Multiplexers
Re: Multiple Displays with Pico and Multiplexers
Re: Multiple Displays with Pico and Multiplexers