Experiment zum Vergleich Mikrocontroller und RPi

Gast #4600009
Lesenswert?

Hallo Leute,

ich bin mir nicht sicher, ob ihr mir helfen könnt bzw. ob ich hier 
überhaupt richtig bin. Aber Fragen kostet bekanntlich nichts.

Ich bin auf der Suche nach einem Experiment. Und zwar geht es ganz 
einfach darum, die Geschwindigkeitsunterschiede zwischen Mikrocontroller 
(bzw. Arduino) und dem RPi (GPIO Pins) zu veranschaulichen.
Es sollte ein Experiment sein, welches so einfach wie möglich, aber eben 
mit beiden Geräten durchzuführen ist.

Da ich fast keinerlei Kenntnisse habe, habe ich mich hier ein wenig 
belesen ;)

Es wird in anderen Threads ja davor gewarnt, bei Echtzeitmessungen den 
RPi zu benutzen und doch lieber einen Arduino zu verwenden. Vielleicht 
wäre das eine Heransgehensweise. Ich möchte nämlich genau das mit dem 
Experiment zeigen: das für Echtzeitmessungen ein Mikrocontroller 
entscheidend vorteilhafter ist.

Habt ihr da andere Ideen? Oder habt ihr schon mal so etwas Ähnliches 
gemacht?
Gast #4600019
Lesenswert?

>Ich bin auf der Suche nach einem Experiment. Und zwar geht es ganz
>einfach darum, die Geschwindigkeitsunterschiede zwischen Mikrocontroller
>(bzw. Arduino) und dem RPi (GPIO Pins) zu veranschaulichen.

Dazu braucht es kein Experiment. Der gesunde Menschenverstand
reicht völlig aus.
Persönliche Seite #4600033
Lesenswert?

Kann man machen. Ein Simpelprogramm, das mit maximaler Geschwindigkeit 
einen I/O-Pin invertiert, und ein Oszilloskop oder Frequenzzähler, mit 
dem die erzielte Frequenz gemessen wird.

Für den pi hat das hier jemand mit verschiedenen 
Programmiersprachen/Ansätzen schon mal gemacht:

http://codeandlife.com/2012/07/03/benchmarking-raspberry-pi-gpio-speed/

Das ist nicht sehr aussagekräftig, denn das Kernproblem liegt an anderer 
Stelle - auf dem Pi läuft üblicherweise ein Betriebssystem, das einem 
Prozess nur endlich viel Rechenzeit zugesteht, und das vor allem 
unterschiedlich viel Zeit benötigt, um auf externe Ereignisse zu 
reagieren - das nennt man mangelnde "Echtzeitfähigkeit".
Gast #4600045
Lesenswert?

Du vergleichst Äpfel und Birnen.

Definiere doch bitte erstmal Echtzeit... und dann auch noch, ob es 
harte, oder weiche Echtzeit sein soll...
Es kommt immer auf die Anforderungen an. Je nach Anforderung kann sogar 
ein x86-Prozessor mit Windows echtzeitfähig sein.

Der Unterschied zwischen RPi (ARM) und den Arduinos die auf AVR 
basieren:
ARM (und auch x86) verwenden Piplining/Caching. Damit kannst du nicht 
mehr sagen, wie lange ein Befehl braucht, bis er abgearbeitet ist.
Damit ist deine "echtzeit" schon in gefahr.
Sowas hat ein AVR aber nicht, und wenn im Datenblatt steht, das Befehl 
XY einen Taktzyklus braucht, dann braucht dieser Befehl einen 
Taktzyklus. fertig.

Da braucht es keine Experimente. Kann man alles tausendfach im Internet 
nachlesen.

Wenn du aber doch mal den Unterschied sehen möchtest, schau dir das 
Video von TI zum Beaglebone an:
https://youtu.be/plCYsbmMbmY

Der 1GHz ARM-Core kann gerade mal alle 200ns am Pin wackeln, die 200MHz 
PRU alle 5ns. Zu sehen bei Minute 18:00
(Firma: privatfrickler.de) #4600047
Lesenswert?

Hallo,

ich stimme zu, dass es keines Experimentes bedarf, aber wie wäre es, von 
beiden ein Rechtecksignal erzeugen zu lassen, so schnell, wie es der 
RasPi schafft, und beide in einen Zähler einzuspeisen? Raspi rauf, μc 
runter oder zwei Zähler oder sowas? Oder die beiden Signale 
tiefpassfiltern und in ein Oszilloskop im x/y Modus einspeisen? 
Vielleicht passiert was interessantes durch die sich ändernde Frequenz 
und die driftende Phasendifferenz?

Viele liebe Grüße
Timm

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