Sto usando un micro controller MSP430FR2633 e un DAC ADS122C04IPWR su I2C a 100kHz.
Posso instradare le linee I2C attraverso i via in un PCB a 2 strati?
Sto usando un micro controller MSP430FR2633 e un DAC ADS122C04IPWR su I2C a 100kHz.
Posso instradare le linee I2C attraverso i via in un PCB a 2 strati?
Risposte:
A velocità I2C, vias non ti causerà assolutamente alcun problema.
Almeno, nessun problema in termini di resistenza di binario, capacità o induttanza. Tuttavia, se si dispone di una scheda a 2 strati, è preferibile utilizzare sistematicamente entrambi i livelli, altrimenti si possono causare problemi.
Ciò che molte persone fanno è dedicare uno strato di una tavola a terra. Questo generalmente funziona bene, FINO A quando iniziano a tagliare il terreno con "solo una traccia" sull'altro livello. Quando questa traccia è unita da "solo un altro" e un altro, il terreno finisce per sembrare una tenda di pizzo. Non fa il suo lavoro ed è difficile determinare dove e come ricucirlo, soprattutto se non hai esperienza. Ancora peggio, alcuni indirizzeranno tutti i binari, quindi eseguiranno un "getto di rame", nella speranza che questo renda un buon piano di massa.
Se stai usando 2 livelli per i segnali, allora è molto meglio iniziare con un piano. Utilizzare un accordo di tracciamento "Manhattan", est-ovest su uno strato, nord-sud sull'altro. Inizia con un 'terreno grigliato', metti tracce parallele ogni 10 mm circa e via via ad ogni incrocio. Funziona quasi come un piano di massa, e alle velocità I2C è assolutamente buono. Ora hai un modo sistematico per eseguire una traccia da qualsiasi luogo, ovunque, e puoi saltare dall'altra parte del tabellone esattamente dove è necessario, senza disturbare la continuità del terreno esistente.
Un'alternativa è usare un piano di massa, ma per evitare di tagliarlo rimanendo sul livello del segnale per tutti i segnali. Attraversa i binari passando i binari sotto i componenti. A questo scopo è possibile acquistare resistori "zero ohm", anche se un resistore da 1 o addirittura 10 ohm sarà buono come un filo a livelli di resistenza I2C.
Non dovrebbe essere un problema. Stiamo usando vias su I²C che funzionano fino a 800 kHz senza problemi.
Il peggio che ho visto è stato un cattivo via, che ha creato una resistenza in serie nella linea I²C. Ciò ha influenzato la velocità di risposta della scheda così male che la comunicazione I²C non è riuscita. Ma quello era su una scheda prototipo e finora non è mai successo su una scheda di produzione.
100kHz è abbastanza facile da spostare. Le nostre apparecchiature hanno EEPROM I2C montate in una parte del sistema sostituibile dal cliente, in modo che le modifiche alla calibrazione quando tale parte viene sostituita verranno automaticamente lette dal controller. I cavi per questo possono essere lunghi metri e finora funziona bene. Certo, abbiamo cavi a bassa capacità, ma comunque un PCB via non è un grosso problema.
Si noti tuttavia che mentre 100kHz è la frequenza standard I2C originale, non è la fine della storia. I2C "Fast Mode" consente fino a 400kHz, "Fast Mode Plus" consente fino a 1MHz e "High-Speed Mode" consente fino a 3,4MHz. Guardando la scheda tecnica, il DAC supporta "Fast Mode Plus" fino a 1MHz. Fintanto che rimani a 100kHz, puoi praticamente fare tutto quello che vuoi perché non è abbastanza veloce da importare, ma se in futuro potresti voler andare più veloce, allora dovresti studiare le regole di progettazione per segnali digitali più veloci.
Detto questo, il DAC stesso può gestire solo 2K campioni al secondo. Per un DAC a 24 bit più l'overhead I2C associato, i trasferimenti di dati occupano circa il 70-80% della larghezza di banda su un collegamento a 100 kHz. Se si dispone di più DAC sullo stesso collegamento I2C, è possibile che si desideri utilizzare un collegamento più rapido per eseguirli tutti, ma se si dispone di un solo DAC, non si ha motivo di andare più veloce di 100kHz.