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


von Michael M. (Gast)


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

von Michael M. (Gast)


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...

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.