Forum: Mikrocontroller und Digitale Elektronik Arduino und ADNS5020E


von Karl F. (fkcm95)


Angehängte Dateien:

Lesenswert?

Hall Leute,
kurz zu meinem Problem:

Ich will die Daten von meinem ADNS 5020E per SPI auslesen. Dafür habe 
ich mir ein Arduino Mega angelegt. ( 50 - 53 SPI Pins )
Den ADNS5020E habe ich von einer optischen Maus. Den Controller, der in 
er Maus verbaut war, habe ich entfernt. Dafür habe ich die Kabel für GND 
, +5V, MOSI/MISO, SCLK und CS Leitung gelötet.

Das Sieht wie folgt aus: siehe Anhang.

Doch das Problem ist nun, wenn ich mein Arduino mit USB mit dem PC 
verbinde, leuchtet die LED erstmal ziemlich hell. Nachdem ich die 
Datenleitung verbinde, wird die LED ziemlich dunkel. Sie bekommt also 
nicht viel Spannung. Aber warum? Was mache ich falsch?

würde mich um Tipps freuen.

von NuMal Langsam (Gast)


Lesenswert?

Karl F. schrieb:
> würde mich um Tipps freuen.

Ich tippe dass du erst mal die komplette Verdrahtung malst,
inklusiver der Stromversorgung.

Sonst beginnt hier wieder das grosse Kristallkugel Rätselraten.

von Karl F. (fkcm95)


Angehängte Dateien:

Lesenswert?

So habe die die kompletten Kabel beschriftet.

von Md M. (Firma: Potilatormanufaktur) (mdma)


Lesenswert?

Datenblatt Seite 11.

von NuMal Langsam (Gast)


Lesenswert?

Karl F. schrieb:
> Dafür habe ich die Kabel für GND
> , +5V, MOSI/MISO, SCLK und CS Leitung gelötet.

So so, und wo ist MOSI/MISO? Vielleicht beides an SDIO?

5V geht wohin genau?

Chaos Pur. So wie hier wohl auch Zuhause.

von NuMal Langsam (Gast)


Lesenswert?

Md M. schrieb:
> Datenblatt Seite 11.

Von was?

Von welchem der tausend verschiedenen Datenblätter sprichst du?

Manche haben nicht einmal 5 Seiten. Wie soll da jemand auf die
Seite 11 schauen?

Einfach mal was hinrotzen, passt dann schon, gell?

von Md M. (Firma: Potilatormanufaktur) (mdma)


Lesenswert?

NuMal Langsam schrieb:
> Einfach mal was hinrotzen, passt dann schon, gell?

Ja sorry, hab ich selbst gemerkt. Wollte den Post auch löschen, ging 
dann aber nicht mehr. Ich meinte das Datenblatt zum ADNS5020. Ich wollte 
eigentlich darauf hinweisen, dass bei den ADNS-Sensoren die LED u.U. 
gedimmt wird (wenn (wenn ich mich recht erinnere wenn der SQUAL-Wert für 
eine Zeit niedrig ist oder so ähnlich). Das lässt sich aber 
softwaremäßig verhindern. Dass die Verdrahtung möglicherweise fehlerhaft 
ist hatte ich noch gar nicht realisiert.

von 123 (Gast)


Lesenswert?

NuMal Langsam schrieb:
> Md M. schrieb:
>> Datenblatt Seite 11.
>
> Von was?
>
> Von welchem der tausend verschiedenen Datenblätter sprichst du?
>
> Manche haben nicht einmal 5 Seiten. Wie soll da jemand auf die
> Seite 11 schauen?
>
> Einfach mal was hinrotzen, passt dann schon, gell?

Die 11 war eine Anspielung auf eine völlig frei erfundene Seite.
Male einen Schaltplan (!!!) auf dem alle Verbindungen erkennbar sind.
Ansonsten können wir nur Raten. Die von dir gelieferten Informationen 
sind gleich Null.

von 123 (Gast)


Lesenswert?

Und häng das Datenblatt an oder liefere einen Link, dann haben wir 
zumindest eine Chance dass wir von dem Gleichen sprechen.

von Md M. (Firma: Potilatormanufaktur) (mdma)


Lesenswert?

123 schrieb:
> Die 11 war eine Anspielung auf eine völlig frei erfundene Seite.

Ähhh. Ja, genau so wars :)

