Forum: Mikrocontroller und Digitale Elektronik Daten von SPI an RS232


von Yücel A. (yuetzi)


Lesenswert?

Guten Tag!

Ich verwende einen STK500 mit einem Atmega8515.

Ich möchte die Daten/Signale, die ans SPI ankommen, über die RS232 
ausgeben. Ein Codebeispiel wäre sehr hilfreich.

Danke im voraus

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

> Ich möchte die Daten/Signale, die ans SPI ankommen, über die RS232
> ausgeben.
Wozu?
Mit welcher Taktrate kommen die am SPI an? (SPI hat gerne mal >1 MHz)
Welche Baudrate willst du auf der SIO? (SIO ist üblicherweise <100 kBd)
Wer puffert die Daten dazwischen?

von Yücel A. (yuetzi)


Lesenswert?

Ich möchte die Kommunukation zwischen einem µC und einem Co-Prozessor in 
einem Steuergerät abfangen und an den PC weiterleiten, um später eine 
Auswertung der Daten durchzuführen. Der Master ist das Steuergerät, der 
eine SPI-Schnittstelle hat.

Die Taktrate ist 2MHz.

Was ist SIO?

Puffer: hier muss ich noch eine Lösung finden. Zurzeit weiß ich nicht, 
ob ich es so hinkriegen kann, dass vielleicht 2Byte abgespeichert werden 
können, das erste Byte wird an RS232 gesendet, nachdem Senden wird das 
"alte" Byte seitens SPI gelöscht, damit ein neues Byte abgespeichert 
werden kann. Anschließend das 2. Byte an RS232 senden und so weiter... 
Ich hoffe, es war verständlich ausgedrückt.

von morph1 (Gast)


Lesenswert?

was du brauchst ist ein logicanalyser mit vernünftig viel speicherplatz

ist recht sinnbefreit das seriell selbstbauen zu wollen, von saleae 
kriegst ein gerät mit 8 leitungen derzeit um ~150€.

von Yücel A. (yuetzi)


Lesenswert?

Brauch ich ein Logicanalyser wegen dem Datenpuffer???

von Karl H. (kbuchegg)


Lesenswert?

Yücel Atalay schrieb:
> Brauch ich ein Logicanalyser wegen dem Datenpuffer???

Eher deswegen, weil der schon fertig ist und alles kann was du brauchst.
Es ist recht sinnfrei, Zig-Stunden zu investieren, wenn man bei 0 
anfängt nur um dann festzustellen, dass alleine die verbratenen Stunden 
ein Vielfaches des Preises eines fertigen Gerätes ausmachen.

Du musst dich schlau machen über
* generelle Programmierung eines M8515
* Ansprechen der UART, Text senden (empfangen), Handshaking
* Ansprechen der SPI, Daten empfangen
* Implementierung eines Ringbuffers
* Wie kriege ich an den M8515 noch zusätzlichen Speicher drann,
  weil der eingebaute in kürzester Zeit überlaufen wird

Jeder einzelne dieser Punkte liefert Stoff für mehrere Tage, wenn man 
nicht nur abkupfern will, sondern auch verstehen will, was man da 
eigentlich tut.

von Michael U. (amiga)


Lesenswert?

Hallo,

hast Du denn überhaupt eine Chance, den Transfer auf dem SPI zu deuten?

Es gibt ja bei SPI von sich aus keinen Hinweis darauf, wann da ein Byte 
beginnt usw. Nur Takte und Pegel.

Theoretisch (mit wenig Aufwand) kannst Du z.B. einen 14,7456MHz AVR 
nehmen und dann 460kBaud machen. Jedes Byte von SPI holen und in den 
UART packen.

Damit weiß Du aber immernoch nicht, ob Du syncron bist.
Da müßtest Du noch ein CS-Signal o.ä. bemühen, um den Beginn des ersten 
bytes zu finden.

Gruß aus Berlin
Michael

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

> hast Du denn überhaupt eine Chance, den Transfer auf dem SPI zu deuten?
(M)ein LA kann das  ;-)

> Es gibt ja bei SPI von sich aus keinen Hinweis darauf, wann da ein Byte
> beginnt usw. Nur Takte und Pegel. ...
> Da müßtest Du noch ein CS-Signal o.ä. bemühen, um den Beginn des ersten
> bytes zu finden.
Das CS-Signal (aka. SS = Slave-Select) ist integraler Bestandteil des 
SPI-Protokolls. Nur bestimmte Bausteine in bestimmten Modi können ohne 
SS angesteuert werden.

von Yücel A. (yuetzi)


Lesenswert?

ich habe ein Oszi (LeCroy) an die SPI Schnittstelle schon angeschlossen. 
Das Dekodieren der Daten klappt hier wunderbar, das heißt doch, dass ich 
ein Taktsignal am SPI habe, sonst würde dies am Oszi nicht klappen.

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.