Hallo zusammen, ich arbeite gerade an einem Versuch einen High-Speed ADC (12 Bit, 5-20 MSPS) parallel mit einem STM32 Mikrocontroller auszulesen. Die ersten Versuche waren bereits erfolgreich, allerdings bereitet mir das Pinout des STM32-Mikrocontrollers etwas Kopfzerbrechen. Nach meiner Logik wäre es am sinnvollsten, die 12 Datenpins des ADC auf 12 GPIO-Pins des gleichen GPIO-Ports zu legen, um alle Daten gleichzeitig über das entsprechende Register auslesen zu können. Es ist mir jedoch aufgefallen, dass die GPIO-Pins einer Bank über das gesamte Pinout verteilt sind und nicht in unmittelbarer Nähe zueinander liegen. Dies bei praktisch allen STM32 ob F1 oder H7. Teilweise sogar auf der gegenüberliegenden Seite des ICs. Nun frage ich mich, wie kritisch diese Verteilung der Pins in Bezug auf das PCB-Layout bei hohen ADC-Datenraten ist. Hat jemand von euch schon einmal etwas ähnliches gemacht oder Erfahrungen damit?
Michael schrieb: > Hat jemand von euch schon einmal etwas ähnliches gemacht oder > Erfahrungen damit? Mit ADC nicht, aber ich entwerfe gerade eine Leiterplatte mit STM32H7 (LQFP100, später mit LQFP176 u. LQFP208) für LCD-TFT im Parallel-RGB-Betrieb mit Sync-Signalen (RGB666 und RGB888), hinzu kommen noch Quad-SPI-Speicher – hier sind es also deutlich mehr Pins und die sind dann noch viel schlimmer über den ganzen µC verteilt, insofern würde ich sagen – man hat keine Wahl. Hier und dort kann man noch ein paar Leitungen umrouten, aber das war's dann auch schon, wenn es um 'schöne Anordnung' der Leiterbahnen geht. Man muss sich mit dem, wie das eingebettet ist, anfinden und arrangieren. __ > Nun frage ich mich, wie kritisch diese Verteilung der Pins in Bezug auf > das PCB-Layout bei hohen ADC-Datenraten ist. Kommt auf die Arbeitsfrequenz an – bis 25MHz sollte das alles noch unkritisch sein, sogar bis 50MHz sollte das noch funktionieren, aber spätestens ab 50MHz sollte man sich ernste Gedanken über die Laufzeit der Signale machen und die Längendifferenzen dann nicht so groß gestalten bzw. etwas angleichen.
:
Bearbeitet durch User
Michael schrieb: > Nun frage ich mich, wie kritisch diese Verteilung der Pins in Bezug auf > das PCB-Layout bei hohen ADC-Datenraten ist. Das ist in erster Line eine Softwarefrage. Denn wie willst du die Daten von zwei verschiednen Ports nahezu gleichzeitig einlesen, vor allem bei 20 MHz? Klar kann man das vielleicht mit 2 DMA-Kanälen hintricksen, aber warum? Leg einfach die Pins an einen Port und gut. Wenn das mehr Aufwand im Layout ist, so what! Mit 2 Lagen kommst du bei deim IC sowieso nicht weg. Und komm mir jetzt nicht mit Längenausgleich der Leitungen, da fall ich ins Lachkoma! ;-)
Gregor J. schrieb: > 50MHz sollte man sich ernste Gedanken über die Laufzeit > der Signale machen und die Längendifferenzen dann nicht so groß > gestalten bzw. etwas angleichen. Ja, so auf grob +/- eine handbreit! Bei beim Cuba Libre mixen! Eine handbreit Cola, 2 Finger breit Rum! ;-)
Falk B. schrieb: > Das ist in erster Line eine Softwarefrage. Denn wie willst du die Daten > von zwei verschiednen Ports nahezu gleichzeitig einlesen, vor allem bei > 20 MHz? Möchte er doch gar nicht – wärst Du nicht weiter auf Deinem Trip, hättest Du es herausgelesen.
:
Bearbeitet durch User
Gregor J. schrieb: >> Das ist in erster Line eine Softwarefrage. Denn wie willst du die Daten >> von zwei verschiednen Ports nahezu gleichzeitig einlesen, vor allem bei >> 20 MHz? > > Möchte er doch gar nicht – wärst Du nicht weiter auf Deinem Trip, > hättest Du es herausgelesen. Gleichfalls! "ich arbeite gerade an einem Versuch einen High-Speed ADC (12 Bit, 5-20 MSPS)"
Danke euch für die Antworten. Gregor J. schrieb: > Kommt auf die Arbeitsfrequenz an – bis 25MHz sollte das alles noch > unkritisch sein, sogar bis 50MHz sollte das noch funktionieren, aber > spätestens ab 50MHz sollte man sich ernste Gedanken über die Laufzeit > der Signale machen und die Längendifferenzen dann nicht so groß > gestalten bzw. etwas angleichen. In diesem Fall, sollte es kein Problem sein, wenn ich nicht über 25 MHz gehe. Falk B. schrieb: > Das ist in erster Line eine Softwarefrage. Denn wie willst du die Daten > von zwei verschiednen Ports nahezu gleichzeitig einlesen, vor allem bei > 20 MHz? Klar kann man das vielleicht mit 2 DMA-Kanälen hintricksen, aber > warum? Leg einfach die Pins an einen Port und gut. Wenn das mehr Aufwand > im Layout ist, so what! Mit 2 Lagen kommst du bei deim IC sowieso nicht > weg. Also das PCB wird sicher 4 Lagig. Das ich mit zwei Ports nicht Arbeiten kann ist mir klar. Ich habe bis jetzt noch nie ein Layout mit solchen ADC's gemacht, daher die Unsicherheit über das Routing. Danke euch.
Falk B. schrieb: > Ja, so auf grob +/- eine handbreit! Bei beim Cuba Libre mixen! Eine > handbreit Cola, 2 Finger breit Rum! ;-) Hahaha! Der war gut!
Michael schrieb: > In diesem Fall, sollte es kein Problem sein, wenn ich nicht über 25 MHz > gehe. Man kann das eigene Layout später mit mehr testen, wenn die Hardware da mitmacht – ich werde es bei Quad-SPI bis 100MHz probieren, da die verwendeten ICs das angeblich auch können, später mit SDRAM-Bausteinen möchte ich auch in diesen Bereich gehen oder noch ein wenig mehr, um zumindest einige Erfahrungswerte zu bekommen bzw. die Grenze für das Funktionieren herauszufinden. Danach kann man alles mit einem Sicherheitsabstand zu der Grenze laufen lassen.
G. K. schrieb: > Alternate Pins sind bekannt? Mein „Umrouten” aus meinem Posting oben bezog sich genau dadrauf, dass man gewisse Pins (der internen Module) auf verschiedene µC-Pins umswitchen kann – das geht aber in einem Fall, wo z.B. durchgehend 12 Bits eines bestimmten GPIOs zum Auslesen eines ADCs explizit benötigt werden, leider nicht. Man kann z.B. nicht PA0 auf PB0 umrouten, weil man PA0 lieber dort auf der anderen Seite des µControllers als Input oder Output hätte, das Multiplexen selbst ist außerdem sehr eingeschränkt und spezifisch – man kann nicht alles beliebig umrouten und in jeder STM32-µC-Familie ist es etwas anders gestaltet. Das alles weiß man aber, wenn man sich damit ausgiebig beschäftigt hat. Es gibt noch ein paar undokumentierte Tricks beim Umrouten von Pins eines STM32, auf die man in bestimmten Situationen zurückgreifen könnte – die behalte ich aber für mich, für das Anliegen des Autors sind sie eh irrelevant.
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.