ADNS3080 Steuerung

OP #5021645
Lesenswert?

Hallo Leute,

ich habe gestern einen ADNS3080 optical Flow Sensor gekauft und wollte 
die dx/dy Werte rauslesen. (siehe Anhang)
Um die Werte auszulesen benutze ich den Mikrocontroller Arduino Uno.

Folgende Pin-Belegung:
1
 
2
Arduino  ADNS3080
3
Pin 13: SCK
4
Pin 12: MOSI
5
Pin 11: MISO
6
Pin 10: SS
7
Pin 9: Reset
8
Pin 3,3V: 3V
9
Pin GND: GND

Wenn der Sensor mit einer Spannung versorgt wird, sollte eine kleine 
Leuchte auf der Platine leuchten. Normalerweise sollte der Sensor 
mittels 5V Betriebsspannung betrieben werden. Doch wenn ich den 5V Pin 
mit meinem Mikrocontroller verbinde, leuchtet die Leuchte nicht. 
Seltsamerweise leuchtet Sie mit 3,3V.

Den Code habe ich aus dem Internet übernommen, um zu gucken ob überhaupt 
der Sensor funktioniert.

https://github.com/Neumi/OpticalFlowA3080ArduinoProcessing/blob/master/ArduinoA3080/ArduinoA3080.ino

Doch irgendwie bekomme ich immer, dass mein Sensor nicht initialisiert 
ist. Das heißt ich habe keine Kommunikation zu dem Sensor. Woran könnte 
das liegen?
Habe den Code jetzt mit einen Mega und Uno versucht. Bei beidem die 
selben Fehler...
Angehängte Dateien:
Persönliche Seite #5021687
Lesenswert?

Karl F. schrieb:
> Habe die Pin-belegung und installierung der Pins mehrfach kontrolliert,
> jedoch ist der Fehler irgendwo anders. Wie könnte ich bei sowas Schrift
> für schritt vorgehen?

Indem Du das Datenblatt nimmst und Dir die Sensorregister anguckst. Hast 
Du die Schaltplan von Deinem Modul? NPD muss ebenfalls aktiviert werden.


Gruß
Daniel
Angehängte Dateien:
Persönliche Seite #5021719
Lesenswert?

Ja, schau mal auf der Platine und vergleiche das mit dem Pinning im 
Datenblatt. So wie ich das sehe, wird jeder Pin auf der Steckerleiste 
herausgeführt.

Ich denke, Du brauchst die SPI-Leitungen, Reset und NSS. So war das 
zumindest mit dem Nachfolger ADNS3090 wobei der Unterschied nur bei der 
höheren ips des ADNS3090 liegt.

Schau mal hier:
https://github.com/Lauszus/ADNS3080

oder auch sehr interessant:
http://das-lab.vs.eecs.uni-kassel.de/publications/Heumueller2014-Project-OpticalFlow.pdf

Vllt kannst Du beide Links als Basis nehmen.

Gruß
Daniel
Persönliche Seite #5021841
Lesenswert?

Karl F. schrieb:
> ich bekomme auch mit dem Code von Github nur die Meldung, dass kein
> SenOr initialisiert wäre.

Wie ist die genaue Fehlermeldung? Wenn ich in dem Lazarus-Code schaue, 
existieren zwei.

Auszug aus dem Code:
1
#define ADNS3080_PRODUCT_ID 0x00
2

3
uint8_t id = spiRead(ADNS3080_PRODUCT_ID);
4
  if (id == ADNS3080_PRODUCT_ID_VALUE)
5
    Serial.println(F("ADNS-3080 found"));
6
  else {
7
    Serial.print(F("Could not find ADNS-3080: "));
8
    Serial.println(id, HEX);
9
    while (1);
10
}

Hier musst Du im Datenblatt gucken. Die ADNS3080 gibt es von zwei 
Hersteller, PixArt und Avago. Diese sind technisch gleich nur in der 
Product-Id sind diese verschieden.

Die andere Fehlermeldung ist, wenn das Firstpixel nicht gefunden wird.

Wie sieht Deine Verschaltung aus? Ist das nur der reine IC oder hat 
deine gekaufte Lösung noch etwas mehr? Wie sieht die Rückseite aus? Wenn 
Du nur den IC mit herausgeführten Kontakten hast, musst Du die 
Referenzschaltung im Datenblatt gucken, was Du noch so brauchst.

Dein Sensor muss doch auch ein Datenblatt haben. Kleiner Hinweis. Der 
ADNS3080 arbeitet mit 3,3 V.

Gruß
Daniel
OP #5021880
Lesenswert?

