www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AVR SPI - Korrupte Daten von Slave zum Master [gelöst]


Autor: Michael M. (michaelm12)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen!

Ich habe Probleme die Kommunikation zwischen einem SPI Slave und meinem 
Master korrekt an den Start zu bekommen.

Folgende Zusammenstellung:

SPI Master: Arduino (ATMEGA328), SPI Master, SPI Clock auf 16MHz / 128, 
(d.h. 125 kHz) eingestellt.
Slave: CD Wechsleranschluß meines Autoradios (Panasonic kompatibel).

Die Kommunikation vom Atmel zum Radio funktioniert prima (es gibt hier 
mehrere Beiträge genau zu diesem Thema im Forum, leider habe ich 
bezüglich meines Problems darin keine Hinweise gefunden). Ich schicke 
ein Dummy Paket, das Radio erkennt meinen "Wechsler" und alles ist in 
Butter. Track und Zeitdaten werden wie erwartet vom Radio angezeigt - 
keine Probleme. Diese Nachrichten werden zyklisch vom Atmel geschickt. 
Ich möchte das ganze allerdings interaktiv gestalten, d.h. Benutzer 
drückt eine Taste auf dem Radio, der Atmel bekommt und interpretiert die 
Nachricht für die Weiterverarbeitung.

Ich habe meinen Code nun so erweitert, dass die empfangenen Bytes 
seriell ausgegeben werden. Die Ausgaben sind irgendwie immer lange, 
zusammenhängende 0 und 1 Sequenzen (z.B. 0xFF 0xFF 0xFF 0x00 0x00 0x1F 
0xE0 etc.). Diese Ketten erscheinen nur wenn ich eine Taste drücke, d.h. 
es sind keine zufällig erscheinenden Daten.

Zunächst dachte ich, dass ich ein Problem mit der Masse habe und habe 
MISO des Masters mit 10k Ohm gegen 5V gelegt - Ergebnis: Wie zuvor lange 
Sequenzen aus '0' und '1'. Es kommt mir mittlerweile so vor, als ob der 
Slave viel zu langsam sendet. Andererseits empfängt das Radio die Daten 
wie erwartet, warum sollte der Slave also, wenn er in diesem Takt 
empfangen kann, nicht auch damit senden können?

Übrigens: Wenn ich Masterseitig direkt MOSI auf MISO lege sehe ich (über 
meine serielle Debuggingausgabe) wie erwartet sauber die über MOSI 
gesendeten Daten. Auch mit einem andere Teiler für die Clock empfängt 
das Radio wie erwartet und zeigt die Daten korrekt an, der Master zeigt 
mir aber wieder nur lange Ketten aus '0' und '1' an.

Was mache ich falsch? Ich bin für jedliche Tipps dankbar!

Grüße,

Michael

Autor: Michael M. (michaelm12)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Für alle die auf das gleiche Problem stoßen sollten...speziell im 
Zusammenhang mit einer CD-Wechsleremulation:

Das Panasonic Protokoll von Microcontroller (= emulierter CD-Wechsler) 
zum Radio ist astreines SPI, aber zurück wird ein serielles (nicht 
SPI!) Protokoll (ähnlich normalen IR Fernbedienungen) benutzt.

Ich war zu sehr auf SPI eingeschossen als ich die Informationen über das 
Panasonic CD Wechsler Protokoll gelesen hatte...

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.