Nein ehrlich: Ich bin von diesem Datenblatt ausgegangen 
forums.ni.com/attachments/ni/170/202305/1/ADNS

von Karl F. (fkcm95)


Angehängte Dateien:

Lesenswert?

So, hab jetzt mal alles angeschlossen und bekomme auch schon die ein 
oder anderen Wrte. Aber irgendwie sind das nicht die Werte, die ich 
gerne sehen wollte. Denn wenn ich die Maus auch nicht bewege habe ich 
für einen dx Wert 255. Meine Beschaltung mit meinen MEga habe ich 
hochgeladen.
1
#include <SPI.h> 
2
// setup pins 
3
4
int nReset = 12; 
5
int nCS = 13; 
6
void setup(){ 
7
8
  //set pin I/O direction 
9
  pinMode (nReset, OUTPUT); 
10
  pinMode (nCS, OUTPUT); 
11
12
  //put the device in reset not chip selected 
13
14
  digitalWrite(nReset,LOW); 
15
16
  digitalWrite(nCS,HIGH); 
17
18
19
  //initialize SPI 
20
21
  SPI.begin(); 
22
23
  SPI.setDataMode(SPI_MODE3); 
24
25
  //start a serial port for debugging 
26
27
  Serial.begin(115200); 
28
29
  delay(1000); 
30
31
  Serial.println("startup complete"); 
32
33
} 
34
35
36
 
37
38
39
void loop(){ 
40
41
  unsigned int read_data; 
42
43
  delay(1000); 
44
45
  //enable ADNS 
46
47
  digitalWrite(nReset,HIGH); 
48
49
  //startup time 
50
51
  delay(1000); 
52
53
54
  //read and print a register map 
55
56
57
  Serial.println("ADNS-5020 Register Map"); 
58
59
60
  Serial.println("Addr 0x00 - Data " + String(ADNS_read(0x00))); 
61
62
63
  Serial.println("Addr 0x01 - Data " + String(ADNS_read(0x01))); 
64
65
66
  Serial.println("Addr 0x02 - Data " + String(ADNS_read(0x02))); 
67
68
69
  Serial.println("Addr 0x03 - Data " + String(ADNS_read(0x03))); 
70
71
72
  Serial.println("Addr 0x04 - Data " + String(ADNS_read(0x04))); 
73
74
75
  Serial.println("Addr 0x05 - Data " + String(ADNS_read(0x05))); 
76
77
78
  Serial.println("Addr 0x06 - Data " + String(ADNS_read(0x06))); 
79
80
81
  Serial.println("Addr 0x07 - Data " + String(ADNS_read(0x07))); 
82
83
84
  Serial.println("Addr 0x08 - Data " + String(ADNS_read(0x08))); 
85
86
87
  Serial.println("Addr 0x09 - Data " + String(ADNS_read(0x09))); 
88
89
90
  Serial.println("Addr 0x0A - Data " + String(ADNS_read(0x0A))); 
91
92
93
  delay(1000);   
94
95
96
} 
97
98
99
unsigned int ADNS_read(unsigned int address){ 
100
101
102
  unsigned int data; 
103
104
105
  // take the CS pin low to select the chip: 
106
107
108
  digitalWrite(nCS,LOW); 
109
110
111
  //  send in the address and value via SPI: 
112
113
114
  SPI.transfer(address); 
115
116
117
 
118
119
120
  pinMode(MOSI, INPUT); 
121
122
123
  data = SPI.transfer(0x00); 
124
125
126
  pinMode(MOSI, OUTPUT); 
127
128
129
  // take the SS pin high to de-select the chip: 
130
131
132
  digitalWrite(nCS,HIGH);  
133
134
135
  return(data); 
136
137
138
}

Thoretisch müsste das doch funktionieren? Bekomme aber auch für die 
anderen rgister andauern nu zahlen wie 255. Kann das sein=

von Karl F. (fkcm95)


Lesenswert?

Ich habe es gelöst, bekomme die Werte für dx und dy raus. Aber was 
merkwürdig ist, dass nach 1min Laufzeit die Werte sich nicht mehr 
verändern. Könnte das an der Spannungsquelle sein? Benutze ganz normal 
USB-port meines Notebooks.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.