Hi,

ich habe ein für mich mangels Erfahrung unerklärliches Problem beim Messen der X-Komponente von meinem Dreiachs-Magnetfeldsensor MicroMag3 (Sensor-Modul, bezogen von Sparkfun).

Kurze Erläuterung:
Der Sensor ist über SPI verbunden mit einem ATmega88, wird mit 5V (nahe der Obergrenze) und ohne Verwendung der DRDY-Leitung (Data ready) betrieben, soweit mit dem Datenblatt vereinbar.
Die Messung sieht so aus: Es werden pro Mess-Zyklus nacheinander die drei Komponenten des Magnetfeld-Vektors gemessen. Für die Messung einer dieser Komponenten wird kurz eine Reset-Leitung für den Sensor geschaltet, dann über ein Controlbyte der Befehl (im Wesentlichen Messdauer und Achse) zum Messen geschickt, dann wird die Messdauer über gewartet und anschließend der 16Bit-Messwert (uint-Format) eingelesen. Kommunikation hier nur über SPI.

Testweise werden die Messwerte numerisch und visualisiert als Vektor in Echtzeit mit einer kleinen Delphi-Applikation (mit OpenGL) angezeigt, welche die Daten mit etwa 40-50Hz seriell vom ATmega88 bekommt.

Nun funktioniert alles wie es soll, allerdings nur für die Y- und Z-Komponente. Ich habe mit verschiedenen Einstellungen für die Messdauer eine Messung der X-Komponente versucht, bekomme aber immer nur 2 leere Bytes vom Sensor zurück.
Der Code für die drei Achsen ist bis auf die Achsen-Information im Controlbyte identisch.
Es besteht keine Zugriffsmöglichkeit über SPI auf die Register des Sensormoduls. Ich kann also nicht sicher sagen, ob eine Messung durchgeführt wird oder nicht. Habe sonst auch keine Status-Information.

Hatte jemand schon einmal ein ähnliches Problem (Fehler mit einer Komponente o.Ä. trotz identischer Ansteuerung), gibt es etwa Erfahrung mit Magnetfeldsensoren dieser Art, gibt es einen grundlegenden Fehler/ eine Fehlerquelle im Aufbau?

Danke für jede Hilfe,

Gruß
Martin