Führt das Entfernen von Rauschen mit Abschirmung/Kondensator dazu, dass die Kommunikation in diesem Schaltkreis fehlschlägt?

Wir sind verwirrt über einen überraschenden Kommunikationsfehler zwischen unserer Controller-PCB und der Sensor-PCB.

Schaltplan für Sensorkommunikationsfehler:Schaltplan für Sensorkommunikationsfehler

Die Kommunikation schlägt fehl, es sei denn, wir tun eine oder mehrere der folgenden Maßnahmen. Dann funktioniert es einwandfrei:

  • Trennen Sie die Abschirmung von Masse (1) und lassen Sie die Abschirmung erdfrei
  • Setzen Sie einen Widerstand zwischen Schirm und Erde (1)
  • Entfernen Sie den Kondensator (2), der in den 5-V- bis 3-V-Spannungsregler geht
  • Masse irgendwo auf dem Sensor berühren (3)

Wir können nicht erklären, warum diese Korrekturen funktionieren. Wenn Sie die Abschirmung (1) erdfrei (getrennt) lassen, bedeutet dies, dass sie keinen Erdungspfad für Rauschen bietet. Der 1-µF-Kondensator (2) sollte einen Erdungspfad für Rauschen bereitstellen und die Spannung stabiler machen. Das Berühren des Sensors kann nur seine Kapazität ändern.

Wir haben versucht, die Ferritperle (FB) zu entfernen, falls eine LC-Oszillation auftrat, aber das hatte keinen Einfluss auf das Verhalten. Die Kondensatoren auf der Sensorplatine sind alle über Durchkontaktierungen mit einer Masseebene verbunden.

Könnte die Beseitigung von Rauschen durch Erdung der Abschirmung oder die Verwendung eines Kondensators die Kommunikation tatsächlich verschlechtern?

Warum würde das Berühren der Sensormasse das Problem beheben? Verändert das Hinzufügen von Kapazität den Weg des Rauschens?

Bearbeiten: Hier ist ein O-Scope-Bild des SDA-Datensignals auf der Sensorseite. Es ist ein wenig langsam auf die Anstiegszeit. Ich kann jedoch keinen Unterschied in der Wellenform feststellen, wenn ich die 4 obigen Korrekturen durchführe: /

Messwert des SDA-Datenoszilloskops auf der Sensorseite

sda o Scope lesen hautnah

Bearbeiten 2: Hier sind Teilenummern und Datenblätter.

Regler:

Sensor:

Bearbeiten 3:

Ich hatte gedacht, dass das Erdungsproblem zu einem Kommunikationsfehler führt. Beim Durchlaufen des Codes im Controller stellte ich jedoch fest, dass der Sensor das vom Controller gesendete Adress- / Schreibbyte immer noch "bestätigen" kann. Es "bestätigt" einfach nicht das Adress- / Lesebyte und sendet dann alle 1s anstelle von Sensordaten zurück. Ich denke, das bedeutet, dass der Kommunikationsteil gut funktioniert, aber irgendwie stört das Erdungsproblem die interne Verarbeitung des Sensors, sodass er keinen stabilen Messwert erhalten kann.

