PIC und SPI

Gast #27554
Lesenswert?
• ▲
▼
Hallo!

Ich versuche gerade Daten über die SPI-Schnittstelle des PIC16F877 zu 
versenden. Wenn ich nur ein Byte sende bzw immer wieder das selbe Byte 
dann funktioniert das auch. Wenn ich aber in das SSPBUF-Register einen 
anderen Wert schreiben will um diesen Wert dann zu senden so wird dieser 
nicht übernommen. Im SSPBUF-Register steht immer noch der alte Wert 
drin. Gibt es da irgendein Status-Bit oder so das man erst löschen muss 
bevor man einen neuen Wert in das SSPBUF schreiben kann?

Generell verstehe ich nicht ganz wie die SPI-Schnittstelle funktioniert. 
Laut Blockdiagramm gibt es ja nur ein Register (SSPBUF) das für Versand 
und Empfang der Daten zuständig ist. Kann mir das jemand kurz erklären 
wie die Schnittstelle funktioniert, also wie man Daten sendet und auch 
Daten empfängt?

Nils
Gast #27555
Lesenswert?
• ▲
▼
1. laut Datenblatt muß das SSPBUF-Register immer vor dem nächsten 
Bytesenden einmal gelesen werden, auch wenn's nur ein Dummy ist.
2. Ansonsten gibt es noch das WCOL-Flag Writecollision in SSPCON das 
anzeigt das Du unter Umständen auf das SSBUF geschrieben hast, obwohl es 
noch nicht leer war. In dem Fall must Du das WCOL wieder löschen, da 
sonst alle Schreibversuche ignoriert werden.

Aber ich denke Dein Fall ist der erste


Reiner

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.