Forum: Mikrocontroller und Digitale Elektronik Microcontroller Allgemein


von Thomas K. (Firma: Kreppel Inc.) (aiman)


Lesenswert?

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

von Peter II (Gast)


Lesenswert?

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.

von Conny G. (conny_g)


Lesenswert?

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.

von Peter II (Gast)


Lesenswert?

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.

von Peter II (Gast)


Lesenswert?


von Eric B. (beric)


Lesenswert?

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.

von Conny G. (conny_g)


Lesenswert?

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.

von Peter II (Gast)


Lesenswert?

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.

von Conny G. (conny_g)


Lesenswert?

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 :-)

von Lothar (Gast)


Lesenswert?

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

von Thomas K. (Firma: Kreppel Inc.) (aiman)


Lesenswert?

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

von Peter II (Gast)


Lesenswert?

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.

von Karl H. (kbuchegg)


Lesenswert?

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.

von Thomas K. (Firma: Kreppel Inc.) (aiman)


Lesenswert?

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.

von Karl H. (kbuchegg)


Lesenswert?

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.

von Thomas K. (Firma: Kreppel Inc.) (aiman)


Lesenswert?

Danke für deinen Senf ;)

Wegen Betriebssystem vs. NoOS, da bin ich mir ja selbst noch nicht 
sicher was für mich vorteilhafter ist.

von Thomas K. (Firma: Kreppel Inc.) (aiman)


Lesenswert?

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.

von Peter II (Gast)


Lesenswert?

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.

von Thomas K. (Firma: Kreppel Inc.) (aiman)


Lesenswert?

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.

von Karl H. (kbuchegg)


Lesenswert?

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.

von Thomas K. (Firma: Kreppel Inc.) (aiman)


Lesenswert?

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