AVR-SPI zu schnell, was tun?

OP #335260
Lesenswert?
• ▲
▼
Hallo miteinander!

Ich habe folgendes Problem:
Ich möchte mit einem AVR mega128 über SPI ein Device ansprechen,
welches laut Datenblatt allerdings nur eine Maximalgeschwindigkeit von
40KHz unterstützt.
Der uC allerdings läuft mit 16MHz und hat meines Erachtens einen
Prescaler von höchstens 128, was immer noch 125KHz SPI Clock bedeuten
würde.

Also was tun jetzt?
Kann man die USART verwenden? Selbst implementieren? Wie ist das mit
zeitkritischen Problemen?

Vielen Dank!
hubert.
#335265
Lesenswert?
• ▲
▼
> Das mit Software-SPI klingt gut. Sind da fertige Bibliotheken
> verfügbar (am besten in C)?

Hmmmm...
Ist es denn so schlimm, in einem Timer-Interrupt, der sicherlich noch
andere Aufgaben nebenher erledigen kann, einen Taktimpuls an einem Pin
zu erzeugen und den zugehörigen Logikpegel an einen anderen Pin zu
legen und einen Logikpegel von einem anderen Pin einlesen?

Braucht man dazu eine fertige Bibliothek?

...
#335267
Lesenswert?
• ▲
▼
> ich kenne das problem manchmal liesst man daten ein, die so
> schnell kommen dass man mit 1 mhz einfach nicht mehr hinkommt.

Das mag bei größeren Projekten schon mal der Fall sein, aber auch da
kann man durch geschickte Interrupt-Programmierung die Rechenleistung
optimal nutzen.

Um Missverständnisse zu vermeiden: Ich rede von Assembler und habe mit
dem Mega128 noch nicht gearbeitet.

...
Gast #335270
Lesenswert?
• ▲
▼
Hi

> Ich kenne das problem manchmal liesst man daten ein, die so
> schnell kommen dass man mit 1 mhz einfach nicht mehr hinkommt.

SPI ist ein synchroner Bus, das verpasst Du gar nichts, wenn Du über
den Clock nichts einliest. Das kannste mit 1Hz oder mit 1MHz einlesen,
ist egal.

Im Anhang findest Du den C-Source für die Ansteuerung eines SPI FRAM's
von Ramtron.
Bitte häng mich nicht daran auf. Der Code habe ich mal für einen
raschen Test geschrieben und ist nicht überarbeitet. (Geschrieben für
einen H8S-2378 Renesas Controller)

Vielleicht kannst Du ja was davon brauchen.

Musst übrigens in Deiner Applikation aufpassen, das Du den richtigen
SPI Mode verwendest. (Steht im Datenblatt) Mein Code verwendet Mode 3.

Gruss Andy
Angehängte Dateien:

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.