mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Ansteuern eines Agilent Chip über das SPI Protokoll


Autor: Nils Rautenbach (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

ich arbeite mit einem AtMega8l und mit der Bascom Software zur
Programmierung. Ich möchte nun über das implementierte SPI Protokoll
die Register von dem Agilent Chip auslesen. Mit dem vorhandene Befehl
spimove() und manupulationen des SPCR Registers sollte das
funktionieren. Ich bekomme auch ein akzeptabeles Signal am
Mikrocontroller heraus. Nur zum Einlesen der Informationen über den
MISO gibt der Controller kein Taktsignal heraus und ich kann die
Informationen auch nicht weiterverarbeiten. Vielleicht hat jemand eine
Idee oder ein Seite mit ausführlichen Informationen über die SPI
Befehle bei BASCOM

Autor: Nils Rautenbach (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Habe ich die Frage irgendwie falsch gestellt. Oder bin ich zu unhöflich.
Oder warum antwortet keiner.

Nils

Autor: Schoasch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Naja... wenn man nicht weis welches Bauteil du ansprechen willst, wird
dir es auch keiner sagen können.(Denn ich glaube, das Agilent nicht nur
ein SPI-Bauteil hat)
WEiters könnte der Programmcode interessant sein ;-)

Autor: Nils Rautenbach (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Jupp, das Agilent (jetzt Avagotech) ist ein ADNS-3080 also ein optischer
 Maus Sensor.

Viele Grüße

Nils

Autor: Marcel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
HI,

du hast:
Do
   Delta_x = Spimove(&H03)                'Abfrage des Befehls
   Delta_y = Spimove(&H04)
   X_wert = X_wert + Delta_x

ich vermute du musst erst mal was senden bevor du den wert des
Empfangpuffer auslesen kannst.
SPI ist ein Ring-Bus. d.h. es kommt hinten nur was raus wenn du
gleichzeitig vorne was reinschiebst.

Oder sehe ich es nicht.
Gruß Marcel

Autor: Nils Rautenbach (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Befehl spimove schiebt ja zuerst einen 8 bit Code über MOSI herein
und eigentlich beschreibt das Datenblatt des Maus Sensors, dass danach
der Mikrocontroller wieder 8 Taktflanken absendet und der Sensor
antworten kann. Der Mikrocontroller sendet aber direkt den nächsten
Befehl hinter her, also ohne eine Pause zu Antwort zu lassen.

Autor: Bernd (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also ich kenne mich nicht mit Bascom aus:

Daher weiß ich auch nicht genau was der Befehl Spimove() bewirkt.
Er scheint mit aber nur etwas in den Sendepuffer der SPI-Schnittstelle
zu schieben oder hat er gleichzeitig einen Rückgabewert?

Gibt es bei Bascom noch einen Befehl mit dem du den Empfangpuffer
auslesen kannst?

z.B.
Spimove(&H03);           // Daten auf den Bus schieben
Delta_x = SpiGetBuffer() // daten aus Puffer lesen //Fantasiebefehl

Gruß Bernd

Autor: Marcel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Nils

wo gibts den Sensor zu kaufen, was hast du dafür bezahlt?
Danke.

Gruß Marcel

Autor: Nils Rautenbach (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also der Befehl ausgabe = spimove(befehl) gibt mit befehl einen 8 bit
Code über den Bus und erhält in die Variable ausgabe die Antwort.

@Marcel
Den Sensor gibt es nur in großen Stückzahlen zu kaufen, er ist
allerdings in auf dem Markt verfügbaren Mäusen verbaut. Einfach mal
googlen.

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.