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.