Il 0% ha trovato utile questo documento (0 voti)
6 visualizzazioni27 pagine

TCA9548A I2C Multiplexer - IT

Il documento fornisce istruzioni su come configurare e utilizzare un modulo multiplexer TCA9548A I2C. Descrive le specifiche del dispositivo, gli schemi di collegamento e fornisce esempi per Arduino e Raspberry Pi. Spiega come configurare l'indirizzo I2C e collegare più moduli al microcontrollore.

Caricato da

Samuel
Copyright
© © All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato PDF, TXT o leggi online su Scribd
Il 0% ha trovato utile questo documento (0 voti)
6 visualizzazioni27 pagine

TCA9548A I2C Multiplexer - IT

Il documento fornisce istruzioni su come configurare e utilizzare un modulo multiplexer TCA9548A I2C. Descrive le specifiche del dispositivo, gli schemi di collegamento e fornisce esempi per Arduino e Raspberry Pi. Spiega come configurare l'indirizzo I2C e collegare più moduli al microcontrollore.

Caricato da

Samuel
Copyright
© © All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato PDF, TXT o leggi online su Scribd
Sei sulla pagina 1/ 27

Benvenuto!

Grazie per aver acquistato il nostro Modulo Multiplexer TCA9548A I2C AZ-
Delivery. Nelle pagine seguenti, ti illustreremo come utilizzare e configurare
questo pratico dispositivo.

Buon divertimento!
Indice dei Contenuti
Introduzione...................................................................................................3
Specifiche......................................................................................................4
La piedinatura................................................................................................7
Schema di collegamento...............................................................................8
Lo schema di collegamento è mostrato nell'immagine seguente:.................8
Come configurare l'Arduino IDE....................................................................9
Come configurare il Raspberry Pi e il Python..............................................13
Collegamento dei moduli con Atmega328p.................................................14
Esempi di sketch......................................................................................16
Collegamento dei moduli con Raspberry Pi................................................18
Librerie e strumenti per Python................................................................20
Abilitazione dell'interfaccia I2C....................................................................21
Script Python...........................................................................................23

-2-
Introduzione

Il Modulo Multiplexer TCA9548A I2C è un dispositivo realizzato intorno al


chip TCA9548A che semplifica l'utilizzo di più dispositivi I2C con un
microcontrollore. È un multiplexer I2C a otto canali (bidirezionale) che
permette a otto dispositivi I2C separati di essere controllati da un singolo
host su un singolo bus I2C.

Il chip TCA9548A ha otto interruttori di traslazione bidirezionali che possono


essere controllati attraverso il bus I2C. Il modulo può collegare diversi
dispositivi con un solo microcontrollore.

Se alcuni dei dispositivi collegati allo stesso canale hanno lo stesso


indirizzo I2C, il problema può essere risolto semplicemente collegandosi ad
un altro canale, se il dispositivo non ha un DIP switch o un jumper
configurabile per l'indirizzo I2C.

-3-
Specifiche

Campo di tensione di esercizio 1.65V - 5.5V


Tensione di esercizio 100mA (max.)
Tensione in Ingresso 20mA
Corrente di uscita 25mA
Tolleranze tensione di ingresso 5V (max.)
Interfaccia I2C
Canali di ingresso I2C 8
Uscita I2C 1
Temperatura di conservazione -65 - 150℃
Dimensioni 22x32x2.7mm (0.8x1.2x0.1in)

Il massimo di 8 di questi multiplexer può essere collegato insieme su


indirizzi 0x70-0x77 per controllare 64 delle stesse parti indirizzate I2C.
Collegando i tre bit di indirizzo A0, A1 e A2 a VIN si possono ottenere
diverse combinazioni di indirizzi. Ecco come appare un byte di indirizzo del
TCA9548A. I primi 7 bit si combinano per formare l'indirizzo dello slave.
L'ultimo bit dell'indirizzo dello slave definisce l'operazione (lettura o
scrittura) da eseguire. Quando è alto (1), viene selezionata una lettura,
mentre un basso (0) seleziona un'operazione di scrittura.

NOTA: Il modulo TCA9584A può anche agire come convertitore di livello


logico; cioè tutti i dispositivi I2C possono avere la propria
alimentazione/tensione. Ulteriori spiegazioni di questa funzionalità non
rientrano nello scopo di questo eBook.

-4-
Caratteristiche

• Compatibile con il Bus I2C e SMBus


