L'I2C (Inter-Integrated Circuit), pronunciato "I-quadro-C", è un protocollo di comunicazione seriale a due fili ampiamente utilizzato per connettere dispositivi a bassa velocità su brevi distanze. E' particolarmente popolare per comunicare tra microcontroller e sensori, memorie, display LCD e altre periferiche. E' un bus multi-master, il che significa che più dispositivi possono controllare il bus, e supporta la comunicazione multi-slave.
Caratteristiche Principali:
Due Fili: Richiede solo due fili per la comunicazione:
Open Drain/Open Collector: Sia SDA che SCL sono linee "open drain" (o "open collector", a seconda della tecnologia dei transistor). Questo significa che i dispositivi possono solo abbassare la linea a terra. Una resistenza di pull-up esterna è necessaria su entrambe le linee per tirarle verso l'alto allo stato alto quando nessun dispositivo le sta abbassando. Questo permette a più dispositivi di condividere le linee.
Indirizzamento: Ogni dispositivo I2C sul bus ha un indirizzo univoco. Il master utilizza questo indirizzo per selezionare lo slave con cui comunicare. Gli indirizzi sono tipicamente a 7 bit o 10 bit.
Velocità: L'I2C supporta diverse velocità di trasferimento dati, tra cui:
Master/Slave: La comunicazione avviene sempre tra un master e uno o più slave. Il master inizia la comunicazione selezionando uno slave specifico usando il suo indirizzo. Il master può sia scrivere dati allo slave che leggere dati dallo slave.
Funzionamento Base:
Start Condition: Il master inizia la comunicazione tirando la linea SDA a basso mentre la linea SCL è alta.
Address Frame: Il master invia l'indirizzo a 7 o 10 bit del dispositivo slave a cui vuole comunicare, seguito da un bit di lettura/scrittura (R/W). Se il bit R/W è impostato, il master sta leggendo dallo slave; altrimenti, il master sta scrivendo allo slave.
ACK/NACK: Lo slave risponde all'indirizzo inviando un bit di acknowledgement (ACK) tirando SDA a basso durante il nono ciclo di clock. Se lo slave non è presente o non è in grado di rispondere, lascia SDA alta, che è interpretata come un not-acknowledgement (NACK).
Data Transfer: I dati vengono trasferiti un byte alla volta. Ogni byte è seguito da un bit di ACK/NACK dallo slave.
Stop Condition: Il master termina la comunicazione tirando la linea SDA ad alta mentre la linea SCL è alta.
Vantaggi:
Svantaggi:
Applicazioni Comuni:
Ne Demek sitesindeki bilgiler kullanıcılar vasıtasıyla veya otomatik oluşturulmuştur. Buradaki bilgilerin doğru olduğu garanti edilmez. Düzeltilmesi gereken bilgi olduğunu düşünüyorsanız bizimle iletişime geçiniz. Her türlü görüş, destek ve önerileriniz için iletisim@nedemek.page