www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ADNS8030 an Atmega 32 (SPI) + MAX3378


Autor: Robert (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo.
Ich möchte ein ADNS-8030 Sensor (zu finden z.B. in Logitech Mäusen) mit 
einem Atmega32 auslesen. Den Atmega32 verwende ich auf dem RN-Control 
Board, der Sensor wird per SPI-Interface angesteuert. Ich wollte mich 
erkundigen, ob jemand schon mal so ein ähnliches Projekt gemacht hat und 
mir vielleicht Hilfe geben kann: Das Software ist geschrieben und der 
Mikrocontroller sendet auch die richtigen Daten (wenn ich das Datenblatt 
richtig verstanden habe), jedoch gibt der ADNS8030 nichts zurück.
Als Clock hab ich 500kHz eingestellt, laut Oszi klappt die Übertragung 
von Adressen/Befehlen.
Verkabelt ist das Ganze meines Erachtens richtig (MISO-MISO, MOSI-MOSI, 
SCLK-SCLK, SS-SS, Reset und VCC). Da der Atmega 5 V gibt und der 
ADNS8030 aber auf 3,3V Logik setzt, verwende ich einen MAX3378 um die 
Signale umzusetzen (ThreeState auf High; SS,MOSI,SCLK 5V->3,3V; MISO 
3,3V->5V - mit Oszi geprüft, scheint zu gehen).

Dabei ist mit jedoch aufgefallen, dass der MAX3378 permanent 5V auf die 
MISO-Leitung gibt (Rückleitung vom Sensor in den MC). Nur wenn ich den 
Eingang von Max3378 direkt auf Ground lege, gibt er 0 Volt (MISO Leitung 
müsste Standardmäßig auf 0V sein, nur wenn er sendet, dann anderen 
Pegel). Wie kann ich dieses Problem vermeiden?

Ein anderes Problem ist wie gesagt, dass der Sensor keine Daten zurück 
liefert. Sende ich zum Beispiel die Adresse 0x00 (MSB ist ja sowieso 
Null - bedeutet Lesekommando für Register 0x00=Product_ID), sieht das 
Signal folgendermaßen aus: SS geht auf Low während der Übertragung, SCLK 
gibt 8 mal den Takt (danach wieder high), MOSI ist Low während SCLK den 
Takt gibt -> 8 Nullen werden übertragen - soweit stimmt es ja 
eigentlich. Das Ganze kommt auch am Sensor an, aber es folgt keine 
Reaktion - interessant wäre, ob es ein Merkmal gibt, woran man erkennt, 
ob der Sensor überhaupt funktioniert.

Falls jemand das Projekt interessant findet oder ähnliche Probleme hat 
und mir helfen könnte, kann er sich gerne auch den Quellcode ansehen - 
ich hänge die Dateien als Zip mit ran. Ich programmiere mit WinAvr.
Sitze da jetzt schon ne ganze Weile dran, also ich wäre für jede Hilfe 
dankbar.

Viele Grüße,
Robert

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.