Gforce2MSP

Ziel

Bei dem “Gforce2MSP” handelt es sich um einen 3-D Beschleunigungsmesser. Als Beschleunigungssensoren werden zwei ADXL202 eingesetzt, die einen Messbereich von +/-2G haben. Die Ausgabe der Messergebnisse erfolgt über eine RS232-Schnittstelle. Als Mikrocontroller wird auf dieser Schaltung ein MSP430F1232 eingesetzt.

Draufsicht auf die bestücke Platine

Ansicht von der Seite

Schaltungsbeschreibung

Bei dem ADXL202 handelt es sich um einen zwei Achsen Beschleunigungssensor von Analog Devices, der die Messergebnisse direkt digital ausgibt. Die Ausgabe der Daten erfolgt über Pulsweitenmodulation. Der Grad der Aussteuerung ergibt dabei einen linearen Zusammenhang zu der gemessenen Beschleunigung. Die Grundfrequenz mit der die Ausgabe der Messdaten erfolgt kann für beide Achsen gleichzeitig über einen externen Widerstand festgelegt werden. Über einen externen Kondensator kann außerdem für jede Achse getrennt festgelegt werden, welche Bandbreite die Sensoren im Frequenzbereich haben.

Da die zwei Messachsen des ADXL in einer Ebene liegen, muss für eine 3-Achsen Messung der Beschleunigung ein zweiter Sensor mit einem Winkel von 90° vertikal zu dem anderen Sensor platziert werden. Aus diesem Grund wurde der zweite Sensor auf eine kleine Zusatzplatine ausgelagert, wie in der oberen Abbildung zu erkennen ist.

Die Messung und Umrechnung der drei Sensorsignale erfolgt durch einen MSP430F1232. Die Pulssignale sind direkt an die Capture-Eingänge des Timermoduls A angeschlossen. Die Ausgabe der Messergebnisse erfolgt über einen RS232-Wandler von dem USART-Modul des Controllers. Weiterhin ist der Controller mit 3 Low Current LEDs beschaltet. Diese LEDs dienen nur als Statusleuchten.

Die Spannungsversorgung der Schaltung erfolgt mit einer externen stabilisierten Spannungsquelle im Bereich von 3.3V bis 3.6V.

Hier der vollständige Schaltplan mit Materialliste und Layouts:

Softwarebeschreibung

Die Aufgabe der Software ist es die Pulslängen der drei Sensorsignale zu messen und aus diesen Daten die Beschleunigung in mg zu berechnen und auszugeben. Bei der Berechnung der Beschleunigung wird jeweils ein Mittelwert aus einer definierten Anzahl Messwerte gebildet.

Da sich die Grundfrequenz und der Nullpunkt jeder Sensorachse unterscheidet muss eine Kallibrierung aller Achsen durchgeführt werden. Dazu werden für jede Achse drei Abgleichpunkte definiert: -1G, 0G, +1G. Die Beschleunigungswerte für diese drei Abgleichpunkte kann man sehr leicht durch die Stellung der Sensorplatine zur Richtung der Erdanziehung erzeugen.

Die Definition der Abgleichpunkte für die einzelnen Achsen erfolgt durch Befehle über die RS232-Schnittstelle. (Die vollständigen Befehle siehe Tabelle). Wenn alle Abgleichpunkte und der Wert für die Mittelwertberechnung bestimmt bzw. festgelegt worden sind, können die Werte dauerhaft im EEPROM des Controllers abgelegt werden. Das Speichern erfolgt durch den Befehl “sa”.

Befehl Funktion
x+<cr> Punkt +1G setzen x-Achse
x0<cr> Punkt 0G setzen x-Achse
x-<cr> Punkt -1G setzen x-Achse
y+<cr> Punkt +1G setzen y-Achse
y0<cr> Punkt 0G setzen y-Achse
y-<cr> Punkt -1G setzen y-Achse
z+<cr> Punkt +1G setzen z-Achse
z0<cr> Punkt 0G setzen z-Achse
z-<cr> Punkt -1G setzen z-Achse
fDD<cr> DD= Anzahl Messungen für Mittelwertbildung (DD= 01 bis 99)
sa<cr> Parameter in EEPROM speichern

Hier der vollständige Sourcecode und das Binärfile:

Mögliche Verbesserungen

Wenn die Schaltung noch einmal aufgebaut wird werde ich zwei Dinge ändern: Erstens wird direkt ein 4MHz Quarz in der Schaltung eingebaut, denn dadurch entfällt der Abgleich des DCO#s durch die Software. (Der DCO wird nur beim Einschalten der Schaltung einmal über den 32kHz Quarz abgeglichen. Wenn die Schaltung bei unterschiedlichen Temperaturen über eine längere Zeit eingesetzt werden soll, muss die Software dahingehend erweitert werden, dass dieser Abgleich öfters stattfindet.)  Durch die höhere Genauigkeit und Stabilität der Quarz-Frequenz verbessert sich entsprechend auch die Genauigkeit der Messergebnisse.

Zweitens wird ein Spannungswandler auf der Platine untergebracht, der die +12V der CTS-Statusleitung auf +3.3V herunterregelt. Dadurch ist keine zusätzliche Spannungsversorgung mehr notwendig. Möglich ist diese Art der Spannungsversorgung, weil die ganze Schaltung im Betrieb mit LEDs  kaum mehr als 4mA benötigt.