SPI Bitübertragung

Gast #3646714
Lesenswert?
• ▲
▼
Hallo Leute,
ich möchte gerade mit einem Arduino due(AT91SAM3X8E ARM Cortex-M3, 
84MHz) 2 Bytes von einem Master System an gewählten I/O-Pins 
empfangen.Die Bytes werden während einer SPI-Kommunikation - wobei der 
Arduino Slave ist - gesendet.

Weil der SPI-header auf dem Arduino für andere Zwecke schon reserviert 
ist, versuche ich eine SPI-Schnittstelle auf gewählten I/O-Pins "zu Fuß" 
zu programmieren.
Anbei habt ihr die Funktion listen(), die jeden kommenden Bit auf die 
MOSI-Leitung lesen soll.
Die Funktioniert auch, allerding nur für niedrige Taktfrequenzen. Ab 
500kHz zum Beispiel geht es nicht mehr.
ich vermute ab großen Frequenzen kann das Polling in der Funktion nicht 
mehr mithalten...

Was denkt ihr ? kann die Funktion noch verbessert werden oder bleibt nur 
interupt der einzige Lösungsansatz ?

P.S: Der Master arbeitet mit CPOL = 0 und CPHA = 1
Angehängte Dateien:
#3646716
Lesenswert?
• ▲
▼
Solange du mit digitalRead arbeitest, brauchst du dich nicht wundern.

Auf einem AVR ist ein digitalRead ungefähr um den Faktor 120 langsamer, 
als wenn man den Portpin direkt abfrägt. Und ich schätze mal, das wird 
auf einem ARM auch nicht anders sein. digitalRead und digitalWrite sind 
nun mal eierlegende Wollmilchschweine, die jede Eventualität 
berücksichtigen. Selbst dann, wenn du ganz genau weißt, dass auf diesem 
Pin immer nur ein Eingang sein 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.