• Ingresso di Reset Attivo-Basso
• Tre Pin di Indirizzo, che Permettono fino a Otto Dispositivi TCA9548A sul
Bus I2C
• Selezione dei Canali Attraverso un Bus I2C, in Qualsiasi Combinazione
• Accensione con Tutti i Canali di Commutazione Deselezionati -
Interruttori a Basso RON - Consente la Traduzione del Livello di Tensione
tra Bus da 1,8 V, 2,5 V, 3,3 V e 5 V
• Nessun Intoppo all'Accensione - Supporta l'Inserimento a Caldo - Bassa
Corrente di Standby - Intervallo di Tensione di Alimentazione Operativa
da 1.65 V a 5.5 V
• Ingressi con Tolleranza a 5 V - Frequenza di Clock da 0 a 400 kHz -
Prestazioni di Latch-Up superiori a 100 mA per JESD 78, Classe II
• La Protezione ESD Supera JESD 22 - Modello Corpo Umano ±2000-V
(A114-A) - Modello Macchina 200-V (A115-A)
• Modello Dispositivo Caricato ±1000-V (C101)

-5-
Cambiare l'Indirizzo I2C del TCA9548A

L'indirizzo del bus del TCA9548A viene cambiato utilizzando i collegamenti


ai pin A0, A1 e A2. Per default si usa l'indirizzo 0x70, cablando A0-A2 a
GND(LOW). Usando la tabella qui sotto, può essere riconfigurato ad un
indirizzo tra 0x70 e 0x77 facendo corrispondere gli ingressi a HIGH(5V) o
LOW(GND):

INPUT INDIRIZZO SLAVE DEL BUS I2CS


A2 A1 A0
L L L 112 (decimale), 70 (esadecimale)
L L H 113 (decimale), 71 (esadecimale)
L H L 114 (decimale), 72 (esadecimale)
L H H 115 (decimale), 73 (esadecimale)
H L L 116 (decimale), 74 (esadecimale)
H L H 117 (decimale), 75 (esadecimale)
H H L 118 (decimale), 76 (esadecimale)
H H H 119 (decimale), 77 (esadecimale)

-6-
La piedinatura

Il modulo ha 24 pin. La piedinatura è mostrata nell'immagine seguente:

-7-
Schema di collegamento

Lo schema di collegamento è mostrato nell'immagine seguente:

Lo schema rappresenta un esempio di dispositivi multipli collegati a canali


diversi.

-8-
Come configurare l'Arduino IDE
Se l'Arduino IDE non è installato, seguire il link e scaricare il file di

installazione del sistema operativo scelto . La versione di Arduino IDE usata


per questo ebook è la 1.8.13.

Per gli utenti Windows, fare doppio clic sul file .exe scaricato e seguire le
istruzioni nella finestra di installazione.

-9-
Per gli utenti Linux, scaricare un file con estensione .tar.xz, che è
necessario estrarre. Quando lo si estrae, andare nella directory estratta, e
aprire il terminale in quella directory. È necessario eseguire due
script .sh, il primo chiamato arduino-linux-setup.sh e il secondo
chiamato install.sh.

Per eseguire lo script, aprire il terminale nella directory in cui è stato salvato
lo script ed eseguire il seguente comando:
sh arduino-linux-setup.sh user_name
user_name - è il nome di un superutente nel sistema operativo Linux..
All'avvio del comando deve essere inserita una password per il superutente.
Aspettate qualche minuto che lo script completi tutto.

Il secondo script, chiamato install.sh, deve essere usato dopo


l'installazione del primo script. Eseguire il seguente comando nel terminale
(directory estratta): sh install.sh
Dopo l'installazione di questi script, andare su Tutte le App, dove
troverai l'Arduino IDE installato.

- 10 -
Quasi tutti i sistemi operativi sono dotati di un editor di testo preinstallato
(ad esempio Windows viene fornito con Notepad, Linux Ubuntu viene
fornito con Gedit, Linux Raspbian viene fornito con Leafpad, ecc.).
Tutti questi editor di testo sono perfettamente adatti allo scopo dell'eBook.

La prossima cosa da fare è controllare se il PC è in grado di rilevare la


scheda Atmega328p. Aprite l'Arduino IDE appena installato e andate su:
Strumenti > Scheda > {your board name here}
{your board name here} dovrebbe essere l'Arduino/Genuino Uno, come
si può vedere nella seguente immagine:

