Ich denke derzeit über eine MCU-gesteuerte Schaltung nach, die eine Vielzahl von Dingen ausführen kann, einschließlich des Ansteuerns einiger BLDC-Motoren und einiger analoger Erfassungen (von Positionssensoren, Temperaturen und dergleichen).
Die Designer des Chips, den ich verwenden möchte (ein STM32F4, FWIW), haben es für angemessen erachtet, die folgenden zwei Pins direkt nebeneinander zu platzieren:
Noch ein paar Kleinigkeiten:
Jetzt werde ich fortfahren und postulieren, dass es eine schlechte Praxis ist, einen PWM-Pin direkt neben einem ADC-Eingang zu platzieren, aber ich frage mich:
Bearbeiten:
So sieht der MCU-Teil aus. Ich habe den störenden Timer-Pin hervorgehoben:
Sie haben tatsächlich ein legitimes Nebensprechproblem identifiziert. Genau genommen ist die Kopplungsgröße des Übersprechens keine Funktion der Frequenz des Signals. Es hängt davon ab, wie schnell das Signal von hoch zu niedrig oder von niedrig zu hoch wechselt. Selbst ein 1-Hz-PWM-Signal würde während der ansteigenden und abfallenden Flanken auf eine nahe gelegene Leitung überkoppeln. Offensichtlich geschieht dies bei Ihrem 20-kHz-Signal 40.000 Mal pro Sekunde, was sicherlich ein Problem darstellen kann. Als akademischer Punkt von Interesse wird ein schönes glattes Sinuswellensignal nicht so viel Übersprechen induzieren wie eine Rechteckwelle mit der gleichen Frequenz.
Neben der Anstiegs- und Abfallzeit der Rechteckflanken ist das Übersprechen auch eine Funktion des Abstands zwischen den Signalspuren, der Länge, die die beiden Spuren gemeinsam zurücklegen, und ihres Abstands über ihrer Referenzebene.
Da sich der PWM-Pin und der ADC-Pin physisch nebeneinander befinden, befinden sich ihre Spuren für eine gewisse Spurlänge in unmittelbarer Nähe, und Sie können nichts dagegen tun. Offensichtlich hilft jede Methode, die beiden Spuren so schnell wie möglich voneinander zu entfernen. Sie können den Kopplungseffekt auch verringern, indem Sie darauf achten, dass die Referenzebene sehr nahe liegt. Auf einer Leiterplatte bedeutet dies, dass eine 4-Lagen-Platine (oder mehr) verwendet werden muss, damit eine Masseebene nicht weiter als eine Prepreg-Dicke entfernt platziert werden kann (normalerweise nur wenige Milli-Inch). Auf einer 2-lagigen Platine ist die Masseebene die gegenüberliegende Seite der Platine, die normalerweise 63 mils entfernt ist und sehr schlecht für Übersprechen ist.
Es gibt einen sehr guten kostenlosen Online-Rechner namens Saturn PCB Design Toolkit , mit dem Sie die Größenordnung des Übersprechens schätzen können. Anhand Ihres Layouts können Sie sich ein Bild davon machen, wie stark das Übersprechen wird. Sie können die Übergangszeit nicht kennen, ohne die Treiberstärke des Ausgangstreibers und die genaue Impedanz der mit dem PWM-Pin verbundenen Spur zu kennen, aber Sie können ungefähr 10 ns als konservative Annäherung verwenden.
Wenn für Ihre ADC-Messwerte eine sehr hohe Genauigkeit erforderlich ist und Ihre berechnete Nebensprechgröße zu hoch ist, ist es vielleicht das Beste, eine andere MCU zu wählen. Es gibt tonnenweise mehr vom selben Hersteller, daher sollte es trivial sein, einen mit einem PWM- und einem ADC-Pin getrennt voneinander zu finden. Wenn es einen Grund gibt, dass Sie diese spezielle MCU verwenden müssen, müssen Sie bestimmen, mit wie viel Übersprechen Sie leben können, und darauf abstimmen.
Ich bin überrascht, dass hier niemand etwas über den Impedanzpegel auf den ADC-Leitungen erwähnt hat! Offensichtlich ist es einfacher, eine hochohmige Leitung zu einem Eingang zu stören, als eine niederohmige Leitung zu stören. Wenn Ihre Sensoren hochohmige Ausgänge haben, würde ich empfehlen, ihre Ausgangsspannung lokal (in der Nähe des Sensors) zu puffern. Wenn Ihre Sensoren über Ausgänge mit niedriger Ausgangsimpedanz verfügen, ist eine Pufferung möglicherweise nicht erforderlich.
Sie könnten auch in Betracht ziehen, die Signale des Sensors ohnehin in kurzer Entfernung von der MCU zu puffern und sicherzustellen, dass die Signale "sauber" bleiben. Leiten Sie sie dann zu den ADC-Eingängen.
Sie sollten die GPIO-Geschwindigkeit auf den niedrigsten Wert einstellen, um eine längere Anstiegs- und Abfallzeit zu haben. Dies sollte bei Übersprechproblemen helfen. Dieses Übersprechen ist induktiv, wenn Ihre PWM-Leitung keine Leitung mit niedriger Impedanz ist, sollten Sie keine Probleme haben.
Chetan Bhargava
PKL
PKL
Chetan Bhargava
Ignacio Vazquez-Abrams
Benutzer76844
Dan Laks
Benutzer76844