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
:
Bearbeitet durch User
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.
:
Bearbeitet durch User
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
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?
dionysos 328 schrieb: > Befehle von > einem Atmel 32bit-µC auf einer anderen Platine entgegen zu nehmen. Als Slave-Transmitter ist das AVR-SPI schlichtweg grottig. Der 32-Bitter wird den AVR hoffnungslos überfahren. Ohne zusätzliches Handshake kriegt man das nicht zuverlässig zum Laufen. Nimm die UART oder das I2C, das geht auf dem AVR deutlich besser.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.