Spinning Current Hall-Sensor
Integrierte Hall-Sensoren (Allegro, Infineon, TI) haben Spinning Current eingebaut -- aber als Black Box. Man sieht nicht was passiert. In diesem Projekt bauen wir Spinning Current extern auf, mit einem nackten Hall-Element und diskreter Ansteuerung. Alles offen, alles messbar.
Warum dieses Projekt?
Ein nacktes Hall-Element hat eine Offset-Spannung -- auch ohne Magnetfeld liegt am Ausgang nicht exakt 0V. Bei einem typischen Silizium-Hall-Element können das 10--50 mT Äquivalent sein. Das ist ein Problem: Wenn du das Erdmagnetfeld messen willst (~50 µT), ist dein Offset 1000× größer als das Signal.
Integrierte Hall-ICs lösen das intern mit Spinning Current. Aber die Details sind verborgen. Hier machen wir das Ganze von außen, mit einem diskreten Hall-Element und einer eigenen Ansteuerung. So kann man jeden Schritt messen, jede Phase einzeln betrachten, und verstehen was wirklich passiert.
Das Prinzip
Die Theorie ist ausführlich im Hall-Sensor Artikel beschrieben. Hier die Kurzfassung:
Ein symmetrisches Hall-Element hat 4 Kontakte. Durch Rotation der Kontaktbelegung (welcher Kontakt bekommt Strom, welcher wird gemessen) ändert sich das Vorzeichen des Hall-Signals -- der Offset bleibt aber ortsfest im Kristall. Durch Mittelung über einen vollen Zyklus hebt sich der Offset auf.
4-Phasen-Zyklus
| Phase | Strom | Messung | Hall-Signal | Offset |
|---|---|---|---|---|
| 1 | Aa → Ac | Ab − Ad | \(+V_H\) | \(+V_{off}\) |
| 2 | Ab → Ad | Ac − Aa | \(+V_H\) | \(-V_{off}\) |
| 3 | Ac → Aa | Ad − Ab | \(+V_H\) | \(+V_{off}\) |
| 4 | Ad → Ab | Aa − Ac | \(+V_H\) | \(-V_{off}\) |
Mittelwert: \(\bar{V} = V_H + \frac{1}{4}(+V_{off} - V_{off} + V_{off} - V_{off}) = V_H\)
Der Offset ist exakt eliminiert -- keine Näherung.
Hardware
Stückliste
| Bauteil | Typ | Bezugsquelle | Bemerkung |
|---|---|---|---|
| Hall-Element | AKM HG106C | Mouser | GaAs, 4-Terminal, SOT-143 |
| Gate Driver (4×) | TC4424A | Mouser | Dual MOSFET Driver, schaltet Stromrichtung |
| Controller | Teensy 4.1 | PJRC | iMXRT1062, 600 MHz ARM Cortex-M7 |
| Breakout-Board | SOT-143 Adapter | diverse | HG106C ist SOT-143 — braucht Adapter für Breadboard |
Warum AKM HG106C?
Wir verwenden bewusst ein GaAs-Element statt Silizium:
- GaAs hat ~6× höhere Elektronenbeweglichkeit als Si (\(\mu_n \approx 8500\) vs. \(1400\) cm²/Vs) → höhere Empfindlichkeit
- Die HG106C ist ein nacktes 4-Terminal-Element -- kein integrierter IC, keine versteckte Signalverarbeitung
- 4 Kontakte (Aa, Ab, Ac, Ad) symmetrisch → direkt geeignet für Spinning Current
- Verfügbar bei Mouser als Einzelstück
Warum TC4424A als Schalter?
Die 4 Kontakte des Hall-Elements müssen schnell zwischen Strom und Messung umgeschaltet werden. Der TC4424A ist ein Dual-MOSFET-Gate-Driver:
- 2 unabhängige Kanäle (A und B) pro IC → 4 ICs für 8 Schaltpfade
- Kanal A: Strom-Pfad (Bias-Versorgung)
- Kanal B: Mess-Pfad (Sense-Ausgang)
- Schnelle Schaltzeiten (~30 ns) → Phasendauern bis in den Nanosekundenbereich
- TTL-kompatible Eingänge → direkt vom Teensy ansteuerbar
Pin-Belegung Teensy 4.1
| IC | Kontakt | inpA (Strom) | inpB (Messung) |
|---|---|---|---|
| IC1 | Aa | Pin 31 | Pin 30 |
| IC2 | Ab | Pin 29 | Pin 28 |
| IC3 | Ac | Pin 27 | Pin 26 |
| IC4 | Ad | Pin 12 | Pin 11 |
Jeder TC4424A hat zwei Eingänge: inpA steuert den Bias-Strom, inpB den Mess-Ausgang. Pro Phase wird genau ein inpA und ein inpB auf HIGH gesetzt.
Firmware
Zwei Versionen existieren:
Arduino-Version (HallBiasing.ino)
Einfachere Variante, nutzt Teensy-spezifische digitalWriteFast() und delayNanoseconds(). Für den schnellen Einstieg.
Zephyr RTOS-Version (main.c)
Produktionsnahe Variante auf Zephyr 2.7 via PlatformIO. Verwendet ARM DWT Cycle Counter für Nanosekunden-Timing.
Serielle Kommandos
Beide Versionen verwenden dasselbe Protokoll (USB Serial, Newline-terminiert):
| Kommando | Funktion |
|---|---|
STOP |
Alle Pins LOW, Leerlauf |
CYCLE:n,s |
n-Phasen-Zyklus (n=2 oder 4), Start bei Phase s (1--4) |
FREQ:xxxxx |
Phasendauer in Nanosekunden setzen |
STATIC:s |
Phase s dauerhaft halten (für Einzelmessung) |
STATUS |
Aktuellen Zustand abfragen |
Timing
Der iMXRT1062 auf dem Teensy 4.1 läuft mit 600 MHz -- ein Taktzyklus ist 1,67 ns. Über den ARM DWT Cycle Counter (k_cycle_get_32() in Zephyr, ARM_DWT_CYCCNT direkt) können wir Phasendauern im Nanosekundenbereich steuern.
Default: 10 µs pro Phase → 25 kHz Zyklusfrequenz bei 4 Phasen.
Kontinuierlicher Strom
Ein wichtiges Detail: Beim Phasenwechsel geht der Strom des nächsten Kontakts zuerst an, bevor der aktuelle abgeschaltet wird. So fließt immer ein Biasstrom durch das Hall-Element -- es gibt keinen stromlosen Moment. Das vermeidet Einschwingeffekte.
// Phase transition: next ON before current OFF
pin_high(dev_a[next], inp_a[next].pin); // next current ON
pin_low(dev_a[cur], inp_a[cur].pin); // current OFF
Python-GUI
Die Steuerung erfolgt über eine Python/Tkinter-GUI (hall_ui.py), die über USB Serial mit dem Teensy kommuniziert:
- Verbindung: Auto-Erkennung des Teensy USB-Ports (
usbmodem) - Modi: Stop, 2-Phasen-Zyklus, 4-Phasen-Zyklus, statische Phase
- Frequenz: Log-Schieberegler von 0.1 Hz bis 1 MHz
- Startphase: Wählbar (Ph 1--4, Kontakte Aa--Ad)
- Serial Log: Live-Anzeige der Kommunikation
Geplante Messungen
- Offset-Bestimmung: Statische Phase, kein Magnetfeld → Offset-Spannung pro Kontaktpaar messen
- Spinning Current Kompensation: 4-Phasen-Zyklus, kein Magnetfeld → Restoffset nach Mittelung
- Empfindlichkeit: Bekanntes Magnetfeld (Permanentmagnet mit bekannter Feldstärke) → \(V_H\) vs. \(B\) Kennlinie
- Frequenzabhängigkeit: Offset-Kompensation bei verschiedenen Zyklusfrequenzen (1 Hz bis 100 kHz)
- Si vs. GaAs Vergleich: Gleiche Messung mit einem Silizium-Hall-Element zum Vergleich
Bezugsquellen
Alle Bauteile für dieses Projekt:
- Spinning Current Kit (LM334 + 4× TC4424A + 4× WIMA): blueberrye.io (Werbung)
- LM334MX: blueberrye.io (Werbung) · Mouser · DigiKey
- TC4424A: blueberrye.io (Werbung) · Mouser · DigiKey
- WIMA MKS2 1µF: blueberrye.io (Werbung) · Mouser · Reichelt
- Hall-Element AKM HG106C: Mouser
- Teensy 4.1: PJRC
Weiterführendes
- Hall-Sensoren: Physik, Typen und Praxis -- Theorie, Spinning Current im Detail, Wheatstone-Brücke-Modell
- Die Lorentzkraft -- die Physik hinter dem Hall-Effekt, vom Kreuzprodukt bis zur Hallspannung
- LM334: Einstellbare Konstantstromquelle -- Bias-Stromquelle für Hall-Elemente
- Zephyr RTOS auf dem Teensy 4.1 -- Zephyr/PlatformIO Setup
- Diskretes Transfergate -- verwandtes Projekt (analoge Schalter für Hall-Signale)