mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik SPI (SPIF flag)


Autor: Rico (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Ich möchte 2 AVR über SPI verbinden. Da beide senden sollen (und dabei
den Transfer einleiten können sollen) muß ich ja regelmäßig die
Master-/Slave-Zuordnung wechseln.

Nun meine Frage: Wichtig ist natürlich, daß das SPIF flag beim wechseln
zurückgesetzt wird. Passiert das bereits, wenn ich nur das Master/Slave
bit invertiere (MSTR), oder muß ich das volle Programm durchlaufen,
also /SS auf High, SPI aus, MSTR invertieren, SPI an, /SS auf low?

(Empfangsseitig wird das SPIF ja laut Datenblatt bereits beim Auslesen
des letzten Datenwortes gelöscht, interessant wäre jetzt also vorrangig
die Sendeseite.)

Autor: Rico (Gast)
Datum:
Angehängte Dateien:
  • SPI.zip (899 Bytes, 25 Downloads)

Bewertung
0 lesenswert
nicht lesenswert
Also ich hab gerade ein bißchen "rumprogrammiert", und entstanden sind
die beiden Quellcodes im Anhang.

Der Programmablauf ist folgendermaßen:
Zu Beginn wird AVR1 als Master festgelegt, AVR2 als Slave. Anschließend
wird 1 Byte von AVR1 zu AVR2 übertragen. Als nächstes wird die
Master-/Slave-Zurordnung gewechselt, und AVR2 schickt 1 Byte an AVR1.

Soweit so gut. Leider werden aber bei der 2. Übertragung offensichtlich
nur 7 Bit gesendet. Statt dem gesendeten 0x33 kommt nur 0x19 an.

Kann mir jemand sagen, wo ich den Fehler mache? Kann ja eigentlich nur
sein, daß beim Wechseln von Master und Slave irgendein Register nicht
zurückgesetzt wird, was vielleicht zurückgesetzt werden müßte!?

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.