Hallo,
ich möchte einen µC "zum Herumspielen und Lernen" nutzen.
Habe im Studium (Elektrotechnik) bisher Grundlagen in C++ und Python
gelernt und hatte eigentlich vor, mir einen Raspberry Pi zu kaufen.
Nun hat Conrad den Radxa RS114+B2E16 Rock 4 B+ 2 GB 2.0 GHz gerade
günstig im Angebot, der mit knapp 70€ gut in mein Budget (möglichst
nicht mehr als 100€) passt.
Fragen:
- Wie wichtig ist die Wahl des µC-Herstellers im Hinblick auf Literatur,
Tutorials etc., um das Ansteuern von Ausgängen (z.B. LED), Abfangen des
Prellens von Schaltern, externes Display ansteuern usw. zu erlernen?
- Sollte ich mich mit Blick auf eventuellen µC-Einsatz später im Beruf
eher in Richtung Raspberry Pi, Arduino o.ä. orientieren oder ist das
komplett egal?
- Lassen sich Tutorials für Raspberry Pi auf den Radxa übertragen?
- Auf welche technischen Daten sollte ich achten?
- Gibt es konkrete Empfehlungen für einen µC?
- Was kann ich an Mehrwert bekommen, was der Radxa RS114 nicht hat?
- Wie wichtig sind Speicher und Leistung?
- Welcher µC bietet das beste Lernpotenzial?
Freue mich über Tipps.
Sowohl der Raspberry Pi, als auch Radxa sind keine Mikrocontroller (µC)
sondern Single Board Computer (SBC).
Darauf läuft i.d. Regel Linux und du kannst damit alles lernen, was du
auf jedem anderen Linux-Rechner auch lernen kannst. Zusätzlich gibt es
dann ein paar IO-Ports, auch mit I2C oder SPI, mit denen du dann
Hardware ansteuern kannst. Linux ist i.A. nicht echtzeitfähig, d.h. es
gibt keine garantierten Antwortzeiten, weil in so einem
Multi-Prozess-Betriebssystem immer auch etwas anderes gerade die CPU
belegen kann.
Ein Mikrocontroller hat i.d. Regel kein Betriebssystem, allenfalls ein
ganz kleines (z.B. RTOS), ist aber echtzeitfähig, weil da nur dein
Programm drauf läuft.
Der Raspi ist als SBC toll weil es viele Tutorials und Dokumentation
dafür gibt und man weil man mit einem richtigen Linux natürlich viele
tolle Sachen anstellen kann, auch Webserver, NAS, Homeautomation...
Ein µC kann deutlich weniger, programmiert wird i.d. Regel hardwarenah,
z.B. in C. Dafür sind sie i.d. Regel deutlich billiger und die
Interaktion mit Hardware ist viel direkter und zeitlich präziser.
Mein Vorschlag:
Wenn du dich mit Linux noch nicht gut auskennst, hol dir den Radxa oder
irgendeinen Raspberry.
Wenn du wirklich was mit einem µC machen willst hol dir einen billigen
Arduino oder den RP2040. Für beide gibt es viel Doku.
Stefan G. schrieb:> ich möchte einen µC "zum Herumspielen und Lernen" nutzen.> Raspberry Pi> Radxa RS114+B2E16 Rock 4 B+
Beides sind SBCs und keine µCs.
Vermutlich gibt es dazu auch keine Doku. (NDA)
Als µC zum Herumspielen, empfehle ich die AVRs (tutorial im forum) +
AVRISPMkII Klon oder etwas ARM Cortex M basiertes, zB. die STM32 von ST.
Dazu einen Jlink.
Stefan G. schrieb:> Wie wichtig ist die Wahl des µC-Herstellers im Hinblick auf Literatur
Die Manuals/Datenblätter/Appnotes sehen anders aus und unterscheiden
sich im Detail.
Stefan G. schrieb:> Sollte ich mich mit Blick auf eventuellen µC-Einsatz später im Beruf> eher in Richtung Raspberry Pi, Arduino o.ä. orientieren oder ist das> komplett egal?
Arduino ist ein Framwork für Maker und Künstler, um die interna des µCs
vor dem Anwender zu verbergen.
Stefan G. schrieb:> Welcher µC bietet das beste Lernpotenzial?
Arm basierte µCs sind sicher sehr weit verbreitet.
Tilo R. schrieb:> Sowohl der Raspberry Pi, als auch Radxa sind keine Mikrocontroller (µC)> sondern Single Board Computer (SBC).
Ups, danke.
Tilo R. schrieb:> Wenn du wirklich was mit einem µC machen willst hol dir einen billigen> Arduino oder den RP2040. Für beide gibt es viel Doku.
Der RP2040 sieht interessant aus.
Ich würde den dann mit dem Cytron Maker Pi RP2040 verwenden... oder gibt
es bessere Empfehlungen?
666 schrieb:> Arm basierte µCs sind sicher sehr weit verbreitet.
Das spricht für den RP2040, oder?
Stefan schrieb:> Der RP2040 sieht interessant aus.
Ja, ist aber ein Exot.
Momentan gehyped, single source und doch sehr anders als avr, pic, stm32
etc.
Die AVR sind 'gut abgehangen', einfach und sehr weit verbreitet.
Nimm die zum Einstieg. Also den üblichen Arduino, denn das sind nichts
weiter als AVR Controller mit ein wenig HW, die es dir leicht machen
soll ohne löten gleich loszulegen.
Stefan schrieb:> Grundlagen in C++ und Python> gelernt
Beides kannst Du auf kleinen µC eigentlich vergessen.
µC heißt sehr begrenzte Recourcen und kein OS das auf magische Art und
Weise Dinge passieren lässt.
Werde Dir klar was genau Du tun willst.
Die AVRs haben auf jeden Fall den Vorteil, dass man sie auch ohne
Framework oder Hardwareabstraktionsschicht nativ in C programmieren
kann.
Da lernt man sehr gut, wie man die Hardware über einzelne Register
anspricht und wo man das im Datenblatt findet.
Der Cytron Maker Pi RP2040 ist sicher sein Geld wert. Wenn rp2040, dann
würde ich eher einen "normalen" kaufen, dafür aber ein Breadboard und
ein paar Bauteile dazu legen.
Max M. schrieb:
[Grundlagen in C++ und Python]
> Beides kannst Du auf kleinen µC eigentlich vergessen.
Naja, ich bin ein Fan davon, dass die Lernenden überhaupt mal anfangen
sich mit µC zu beschäftigen. Mit einem RP2040 Board für 5 € und
MicroPython ist erstmal ein Einstig geschafft, dies ist im wesentlichen
auch nichts anderes als z.B. das Basic auf dem 8052AH vor über 30
Jahren. Später kann man dann natürlich gerne auch in C absteigen, der
RP2040 bringt da viele Libs mit. Geht man irgend wann mal auf die
Registerebene, wird es aber anspruchsvoller. Bis der TO auf der
Registerebene abgekommen ist, dürfte auch die Doku des RP2040 i0n dieser
Hinsicht besser sein.
Max M. schrieb:> Werde Dir klar was genau Du tun willst.
Dafür bin ich hier. :-)
Tilo R. schrieb:> Wenn rp2040, dann> würde ich eher einen "normalen" kaufen, dafür aber ein Breadboard und> ein paar Bauteile dazu legen.
Ein paar Breadboards habe ich sogar noch. Was für Bauteile (außer
Brücken, LEDs, Widerstände, Elkos etc.) bieten sich noch an? Gibt es ein
empfehlenswertes Display?
klausr schrieb:> Mit einem RP2040 Board für 5 € und> MicroPython ist erstmal ein Einstig geschafft
Ich habe mal gesucht und bei berrybase für 4,10€ das
Raspberry Pi Pico, RP2040 Mikrocontroller-Board
gefunden, sowie für 7,90€ den
Dual GPIO-Expander für Raspberry Pi Pico.
Sind das Board und der Expander miteinander kompatibel? Sehe ich das
richtig, dass das RP2040-Board dann mit der "Vorderseite" nach unten auf
dem GPIO-Expander sitzt? Ist das bzgl. Erreichbarkeit des
Bootsel-Buttons nachteilig?
Stefan schrieb:> Raspberry Pi Pico
Über den Raspberry Pi Pico gibt es das zu sagen:
Max M. schrieb:> Ja, ist aber ein Exot.> Momentan gehyped, single source und doch sehr anders als avr, pic, stm32> etc.
Zusammenfassung: Ein eher exotischer, gehypter µC, eines Newcommers auf
dem Markt, der gerade lieferbar und "preiswert" ist...
Stefan schrieb:> - Sollte ich mich mit Blick auf eventuellen µC-Einsatz später im Beruf> eher in Richtung Raspberry Pi, Arduino o.ä. orientieren oder ist das> komplett egal?
Schaue dir bei diesem Ziel lieber die µCs und evaluation/development
boards von namhaften/etablierten Herstellern an. Im Forum ist vor allem
STM32 verbreitet, ua. weil ST vor Jahren reihenweise preiswerte
developement und evaluation boards rausgebracht hat, (zB. STM32 Nucleo).
Weitere Hersteller von ARM Basierten µCs sind unter anderem NXP
(LPCXpresso-boards), Microchip, Renesas, Ti, Infineon,...
Wichtig ist, dass dir die Dokumentation des Herstellers und eine
gepflegte IDE plus mindestens CMSIS implementierung zur Verfügung
steht.
Dazu einen Jlink edu (evtl. "mini"-version) oder einfach den
integrierten Bootloader nutzen.
Oder, für den Einstieg vielleicht besser, um Grundwissen zu sammeln,
einfach die Tutorials: AVR-Tutorial, AVR-GCC-Tutorial lesen, dir
einen passenden AVR + Programmer kaufen + Datenblatt runterladen und im
Atmel/Microchip Studio loslegen.
Stefan schrieb:> Fragen:> - Wie wichtig ist die Wahl des µC-Herstellers im Hinblick auf ...> - Sollte ich mich mit Blick auf eventuellen µC-Einsatz später im Beruf> eher in Richtung ...
Deine Fragen klingen wie die von jemandem, der noch nie ein Auto gesehen
hat und vom Autofahren oder gar den Regeln des Straßenverkehrs noch nie
etwas gehört hat und der als allererstes fragt "Welche Automarke soll
ich wählen?"
Es ist mit der Elektronik und speziell mit der digitalen Elektronik und
noch spezieller mit dem Verwenden und Programmieren von Mikrocontrollern
genau so wie mit allen ernsthaften Betätigungen: Man muß lernen. Alles
andere kommt danach. Und das Lernen bedeutet, schlußendlich zu verstehen
WIE etwas funktioniert - und nicht woher man ein fertiges Stück Programm
dafür kriegt.
Stefan schrieb:> ich möchte einen µC "zum Herumspielen und Lernen" nutzen.
Das schließt einander aus: entweder Herumspielen (also Zeit totschlagen
ohne Mühe zu haben) oder Lernen (also Verstehen um ein gefaßtes Ziel
erreichen zu können, also sich Mühe geben).
Normalerweise ist es so, daß diejenigen, die sich für etwas
interessieren, von sich aus sich Mühe geben und lernen. Mir fällt da ein
alter Jäger-Spruch ein: "Einen Hund, den man zum Jagen tragen muß,
sollte man erschießen." Das klingt zwar nicht nach Eiapoppeia, ist aber
im Grunde durchaus realistisch. Also, willst du zum Jagen getragen
werden oder hast du eine eigene Intention?
W.S.
666 schrieb:
[RP2040]
> Zusammenfassung: Ein eher exotischer, gehypter µC, eines Newcommers auf> dem Markt, der gerade lieferbar und "preiswert" ist...
Ja, er ist lieferbar und er ist sogar SEHR preiswert für all seine
Features.
Im Prinzip ist er in seinem Leistungbereich derzeit sogar völlig
konkurrenzlos. Ich hoffe, dass das nicht so bleibt...
c-hater schrieb:> Ja, er ist lieferbar und er ist sogar SEHR preiswert für all seine> Features.
Klar ist der lieferbar.
Der ist ja so neu und so anders das der noch lange nicht in
kommerziellen Projekten verwendet wird.
Da zähle ich jetzt mal nicht die zahllosen Maker Boards zu.
Natürlich macht man den billig und verschleudert geradezu die Boards.
Das hat bei STM doch auch dazu geführt das die überall eingesetzt
wurden.
Ich finde die Doku im Hipster Speech aber fragwürdig und im Detail dann
oft sehr dünn.
Als Spaß MCU ein schickes Teil, wie schon der Parallax Propeller.
Wir werden sehen wohin sich der entwickelt.
Der TO wollte wissen was er im Job später einsetzen kann.
Der RP2040 ist es nicht.
AVR, STM32 und auch PIC sind da stark im MCU Bereich.
Der RP2040 ist ein ambitioniertes Projekt der Raspi Leute die irgendwas
zwischen einem fetten Anwendungsprozessor für Linux und einer billigen,
sparsamen MCU zwischen STM32 und ESP.
Ein M0+ Dualcore System mit den 8 nur in ASM programmierbaren PIOs ist
ein geiles Spielzeug. Aber als totaler NOOB damit beginnen?
Ich weiß ja nicht...
Nicht mal der TO weiß ja wie weit unten er eigentlich anfangen will.
Ich würde mit einem langweiligen 8bitter beginnen den man noch sehr gut
verstehen kann und mich dann weiterentwickeln.
Wie gut das RP2040 Design in industriellen Anwendungen funzt wird man
erst sehen müssen.
20mm² Chipfläche im TSMC 40nm Node ist kein Pappenstiel und wenn der
Chip erst in großen Stückzahlen nachgefragt wird, wird der Preis ganz
empfindlich anziehen.
Max M. schrieb:> Der ist ja so neu und so anders das der noch lange nicht in> kommerziellen Projekten verwendet wird.
Doch, wird er. Bei uns derzeit schon in zwei Produkten. Bei einigen
weiteren ist der Port in Arbeit.
> Ein M0+ Dualcore System mit den 8 nur in ASM programmierbaren PIOs ist> ein geiles Spielzeug. Aber als totaler NOOB damit beginnen?> Ich weiß ja nicht...
Man muss ja nicht mit den PIOs beginnen. Die sind doch nur das
Sahnehäubchen, was den Anwendungbereich gegenüber einem generischen
M0+-2Kerner deutlich erweitert. Wie übrigens auch der RAM-Speicher von
256kByte, der allerdings ohne jegliche Asm-Ausflüge und ohne
handverfasste Linker-Scripte unmittelbar und problemlos verfügbar ist...
W.S. schrieb:> Stefan schrieb:>> ich möchte einen µC "zum Herumspielen und Lernen" nutzen.> Das schließt einander aus:
Finde ich nicht. "Spielen" bedeutet für mich, etwas mit zu tun, das mir
Spaß macht, und einfach mal auszuprobieren. So wie mit meiner ersten
Modellbahn, meiner ersten Kamera und so weiter. Da hatte ich auch
erstmal nur einen Trafo mit 2 Drähten zum Gleis bzw. Einschalter und
Auslöser und habe erstmal angefangen. Okay, bei der MoBa hatte ich im
Eifer des Gefechts aus der Sammlung vom Dachboden zuerst ein
Entkupplungsgleis statt eines Anschlussgleises angeschlossen
("brrrrrrrrrrrrrrrrrt"). Try and Error. Beim Anschluss des 2. Trafos
habe ich dann gelernt, auf die Polung des Netzsteckers zu achten wenn
ich die Masseanschlüsse verbinde und dass ein alter Primex-Trafo aus
1980 auch rücktransformieren kann, wenn der Schleifer einer Lok die
PuKos zweier isolierter Stromkreise verbindet.
Anders als bei MoBa und Kamera "sieht" man das Ergebnis beim µC nicht so
"sofort". Daher hielt ich es für eine gute Idee, hier mal nachzufragen
(und habe schon viel nützliche Info mitbekommen, Danke!).
> Also, willst du zum Jagen getragen> werden oder hast du eine eigene Intention?
Hmm. Aktuell habe ich 0 Ahnung von µC. Möchte damit kleine Projekte
(siehe oben) realisieren, vielleicht auch später mal etwas
Echtzeit-basiertes machen. Nach Möglichkeit meine Zeit nicht mit einem
längst überholten System verschwenden, für das ich viel nutzloses
Wissen anhäufen muss, das später im Beruf als Elektroingenieur eh keiner
mehr braucht.
Auf die Fotografie übertragen: Ich habe zwar noch keine Ahnung, wie man
Blende, Belichtungszeit, Brennweite und Sensorgröße optimal nutzt, aber
ich möchte nicht als erstes damit starten, einen analogen Film in S/W zu
entwickeln. Auch wenn man das wohl irgendwie gebrauchen kann.
Auf der anderen Seite will ich natürlich nicht mit dem Handy knipsen,
obwohl selbst damit tolle Bilder möglich sind. Nun gibt es verschiedene
Vorschläge... der RP2040 scheint so etwas wie eine Bridge-Kamera mit
fest verschraubtem Objektiv zu sein und AVR, STM32 und PIC sowas wie
Canon, Nikon und Sony mit Wechselobjektiven.
Zum Lernen von manuellen Einstellmöglichkeiten ist wohl alles
gleichermaßen geeignet und ich habe mal wieder die typische
"rot"-oder-"gelb"-Diskussion (Farbe des Kameragurts) losgetreten.
Fazit: Ein Entwicklerboard gibt es wohl schon für 5€-15€, also nichts
was mir weh tut. Schon mal viel besser als die 70€, die ich im
Eröffnungsbeitrag im Sinn hatte.
Beim Board sollte ich wohl darauf achten, dass die Anschlüsse irgendwie
steckbar sind, da ich keine Lust habe, alles zu löten (vgl. analoger
SW-Film)?
Die Hinweise, zu welchen µC es vernünftige Dokumentationen gibt, sind
für mich sehr nützlich.
Nun schwanke ich zwischen dem RP2040, dem STM32 Nucleo und einem AVR.
Mir geht es hier eigentlich nur darum, mir eine sinnvolle Teileliste
zusammenzustellen, um nicht in 2 Wochen irgendwas nachbestellen zu
müssen und dann nochmal 6€ Porto zu zahlen.
Vor Assembler / Registeradressierung etc. habe ich keine Angst, würde
auch das AVR-Tutorial hier im Forum einfach durcharbeiten, wenn das zum
Verständnis am sinnvollsten ist.
Wenn mir jemand sagt, dass das heute in 50% der Fälle so unnötig wie
analoge Filmentwicklung ist und man wenigstens in C oder Micropython
starten sollte, dann würde ich mir das sparen. Und wenn es für ein paar
"Erfolgserlebnisse" von Vorteil ist, erstmal in C zu beginnen und später
in Assembler einzusteigen - gerne.
Meine Frage bzgl. RP2040 und GPIO-Expander konnte ich mir inzwischen
beantworten (ist kompatibel).
Wenn die Wahl zwischen dem RP2040, dem STM32 mit Nucleo und einem AVR
nur der Wahl zwischen Canon, Nikon und Sony oder der Wahl zwischen rot,
gelb und grün entspricht und man am Ende - sofern man es mal beruflich
nutzt - so einfach umsteigen kann wie von Märklin zu Roco, dann brauche
ich mit dem Entscheidungsprozess keine Zeit verlieren. Dann probiere ich
einfach erstmal den RP2040 aus und sehe danach weiter.
Ohnehin wäre wohl der größte Fehler, einfach nichts zu tun. :-D
Stefan schrieb:> Hmm. Aktuell habe ich 0 Ahnung von µC. Möchte damit kleine Projekte> (siehe oben) realisieren, vielleicht auch später mal etwas> Echtzeit-basiertes machen. Nach Möglichkeit meine Zeit nicht mit einem> längst überholten System verschwenden, für das ich viel nutzloses> Wissen anhäufen muss, das später im Beruf als Elektroingenieur eh keiner> mehr braucht.
Hmm... ich denke, du hast da noch recht seltsame Vorstellungen. Das
Entwerfen/Konstruieren/Bauen mit Mikrocontrollern braucht
Grundlagenwissen - sowohl auf der rein elektronischen Seite als auch auf
der Programmierseite. Und solche Termini wie "längst überholte Systeme"
und "nutzloses Wissen" klingen nicht nur fischig, sondern sind es auch.
Man will ja kein angelernter Bediener sein für eine bestimmte Maschine,
der auf eben diese Maschine gedrillt wurde.
Ich hatte hier schon mal gewitzelt mit "Ingenieur für STM32F1xx" versus
"Ingenieur für STM32F3xx", die sich 'grundlegend' unterscheiden...
Nein, so nicht. Eigentlich mit allen Produkten kann man etwas basteln
und man kann (und muß) auch bei Verwendung von allen Produkten
Grundlagenwissen sich aneignen, also solches Wissen, was eben nicht
spezifisch ist für einen speziellen Chip. Also Herangehensweisen und
Algorithmen auf der Programmierseite und Schaltungstechnik und
Funktionalitäten auf der elektronischen Seite.
Allerdings sehe ich, daß man gerade am Anfang, wenn man noch nix weiß
und kann, eher zu kleineren und überschaubareren Bauteilen greifen
sollte und solche Dinger, die eine Flut von Peripherie und Funktionsmodi
auf dem Chip haben oder die gar so komplex sind, daß sie nur mit einem
Betriebssystem benutzbar sind, erst später ansehen, wenn man bereits
sehr viel mehr weiß und sich dann mit sowas befassen will.
Vorausgesetzt, die eigenen Interessen gehen genau in diese Richtung.
Stefan schrieb:> Nun schwanke ich zwischen dem RP2040, dem STM32 Nucleo und einem AVR.
An solchen Stellen sehe ich, daß man von diesem Forum auch mal
fehlgeleitet werden kann. Das ist kein böser Wille bei denen, die dir
sowas vorschlagen, aber es bringt dich in eine falsche Richtung.
Mache es anders: Suche dir eine Architektur heraus, die nicht allzu
kompliziert ist, schau dich um, was man da braucht, um solche Chips zu
programmieren (also den selbsterdachten Maschinencode in den Speicher
des Chips zu kriegen) und wie kompliziert das ist. Dann schau dich um,
was man zum Machen der eigenen Programme alles braucht - also in
neudeutsch die Toolchain - und wie einfach oder kompliziert das zu
benutzen ist. Und laß dich nicht dabei verleiten von Aussagen wie "kann
ohne alles direkt am USB programmiert werden" oder so. Ja, es gibt
sowas, aber das hat andere Haken. Und wenn Programmiergeschirre und/oder
Toolchain zu hakelig oder zu teuer oder sonstwie dir unsympathisch sind,
dann schau dich um, ob es da etwas anderes gibt, was dir eher zusagt.
Notfalls fange mit einem anderen Chip an. Das war nur die
Programmierseite. Schau dich auch erst mal um, wie man den Chip deiner
Wahl auf eine Leiterplatte kriegt, was der für eine Versorgung, Takt
usw. braucht und ob dir dessen Referenzmanual zusagt. Versteife dich
nicht auf fertige Eval- oder Demo-Boards der Hersteller, sondern entwirf
dir deine eigene Leiterplatte - mit passender Beschaltung für Takt,
Reset, Versorgung, Programmierung. Die mußt du nicht als Allererstes
selber bauen, aber entwerfen. Damit kriegst du mit, ob und wie
kompliziert oder leicht das bei dem gewählten Chip geht. Das wäre der
allererste Anfang auf der elektronischen Seite.
Und dann, wenn dir beide Seiten (Elektronik und Programmierung) zusagen,
ja dann ist der passende Chip gefunden. Nicht vorher.
W.S.
W.S. schrieb:> Hmm... ich denke, du hast da noch recht seltsame Vorstellungen.
Aha.
W.S. schrieb:> Und solche Termini wie "längst überholte Systeme"> und "nutzloses Wissen" klingen nicht nur fischig, sondern sind es auch.
Aha. Also ist ein TI TMS 1000 auch noch zeitgemäß und am besten sollte
ich ihn in Maschinencode programmieren, um möglichst viel zu lernen?
W.S. schrieb:> Suche dir eine Architektur heraus, die nicht allzu> kompliziert ist, schau dich um, was man da braucht, um solche Chips zu> programmieren (also den selbsterdachten Maschinencode in den Speicher> des Chips zu kriegen) und wie kompliziert das ist.
55
48 89 E5
C7 45 FC 01
W.S. schrieb:> Und laß dich nicht dabei verleiten von Aussagen wie "kann> ohne alles direkt am USB programmiert werden" oder so. Ja, es gibt> sowas, aber das hat andere Haken.
Welche?
W.S. schrieb:> dann schau dich um, ob es da etwas anderes gibt, was dir eher zusagt.
Ohne das eine zu kennen, soll ich nach dem anderen suchen?
W.S. schrieb:> Schau dich auch erst mal um, wie man den Chip deiner> Wahl auf eine Leiterplatte kriegt, was der für eine Versorgung, Takt
Für die Wahl des Chips hatte ich den Thread eröffnet und auf ein
Breadboard
oder einen Expander kriege ich ihn auch gerade noch gesteckt.
Versorgungsspannung und Takt finde ich im Datenblatt.
W.S. schrieb:> Und dann, wenn dir beide Seiten (Elektronik und Programmierung) zusagen,> ja dann ist der passende Chip gefunden. Nicht vorher.
Zu Anfang des Posts stand, so wie ich es verstanden habe, der Chip sei
weitestgehend egal. Oder nicht?
Danke für die philosophische Beleuchtung des Themas. Ich werde dann mal
Google nutzen.
Stefan schrieb:> Aha. Also ist ein TI TMS 1000 auch noch zeitgemäß und am besten sollte> ich ihn in Maschinencode programmieren, um möglichst viel zu lernen?
Irgendwie habe ich bei dir den Eindruck, daß du keinen Rat, sondern Zoff
suchst.
Also, ich geb dir mal ein anderes Beispiel: sowohl von Nuvoton als auch
von WCH gibt es relativ neue Controller mit einer 8051 Architektur drin.
Aber nicht die damalige CPU von Intel, sondern eine 1 Takt CPU, die man
mit 16 oder 24 MHz takten kann. Das ist von der CPU her eine 40 jährige
Plattform, aber es sind neue Chips, die auch heute noch gute Dienste
leisten können. Es baut ja nicht jeder Bastler eine Mondrakete sondern
oftmals eher dezentere Projekte für die so ein Controller ausreicht.
Nicht für alles braucht man den dicksten und teuersten Chip.
Stefan schrieb:> Zu Anfang des Posts stand, so wie ich es verstanden habe, der Chip sei> weitestgehend egal. Oder nicht?
Nein. Du wolltes dich auf RP2040, einer Leiterplatte mit einem STM32
oder einen AVR konzentrieren. Jedenfalls hast du das geschrieben. Dazu
auch, daß du auf dem Wissens-Stand 0 bist, dich aber voraussichtlich
nicht vor Assembler-Programmierung fürchtest.
Stefan schrieb:> und auf ein Breadboard> oder einen Expander kriege ich ihn auch gerade noch gesteckt.
Das ist eine Fehleinschätzung deinerseits. Die meisten µC gibt es nicht
mehr im DIL-Gehäuse. Da ist nix mehr mit Steckbrett und Konsorten,
sondern man macht sich eine passende Leiterplatte dazu, wo sowas dann
draufgelötet wird.
W.S.
W.S. schrieb:> Das ist eine Fehleinschätzung deinerseits. Die meisten µC gibt es nicht> mehr im DIL-Gehäuse.
Den RP2040 gibt es auf einer Platine (mit Quarz etc), die dem
DIL-Rastermaß entspricht.
Dann gibt es diverse Controllerboards, die das Arduino-Uno-Kontaktformat
untrstützen (z.B. diverse STM-NUCLEOs).
AVR gibt es immer noch im DIL-Gehäuse.
Ansonsten gibt es Adapterplatinen...
W.S. schrieb:> Da ist nix mehr mit Steckbrett und Konsorten,> sondern man macht sich eine passende Leiterplatte dazu, wo sowas dann> draufgelötet wird.
Das haben diverse Firmen schon erledigt und sich auch an Standards
gehalten (s.o.).
Du könntest Dir auch mal die diversen Lernkits anschauen, die es so
gibt. Da ist die Einstiegshürde niedrig, die Preise sind meist
vertretbar, und Du kannst erstmal schauen ob Du Spaß an dem Thema hast
oder nicht. Und falls ja wirst Du dann genug gelernt und gemacht haben
um zu wissen in welche Richtung Du als nächstes willst.
Ein aktuelles Beispiel wäre BOB3 (gibt's bei Reichelt). Ich hatte früher
mal den Asuro vom DLR, auch ein sehr schönes Teil. Gibt's vielleicht
noch bei ebay. Oder Du schaust bei Franzis nach Lernpaketen, die hatten
auch mal was zu Mikrocontrollern. Meines Erachtens ists auch egal wenn
die Sachen ein paar Jahre älter sind, für den ersten Einstieg reicht das
locker.
Ach, um mal auf die Frage einzugehen:
Stefan schrieb:> Wie wichtig sind Speicher und Leistung?
Aus meiner Sicht erstmal komplett nachrangig. Um ein Display und GPIOs
anzusteuern oder ein paar Buttons abzufragen oder ADCs auszulesen bist
Du mit 8 MHz Taktfrequenz, 32 kB Programmspeicher und ein paar hundert
Bytes RAM schon mehr als reichlich ausgestattet.
Viel wichtiger ist gute Dokumentation und eine breite Nutzerbasis, um
auf viele Fragen eine Antwort zu bekommen. Deswegen sind z.B. AVRs oder
PICs sicher eine gute Wahl.
DJR schrieb:> Um ein Display und GPIOs> anzusteuern oder ein paar Buttons abzufragen oder ADCs auszulesen bist> Du mit 8 MHz Taktfrequenz, 32 kB Programmspeicher und ein paar hundert> Bytes RAM schon mehr als reichlich ausgestattet.
Das ist tatsächlich mehr als reichlich. Wenn ich mal nach einer
Grundausstattung für den STM32F103 schaue, die ich hier mal gepostet
hatte, dann sehe ich, daß 11.5 K an ROM dafür ausreichen. Und da hat es
bereits ein Kommandoprogramm drin, ebenso USB und Serielle, Systemuhr,
Eventhandling und Konvertierungen. Das ständige Schreien nach noch mehr
Flash ist oft genug komplett übrtrieben.
W.S.
STK500-Besitzer schrieb:> Den RP2040 gibt es auf einer Platine (mit Quarz etc), die dem> DIL-Rastermaß entspricht.> Dann gibt es diverse Controllerboards, die das Arduino-Uno-Kontaktformat> untrstützen (z.B. diverse STM-NUCLEOs).> AVR gibt es immer noch im DIL-Gehäuse.> Ansonsten gibt es Adapterplatinen...
Ich frage mich, warum bloß alle Programmier-Eleven eine derartige Scheu
haben, sich für den Käfer ihrer Wahl selbst eine Leiterplatte zu
machen. Als ob das Hexenwerk und Teufelszeug wäre.
Man muß dazu immer bedenken, daß ein µC ohne irgendwas drumherum so
ähnlich ist wie ein auf dem Rücken liegender Käfer: mit den Beinen in
der Luft herumhampeln ohne etwas damit bewirken zu können. Und wenn man
dann einsieht, daß man nicht nur mit dem Portpin wackeln muß, sondern
auch was dran anschließen, dann wird von Steckbrett oder Streifen-LP
gefaselt. So kommt man aus der unakademischen Probierphase nie heraus.
W.S.
W.S. schrieb:> sich für den Käfer ihrer Wahl selbst eine Leiterplatte zu> machen. Als ob das Hexenwerk und Teufelszeug wäre.
Man hat noch keine funktionierende Software aber fängt lieber gleich mit
weiteren Baustellen an: in ein EDA einarbeiten, die richtigen Bauteile
finden, vielleicht noch gleich die Platinen selber ätzen...
Wie kann man Anfängern nur sowas empfehlen?
Stefan schrieb:> Vor Assembler / Registeradressierung etc. habe ich keine Angst, würde> auch das AVR-Tutorial hier im Forum einfach durcharbeiten, wenn das zum> Verständnis am sinnvollsten ist.> Wenn mir jemand sagt, dass das heute in 50% der Fälle so unnötig wie> analoge Filmentwicklung ist und man wenigstens in C oder Micropython> starten sollte, dann würde ich mir das sparen.
Das AVR-Tutorial enthält wichtige Infos, die nicht im
AVR-GCC-Tutorial stehen/standen. ASM benötigst du eigentlich nur in
Sonderfällen und meistens reichen dann ein paar Zeilen inline ASM. Auf
uCs ist C heute (immernoch) die Sprache der Wahl. In Kombination mit zB.
den Bibliotheken des Herstellers. Diese enthalten neben vielen anderen
wichtigen Funktionen ua. Registerdefinitionen. Avr-libc
(Register-/Bitnamen stimmen immer mit den Datenblättern überein) oder
CMSIS (Arm). Für manche uCs stehen auch HALs zur Verfügung.
Die Grundlagen sind wichtig. Zum Beispiel Datenblätter, Manuals und
Appnotes lesen und verstehen lernen. Dazu benötigst du keinen uC, der
besonders leistungsfähig ist, sondern einen, der gut/verständlich
dokumentiert ist. Außerdem bietet sich bare metall an, also keine
Frameworks/HALs,etc. Registerdefinitionen und C sind aber ok.
Meine Erfahrung: Ich habe vor Urzeiten als Schüler einfach ein paar
Atmegas, Spannungswandler, Quarzoszillator, LEDs, usb-uart-Adapter,
Steckbrett und avrispmk2 (original) bestellt und losgelegt. War mit dem
avr-studio (Nachfolger: Atmel-Studio, umbenannt in Mikrochip-Studio)
relativ straight forward und wirklich einfach, obwohl ich weniger
Vorkenntnisse hatte als du. Allerdings habe ich über Wochen wirklich
alles zum Thema gelesen, was ich online finden konnte. War damals
deutlich weniger. Vor allem gab es die Arduiono-Fraktion noch nicht in
dem Umfang.
Mein Hauptnachschlagewerk war das AVR-GCC-Tutorial. Die Community
und gute Tutorials (dieses Forum hatte damals noch eine höhere Qualität)
waren damals ausschlaggebend für meine Entscheidung für AVR. Bis heute
nehme ich gerne AVRs (nicht die Neuen) für einfache, schnelle Projekte,
proof of concepts, Tests, wenn die Leistung/Features eines ARMs mit
seinem dicken Manual nicht notwendig ist.
> mit 8 MHz Taktfrequenz, 32 kB Programmspeicher und ein paar hundert> Bytes RAM schon mehr als reichlich ausgestattet
Fuer sehr viele Dinge braucht man so viel nicht mal, wenn ein
Controller nur eine Handvoll eben nichtprogrammierbarer ICs
ersetzen soll.
Mit dem TMS1000 als Kern, sind sehr sehr viele auch heute noch
nuetzliche Geraete aufgebaut worden. Nur ist das "Entwickeln"
damit auch heute nicht wesentlich einfacher geworden.
Von einer praktischen Umsetzung mal ganz abgesehen.
Der Anfaenger ist gut beraten, mit dem allerkleinsten und
einfachsten anzufangen. So ein Doppel-M0+ wuerde ich da nicht
dazu zaehlen. Das verkommt dann wieder zur µPython-Frickelei
ohne wirklichen Lerneffekt bzgl. der darunter liegenden
Technologie als solcher.
Als bzgl. des Lernaufwandes niederschwellige Einstiege wuerde
ich die 8052er, Microchip/Atmel AVR oder Microchip 8-bit PICs sehen.
Wenn er Spass am bauen hat, kann er sich auch einen Z80 nebst
etwas Peripherie auf einer Lochrasterkarte zusammenloeten.
Alles was "Arduino" im Namen traegt, ist fuer den Lernenden wegen
der vorhandenen Abstraktionsschichten mit Vorsicht zu geniessen.
Als Elektroniker ist man auch nicht die Zielgruppe dafuer.
Damit praktische Probleme zu loesen, verhilft eben nur zu
Kenntnissen das Problem mit "Arduino" geloest zu haben
und ist von einer dem Elektroniker moeglichen besseren Loesung
recht weit entfernt.
Gegen Assembler als Einstiegssprache laesst sich auch wenig sagen.
Wenn man wie oben geschrieben, nur eine Handvoll ICs mit einem
eben programmierbaren Controller ersetzen will, faellt der Umfang
ja auch eher klein aus.
Bei spaeteren groesseren Projekten wird sich dann von ganz alleine
der Wunsch nach etwas "Hilfe" einstellen.
Stefan schrieb:> Nun hat Conrad den Radxa RS114+B2E16 Rock 4 B+ 2 GB 2.0 GHz gerade> günstig im Angebot, der mit knapp 70€ gut in mein Budget (möglichst> nicht mehr als 100€) passt.
Eigentlich so ziemlich das allerletzte Argument für/gegen den Einstieg
mit einem Controller.
> Was kann ich an Mehrwert bekommen, was der Radxa RS114 nicht hat?
In Deiner Lage, zum Spielen und Lernen, möglichst ein einfacher
Einstieg!
Soll der von grundauf gelingen nimmt man dazu etwas möglichst:
Einfaches!
Dafür ist und bleibt ein 8-Bit Controller wie der AVR ideal.
> Mehrwert
Ein Controller in einer Schaltung hat keinen Mehrwert.
Man koennte ihn durch eine Anzahl konventioneller Bauteile
ganz einfach ersetzen.
Das muessen die, die mit einem Controller nicht umgehen koennen
sowieso tun.
Man beachte aber den Unterschied zwischen:
1 Controller und
Anzahl konventioneller Bauelemente.
Mach dich mal frei von solchen hirnrissigen Fragen.
Und ein "Radxa" loest keine Probleme. Er schafft nur welche.
J. S. schrieb:> Man hat noch keine funktionierende Software aber fängt lieber gleich mit> weiteren Baustellen an: in ein EDA einarbeiten, die richtigen Bauteile> finden, vielleicht noch gleich die Platinen selber ätzen...>> Wie kann man Anfängern nur sowas empfehlen?
Man hat auch noch keine funktionierende Hardware - und sage du jetzt
nicht, eine LP mit Lötanschlüssen für die Pins des µC sei so etwas.
Aber um zu lernen, mit all dem umzugehen, braucht es eben auch alles und
man muß lernen, sich sowohl auf der schaltungstechnischen Seite als auch
auf der programmiertechnischen Seite zurechtzufinden.
Von daher ist es genau DER richtige Weg, wenn man sich in das Gebiet
einarbeiten will. Alles andere wären Holzwege, die zum "Ingenieur für
Programmschreiben für den RS114" oder so ähnlich führen. Also zur
Einseitigkeit.
Eben deshalb empfehle ich, von Anfang an beide Seiten zu erlernen.
W.S.
STK500-Besitzer schrieb:> W.S. ist halt schon als Meister vom Himmel gefallen.
Du willst schon wieder mal stänkern, ohne dem TO eine Hilfe zu sein.
Naja, als Meister fällt man zwar nicht vom Himmel, aber man kann sich
durch eigene aktive Betätigung dahin bringen. Nicht dadurch, daß man
anderen ein Loch in den Bauch fragt, sondern dadurch, daß man die
Grundlagen, Prinzipien und so weiter sich selbst erarbeitet. Also
Lesen, und zwar viel und dabei denken.
So herum geht das. Die heutige Neigung, sich daran zu orientieren, wo es
eine möglichst große 'Community' gibt, hat da eher Ähnlichkeit mit einer
Schafsherde. 'Mäh', sozusagen.
W.S.
natürlich ist es sinnvoll auch die Hardwareseite zu verstehen und mal
ein eigenes Board zu entwerfen anstatt nur Module mit Drähten zu
verbinden. Aber es geht darum das es insgesamt sehr viel Wissen ist was
man da benötigt, auch wenn es von dir immer als so trivial dargestellt
wird. Wenn man weiss wie etwas geht, dann ist alles trivial. Und das
kann man nicht alles auf einmal lernen, irgendwie blendest da gerade 20
Jahre deines Lebens aus. Oder du bist doch als Chuck Norris vom Himmel
gefallen.
J. S. schrieb:> Aber es geht darum das es insgesamt sehr viel Wissen ist was> man da benötigt, auch wenn es von dir immer als so trivial dargestellt> wird.
Alles im Leben ist immer 'sehr viel Wissen', wenn man bei 0 anfängt.
Aber es ist notwendig, um eben kein einseitiger Spezial-Dingsda zu
werden. Ich stelle sowas auch nicht als trivial dar, sondern lediglich
so kompakt wie möglich. Allerdings setze ich einiges voraus, nämlich
eine ordentliche Schulbildung und eigenes Denkvermögen und das, was man
allgemein als 'gesunden Menschenverstand' bezeichnet und soviel eigenes
Interesse, daß man sich aus eigenem Antriebe ans Lernen macht.
W.S.