Hallo, in einem mehrkanaligen Messsystem sollen mehrere Boards über eine Hauptplatine (quasi Backplane) miteinander verbunden werden. Die einzelnen Boards bestehen jeweils aus einem Mikrocontroller (STM32) und einem Sigma-Delta-AD-Wandler. Über die gemeinsame Backplane laufen: * Versorgungsspannungen * RS-485-Datenbus für die Messdatenübertragung * Gemeinsame Taktquelle (temperaturkompensierter Quarzoszillator, 3.3V 16 MHz) Es geht um den letzten Punkt, die gemeinsame Taktversorgung aller Mikrocontroller und AD-Wandler mit dem 16 MHz Takt. Diese gemeinsame Taktversorgung soll die Auswertung der Daten und die Programmierung vereinfachen und Störungen bei der A/D-Wandlung reduzieren (indem z.B. auch das Schaltnetzteil - indirekt - aus dieser Taktquelle versorgt wird). Der Abstand zwischen dem Quarzoszillator und den ICs auf den 10 Boards beträgt maximal 30cm. Das wären dann 10 Taktleitungen zu je maximal 30cm Länge. Der naive Ansatz wäre, den Oszillator mit einem Ausgangstreiber zu verstärken und sternförmig Taktleitungen zu allen 10 Boards zu führen. Das ist vermutlich aus zwei Gründen schlecht: 1.) Abstrahlung (EMV) der langen Taktleitungen 2.) Fehleranfällig: Wenn bei einem der 10 Boards die Versorgungsspannung ausfällt, dann liegt die Taktleitung über die Schutzdioden in den ICs auf GND. Besser wäre vermutlich eine differentielle Taktübertragung mit kleinerem Spannungspegel. LVDS-Transceiver bieten dies, haben aber mit ihrer hohen Bandbreite (Gbps) sehr steile Schaltflanken und scheinen mir für 16 MHz overkill zu sein. Stattdessen nutze ich derzeit RS-485 Transceiver mit 20 Mbps Bandbreite (konkret ISL3178e) und eine Bus-Struktur zur Taktverteilung. Obwohl das funktioniert, bleibt ein ungutes Gefühl dabei. Kann man das so machen? Den Clock-Jitter habe ich nicht gemessen. Meinem Verständnis nach ist Jitter in der Schaltung unkritisch: Die Mikrocontroller arbeiten mit einer integrierten PLL und die AD-Wandler müssen nur Quasi-DC-Signale messen. Also: Kann man das mit den RS-485 Transceivern so machen? Oder: Wie wäre die professionelle Lösung für die Taktübertragung?
Tobias K. schrieb: > Kann man das mit den RS-485 Transceivern so machen? Die haben natürlich den Nachteil eines hohen Pegels, und damit auch Störpegels. Grundsätzlich ist das natürlich eine Frage der Verdrahtung, die sollte schon nach HiSpeed-Gesichtspunkten erfolgen, wie Impedanzanpassung und störarme Verlegung durch Verdrillen, wie z.B. in Ethernet-Kabeln. Es ist nicht recht klar, ob du mit Backplane eine Leiterplatte meinst, da geht z.B. Verdrillen nicht, aber verlegen als differential pair und Abschirmung. Allerdings landet man dann bei einem Multilayer. Wenn es aber anders nicht zufriedenstellend funktioniert dann ist das eben so. Georg
@Tobias K. (Gast) >Der Abstand zwischen dem Quarzoszillator und den ICs auf den 10 Boards >beträgt maximal 30cm. Das wären dann 10 Taktleitungen zu je maximal 30cm >Länge. Schon recht lang, siehe Wellenwiderstand. >Der naive Ansatz wäre, den Oszillator mit einem Ausgangstreiber zu >verstärken und sternförmig Taktleitungen zu allen 10 Boards zu führen. >Das ist vermutlich aus zwei Gründen schlecht: >1.) Abstrahlung (EMV) der langen Taktleitungen Nein. Wenn diese gescheit layoutet sind und die richtige Terminierung haben, ist das OK. >2.) Fehleranfällig: Wenn bei einem der 10 Boards die Versorgungsspannung >ausfällt, dann liegt die Taktleitung über die Schutzdioden in den ICs >auf GND. Naja, wenn es soweit kommt, hast du ganz andere Probleme. >Besser wäre vermutlich eine differentielle Taktübertragung mit kleinerem >Spannungspegel. LVDS-Transceiver bieten dies, haben aber mit ihrer hohen >Bandbreite (Gbps) sehr steile Schaltflanken und scheinen mir für 16 MHz >overkill zu sein. Sind sie auch, auch wenn es langsamere gibt. >Stattdessen nutze ich derzeit RS-485 Transceiver mit 20 Mbps Bandbreite >(konkret ISL3178e) und eine Bus-Struktur zur Taktverteilung. Obwohl das >funktioniert, bleibt ein ungutes Gefühl dabei. Kann man das so machen? Ja, wenn man richtig terminiert. >Den Clock-Jitter habe ich nicht gemessen. Meinem Verständnis nach ist >Jitter in der Schaltung unkritisch: Die Mikrocontroller arbeiten mit >einer integrierten PLL und die AD-Wandler müssen nur Quasi-DC-Signale >messen. Dann passt das doch. >Also: Kann man das mit den RS-485 Transceivern so machen? Ja. > Oder: Wie wäre die professionelle Lösung für die Taktübertragung? Hier muss man nicht krampfhaft HighTec nutzen.
Eine saubere Loesung waere 1 Leitung entlang der Backplane, Am Oszillator einen 100 Ohm in Serie, Die Leitung ist dann ein sourceterminierter Bus. Dann auf jeder Einschubleiterplatte grad am Stecher einen 74SZ04 Single Gate Inverter zum Entkoppeln, als Treiber fuer die Karte. Falls diese Anordnung stoert, einen Differentialbus mit LVDS entlang der Backplane, und auf jeder Karte grad am Stecker LVDS Receiver, ohne Busterminator. Der Busterminator kommt dann hinten am Bus, auf der Backplane.
Vielen Dank für die hilfreichen Antworten. Es spricht also nichts gegen die RS-485 Lösung, d.h. ich werde dabei bleiben. Auf die richtige Terminierung werde ich achten.
Ergänzung: Differentielle Signale sollten unbedingt auch als differential pair geroutet werden, also beide Leiterbahnen in definiertem Abstand nebeneinander und nicht irgendwie quer durch die Gegend. Dann ist die umschlossene Fläche zwischen Signal und invertiertem Signal minimal und damit die EMV optimal. Georg
@Oh Doch (jetztnicht) >Eine saubere Loesung waere 1 Leitung entlang der Backplane, Am >Oszillator einen 100 Ohm in Serie, Die Leitung ist dann ein >sourceterminierter Bus. Dann auf jeder Einschubleiterplatte grad am >Stecher einen 74SZ04 Single Gate Inverter zum Entkoppeln, als Treiber >fuer die Karte. FALSCH! Genau SO macht man es nicht! Siehe Wellenwiderstand!!! "Serienterminierung ist für Takte nur bei Punkt-zu-Punkt-Verbindungen sicher nutzbar." "Taktsignale dürfen nur bei Punkt zu Punkt Verbindungen mit Serienterminierung betrieben werden (ein Sender und nur ein Empfänger). Anderenfalls kann es zu Fehlfunktionen kommen, da ein Takteingang, welcher in der Mitte der Leitung sitzt für ein paar Nanosekunden eine Spannung am Eingang anliegen hat die etwa VCC/2 entspricht. Das ist aber genau die Schaltschwelle von CMOS-ICs. Kleinste eingekoppelte Störungen können nun dafür sorgen, daß der Takteingang mehrere Flanken "sieht", wo eigentlich nur eine sein sollte. " PCI lief millionenfach in PCs als normales TTL-Signal mit 5/3,3V. Und das waren 33/66 MHz. Allerdings war das eine sternförmige Taktverteilung, jeder PCI-Slot hatte eine eigene Taktleitung zum Busmaster.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.