Wie lang ist das Kabel zwischen Controller und Sensorboard und welche Art von Kommunikation verwenden Sie? (Es sieht vielleicht aus wie I2C?). Wenn es sich um I2C (oder einen anderen Single-Ended-Typ) handelt, sollten Sie die Signale wahrscheinlich nicht miteinander verdrehen. Viel besser ist es, jedes Signal mit GND zu verdrillen oder gar kein verdrilltes Kabel zu verwenden.
@Pan Vi ja, es ist I2C, der Gurt ist normalerweise 12 bis 15 Fuß lang, aber das Verhalten ist bei einem 5-Fuß-Gurt in einem Prüfstandstest dasselbe. Ja, das macht Sinn, scl und sda wegen Übersprechen nicht zu verdrehen
Kannst du dir die Signale mit dem Oszilloskop anschauen, was passiert? Welche Klimmzüge verwendest du? Sind sie auf beiden Seiten (Controller und Sensor Board)? Sie können versuchen, den Wert zu verringern. Das Problem ist, dass Korrekturen wie "Kondensator entfernen" oft fehlschlagen, wenn Sie das Projekt von der Bank in die laute Umgebung mit allen Arten von Motoren usw. verschieben (zumindest meiner Erfahrung nach). I2C ist nicht dazu gedacht, an lange Drähte gewöhnt zu sein, versuchen Sie vielleicht, sich I2C-Extender anzusehen, so etwas wie LTC4331 ...
(2) zu tun, sollte keinen Unterschied machen.
Die grünen Linien um Ihren Controller und Sensor – sollen sie ein Metallgehäuse darstellen? Auch 15 Fuß oder sogar 5 Fuß sind zu lang, um zu erwarten, dass eine Single-Ended-Schnittstelle zuverlässig funktioniert.
@SteveSh Der Controller befindet sich in einem Metallgehäuse (Aluminium), das geerdet ist. Der Sensor befindet sich in einem eloxierten Aluminiumgehäuse, das nicht geerdet ist. Wir erden das Sensorgehäuse nicht, um eine Masseschleife zu vermeiden. Ja, ich stimme zu, dass I2C nicht dafür gedacht ist, es ist ein Produkt, das seit etwa 6 Jahren auf dem Markt ist und funktioniert, dank einiger cleverer Maßnahmen, damit es über diese Entfernung funktioniert. Langfristiges Umschalten auf eine differenzielle Schnittstelle wie CANBus oder eine Stromschnittstelle würde diese Erdungsprobleme verhindern
@Andy alias ich weiß, oder? Es behebt das Problem jedoch. Ich habe eine RLC-Oszillation ausgeschlossen, da das Entfernen der Ferritperle nichts behebt. Könnte dieser Kondensator das Grundrauschen herausfiltern, das der Sensor benötigt, um eine Grundübereinstimmung mit dem Controller zu haben?
@Pan Vi danke für die detaillierten Vorschläge. Ich habe einige Oszilloskop-Screenshots auf der Sensorseite zum SDA-Datensignal hinzugefügt. Wir verwenden 10k Klimmzüge. Ich habe versucht, sie auf 5k zu senken, und es macht in keiner Weise einen Unterschied (Kommunikation schlägt ohne die 4 obigen Fixes fehl, ist mit den 4 obigen Fixes erfolgreich). Es hat die Wellenform jedoch quadratischer aussehen lassen, also wette ich, dass das ein Gewinn ist. Vielleicht sollte ich versuchen, auf 2k zu gehen, da dies der Sensorhersteller vorschlägt.
@pan vi Ich stimme zu, dass das Entfernen des Kondensators mir Sorgen macht, und wir haben festgestellt, dass das Entfernen dieses Kondensators sogar auf der Bank dazu führt, dass die Sensoren leicht nicht übereinstimmen und gelegentlich "Spitzen" -Messwerte haben.
@pan vi das ist ein cooler Vorschlag. Es sieht so aus, als würde es den Open-Drain-I2C in ein Differenzsignal und dann wieder zurück umwandeln. Ich wette, das wäre wirklich robust.
Bitte geben Sie einige Geräteteilenummern an.
"Setzen Sie einen Widerstand zwischen Abschirmung und Masse (1)" - Welchen Widerstandswert und wo genau haben Sie ihn platziert?
@Kevin White gute Idee, bearbeitet, um einige Teilenummern hinzuzufügen
@ Bruce Abbott 100 Ohm. Die Abschirmung ist über die Überwurfmuttern an einem M12-Steckverbinder mit dem Metallgehäuse der Steuerungsplatine geerdet. Wir verwenden einen Draht mit einer Öse, um das Metallgehäuse des Controllers mit dem Erdungsknoten der Leiterplatte zu erden, der mit der Fahrzeugbatterie geerdet ist. Wir haben den Draht an der Öse abgeschnitten und den Widerstand dort eingefügt, um die Abschirmung von Masse zu trennen.
Fahrzeugmasse, rechts. Berührt das Sensorgehäuse normalerweise auch etwas, das geerdet ist (z. B. den Motor), oder ist es isoliert?
@BruceAbbott Das Sensorgehäuse ist am Fahrzeugchassis montiert, manchmal aus Metall und manchmal aus Kunststoff. Das Sensorgehäuse besteht innen und außen aus eloxiertem Aluminium, sodass selbst bei Kratzern auf der Außenseite das Innere isoliert ist. Für dieses spezielle Problem haben wir festgestellt, dass das Verhalten gleich ist, egal ob am Fahrzeug montiert oder auf dem Prüfstand ohne Sensorgehäuse

Antworten (2)

Eine sehr gut gestellte Frage.

Sie suchen an der falschen Stelle; Lärm ist nicht dein Problem. Dies ist ein Erdungsproblem. Wenn Ihre Sensorschaltung wie beim Senden hochfrequenten Strom zieht, bedeutet die Impedanz der Stromleitung, dass die Spannung der Schaltung am Sensorende deutlich von der am Mikrocontrollerende abweicht. Dies bedeutet, dass Ihre Masse auf unterschiedlichen Spannungspegeln liegt. Sie können dieses Problem verringern, indem Sie Lasten an den Enden der Übertragungsleitung entfernen oder reduzieren oder die Erdverbindung verbessern, wie Sie es demonstriert haben.

Da die Masse auf der Seite des Mikrocontrollers nicht die gleiche Momentanspannung hat wie die Masse auf Ihrem Sensorende, ist die Verwendung eines Spannungssignals für die Kommunikation mit der Stromversorgungsmasse als Signalreferenz nicht ideal. Aus diesem Grund verwenden viele Sensordesigns mit Kabeln Strom statt Spannung oder fügen dem Kommunikationssignalkreis Paare mit Optokopplern hinzu, um dieses Problem zu vermeiden. Beide Ansätze würden Ihr Design kugelsicherer machen.

Viel Glück!

Vielen Dank für Ihren Hinweis auf die Grunduneinigkeit. Das würde erklären, warum der Kondensator schädlich war, er "entkoppelte" die Gründe, wie es sein sollte, und brachte sie dazu, nicht einverstanden zu sein. Ich wette, durch das Berühren des Sensors konnte ein Teil seines Hochfrequenzstroms absorbiert werden, wodurch die Übereinstimmung zwischen den Massen verbessert wurde. Und das Trennen der Abschirmung würde auch die Meinungsverschiedenheiten zwischen den Erdungen verbessern, da die Abschirmung kein Rauschen auf der Steuerungsseite abgibt (und auch als Abschirmung nicht wirksam ist).
Ihr Punkt führte uns zu einem interessanten Fix. Um einen Teil des Hochfrequenzstroms abzusaugen, haben wir die Abschirmung an das Erdungskabel innerhalb des Kabelbaums in der Nähe des Sensors gelötet (im Diagramm als X dargestellt). Diese Lösung hat sich in unserem Feldtest als sehr robust erwiesen, selbst wenn unser 15-Fuß-Kabelbaum um die lauten Komponenten im Motor gewickelt ist. Es fühlt sich immer noch ein bisschen wie Voodoo an, aber wir haben etwas für die mehreren tausend Einheiten in der Produktion, während wir an einer langfristigen Lösung arbeiten
Eine Frage zu den Gründen, die nicht zustimmen. Wenn das wirklich der Fall ist, sollte ich es auf dem Oszilloskop abholen können? Ich habe versucht, das Gelände an beiden Enden zu untersuchen und das Oszilloskop so einzustellen, dass es ausgelöst wird, wenn sie unterschiedlich sind, aber der größte Unterschied, den ich feststellen konnte, war 150 mV, selbst bei einer Auflösung von 20 ns. Und diese 150 mV sind im Grunde das Grundrauschen. Ich bekomme den gleichen Unterschied, wenn ich nur die beiden Sonden zusammenhänge.
Freut mich zu hören, dass Sie eine Lösung haben! Ich denke, Sie werden feststellen, dass ein Oszilloskop es anzeigt, je nachdem, wo es geerdet ist. Oft ist ein Oszilloskop über die Erdung Ihrer Stromleitung geerdet, sodass das Anschließen des Erdungskabels von der Oszilloskopsonde Ihr Erdungsschema ändert oder verbessert.
Sie können die Auswirkungen der Erdung des Oszilloskops möglicherweise sehen, indem Sie die Erdung des Oszilloskops mit der Schaltungserde in der Nähe und weit entfernt von dem zu messenden Signal berühren. Ich denke, Sie könnten einen Unterschied in den "Spitzen" sehen, die wahrscheinlich tatsächlich durch den Bodenunterschied verursacht werden.

Diese negative Spitze sieht ziemlich stark aus, vielleicht 1,5 V oder so. Das liegt außerhalb der normal zulässigen Spannung für Mikrocontroller-Pins.

Geben Sie hier die Bildbeschreibung ein

Schwer zu sagen, woher es kommt, aber meiner Meinung nach könnten Sie versuchen, einen kleinen Widerstand wie 100R in Reihe mit dem Signal hinzuzufügen, um die fallende Flanke etwas zu verlangsamen. Wenn der Pullup 10k beträgt, hindert dieser niedrige Wert ihn nicht daran, die Spannung herunterzuziehen, wenn es nötig ist.

Ich hatte diesen Einbruch gesehen und mich gefragt, ob er signifikant war. Ihr Standpunkt zur zulässigen Pin-Spannung des Mikrocontrollers ist absolut richtig. Ich werde versuchen herauszufinden, woher diese negative Spitze kommt. Es gibt eine ESD-Schutz-Lenk- / Fernsehdiode auf den i2c-Leitungen im Sensor, ich frage mich, ob das der Schuldige sein könnte. Das Hinzufügen von Vorwiderständen scheint eine gute Lösung zu sein, ich werde es versuchen und Sie wissen lassen