SPI 5 Draht schnittstelle zwingend bei ATMega kommunikation?

Gast #575975
Lesenswert?
• ▲
▼
Hallo,

hab folgendes Problem: 2 ATMEga sollen miteinander ueber PSI 
kommunizieren. Es klappt aber der MAster empfaengt nach 6 bis 10 paketen 
vom Slave auch mal wieder sein eigen verschicktes. Von den Paketen die 
der Slave verschickt verlier ich keines. aber es mogeln sich eben diese 
Stoerpakete ein.

Aber mein Slave (ATMega 16 auf 16MHz) macht nichts anderes als das 
datenregister  SPDR neu zu beschreiben.
Der Master hingegen ist staerker beschaeftigt und versendet die 
empfangenen pakete ueber uart.

wo kann der fehler liegen?
Der SCK  Clock hab ich variiert und beeinflusst das ganze nicht 
wirklich. Sowohl bei schneller als auch langsamer taktung gibt es falsch 
pakete.

Mein gedanke: ich muss zwingend die 5 Draht variante aufbauen. Ist dem 
so?

Beitrag "Re: SPI: Master empfangen, Slave senden"

gruss
Patrick
#575979
Lesenswert?
• ▲
▼
Die AVRs haben leider keinen Sendepuffer.

Wenn der Slave nicht schnell genug das nächste Byte einstellen kann, 
wird einfach das Schieberegister zurückgesendet, also das gerade 
empfangene Byte.

Man braucht also nen 5. Draht, um dem Master zu sagen, daß er nun das 
nächste Byte abholen kann.


Peter
Gast #576051
Lesenswert?
• ▲
▼
Der Master macht den SCK. Dabei wird das eigene Register hinausgeschoben 
und ein externes Register wird reingeschoben. Nun muessen die externen 
Register gefuellt sein, sonst ist nichts. Dabei ist zu beachten, dass 
der Master den SCK hoeher (im Verhaeltnis zum CLK) clocken kann als der 
Slave. Wenn der externe Slave keine unendlich schnelle Statusmaschine 
ist (FPGA), sollte in der Tat ein zusaetzliches Signal verwendet werden.

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.