Progettazione di driver I / O per moduli I2C a circuito integrato



7 ore fa Chandana Krishna I²C è un'interfaccia seriale sincrona, multi-master, multi-slave che consente ai microchip di comunicare tra loro. Come standard di comunicazione open-drain / open-collector, I²C consente ai circuiti integrati (CI) di comunicare anche quando utilizzano diversi binari di tensione. Esistono quattro velocità operative nello standard I²C: Il bus I²C utilizza due linee - dati seriali (SDA) e orologio seriale (SCL) - e tutti i dispositivi master e slave I²C sono collegati solo da queste due linee. Ogni dispositivo può essere sia un trasmettitore che un ricevitore. Entrambi i segnali SDA e SCL sono bidirezionali. I pin SDA e SCL di ogni dispositivo sono pin open-drain.
Hanno resistenze di pull-up ad essi collegate per ottenere la logica 1. La logica 1 dipende dalla tensione di alimentazione; non esiste una tensione bus standard. Parliamo della struttura della cella I / O I²C integrata nei circuiti integrati.
Lo schema a blocchi della struttura delle celle I / O I²C è mostrato nella Figura 1. Il blocco TX è abilitato nel lasso di tempo di trasmissione mentre il blocco RX è abilitato nel lasso di tempo di ricezione. VDD1 e VDD2 sono due diversi binari di tensione in cui operano il master e lo slave.
VDD1 è l'alimentazione del chip per le operazioni interne e VDD2 è la tensione di alimentazione utilizzata dal sistema esterno. Per supportare diverse linee di tensione, è necessario un traslatore di livello per tradurre i segnali da una tensione di alimentazione a un'altra. Lo schema a blocchi del circuito del trasmettitore è mostrato nella Figura 2.
A è il segnale dati da trasmettere sul pin SDA / SCL. TLZ è il controllo tristato durante uno spegnimento VDD1. TZ viene spostato di livello da VDD1 a VDD2 per abilitare il buffer di uscita open-drain per A_OUT.
Se VDD1 viene spento durante il funzionamento del sistema intenzionalmente o involontariamente con VDD2 ancora attivo, il segnale di abilitazione TZ si riduce o è per lo più indeterminato. Ciò può abilitare il buffer di output su A_OUT. Il segnale TLZ viene utilizzato come meccanismo di sicurezza.
Il TLZ viene abbassato durante lo spegnimento, il che porta il segnale TZ in alto. A questo punto, il buffer di output non è più abilitato. Il buffer di drain aperto si troverebbe in una condizione tristata quando VDD1 è spento.
Per ulteriori informazioni su casi d'uso, vantaggi e applicazioni dell'utilizzo di un buffer I²C, consultare l'articolo tecnico di AAC su quando utilizzare un buffer I²C. Lo schema a blocchi del ricevitore è mostrato in Figura 3. Il circuito del ricevitore è abilitato con un segnale RX_EN.
TLZ ha la stessa funzionalità del blocco trasmettitore. Il segnale HSMODE abilita la modalità ad alta velocità. Il segnale RX_EN viene spostato dal livello VDD1 a VDD2 per abilitare il buffer che riceve il segnale Y_IN.
Un variatore di livello sposta quindi il segnale Y_IN bufferizzato sulla barra di tensione VDD1. I segnali I²C sono inclini a rumore e disturbi. Di conseguenza, è necessario un filtro glitch per filtrare tutti i glitch indesiderati e consentire il passaggio di soli segnali validi.
Nella modalità standard / veloce, i glitch di <= 50 ns vengono eliminati. Nella modalità ad alta velocità, i glitch di <= 10 ns vengono soppressi. Il design del filtro glitch è mostrato nella Figura 4 e il diagramma di temporizzazione è mostrato nella Figura 5.
La costante di tempo RC ritarda il passaggio dei segnali e sopprime eventuali anomalie. La combinazione R1, C1, R2, C2 determina l'ampiezza dell'impulso dei glitch da eliminare. In conformità con le specifiche I²C, il ricevitore dovrebbe essere in grado di sopprimere gli impulsi di glitch di <= 50 ns in modalità standard e veloce e <= 10 ns in modalità ad alta velocità.
Il segnale di uscita dal filtro glitch è bufferizzato ed elaborato per ulteriori operazioni dall'IC. Il buffer di output sulle linee I²C è in configurazione open-drain, di cui parleremo in dettaglio nel nostro articolo sull'hardware necessario per un bus I²C. Qualsiasi dispositivo I²C può funzionare a bassa potenza solo su queste linee I²C o tristarle.
Per ottenere un livello logico elevato, i resistori di pull-up sono tenuti a trascinarli sulla linea di tensione durante una condizione di tristato. Quando il dispositivo si sta abbassando, questi resistori di pull-up assorbono corrente tramite NMOS come mostrato nella Figura 6. Il tempo di salita dipende dal resistore di pull-up e dalla costante di tempo di capacità parassita ed è generalmente più lungo del tempo di caduta perché la caduta è guidata dal dispositivo (ad es. NMOS). Pertanto, sono necessarie diverse resistenze di pull-up per diverse velocità di funzionamento.
Per ulteriori informazioni sulle resistenze di pull-up e sui carichi capacitivi, consultare il nostro articolo sulla matematica I²C per capacità e resistenza.

Yorumlar

Bu blogdaki popüler yayınlar

Classici protocolli CAN vs CAN FD: le differenze che contano per i progettisti

Che cos'è DrMOS, l'IC che alimenta i processori di nuova generazione?

Il modello Elmore Delay nel design VLSI