Gast
#4410331
Hallo zusammen, ich bemühe mich den G-Sensor von Bosch BMA020 http://stefanfrings.de/mindstorms/BMA020.pdf über SPI Arduino Uno auszulesen. Dabei möchte ich alle Standardeinstellung lassen (SPI4, +/-2G range) und nur die 3-Achsen-beschleunigung ohne Funktion auslesen. Leider bekomme ich nur 0er auf allen 3 Achsen zurück. Kalte Lötstellen oder defekter Sensor sind nicht Grund hierfür. Die Bitschiebung ist auch nicht die Ursache, diese hab ich erfolgreich über I²C auslesen können, die Werte waren gemessen an der ErdG/Achse sinnvoll. Ausgelesen werden sollen 10 Bit= 1ByteMsb + 2BitLSB. Das LSB Byte zuerst, mit SPI.mode(MSBFIRST). Außerdem habe ich die Werte einzeln binär ausspucken lassen, nur nuller. Laut Datenblatt können immer einzelne Bytes hintereinander ausgelesen werden. (siehe Protokoll, 2 Bilder im Anhang). Dazu: For a complete readout of 10 bit acceleration data from all axes the sensor IC provides the option to use an automatic incremented read command to read more than one byte (multiple read). This is activated when the serial enable pin CSB (chip select) stays active low after the read out of a data register. Thus, read out of data LSB will also cause read out of MSB if the CSB stays low for further 8 cycles of system clock. Aufgrund diesen Angaben, habe ich gedacht, dass mein folgender Code ausreichend wäre. Jedoch funktioniert anscheinend meine "multiple Reading" so nicht. Um Rat wäre ich sehr dankbar. LG.
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
23 | |
24 | |
25 | |
26 | |
27 | |
28 | |
29 | |
30 | |
31 | |
32 | |
33 | |
34 | |
35 | |
36 | |
37 | |
38 | |
39 | |
40 | |
41 | |
42 | |
43 | |
44 | |

