ATmega328p und zwei SPI Kanäle

OP #3646094
Lesenswert?
• ▲
▼
Hallo Leute,

ich stehe vor der Aufgabe, mit einem 8bit-µC von Atmel (ATmega328p) 
einen Drehratensensor zu realisieren.

Als Sensor habe ich den MLX90609 vorliegen, welcher per SPI angebunden 
werden soll.
Über die gleiche SPI-Schnittstelle soll auch eine SD-Karte angebunden 
werden, um Daten loggen zu können.
Für diese beiden Aufgaben ist der µC der SPI-Master.

Nun soll nach Möglichkeit auch die Option vorhanden sein, Befehle von 
einem Atmel 32bit-µC auf einer anderen Platine entgegen zu nehmen.
Dazu müsste ein separates SPI-Interface als Slave konfiguriert werden.

Ist das mit dem gegeben ATmega328p überhaupt möglich?
Meines Wissens verfügt er nur über eine Hardware-SPI Schnittstelle.

Und ist der µC wohl schnell genug, um die Daten des Sensors mit hoher 
Abfragefrequenz zu lesen und gleichzeitig auf der SD-Karte wegzuloggen?

Danke und Grüße,
dionysos
#3646107
Lesenswert?
• ▲
▼
dionysos 328 schrieb:

> Ist das mit dem gegeben ATmega328p überhaupt möglich?

Das kommt auf die erforderlichen Datenraten an

> Meines Wissens verfügt er nur über eine Hardware-SPI Schnittstelle.

SPI ist ja nicht so dermassen komplex, dass man es nicht mit ein paar 
Pins und ein wenig Software realisieren kann.

> Und ist der µC wohl schnell genug, um die Daten des Sensors mit hoher
> Abfragefrequenz zu lesen und gleichzeitig auf der SD-Karte wegzuloggen?

'hohe Abfragefrequenz' ist keine Angabe mit der man mal ein bischen 
rechnen könnte.
Der Sensor wird eher nicht das Problem sein. Die SD Karte schon. Denn 
auf eine SD Karte zu schreiben, überhaupt wenn da ein Filesystem 
involviert ist, ist normalerweise um Grössenordnungen langsamer als 
alles andere.

Aus dem Bauch raus würde ich die Hardware-SPI für die Kommunikation mit 
dem anderen µC reservieren und die restlichen beiden SPI über Software 
abwickeln. Denn SPI als Master zu betreiben ist relativ trivial, weil du 
alles kontrollieren kannst. Schwieriger ist es schon als Slave zu 
agieren. Denn dort drückt dir der andere Teilnehmer sein Timing aufs 
Auge.
Gast #3646112
Lesenswert?
• ▲
▼
Beim Mega328P kann man die USART auch als SPI benutzen (nur als Master, 
aber immerhin). Wenn du die also nicht als UART benötigst, oder da eine 
Software-UART einsetzen kannst, hast du 2 Hardware-SPI verfügbar.

Oliver
#3646122
Lesenswert?
• ▲
▼
Karl Heinz schrieb:

> Aus dem Bauch raus würde ich die Hardware-SPI für die Kommunikation mit
> dem anderen µC reservieren und die restlichen beiden SPI über Software
> abwickeln. Denn SPI als Master zu betreiben ist relativ trivial, weil du
> alles kontrollieren kannst. Schwieriger ist es schon als Slave zu
> agieren. Denn dort drückt dir der andere Teilnehmer sein Timing aufs
> Auge.


Nachtrag:
sehe gerade im Datenblatt des 328, dass man dessen UART auch als SPI 
benutzen kann. Wodurch sich die Frage Hardware oder Software gar nicht 
mehr stellt.

Du hast aber schon erst mal im Datenblatt studiert, welche Möglichkeiten 
du überhaupt mit diesem µC hast?

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.