Bei mir kommt die Meldung im Seriellrn Monitor: "Could Not find ADNS - 
3080"
Habe im Anhang die Rückseite der Platine geschickt. auf der Rückseite 
sind neben dem ADNS noch weitere zwei kleine Bauteile, die führen aber 
auf den PIN 5V und 3V. Also sind die eher für die Spannungsreglung da.
Was meinst du mit Referenzschaltung? Habe dem Hersteller mal nach dem 
Datenblatt gefragt, glaube aber nicht, das da was kommt. ?

Habe eben aber bemerkt, dass es zwei Verschiedenen Farben von den 
Platinen auf dem Markt gibt. Vielleicht ist dies der Grund.. aber Es 
sollte doch bestimmt eine Möglichkeit geben, den Sensor anzusteuern.

Mein Sensor hat den Wert 0 für ProduktID, wenn ich es mit der Funktuon 
Read Auslese.
Angehängte Dateien:
Persönliche Seite #5021906
Lesenswert?

Karl F. schrieb:
> Also sind die eher für die Spannungsreglung da.
> Was meinst du mit Referenzschaltung? Habe dem Hersteller mal nach dem
> Datenblatt gefragt, glaube aber nicht, das da was kommt. ?

Das Datenblatt des Sensors welches ich hochgeladen habe, reicht. Lese 
Dir bitte dieses genau durch und mach Dich mit der Funktion des Sensors 
vertraut. Dort sind alle Informationen enthalten.


Gruß
Daniel
Gast #5022007
Lesenswert?

Wenn du mit den 5V I/Os direkt an den ADNS rangehst (ohne level 
shifter), ist die Wahrscheinlichkeit gross, dass du den Chip bereits 
geröstet hast.
Mein Rat: Fang doch nach all den Postings mit was einfacherem an.
Das wird so nix.
OP #5022020
Lesenswert?

> Hier musst Du im Datenblatt gucken. Die ADNS3080 gibt es von zwei
> Hersteller, PixArt und Avago. Diese sind technisch gleich nur in der
> Product-Id sind diese verschieden.

Was meinst du mit Product-Id unterschiedlich? Habe auf beiden 
Datenblätter gegzckt, die Adresse ist die selbe.
Persönliche Seite #5022224
Lesenswert?

Karl F. schrieb:
> Was meinst du mit Product-Id unterschiedlich? Habe auf beiden
> Datenblätter gegzckt, die Adresse ist die selbe.

Mein Fehler. Bei dem ADNS3090 war der Defaultwert verschieden.

Zur Fehlersuche: Schlaue dir die Referenzschaltung im Datenblatt an und 
anschließend lese das Kapitel Synchronous Serial Port durch. Dort steht 
unter anderem:

The serial port cannot be activated while the chip is in power down mode 
(NPD low) or reset (RESET high). SCLK, MOSI, and NCS may be driven 
directly by a 3.3V output from a micro-controller, or they may be placed 
in an open drain configuration by enabling on-chip pull-up current 
sources. The open drain drive allows the use of a 5V micro-controller 
without any level shifting components.

Bitte mach Dich mit dem Prinzip des optischen Flusses sowie der 
optischen Sensortechnik vertraut, d.h. wie funktioniert der  Sensor, wie 
entsteht letztendlich das Bild (genauer: Helligkeitsunterschiede), wie 
sehen die Rohdaten aus dann, das ist für Dich sehr wichtig, was ist der 
optische Fluss? Dann wirst Du viel leichter verstehen wie gewünschte 
Werte dx/dy zu stande kommen und vor allem, wie der Sensor arbeitet, 
denn genau diese Grundlagen fehlen Dir völlig.

Ein guter Anfang ist Wikipedia:
https://de.wikipedia.org/wiki/Optischer_Fluss
https://de.wikipedia.org/wiki/Active_Pixel_Sensor

Strubi schrieb:
> Mein Rat: Fang doch nach all den Postings mit was einfacherem an.
> Das wird so nix.

Leider bin ich auch dieser Meinung :-(. Ich wüsste jetzt auch gar nicht, 
wo ich anfangen soll außer auf das Datenblatt zu verweisen.

Gruß
Daniel
OP #5022841
Lesenswert?

Egal was ich mache, kann ich keine Kommunikation zum Sensor aufbauen. 
Entweder 255 oder 0 Weerte bekomme ich für meine ID.

Habe auch den PIN NPD einbezogen und in den Setups auf High gesetzt. 
Aber das bringt leider auch nichts.

Kann wirklich der Sensor kaputt sein?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren