bearbeiten / tl; dr: Der Set / Reset-Strap-Treiber ist eine H-Brückenschaltung, um 10 mA Gleichstrom an einen Strap zu liefern, der vorübergehend einen Magnetfeld-Offset von etwa 1,1 Gauß erzeugt. Eine Änderung der Messung vor und während dieses Feldversatzes kann als Fertigungstest zur Bestätigung der Funktionsfähigkeit des Geräts verwendet werden. Allerdings sollen diese Bänder auch zum Entmagnetisieren funktionieren, aber ich habe immer noch keine klare Anleitung gefunden, wie man sie zum Entmagnetisieren des Sensors verwendet . Üblicherweise erfolgt die Entmagnetisierung makroskopischer Objekte mit einem Wechselstromfeld, dessen Amplitude langsam abnimmt.
Wenn ich Entmagnetisierung höre , denke ich an das Anlegen eines oszillierenden (AC) externen Magnetfelds an ein magnetisiertes ferromagnetisches Material und dann an das langsame Herunterfahren der Amplitude des Oszillationsfelds auf Null, um fast die gesamte Restmagnetisierung zu entfernen. Automatische (und manuelle) Entmagnetisierungsmagnetköpfe auf Tonbandgeräten und magnetische Abschirmung auf CRTs sind einige Beispiele.
Eine kurze Lektüre dieses Artikels zeigt jedoch, dass der Begriff Entmagnetisierung auch für die Aufhebung der externen Felder gilt, die sich aus der Magnetisierung von Materialien ergeben, indem eine oder mehrere Spulen, die durch einen Gleichstrom erregt werden, das Feld innerhalb einer gewissen Endlichkeit "aufheben". Region. Das Beispiel gibt es große Spulen auf Schiffen, um die Felder aufzuheben, die von den ferromagnetischen Schiffsrümpfen herrühren, die externe Felder erzeugen, die durch das Erdmagnetfeld angeregt werden.
Wie funktioniert die Entmagnetisierungsfunktion im Fall des HMC5883L 3-Achsen-Digitalkompass-Chips oder eines ähnlichen Typs von magnetoresistiven Sensoren? Gibt es tatsächlich Spulen innerhalb des Chips, die Gleichstrom führen sollen, um einige Felder aufzuheben? Wie geht das - wie werden die Ströme richtig berechnet und angelegt?
Hier ist HMC5883L_3-Axis_Digital_Compass_IC.pdf , wo es heißt:
Merkmal: Eingebaute Riemenantriebsschaltungen
Vorteil: Set/Reset- und Offset-Bandtreiber für Entmagnetisierung, Selbsttest und Offset-Kompensation
oben: Screenshot aus dem Datenblatt . Es gibt separate OFFSET STRAP DRIVER
und SET/RESET STRAP DRIVER
Schaltungsblöcke, und sie scheinen separat steuerbar zu sein.
Ich weiß, dass dies ein alter Thread ist, aber ich bin darauf gestoßen, als ich versuchte, ein Problem mit meinem Quadcopter-Kompass zu lösen. Ich denke, die Verwirrung über das "Entmagnetisieren" des HMC5883L kommt von scheinbar zwei Funktionen, die mit der Riemen- / H-Brückenschaltung verbunden sind. Eine Funktion ist der Selbsttest, bei dem die Brücke/H-Brücke 1,1 Gauss basierend auf einem Strom von 10 mA erzeugt; Die zweite Funktion der Schaltung besteht darin, einen viel höheren Strom zum "Entmagnetisieren" zu pulsieren. Dieser Strom wird von einem externen Kondensator (nominell 0,22 uf) bezogen und soll ziemlich hoch und von kurzer Dauer sein (beachten Sie im Datenblatt die Anforderung für einen Kondensator mit niedrigem ESR). Es scheint auch (wenn auch weniger klar aus dem Datenblatt), dass der Sensor "gepulst" wird, dann gelesen und dann "gepulst zurückgesetzt" wird. und erneut gelesen und die beiden Ablesungen werden subtrahiert, um Restmagnetismus und Temperaturdrift zu berücksichtigen. Das würde bedeuten, dass die "Entmagnetisierungs"-Aktion für jeden Lesevorgang auftritt. Dies scheint darauf hinzudeuten, dass es nicht bei Bedarf befohlen werden kann, sondern automatisch als Teil jedes Lesevorgangs geschieht. Was mich nun wundert, wie gut die interne Degauss-Funktion wirklich funktioniert, wenn der Chip sehr hohen Feldern ausgesetzt wird und wie lange es dauert (wie viele Lesezyklen), bis sie funktioniert (vorausgesetzt, ich verstehe die Funktionsweise richtig).
100
guten Ruf bringen, sodass Sie anfangen können, Kommentare zu hinterlassen.Entmagnetisierung wird traditionell als Entmagnetisierungsvorgang angesehen. Es ist hier passend, aber Sie müssen sich diese Magnetisierung in Bezug auf ihre überlagerten Komponenten vorstellen.
Betrachten Sie diesen Magneten in einem Magnetfeld:
Dies erfahren die Sensorelemente in der Erde (oder einem anderen externen Feld). Die "Messung" ist eigentlich die Auslenkung der Nadel von einem bekannten Referenzpunkt (in diesem Beispiel die Mitte der Skala) zu einem Punkt auf der Skala, der durch die Stärke des/der externen Feldes/Felder erzeugt wird.
Wenn im Laufe der Zeit ein konstantes (oder ungleiches) externes Feld angelegt wird, verliert die "Feder" schließlich etwas an Rückstellkraft (Spannung). Wenn Sie dann die äußere Kraft entfernen, kehrt die Nadel nicht ganz zurück in die Mitte.
Im Fall der magnetoresistiven Vorrichtung ist das Äquivalent eine Verschiebung des magnetischen Ausrichtungsvektors. Die Domäne der subatomaren Partikel ist auf das Ursprungsfeld ausgerichtet, und wenn Sie ein zusätzliches Feld hinzufügen, werden die Partikel von dieser Domäne weg ausgerichtet, wodurch sich der elektrische Widerstand des Geräts ändert.
Wie bei der mechanischen Feder führt jedoch die langfristig konsistente Belichtung zu einer allmählichen Neuausrichtung des Ursprungsbereichs, und der Sensor kann das externe Feld nicht mehr als von seinem "ursprünglichen" Referenzfeld unterscheidend erkennen.
Um dies zu beheben, sind Entmagnetisierungsspulen vorhanden, die einen starken lokalen Impuls (kurzzeitige Kraft) liefern, um alle diese äußeren Einflüsse zu entfernen und die magnetische Domäne in ihre ursprüngliche Ausrichtung zurückzusetzen, wodurch der Wandler neu kalibriert wird.
In gewissem Sinne wird das Gerät also entmagnetisiert ... indem es in die ursprüngliche Ausrichtung zurückmagnetisiert und die überschüssige Magnetisierung entfernt wird.
Für jedes spezifische Gerät finden Sie das tatsächliche Aktivierungsverfahren für die Entmagnetisierungsspulen im Datenblatt. Typischerweise besteht es aus zwei Leitungen, die entgegengesetzt angesteuert werden, um Strom in einer Richtung durch die Spule und dann in die umgekehrte Richtung zu leiten, indem die Polarität der beiden Signale umgedreht wird. Es gibt oft einen internen Verstärker in dem Teil zwischen den Steuerstiften und den eigentlichen Spulen, so dass die Eingänge sicher hochohmig bleiben und nicht zu viel Strom von dem ziehen, was die Steuerstifte antreibt (typischer Mikrocontroller). .
Die schwierigeren Fragen sind, wann und wie oft dieses Verfahren durchgeführt werden soll – das ist der Kern der Frage und die Quelle der Frustration des OP.
Datenblätter enthalten keine Antworten auf diese Fragen, da sie anwendungsspezifisch sind . Entmagnetisierungsvorgänge sind mit hohen Energie- und Interferenzkosten (EMV) verbunden. Sie müssen entmagnetisieren, wenn Ihr Sensor genug Leistung verliert, um Ihre Anwendung zu beeinträchtigen.
Leistung ist die Kombination aus Sensibilität und Toleranz. Die Geschwindigkeit, mit der der Sensor driftet (Empfindlichkeit verliert oder Offset hinzufügt) ist eine Funktion der Umgebung (wie stark und unausgeglichen sind die externen Felder). Die Drift (Fehler), die Sie für tolerierbar halten, hängt von Ihrer Anwendung ab (wie tief ist Ihr ADC-Grundrauschen, wie fehlertolerant sind Ihre Algorithmen usw.).
Wenn Sie kein externes Ereignis zur Verfügung haben, das Sie als Warnzeichen für eine verringerte Leistung verwenden können, besteht die gängige Praxis darin, einfach in regelmäßigen Abständen zurückzusetzen.
Hier ist ein Anwendungshinweis, der die Set/Reset-Funktion erklärt: https://aerospace.honeywell.com/~/media/aerospace/files/application-note/an213_set_reset_function_of_magnetic_sensors.pdf
Um in die Details zu gehen, hat dieser IC echte Entmagnetisierungs-/Kalibrierungsspulen, die eher ein Streifen als eine Spule sind. Die Kalibrierungsverfahren sind die letzten Absätze. Dies wird direkt aus dem von Ihnen geposteten Datenblatt zitiert.
HMC5883L
www.honeywell.com 9
GRUNDLEGENDE GERÄTEBEDIENUNG
Anisotrope magnetoresistive Sensoren
Die magnetoresistive Sensorschaltung HMC5883L von Honeywell ist ein Trio aus Sensoren und anwendungsspezifischen Hilfsschaltungen zur Messung von Magnetfeldern. Bei angelegter Stromversorgung wandelt der Sensor jedes einfallende Magnetfeld in Richtung der empfindlichen Achse in eine Differenzspannungsausgabe um.Die magnetoresistiven Sensoren bestehen aus einem Nickel-Eisen (Permalloy)-Dünnfilm und sind als Widerstandsstreifenelement strukturiert. Bei Vorhandensein eines Magnetfelds bewirkt eine Änderung der Brückenwiderstandselemente eine entsprechende Spannungsänderung an den Brückenausgängen. Diese Widerstandselemente sind so ausgerichtet, dass sie eine gemeinsame empfindliche Achse haben (durch Pfeile im Pinout-Diagramm angegeben), die eine positive Spannungsänderung mit zunehmenden Magnetfeldern in der empfindlichen Richtung liefern.
Da die Ausgabe nur proportional zur Magnetfeldkomponente entlang ihrer Achse ist, werden zusätzliche Sensorbrücken in orthogonalen Richtungen platziert, um eine genaue Messung des Magnetfelds in jeder Ausrichtung zu ermöglichen.
Selbsttest
Um den ordnungsgemäßen Betrieb des HMC5883L zu überprüfen, ist eine Selbsttestfunktion integriert, bei der der Sensor intern mit einem nominalen Magnetfeld erregt wird (entweder in positiver oder negativer Vorspannungskonfiguration). Dieses Feld wird dann gemessen und gemeldet. Diese Funktion wird aktiviert und die Polarität wird durch die Bits MS[n] im Konfigurationsregister A eingestellt.
Eine interne Stromquelle erzeugt Gleichstrom (ca. 10 mA) aus der VDD-Versorgung. Dieser Gleichstrom wird an die versetzten Bänder des magnetoresistiven Sensors angelegt, wodurch eine künstliche Magnetfeldvorspannung auf dem Sensor erzeugt wird . Die Differenz dieser Messung und der Messung des Umgebungsfeldes wird in das Datenausgaberegister für jede der drei Achsen eingegeben.
Durch die Verwendung dieser eingebauten Funktion kann der Hersteller die volle Funktionalität des Sensors nach der Montage ohne zusätzlichen Testaufbau schnell überprüfen. Die Selbsttestergebnisse können auch verwendet werden, um die Empfindlichkeitsdrift des Sensors aufgrund der Temperatur abzuschätzen/kompensieren. Für jede „Selbsttestmessung“:
1. sendet einen „Set“-Impuls
2. nimmt eine Messung vor (M1)
3. sendet den (~10 mA) Offset-Strom, um das (~1,1 Gauss) Offset-Feld zu erzeugen und nimmt eine weitere Messung (M2)
4. Schreibt die Differenz der beiden Messungen in das Datenausgaberegister des Sensors:SELBSTTESTBETRIEB
Um den ordnungsgemäßen Betrieb des HMC5883L zu überprüfen, ist eine Selbsttestfunktion integriert, bei der die Sensor-Offsetbänder erregt werden, um eine zu messende Nennfeldstärke (Vorspannungsfeld) zu erzeugen.Um den Selbsttest zu implementieren, werden die niedrigstwertigen Bits (MS1 und MS0) des Konfigurationsregisters A von 00 auf 01 (positive Vorspannung) oder 10 (negative Vorspannung) geändert. Dann werden durch Versetzen des Modusregisters in den Einzel- oder kontinuierlichen Messmodus zwei Datenerfassungszyklen an jedem Magnetvektor durchgeführt. Die erste Erfassung wird ein gesetzter Puls sein, kurz darauf folgen Messdaten des externen Feldes.
Bei der zweiten Erfassung wird das versetzte Band (etwa 10 mA) im positiven Vorspannungsmodus für die X-, Y- und Z-Achse erregt, um etwa ein 1,1-Gauß-Selbsttestfeld plus das externe Feld zu erzeugen. Die ersten Erfassungswerte werden von der zweiten Erfassung subtrahiert, und die Nettomessung wird in die Datenausgaberegister gestellt.
Da der Selbsttest der vorhandenen Feldstärke ein zusätzliches Feld von ~1,1 Gauss hinzufügt, verhindert die Verwendung einer reduzierten Verstärkungseinstellung, dass der Sensor gesättigt wird und die Datenregister überlaufen. Wenn beispielsweise das Konfigurationsregister B auf 0xA0 (Gain=5) eingestellt ist, werden Werte um +452 LSb (1,16 Ga * 390 LSb/Ga) in die X- und Y-Datenausgaberegister und um +421 (1,08 Ga * 390 LSb/Ga) werden im Z-Datenausgaberegister platziert.
Um den Selbsttestmodus zu verlassen, ändern Sie die Bits MS1 und MS0 des Konfigurationsregisters A zurück auf 00 (normaler Messmodus). Akzeptable Grenzen der Selbsttestwerte hängen von der Verstärkungseinstellung ab. Grenzwerte für Verstärkung = 5 sind in der Spezifikationstabelle angegeben.
Unten sehen Sie ein Beispiel für einen „positiven Selbsttest“ -Prozess im kontinuierlichen Messmodus:
Write CRA (00) – send 0x3C 0x00 0x71 (8-Average, 15 Hz default, positive Selbsttestmessung)
Write CRB (01) – sende 0x3C 0x01 0xA0 (Gain=5)
Schreibmodus (02) – sende 0x3C 0x02 0x00 (kontinuierlicher Messmodus)
6 ms warten oder Statusregister oder Hardware-Interrupt-Pin DRDY überwachen
Loop Send 0x3D 0x06 (Lesen Sie alle 6 Bytes. Wenn die Verstärkung geändert wird, verwendet dieser Datensatz die vorherige Verstärkung) Konvertieren Sie drei 16-Bit-2er-Komplement-Hex-Werte in Dezimalwerte und weisen Sie sie X, Z bzw. Y zu. Senden Sie 0x3C 0x03 (zeigen Sie auf das erste Datenregister 03). Warten Sie etwa 67 ms (bei einer Rate von 15 Hz) oder überwachen Sie das Statusregister oder den DRDY-Hardware-Interrupt-Pin.
End_loop
- Grenzwerte prüfen – Wenn alle 3 Achsen (X, Y und Z) innerhalb angemessener Grenzen liegen (243 bis 575 für Verstärkung = 5), passen Sie diese Grenzen basierend auf der verwendeten Verstärkungseinstellung an. Siehe Beispiel unten.) Dann werden alle 3 Achsen positiv bestanden Selbsttest CRA schreiben (00) – 0x3C 0x00 0x70 senden (Selbsttestmodus und dieses Verfahren verlassen)
Else If Gain<7 CRB schreiben (01) – 0x3C 0x01 0x_0 senden (Erhöhen Sie die Verstärkungseinstellung und versuchen Sie es erneut, überspringen Sie den nächsten Datensatz)Else Mindestens eine Achse hat den positiven Selbsttest nicht bestanden.
Write CRA (00) – send 0x3C 0x00 0x70 (Verlassen des Selbsttestmodus und dieses Verfahrens)End If
Unten ist ein Beispiel dafür, wie die „Positiv Self“-Testgrenzen basierend auf der Verstärkungseinstellung angepasst werden:
Wenn Gain = 6, sind die Selbsttestgrenzen: Low Limit = 243 * 330/390 = 206 High Limit = 575 * 330/390 = 487
Bei Verstärkung = 7 sind die Selbsttestgrenzen: Untergrenze = 243 * 230/390 = 143 Obergrenze = 575 * 230/390 = 339
Andi aka
äh
Andi aka
äh
Andi aka
äh
Benutzer105652
äh
Benutzer105652
äh
Benutzer105652
äh