PIC SPI Master Slave

Gast #2115852
Lesenswert?
• ▲
▼
Hi,
ich benutze zwei PIC18F4550 zur Kommunikation via SPI. Der Master kann 
Daten an den Slave senden, was aber zurueckkommt ist nicht so gewollt.
Ich will dass der Slave den Empfang mit z.B. 0x99 bestaetig, das klappt 
aber nicht, es wird immer irgendwas empfangen.
Master:
1
                CS = 0; // Begin
2
    SSPBUF = 0x33;
3
    while (!SSPSTATbits.BF); // Wait until receive buffer full
4
    receive = SSPBUF; // Copy data to variable
5
    CS = 1; // End

Slave:
1
    while (1)
2
    {
3
      if(SSPSTATbits.BF) // 
4
      {
5
        receive = SSPBUF;  /a
6
              SSPBUF = dummy; // Send ok back (0x99) 
7

8
      }
9
        if (SSPCON1bits.WCOL)
10
      {
11
        SSPCON1bits.WCOL = 0;
12
      }
13
      if (SSPCON1bits.SSPOV)
14
      {
15
        SSPCON1bits.SSPOV = 0;
16
      }
17
    }
#2116346
Lesenswert?
• ▲
▼
SPI ist zwangsweise eine Vollduplex Kommunikation, es wird immer 
gleichzeitig gesendet und empfangen.

Der Master muss nach dem Schreiben der Daten an den Slave mindestens so 
lange warten, bis dieser die Antwort in sein SPI-Datenregister 
geschrieben hat.
Erst danach ist noch ein Dummybyte fällig, während dessen Aussendung 
gleichzeitig die Antwort eingelesen wird.

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.