Ansteuergeschwindigkeit von IO-Ports am Raspberry

Gast #4219726
Lesenswert?
• ▲
▼
Hi,

man kann mit dem Raspberry Pi verschiedene IO-Ports ansteuern. Ich 
wollte z.B. an einem Pin mit den GPIO-Befehlen ein PWM-Signal ausgeben 
mit 50 Prozent.  Das funktioniert soweit ganz gut:

Hier ein einfaches Beispielpgrogamm:
freq = 1 Hz

while (...)
 wait ( 1/(2*freq) )
 GPIO_PIN = ON
 wait ( 1/(2*freq) )
 GPIO_PIN = OFF

Mein Problem ist, dass das nur bis ca. 1kHz funktioniert. 10kHz 
funktionieren schon garnicht mehr. Warum sind die GPIO-Ports so träge?

Kann ich beim RPi irgendwie direkt auf die Register drauf zugreifen wie 
bei uCs, mit denen die GPIO-POrts gesteuert werden?
Gast #4219768
Lesenswert?
• ▲
▼
Ja, man kann direkt mit Set und clear direkt auf die i/o zugreifen.

Der scheduler wird dir aber hin und wieder einen strich durch die 
Rechnung machen. Für die ersten paar zyklen kann man so 40 MHz 
erreichen, dann schlägt beim pi ein Schutz zu, der verhindert dass der 
arm auf den gpio zu viel macht und es geht dann mit 20Mhz weiter, bis 
eben der Task nicht mehr dran kommt.

Such nach mmap gpio example.


Es gibt dann da noch den VideoCore, da kann man einen Kernel laden, der 
dann nur das eine macht solange bis er fertig ist. Da habe ich konstant 
40Mhz Pin toggeln hin bekommen, was wohl das Maximum ist, was man in sw 
erwarten kann... oder 32Mhz spi.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.