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
> 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?
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.
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€.
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.
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
> 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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.