Ich verwende einen MSP430FR2633-Mikrocontroller und einen ADS122C04IPWR-DAC über I2C bei 100 kHz.
Kann ich die I2C-Leitungen durch Durchkontaktierungen in einer 2-Schicht-Leiterplatte verlegen?
microcontroller
pcb
i2c
routing
Abhishek Parikh
quelle
quelle
Antworten:
Bei I2C-Geschwindigkeiten verursachen Durchkontaktierungen überhaupt keine Probleme.
Zumindest keine Probleme hinsichtlich Spurwiderstand, Kapazität oder Induktivität. Wenn Sie jedoch eine 2-Lagen-Platte haben, sollten Sie beide Lagen am besten systematisch verwenden, da Sie sonst zu Problemen führen können.
Was viele Leute tun, ist, eine Schicht eines Brettes dem Boden zu widmen. Dies funktioniert im Allgemeinen gut, BIS sie anfangen, den Boden mit 'nur einer Spur' auf der anderen Ebene zu zerhacken. Wenn dieser Track durch "nur einen anderen" und einen anderen verbunden wird, sieht der Boden wie ein Spitzenvorhang aus. Es macht seinen Job nicht und es ist schwierig zu bestimmen, wo und wie es wieder zusammengenäht werden soll, besonders wenn Sie unerfahren sind. Schlimmer noch, einige werden alle Gleise routen und dann ein "Kupfergießen" durchführen, in der Hoffnung, dass dies eine gute Grundplatte ergibt.
Wenn Sie zwei Ebenen für Signale verwenden, ist es weitaus besser, mit einem Plan zu beginnen. Verwenden Sie eine Manhattan-Verfolgungsanordnung, Ost-West auf einer Ebene, Nord-Süd auf der anderen. Beginnen Sie mit einem "Gitterboden", legen Sie etwa alle 10 mm parallele Gleise und über diese an jeder Kreuzung. Dies funktioniert fast so gut wie eine Grundebene und ist bei I2C-Geschwindigkeiten absolut genauso gut. Jetzt haben Sie eine systematische Möglichkeit, eine Spur von überall nach überall zu fahren, und können genau dort auf die andere Seite des Boards springen, wo Sie dies benötigen, ohne die vorhandene Bodenkontinuität zu stören.
Eine Alternative besteht darin, eine Grundebene zu verwenden, diese jedoch nicht zu zerhacken, indem Sie für alle Signale auf Ihrer Signalschicht bleiben. Überqueren Sie Spuren, indem Sie Spuren unter Komponenten passieren. Zu diesem Zweck können Sie Null-Ohm-Widerstände kaufen, obwohl ein 1- oder sogar 10-Ohm-Widerstand bei I2C-Widerstandsstufen so gut wie ein Draht ist.
quelle
Im Allgemeinen - ja. 100 kHz Signal ist sehr verzeihend. Stellen Sie sicher, dass SDA und SCL auf ähnliche Weise nahe beieinander verlegt werden.
Beachten Sie auch die I2C-Gesamtkapazitätsgrenze von 400 pF (Sie könnten auf dieses Problem stoßen, wenn die Spuren wirklich lang wären).
quelle
Sollte kein Problem sein. Wir verwenden Vias auf I²C, die ohne Probleme bis zu 800 kHz laufen.
Das Schlimmste, was ich gesehen habe, war ein schlechtes Via, das einen Serienwiderstand in der I²C-Linie erzeugte. Dies wirkte sich so stark auf die Anstiegsgeschwindigkeit der Karte aus, dass die I²C-Kommunikation fehlschlug. Aber das war auf einem Prototyp-Board und ist bisher noch nie auf einem Produktionsboard passiert.
quelle
100 kHz sind ziemlich einfach zu bewegen. Unsere Geräte verfügen über I2C-EEPROMs, die in einem vom Kunden austauschbaren Teil des Systems montiert sind, sodass Änderungen an der Kalibrierung beim Austausch dieses Teils automatisch von der Steuerung gelesen werden. Die Kabel hierfür können Meter lang sein, und bisher funktioniert das in Ordnung. Zwar haben wir Kabel mit geringer Kapazität, aber eine Leiterplatte über ist keine große Sache.
Beachten Sie jedoch, dass 100 kHz zwar die ursprüngliche I2C-Standardfrequenz ist, dies jedoch nicht das Ende der Geschichte ist. I2C "Fast Mode" erlaubt bis zu 400 kHz, "Fast Mode Plus" erlaubt bis zu 1 MHz und "High-Speed Mode" erlaubt bis zu 3,4 MHz. Wenn Sie sich das Datenblatt ansehen, unterstützt Ihr DAC "Fast Mode Plus" bis zu 1 MHz. Solange Sie bei 100 kHz bleiben, können Sie im Grunde tun, was Sie wollen, weil es nicht schnell genug ist, um eine Rolle zu spielen. Wenn Sie jedoch in Zukunft schneller arbeiten möchten, sollten Sie die Entwurfsregeln für schnellere digitale Signale untersuchen.
Der DAC selbst kann jedoch nur 2K-Samples pro Sekunde verwalten. Bei einem 24-Bit-DAC plus dem damit verbundenen I2C-Overhead nehmen Datenübertragungen auf einer 100-kHz-Verbindung nur etwa 70-80% der Bandbreite in Anspruch. Wenn Sie mehrere DACs auf derselben I2C-Verbindung haben, möchten Sie möglicherweise eine schnellere Verbindung verwenden, um alle zu warten. Wenn Sie jedoch nur einen einzigen DAC haben, haben Sie keinen Grund, schneller als 100 kHz zu arbeiten.
quelle