mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik eine frage zu spi...


Autor: pittbull (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo,

ich beschäftige mich derzeit etwas mit spi. pro clock-impuls wird ja
ein bit aus dem master in den slave geschaufelt und umgekehrt. meine
frage nun: was ist, wenn der master z.b. 10 bytes zu senden hat und der
slave nur 6? wenn ich dann 80 mal clocke habe ich 10 bytes durch beide
schieberegister gescheucht, wovon der eine aber 4 nicht gebrauchen
kann. wie lässt sich das am besten handlen? vielleicht indem ich als
erstes byte die länge sende? oder ein framing-protokoll?

danke im voraus,
 pittbull

Autor: Konrad Heisig (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich würde einfach ein NULL-Byte definieren (z.B. 0xFF), welches der
Slave immer dann sendet, wenn er nichts zu sagen hat. Auf diese Weise
kann der Master feststellen, wenn der Slave mit seiner Botschaft fertig
ist. Allerdings ist es warscheinlich besser, für die Kommuniation eine
oder mehrere feste Byte-Anzahlen zu definieren, vielleicht abhängig vom
Befehl den der Master gibt.

Gruß
Konrad

Autor: pittbull (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo konrad, danke für deine antwort.

>> Ich würde einfach ein NULL-Byte definieren (z.B. 0xFF), welches der
Slave immer dann sendet, wenn er nichts zu sagen hat. Auf diese Weise
kann der Master feststellen, wenn der Slave mit seiner Botschaft
fertig
ist.

das ist etwas problematisch, da ich auch 0xff, also jede bitkombination
als nutzdaten verwenden möchte.

>> Allerdings ist es warscheinlich besser, für die Kommuniation eine
oder mehrere feste Byte-Anzahlen zu definieren, vielleicht abhängig
vom
Befehl den der Master gibt.

das geht leider auch nicht. beide teilnehmer haben jeweils eine
beliebige anzahl von daten zu versenden, deren menge der andere erstmal
nicht weiss. ich muss wohl eine art software protokoll verwenden z.b.
indem beide als erstes die anzahl der daten senden, die sie loswerden
möchten. aber ich bin mir noch nicht ganz klar darüber ob das der
richtige weg ist. wer also noch tips hat: bitte helft mir.

danke im voraus,
 pittbull

Autor: Lupin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
anders geht's nicht. Der master sendet eine Anfrage, der slave sendet
dann wieviel bytes er antworten möchte und dann generiert der Master
den takt für diese Bytes.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.