Deve essere selezionata la porta alla quale è collegata la scheda


Atmega328p. Vai su: Strumenti > Porta > {port name goes here}
e quando la scheda Atmega328p è collegata alla porta USB, il nome della

- 11 -
porta è visibile nel menu a tendina dell'immagine precedente .

- 12 -
Se si utilizza l'Arduino IDE su Windows, i nomi delle porte sono i seguenti:

Per gli utenti Linux, il nome della porta è /dev/ttyUSBx per esempio,
dove x rappresenta un numero intero compreso tra 0 e 9..

- 13 -
Come configurare il Raspberry Pi e il Python

Per il Raspberry Pi, prima deve essere installato il sistema operativo, tutto
deve essere impostato in modo da poter essere utilizzato in modalità
Headless. La modalità Headless consente la connessione remota al
Raspberry Pi, senza la necessità di Atmega328p schermo di un PC, mouse
o tastiera. Le uniche cose di cui avete bisogno per questa modalità sono il
Raspberry Pi, l'alimentazione e la connessione internet. Tutto questo è
spiegato in dettaglio nell'eBook gratuito:
Raspberry Pi Quick Startup Guide

Il sistema operativo Raspbery Pi OS viene fornito con Python preinstallato.

- 14 -
Collegamento dei moduli con Atmega328p

Collegare i moduli con Atmega328p come indicato nella seguente


immagine:

- 15 -
Pin BME280 Pin TCA9548A Colore filo
VIN 5V (Mc 5V) Filo rosso
GND GND (Mc GND) Filo nero
SDA SD0 Filo blu
SCL SC0 Filo verde
Pin TCA9548A Pin Mc Colore filo
VIN 5V Filo rosso
GND GND Filo nero
SDA A4 Filo blu
SCL A5 Filo verde
Pin OLED Pin TCA9548A Colore filo
SDA SD1 (CH1) Filo blu
SCL SC1 (CH1) Filo verde
VCC 5V (Pin Mc) Filo rosso
GND GND (Pin Mc) Filo nero

- 16 -
Esempi di sketch

#include <U8g2lib.h>
#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BME280.h>

Adafruit_BME280 bme;

#define TCAADDR 0x70

U8G2_SSD1306_128X32_UNIVISION_F_HW_I2C u8g2(U8G2_R0, U8X8_PIN_NONE);

void TCA9548A(uint8_t bus) {


Wire.beginTransmission(0x70);
Wire.write(1 << bus);
Wire.endTransmission();
}

void u8g2_prepare() {
u8g2.setFont(u8g2_font_6x10_tf);
u8g2.setFontRefHeightExtendedText();
u8g2.setDrawColor(1);
u8g2.setFontPosTop();
u8g2.setFontDirection(0);
}

void setup() {
Wire.begin();
Serial.begin (9600);
TCA9548A(0);
bool communication = bme.begin(0x76);
TCA9548A(1);
u8g2.begin();
u8g2_prepare();

- 17 -
}

void loop(void) {
TCA9548A(0);
float temperature = bme.readTemperature();
float pressure = bme.readPressure()/100;
float humidity = bme.readHumidity();

TCA9548A(1);
u8g2.clearBuffer();
u8g2_prepare();
u8g2.setFont(u8g2_font_6x10_tf);
u8g2.drawStr(0, 0, "Temperature: ");
u8g2.setCursor(75, 0);
u8g2.print(temperature);
u8g2.println();
u8g2.drawStr(0, 10, "Pressure: ");
u8g2.setCursor(75, 10);
u8g2.print(pressure);
u8g2.println();
u8g2.drawStr(0, 20, "Humidity: ");
u8g2.setCursor(75, 20);
u8g2.print(humidity);
u8g2.println();
u8g2.sendBuffer();
delay(100);
}

- 18 -
Collegamento dei moduli con Raspberry Pi

Collegare i moduli con il Raspberry Pi come indicato nella seguente


immagine:

- 19 -
Pin TCA9548A Pin Raspberry Pi Pin fisico Colore filo
VIN 3.3V 1 Filo rosso
GND GND 14 Filo nero
SDA GPIO2 3 Filo verde
SCL GPIO3 5 Filo blu
A0, A1, A2 GND 14 Filo nero
BME280(1) PIN Pin TCA9548A Pin Raspberry Pi Colore filo
SCL SC0 Filo blu
SDA SD0 Filo verde
VIN VIN 3.3V (PIN1) Filo rosso
GND GND GND (PIN14) Filo nero
BME280(2) PIN Pin TCA9548A Pin Raspberry Pi Colore filo
SCL SC1 Filo blu
SDA SD1 Filo verde
VIN VIN 3.3V (PIN1) Filo rosso
GND GND GND (PIN14) Filo nero

