Gast
#1675173
Hallo, ich versuche nun schon ein paar Tage den oben genannten Sensor zur Kommunikation mit meinem ARM7 über SPI zu bewegen, vielleicht kann mir ja hier jemand sagen was ich dabei falsch mache. Die Threads die es zu diesem Thema gibt habe ich schon durch, kann dort aber keine Antwort für das Problem finden. Folgendes Problem habe ich: Wenn ich den Sensor anschließe, kann ich ohne Probleme das WHO_AM_I Register auslesen und bekomme auch den richtigen Wert (0x3A) zurück. Sobald ich aber versuche den LIS3LV02DQ aus dem Powerdown zustand zu hohlen, indem ich in das Register CTRL_REG1 den Wert 0x47 oder 0x87 schreibe, bekomme nur noch falsche Werte vom Sensor zurück. Dies passiert bei allen Registern die ich auslesen will. Konkret schickt mir der LIS3LV02DQ entweder den Wert 0x07, oder das Dummy Byte welches ich zum lesen des Wertes geschickt habe zurück. Dieser Wert ändert sich auch nicht mehr bis ich den Sensor ausstecke und wieder einstecke (also die Spannung vom LIS3LV02DQ nehme und er neu bootet). Konfiguriert habe ich die SPI des ARMS als Master, mit CPHA=1 und CPOL=1, MSB first. Die Schnittstelle läuft mit 1 MHz, hab aber auch schon niedrigere Werte probiert. Der ARM7 ist ein LPC2129 /01 von NXP. Das meine Senderoutine funktioniert, habe ich verifiziert indem ich mir mit nem Speicher Oszi die Kommunikation angeschaut habe. Hier mal ein Ausschnitt der relevanten Teile meines Codes:
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 | |
45 | |
46 | |
47 | |
48 | |
49 | |
50 | |
51 | |
52 | |
53 | |
54 | |
55 | |
56 | |
57 | |
58 | |
59 | |
60 | |
61 | |
Ich hoff irgendjemand hat ne Idee warum das bei mir nicht so will wie es soll. Gruß Stefan