Forum: Mikrocontroller und Digitale Elektronik Experiment zum Vergleich Mikrocontroller und RPi


von Dom (Gast)


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?

von holger (Gast)


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.

von Rufus Τ. F. (rufus) Benutzerseite


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".

von Kaj (Gast)


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

von Timm R. (Firma: privatfrickler.de) (treinisch)


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

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Kaj schrieb:
> Der 1GHz ARM-Core kann gerade mal alle 200ns am Pin wackeln

Der im Pi anscheinend häufiger, wenn er es schafft, ein 22MHz-Rechteck 
zu erzeugen.

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
Noch kein Account? Hier anmelden.