Forum: Mikrocontroller und Digitale Elektronik Raspberry Pi Linux erzielbare Latenz?


von Heisenberg (Gast)


Lesenswert?

Nach nur 4 Monaten ist mein Raspberry Pi angekommen (wenigstens ist es 
die Rev. 2.0 mit 512MB und extra GPIOs). Ich wollte jetzt ein Projekt 
mit GPIO realisieren das eine Genauigkeit bzw. Latenz von ca. 5 us 
benötigt. Ist das zu realisieren? Sollte mit Linux sein da Netzwerk mit 
Samba vorhanden sein sollte.

Ich würde also einfach unter Raspbian einen Kernel mit PREEMPT_RT 
kompilieren.

Was kann man da erwarten z.B. bezüglich Interruptlatenz? Hat schon 
jemand Erfahrungen?

von Alexander S. (alexander_s45)


Lesenswert?

Also mit dem PREEMPT_RT hast du warscheinlich ein Latency von circa 
100us mit dem PI. Hier gibts Infos dazu 
https://www.osadl.org/Continuous-latency-monitoring.qa-farm-monitoring.0.html 
. Ansonsten nimm einfach einen DIP AVR (denn kanst sogar direkt über den 
Pi programmieren) und lass den die Ios machen und kommunizier mit SPI 
oder I2C mit dem PI.

von Torsten S. (tse)


Lesenswert?

> mit GPIO realisieren das eine Genauigkeit bzw. Latenz von ca. 5 us
> benötigt. Ist das zu realisieren? Sollte mit Linux sein da Netzwerk mit

Das war jetzt ein Witz, oder?

von Sabine W. (sabine_w)


Lesenswert?

Kann man das Teil für Echtzeitzwecke eigentlich auch ganz "nackt" 
programmieren? Also ganz ohne Betriebsystem und so?
Ich habe nach endlosen Warten meiner auch grad vorgestern bekommen, im 
Juli hatte ich den bestellt.

Sabine

von Michael P. (mpl)


Lesenswert?

Heisenberg schrieb:
> und extra GPIOs

erklär mir das mal bitte genauer...

von liggi (Gast)


Lesenswert?

Ja, die Raspberry Pi kann ohne OS programmiert werden (bare metal). Hier 
das Unterforum von dem Raspberry Pi Forum: 
http://www.raspberrypi.org/phpBB3/viewforum.php?f=72
Und hier noch eine gute Einführung: 
http://www.cl.cam.ac.uk/freshers/raspberrypi/tutorials/os/

MfG, liggi

von Andreas B. (andreasb)


Lesenswert?

Sabine Wolf schrieb:
> Kann man das Teil für Echtzeitzwecke eigentlich auch ganz "nackt"
> programmieren? Also ganz ohne Betriebsystem und so?
> Ich habe nach endlosen Warten meiner auch grad vorgestern bekommen, im
> Juli hatte ich den bestellt.

Sofern du die GPU nicht brauchst sicher. Ist ein ARM. Die GPU ist nicht 
dokumentiert und es existiert nur ein Binary als Treiber, der Rest ist 
Open Source, Doku ist aber nicht verfügbar (für den Normalbürger).



mfg Andreas

von Alexander S. (alexander_s45)


Lesenswert?

Mit der Revision 2 kamm ein weiter Header P5 dazu, darauf sind die Pins 
die für i2s, i2c oder UART Handshakes konfiguriert werden können.

von Heisenberg (Gast)


Lesenswert?

100us? Würg :P Naja, immerhin besser als das was Siemens hinkriegt:

http://www.spiegel.de/wirtschaft/unternehmen/spiegel-neue-ice-modelle-haben-probleme-mit-steuerungssoftware-a-869137.html

Alexander S. schrieb:
> Also mit dem PREEMPT_RT hast du warscheinlich ein Latency von circa
> 100us mit dem PI. Hier gibts Infos dazu
> https://www.osadl.org/Continuous-latency-monitorin...
> . Ansonsten nimm einfach einen DIP AVR (denn kanst sogar direkt über den
> Pi programmieren) und lass den die Ios machen und kommunizier mit SPI
> oder I2C mit dem PI.

Das wird nicht gehen. Das wäre ein relativ komplexes Programm, dass mit 
den GPIOs synchronisiert sein muss. Wer es genauer wissen will: es soll 
eine Emulation der Commodore 1541 Floppy laufen, die über GPIOs an einen 
IEC Bus angeschlossen werden können soll.

Auf Bare Metal wäre das natürlich kein Problem mit dem Timing, aber 
dafür reicht auch ein STM32F4:

http://t-winkler.net/dokuwiki/doku.php?id=1541-emul:start

von Heisenberg (Gast)


Lesenswert?

Hier ist noch ein interessantes Dokument zu dem Thema:

https://www.osadl.org/fileadmin/dam/rtlws/12/Brown.pdf

Sieht aus als wäre Xenomai die beste Möglichkeit um Linux RT fähig zu 
kriegen.

von Strubi (Gast)


Lesenswert?

Moin,

Heisenberg schrieb:
> Hier ist noch ein interessantes Dokument zu dem Thema:
>
> https://www.osadl.org/fileadmin/dam/rtlws/12/Brown.pdf
>
> Sieht aus als wäre Xenomai die beste Möglichkeit um Linux RT fähig zu
> kriegen.

Kann ich bestätigen. RT_PREEMPT ist zwar auch nicht schlecht geworden, 
aber für härtere Anforderungen ist Xenomai doch noch Nr. 1. Allerdings 
muss man die Gerätetreiber extra dafür anpassen und alle Bremser wie 
printf oder  Zugriffe im Nicht-RT-Bereich sehr gut kontrollieren.
Dann kriegt man Latenzen von wenigen us hin, allerdings nicht auf allen 
Systemen. Linux performt da etwas schlechter als uClinux. Bei 5us bin 
ich skeptisch, der Aufwand, das zu laufen zu kriegen könnte deutlich 
höher über der Programmierung eines FPGA liegen...

von Jens D. (jedie) Flattr this


Lesenswert?

Heisenberg schrieb:
> es soll
> eine Emulation der Commodore 1541 Floppy laufen, die über GPIOs an einen
> IEC Bus angeschlossen werden können soll.

Was ist aus dieser Idee geworden?

Ich frage mich, ob man mit dem RPi auch die Floppy eines alten Dragon 32 
Homecomputer emulieren könnte.

von Der Troll (Gast)


Lesenswert?

koennen tut man das Sicher, die Frage ist eher wie. Viel spass beim 
heraussuchen der noetigen dokumentation.

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.