- 20 -
Librerie e strumenti per Python

Per utilizzare il modulo con il Raspberry Pi, è necessario installare la libreria


RPi.GPIO. Se la libreria è già installata, eseguendo il comando di
installazione si aggiorna la libreria solo ad una versione più recente.

Per installare la libreria, aprire il terminale ed eseguire i seguenti comandi,


uno per uno:
sudo apt-get update && sudo apt-get upgrade

sudo apt install python3-pip

sudo apt install git


git clone https://github.com/pimoroni/bme280-python
cd bme280-python
sudo ./install.sh

- 21 -
Abilitazione dell'interfaccia I2C

Per poter utilizzare il modulo con Raspberry Pi, l'interfaccia I2C deve essere
abilitata. Aprite il seguente menu:
Menu Applicazione > Preferiti > Configurazione Raspberry Pi

Nella nuova finestra, sotto la scheda Interfacce, abilitare il radio button I2C,
come nell'immagine seguente:

- 22 -
Prima di utilizzare qualsiasi dispositivo collegato all'interfaccia I2C,
l'indirizzo I2C deve essere rilevato prima. Per rilevare l'indirizzo I2C della
schermata, nel terminale deve essere eseguito il seguente comando:
i2cdetect -y 1

Il risultato dovrebbe assomigliare all'immagine seguente:

Dove 0x70 è l'indirizzo I2C del modulo multiplexer. Altri indirizzi I2C
possono avere valori diversi a seconda di dove sono collegati altri dispositivi
e a quale canale.

- 23 -
Script Python

from bme280 import BME280


import smbus
import os
import time

print('TCA9548A Multiplexer + BME280 script')

class multiplex:

def __init__(self, bus):


self.bus = smbus.SMBus(bus)

def channel(self, address, channel):

if (channel == 0):
action = 0x01
elif (channel == 1):
action = 0x02
elif (channel == 2):
action = 0x04
elif (channel == 3):
action = 0x08
elif (channel == 4):
action = 0x10
elif (channel == 5):
action = 0x20
elif (channel == 6):
action = 0x40
elif (channel == 7):
action = 0x80
else:
action = 0x00
self.bus.write_byte_data(address, 0x04, action)

- 24 -
def readdata():
bme280 = BME280(i2c_dev=smbus.SMBus(1))
print("readdata")
temperature = bme280.get_temperature()
pressure = bme280.get_pressure()
humidity = bme280.get_humidity()
time.sleep(2)
temperature = bme280.get_temperature()
pressure = bme280.get_pressure()
humidity = bme280.get_humidity()
print("Temperature: ",bme280.get_temperature())
print("Pressure: ",bme280.get_pressure())
print("Humidity: ",bme280.get_humidity())
return(temperature, pressure, humidity)

if __name__ == '__main__':
bus = 1
address = 0x70 # A0 to A2 NC or GND, change as required
plexer = multiplex(bus)
while True:
plexer.channel(address, 0)
print(readdata())

plexer.channel(address, 2)
print(readdata())

- 25 -
Salvare lo script con il nome tcamultiplex.py. Per eseguire lo script,
aprire il terminale nella directory in cui è stato salvato lo script ed eseguire il
seguente comando: python3 tcamultiplex.py

Il risultato dovrebbe assomigliare all'immagine seguente:

Per fermare lo script premere CTRL + C sulla tastiera.

- 26 -
E ora è tempo di imparare e di creare dei Progetti da solo. Lo puoi fare con
l'aiuto di molti script di esempio e altri tutorial, che puoi trovare in internet.

Se stai cercando dei microelettronica e accessori di alta qualità, AZ-


Delivery Vertriebs GmbH è l'azienda giusta dove potrai trovarli. Ti
forniremo numerosi esempi di applicazioni, guide di installazione
complete, e-book, librerie e l'assistenza dei nostri esperti tecnici.

https://az-delivery.de
Buon divertimento!
Impressum
https://az-delivery.de/pages/about-us

- 27 -

Potrebbero piacerti anche