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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren