Hallo, ich bin neu hier und erhoffe mir ein bisschen Rat. Ich habe vor ein bisschen mit Microcontrolern zu experimentieren. Ich habe aber bisher nur mit dem C167 von Infineon zu tun gehabt und suche nach etwas ähnlichen nur auf 32/64 bit Basis. Da ich einen Raspberry Pie zur Verfügung hätte wollte ich wissen, ob man den auch Sinnvoll als MC einsetzen kann. Vor allem was Peripheriefunktionen wie GPIO-Ports, Timer und ADC betrifft. Falls der Raspberry Pie unbrauchbar ist, was wären geeignete Alternativen? Modularer Aufbau, sowie eine Ethernet Schnittstelle fänd ich ein nice-have. Auch Multitasking wär cool. Auch wenn ich ein bisschen naiv kling, hätte ich gerne konstruktive Antworten. Gruß Thomas
Thomas Kreppel schrieb: > Da ich einen Raspberry Pie zur Verfügung hätte wollte ich wissen, ob man > den auch Sinnvoll als MC einsetzen kann. verstehe die Frage nicht wirklich. Du kannst mit dem PI machen was du willst. Du kannst Linux weglassen und USB und Netzwerk selber nachprogrammieren oder du lässt Linux drauf und kann genauso Netzwerk und die IO-Port nutzen.
Raspberry Pi ist kein uC, es ist ein vollständiges PC-System. Es ist damit nicht echtzeitfähig (d.h. genaues Timing im ms, us-Bereich ist nicht machbar), braucht ein riesen Betriebssystem, das auch gepflegt werden will (auf lange Sicht ein recht hoher Aufwand) und verbraucht Faktor 50x soviel Strom wie ein Mikrocontroller. Was man gerne macht ist für bestimmte komplexe Aufgaben, die mit einem Betriebssystem viel leichter zu lösen sind, einen Computer wie diesen mit einem Mikrocontroller zu kombinieren. Der uC erledigt die zeitkritischen Aufgaben (Funk, Messwerte, Protokolltimings, ...), der Computer macht die aufwändigen/komplexen Aufgaben. Beispiel: größere Website zur Home-Automation inklusive Datenbank läuft auf dem Pi, der uC steuert Funk, RS485 Protokoll, etc. Beim BeagleBoneBlack gibt's das schon in einem Paket, der hat schon einen uC drauf. Hab ihn da, aber noch nicht damit gearbeitet, kann also nix sagen, ob der BBB auch was taugt.
Conny G. schrieb: > Es ist damit nicht echtzeitfähig (d.h. genaues Timing im ms, us-Bereich > ist nicht machbar), braucht ein riesen Betriebssystem, das auch gepflegt > werden will (auf lange Sicht ein recht hoher Aufwand) und verbraucht > Faktor 50x soviel Strom wie ein Mikrocontroller. nur weil er mit einen BS ausgeliefert wird, heißt das nicht das man ihn nicht ohne BS nutzen kann. Die Doku ist ja vorhanden und dann ist es nur noch ein komplexer µC. Und man kann auch mit einen BS echtzeitfähig sein.
Thomas Kreppel schrieb: > Ich habe aber bisher nur mit dem C167 von Infineon zu tun gehabt und > suche nach etwas ähnlichen nur auf 32/64 bit Basis. STM32 Discovery, z.B.
Peter II schrieb: > Conny G. schrieb: >> Es ist damit nicht echtzeitfähig (d.h. genaues Timing im ms, us-Bereich >> ist nicht machbar), braucht ein riesen Betriebssystem, das auch gepflegt >> werden will (auf lange Sicht ein recht hoher Aufwand) und verbraucht >> Faktor 50x soviel Strom wie ein Mikrocontroller. > > nur weil er mit einen BS ausgeliefert wird, heißt das nicht das man ihn > nicht ohne BS nutzen kann. Die Doku ist ja vorhanden und dann ist es nur > noch ein komplexer µC. > > Und man kann auch mit einen BS echtzeitfähig sein. Ja klar, aber naja. Wenn man einen Mercedes kauft, muss man ihn ja nicht als solchen nutzen. Man kann ja die ganze Elektronik ausbauen und ihn nur mechanisch betreiben :-)) Ist ja wurst, dass man den eigentlichen Mehrwert des System dabei wegwirft. Also theoretisch: ja. Praktisch Unsinn oder was für Geeks, die es so brauchen.
Conny G. schrieb: > Wenn man einen Mercedes kauft, muss man ihn ja nicht > als solchen nutzen. wenn ich im zum Preis eines Polos bekomme, würde ich auch nehmen. > Ist ja wurst, dass man den eigentlichen Mehrwert des System dabei > wegwirft. > Also theoretisch: ja. Praktisch Unsinn oder was für Geeks, die es so > brauchen. wenn man zu dem Preis ein fertiges µC mit Netzwerk und Flash Leser und viel Ram bekommt und das ganze noch sehr kompakt ist das doch ok.
Peter II schrieb: > Conny G. schrieb: >> Wenn man einen Mercedes kauft, muss man ihn ja nicht >> als solchen nutzen. > wenn ich im zum Preis eines Polos bekomme, würde ich auch nehmen. > >> Ist ja wurst, dass man den eigentlichen Mehrwert des System dabei >> wegwirft. >> Also theoretisch: ja. Praktisch Unsinn oder was für Geeks, die es so >> brauchen. > > wenn man zu dem Preis ein fertiges µC mit Netzwerk und Flash Leser und > viel Ram bekommt und das ganze noch sehr kompakt ist das doch ok. Ja klar geht das alles. Aber ich glaube jetzt nicht, dass der TO vorhatte Raspberry Pi Bare Metal Programming zu machen. Die Frage liess viel eher darauf schliessen, dass der Unterschied zwischen einem typischen Mikrocontroller und dem Raspberry Pi nicht klar ist. Und daraufhin zielte meine Antwort. Audience: Beginner. Ich habe nicht vor Euch Raspberry Pi Bare Metal auszureden, wenn ihr das machen möchtet :-)
Conny G. schrieb: > Raspberry Pi ist kein uC, es ist ein vollständiges PC-System. > Es ist damit nicht echtzeitfähig Mit RISCOS im Single-Task ist es echtzeitfähig und die GPIO oder I2C können wie bei einem uC in Assembler programmiert werden. MOV R0, #1000000000B ; GPIO no. 9 LDR R1, =2020001CH ; GPIO set address LDR R2, =20200028H ; GPIO clear address MOV R3, #10000 ; loop SWI "OS_EnterOS" ; supervisor mode .loop STR R0,[R1] ; set STR R0,[R2] ; clear SUBS R3, R3, #1 ; dec. BNE loop SWI "OS_LeaveOS" ; user mode
Ok ok, erstmal vielen Dank für die vielen Antworten >verstehe die Frage nicht wirklich Kann ich auf dem Raspberry Pi mit Linux die IO-Pins, Timer und ADC in einem C Programm verwenden, wie bei einem Microcontroller. >einen Computer wie diesen mit einem Mikrocontroller zu kombinieren Gute Idee Danke >Und man kann auch mit einen BS echtzeitfähig sein Ich will eigendlich wissen, ob der Pi frei programierbare Timer hat >http://www.valvers.com/open-software/raspberry-pi/step01-bare-metal-programming-in-cpt1/ Sehr interessant, Danke für den Link >STM32 Discovery Auch dir vielen Dank, gibt es MC's die mehrere Programme gleichzeitig laufen lassen können? >Die Frage liess viel eher darauf schliessen, dass der Unterschied zwischen einem typischen Mikrocontroller und dem Raspberry Pi nicht klar ist War mir nicht in diesem Umfang bewusst, aber das ist mir jetzt klarer als vorher >Audience: Beginner Ich hab ja gepostet um was zu lernen
Thomas Kreppel schrieb: >>verstehe die Frage nicht wirklich > > Kann ich auf dem Raspberry Pi mit Linux die IO-Pins, Timer und ADC in > einem C Programm verwenden, wie bei einem Microcontroller. IO-Pins ja ADC (wenn überhaupt vorhanden) ja Timer vermutlich nicht, weil Linux sie selber verwendet. Aber du kannst ja in Linux dir Thread programieren. PWM geht auch bei Linux.
Thomas Kreppel schrieb: > Ok ok, erstmal vielen Dank für die vielen Antworten > >>verstehe die Frage nicht wirklich > > Kann ich auf dem Raspberry Pi mit Linux die IO-Pins, Timer und ADC in > einem C Programm verwenden, wie bei einem Microcontroller. Welchen ADC? Am Pi ist kein ADC verbaut. >>Und man kann auch mit einen BS echtzeitfähig sein > > Ich will eigendlich wissen, ob der Pi frei programierbare Timer hat Warum fragst du das dann nicht direkt? Die Frage läuft auf 2 Dinge raus: welche Hardware ist eigentlich auf der Platine verbaut? Was kann die und wie programmiert man die? Und da muss dir klar sein, dass du mit einem Betriebssystem nun mal nicht dieselben Freiheiten hast, wie ohne. Auf einem AVR (ohne Betriebssystem) hindert dich nichts und niemand in die Konfigurationsregister auch noch den größten Murks reinzuschreiben. Hast du aber auf einem Rechner ein Betriebssystem, dann ist es dessen nobelste Aufgabe, den reibungslosen Betrieb sicher zu stellen. Und dazu gehört auch, dass es möglichst gut dafür sorgt, dass sich bei Multitasking die einzelnen Tasks nicht gegenseitig in die Quere kommen. Das gilt selbstverständlich auch für Resourcen. Wenn es nur 1 Drucker gibt, dann kann nicht einfach jeder Task wie er lustig ist, da drauf ausgeben. Hat man ein Betriebssystem, dann programmiert man mit dem Betriebssystem und nicht gegen es. Und ja, das kann auf den ersten Blick dann schon auch mal komplizierter Aussehen als auf einem popeligen AVR. Und es kann auch im Endeffekt langsamer sein, weil die gewünschten Manipulationen erst mal ein paar Betriebssystemschichten durchlaufen müssen, ehe das BS dann sein OK dazu gibt. In diesem Sinne: Tante Google findet für alles Mögliche rund um den Pi genügend Artikel und Tutorien. Als erstes solltest du dir mal ansehen, was eigentlich am Pi alles an Hardware verbaut ist. Wenn da kein ADC vorhanden ist, dann wirst du den auch nicht programmieren können. Und eines muss dir auch klar sein. So ein Pi ist schon ein wenig komplexer als ein AVR. Dafür kriegst du allerdings mit dem darauf laufenden Betriebssystem schon einige Softwareschichten, die du ansonsten erst mal aufwändig selber schreiben müsstest.
hmm... mir gehts jetzt nich um irgendwas bestimmtes wie PWM-Signale. Ich wollte ein bisschen herumprobieren und irgenwas basteln. Eventuell auch mal ne B2C-Schaltung, die dann über den MC gesteuert wird.
Es gibt Dinge, die sind mit einem popeligen µC besser zu realisieren. Der Pi hat erst mal eine ganz andere Zielgruppe und dafür ist er auch ausgelegt. Die Zielgruppe des PI ist und war immer diejenige, die für kleines Geld einen vollwertigen 'all purpose computer' haben wollen, damit auch in Schulen/Familien mit kleinem Budget ein sinnvoller Informatik-Unterricht möglich ist. Was nicht heisst, dass man die Hardware alleine nicht auch für andere Dinge benutzen kann, wenn man sich alles wieder neu schreibt.
Danke für deinen Senf ;) Wegen Betriebssystem vs. NoOS, da bin ich mir ja selbst noch nicht sicher was für mich vorteilhafter ist.
Also meine spinnerte Idee ist, mir einen Frequenzumrichter zu bauen, den man modular erweitern kann um damit vlt. irgendwann mal einen Roboter zu Regeln.... Aber mir ist sehr wohl Bewusst an was ich mich da heranwage, daher hatte ich vor mich erstmal in ein MC einzuarbeiten und dann weiterzuschaun.
Thomas Kreppel schrieb: > Wegen Betriebssystem vs. NoOS, da bin ich mir ja selbst noch nicht > sicher was für mich vorteilhafter ist. > Modularer Aufbau, sowie eine Ethernet Schnittstelle fänd ich ein > nice-have. > Auch Multitasking wär cool. damit ist eigentlich klar das du irgendein BS brauchst. Denn Multitasking eine Eigenschaft von einem BS.
Ja ich weiß aber ich hätte auch gerne manche funktionalitäten eines MC's Ich glaube das sinnvollste ist einfach einen MC zu benutzen und einen Pi für höhere Aufgaben einzubinden.
Thomas Kreppel schrieb: > Ja ich weiß aber ich hätte auch gerne manche funktionalitäten eines MC's > > Ich glaube das sinnvollste ist einfach einen MC zu benutzen und einen Pi > für höhere Aufgaben einzubinden. So wirds ja auch normalerweise gemacht. Alles was auf µs Level zeitkritisch ist, erledigt ein µC, der sich darum und nur darum kümmert. Üblicherweise sind das Dinge, die zwar algorithmisch nicht sehr aufwändig sind, aber in grosser zeitlicher Präzision laufen müssen. Das kann ein µC besonders gut, vor allen Dingen deshalb, weil da ausser deinem Programm nichts anderes läuft und du als Programmierer die volle Kontrolle über alles hast. Aber so ein technisches System besteht ja nicht nur aus derartigen Dingen, sondern darüber liegen ja weitere Schichten, die nicht mehr ganz so zeitkritisch sind. Auf einem Robot ist zb. die Motorsteuerung zeitkritisch. Die Motoren wollen zum richtigen Zeitpunkt ihre Wicklungen umgeschaltet haben und das kann auch nicht warten bis der Datenbankzugriff abgeschlossen ist. Ob aber die Routenplanung zur Umgehung eines Hindernisses ein paar Hunderstelsekunden mehr oder weniger braucht, ist hingegen wieder eher zweitrangig. Dafür läuft dann eben neben der Routenplanung auch noch die Aufzeichnung eines Videos mit.
Gut vielen Dank für den Ganzen Input.... Wenn ich mal wieder Fragen hab meld ich mich ;)
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.