www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik SPI: Datenrate berechnen


Autor: mr.chip (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Ich versuche gerade herauszufinden, wie schnell man mit dem Atmega-SPI 
Daten übertragen kann. Hab ins Datenblatt des Mega32 geschaut, eine 
konkrete Datenrate findet man da nicht - lediglich ein Register für die 
Prescaler-Einstellung: SCK = Taktfrequenz / x

Stimmt die Annahme, dass pro SCK ein Bit übertragen wird? D.h., bei 16 
MHz und einem Prescaler von 2 würde ich eine Datenrate von 1 Megabyte/s 
erreichen?

Gruss

Michael

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Stimmt die Annahme, dass pro SCK ein Bit übertragen wird? D.h., bei 16
> MHz und einem Prescaler von 2 würde ich eine Datenrate von 1 Megabyte/s
> erreichen?

Ja, sofern Du die Daten schnell genug anliefern kannst ...

Autor: mr.chip (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Ja, sofern Du die Daten schnell genug anliefern kannst ...

In aller Regel werde ich hier ja entweder ein Interrupt oder eine 
Flag-pollende Schleife machen, und dann jeweils sobald ein Byte 'raus 
ist, das nächste ins Datenregister schreiben. Da dürfte also schon 
einiges an Overhead anfallen. Alternativ könnte ich bei dieser hohen 
Datenrate den Code für das SPI auch direkt in den Datenberechnungscode 
einbinden und die Takte abzählen.

Trotzdem, da wird einiges an Overhead entstehen. Aber für eine 
uC-zu-uC-Verbindung scheint mir SPI doch ähnlich schnell als eine 
handgemachte 8-Bit-Port-zu-Port-Datenübertragung.

Autor: Michael U. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Du hast 8 Takte Zeit für ein Byte. Davon gehen 2-3 dafür ab, das Byte 
aus dem Ram zu holen und ins SPI-Register zu schreiben. Bleiben noch 5. 
Wenn Du jetzt noch das Flag auswerten willst, sind mindestens 2-3 weg, 
also noch 2 für andere Aufgaben...

Naja, IRQ fällt hanz aus, der braucht schon 4 für reti, Aufruf müßte ich 
schauen, wohl auch 4.

Das meinte er mit schnell genug liefern.

Gruß aus Berlin
Michael

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.