Hallo, ich habe vor vielen Jahren in meiner Freizeit Schaltungen entwickelt und Mikrocontroller programmiert. Anfangs waren das noch 8-Bitter, die ich mit einem selbst gebauten Brenner via ZIF-Sockel geflasht habe, aber die Anfänge der 16-Bit-Ära habe ich auch noch erlebt. Inzwischen gibt es eine sehr große Auswahl an Entwicklungs-Boards mit 32-Bittern, USB-Schnittstelle, zahlreichen GPIOs sowie Flash und RAM satt und via SPI theoretisch jede Menge leicht integrierbare Peripherie. Da ich gerne wieder mit Mikrocontrollern basteln würde, versuche ich seit einigen Tagen, mir einen Überblick über die verschiedenen Mikrocontroller-Familien sowie deren Verfügbarkeit zu verschaffen. Aber das ist gar nicht so leicht bzw. ich habe folgendes Problem: ich bin kein Arduino-Typ, sondern habe früher in Assembler programmiert und allgemein Erfahrung in der Software-Entwicklung. Auch Hardwaremäßig bin ich kein totaler Anfänger. Aber ich konnte mich wegen eines Handycaps nie für SMD begeistern und stelle fest, dass DIL-Gehäuse schon wegen der immer zahlreicheren Gehäuse-Pins keine Zukunft haben. Leider bin ich auf preiswerte Entwicklungsboards angewiesen, die dann möglichst universell einsetzbar sind. An der Stelle wird es schwierig, denn ich muss mich zwischen preiswerten Boards ohne Peripherie und teureren Boards mit Peripherie entscheiden. Für viele Projekte wäre z.B. ein kleines, einfaches, einfarbiges, beleuchtetes graphisches Display nützlich. Das STM32F7508-DK wäre lieferbar, aber das hat ein Farb-TFT und kostet dann auch schon über 60 Euro. Das NUCLEO-L476RG scheint mir ein ziemlich gutes Preis-Leistungsverhältnis zu haben, aber ich müsste dann ein einfach zu verbindendes Display bestellen, denn ein herausgeführter Folienanschluss nutzt mir so nichts. Mit dem NHD-C12832A1Z-FSW-FBW-3V3 habe ich möglicherweise ein geeignetes Display gefunden, aber ich möchte kein Lehrgeld bezahlen und eventuell gibt es ja sogar Adapter. Daher hoffe ich, dass ihr mir bei der Auswahl eines geeigneten Boards + Display behilflich sein könnt. Mich würde noch interessieren, ob moderne Mikrocontroller ähnlich zuverlässig sind wie ältere Modelle? Meine alten Mikrocontroller haben sich soweit ich das beurteilen kann nie ohne Fehler meinerseits aufgehängt und die letztens aus dem Keller geholten Schaltungen funktionieren einwandfrei, obwohl sie über 20 Jahre alt sind. Wie sieht es hier bei den aktuellen 32-Bit-Mikrocontrollern aus? Mir ist klar, dass auf einigen Boards deutlich mehr drauf ist, die Stromversorgung und die Umweltbedingungen eine Rolle spielen und das sowieso nur grobe Schätzungen sind, aber die Teile von damals scheinen mir ausgesprochen zuverlässig zu sein. Displays könnte man je nach Anwendung nur für die Dauer der Benutzung einschalten. Es geht aber nicht nur um Hardware-Defekte, sondern eben auch um die Frage, welche Mikrocontroller man mit wichtigen Steuerungsaufgaben (z.B. Alarmanlage) betrauen kann? Selbst wenn der Watchdog schlimmeres verhindert, sollte das Board nicht regelmäßig einen Reset durchführen. Eventuell nimmt man dafür ja auch eher einen älteren Cortex, weil man da die Macken zumindest kennt? Oder doch einen klassischen 8-Bit PIC aber heute mit mehr Speicher und IOs als damals? Herzlichen Dank, Dackelfreund
Kai P. schrieb: > Mich würde noch interessieren, ob moderne Mikrocontroller ähnlich > zuverlässig sind wie ältere Modelle? Nu klar.
Otto Hermann Mende schrieb: > Kai P. schrieb: >> Mich würde noch interessieren, ob moderne Mikrocontroller ähnlich >> zuverlässig sind wie ältere Modelle? > > Nu klar. Nur damit keine Missverständnisse aufkommen: ich erwarte keinen Blick in die Glaskugel, aber ich weiß ja nicht mal, ob die Hersteller überhaupt noch Stress-Tests machen und die Ergebnisse veröffentlichen oder wie mit nachträglich gefundenen Fehlern umgegangen wird. Viele Unternehmen sitzen so etwas ja auch einfach dreist aus. :) Ich habe z.B. bezüglich moderner SSDs mal gelesen, dass man die nicht länger irgendwo lagern sollte, da die sonst nach einiger Zeit Daten verlieren. Obwohl ich den Grund dafür verstehe, war ich dennoch überrascht.
Hätten wir nicht gerade eine Versorgungsengpass und könntest du dich mit C anfreunden, würde ich dir ein beliebiges Discovery Board mit STM32 empfehlen. Das STM32F429 Discovery hat z.B. ein kleines Farbdisplay mit Touchscreen, 8MB SDRAM und Programmierschnittstelle bereits an Board. Selber löten must du es nicht und man kommt an alle Pins des MC über die Stiftleisten ran. Gut, man kann sowas auch mit Assembler programmieren, aber das würde ich mir heute bei 32-Bittern nicht mehr antun. AVR8 und PIC12/16/18 hingegen sind auch heute mit Assembler gut programmierbar. Und, ob du es glaubst oder nicht - es gibt immer noch Boards mit 8051.
:
Bearbeitet durch User
Matthias S. schrieb: > Und, ob du es glaubst oder nicht - es gibt immer noch Boards mit 8051. Z.B.: https://www.mouser.de/ProductDetail/Silicon-Labs/EFM8BB1LCK?qs=sGAEpiMZZMv0WPLDnYsI70fg1naaV8g9wnYvq8gkYGnJ3DGj%2FeHGxg%3D%3D
Matthias S. schrieb: >Hätten wir nicht gerade eine Versorgungsengpass und könntest du dich mit >C anfreunden, würde ich dir ein beliebiges Discovery Board mit STM32 >empfehlen. Das F429 bi RS (da darf man inzwischewn auch als Privatmensch kaufen): RS Best.-Nr.: 909-3660
Matthias S. schrieb: > Gut, man kann sowas auch mit Assembler programmieren, aber das würde ich > mir heute bei 32-Bittern nicht mehr antun. AVR8 und PIC12/16/18 hingegen > sind auch heute mit Assembler gut programmierbar. Neben Assembler habe ich auch lange in C programmiert. Vielen Dank für die Empfehlung, ich werde mir das Board ansehen. Den legendären 8051 werde ich nie vergessen, aber es reizt mich schon, die Bytes im Arbeitsspeicher nicht mehr beschwören zu müssen. :) Vielen Dank auch an Peter D. und STK500-Besitzer.
Vorweg: Moderne Controller werden anders programmiert. Daran musst du dich gewöhnen bzw. wenn dir das nicht gefällt, eben einen alten Controller nehmen. Es gibt noch genügend 80C51 am Markt (z.B. in modern von Silicon Labs als EFM8), und auch PIC und AVR sind nicht tot. Bei modernen Controllern ist der STM32 natürlich eine gute Wahl, aber wenn es dir primär um "Handlichkeit" und Budget geht, wirf mal einen Blick auf den ESP8266 bzw. hauptsächlich ESP32. Davon gibt es gut erhältlich Module in Hülle und Fülle für wenig Geld. Extrem "zuverlässig" in deinem Sinne sind die natürlich nicht (wird aber mit zunehmender Komplexität auch schwieriger), aber du scheinst das hauptsächlich als Hobby betreiben zu wollen und dafür reicht es gut aus. Der ESP32 ist relativ umfangreich, wenn du es lieber etwas reduziert haben willst, schau dir mal den RP2040 von Raspberry Pi an. Ich finde den etwas kurios, aber die Entwicklungsboards sind sehr minimalistisch und daher auch kostengünstig und bieten sich direkt für eine Integration in fertige Schaltungen an.
Kai P. schrieb: > deren Verfügbarkeit Das ist das Problem. So ziemlich alles, was Rang und Namen hat, ist seit 2 Jahren nicht mehr verfügbar. Bei ST bekommt man immerhin noch einzelne (Nucleo) Entwickler Boards, aber auch da ist Glückssache, welches Modell gerade zu haben ist. Für STM32 habe ich eine Webseite http://stefanfrings.de/stm32/index.html Sehr gut Verfügbar sind jedoch ein paar Newcomer die laut Diskussionsbeiträgen auch durchaus etwas taugen: - Espressif ESP8266 (mit WLAN) und ESP32 (mit WLAN und Bluetooth) - Raspberry RP2040 (ohne WLAN) Beides sind 32 Bit Controller. Beide programmiert man in der Regel mit einem Framework (z.B. Arduino), was auch auf 32 Bit Controller anderer Hersteller zutrifft. Die Zeiten, wo man jedes Register "zu Fuß" selbst anspricht, neigen sich gerade dem Ende zu - so jedenfalls mein Eindruck. Kai P. schrieb: > An der Stelle wird es schwierig, denn ich muss mich > zwischen preiswerten Boards ohne Peripherie und teureren Boards mit > Peripherie entscheiden. Für viele Projekte wäre z.B. ein kleines, > einfaches, einfarbiges, beleuchtetes graphisches Display nützlich. Vielleicht gefällt dir das "Wifi Kit 8" Board http://stefanfrings.de/esp8266/index.html#wifikit8 für den Einstieg. Findest du bei Aliexpress für etwa 10 Euro. Es gibt auch eine größere Variante mit dem Nachfolger ESP32. Wenn du ein anderes Display verwenden willst, schau einfach nach entsprechenden Arduino Projekten. Denn dann hast du gleich eine passende Bibliothek dabei. Oft ist es auch kein Hexenwerk, vom Arduino Code abzugucken falls du es lieber selbst programmieren willst. > Mich würde noch interessieren, ob moderne Mikrocontroller > ähnlich zuverlässig sind wie ältere Modelle? Ja sind sie. Ihre I/O Pins sind nicht ganz so robust wie bei 8 Bit Mikrocontrollern, aber wenn man sich ans Datenblatt hält, bekommt man keine Probleme. LED direkt ansteuern geht auf jeden Fall immer.
:
Bearbeitet durch User
Kai P. schrieb: > Das > STM32F7508-DK wäre lieferbar, aber das hat ein Farb-TFT und kostet dann > auch schon über 60 Euro. das ist nicht zu teuer weil das ein aufwändigeres Demoboard ist, mit zusätzlichem RAM/Flash, Ethernet und USB sowie einem großen 4,3" Display und kapazitivem Touch. Die F7/H7 sind die Flagschiffe von ST und nicht unbedingt die Einsteigerfreundlichsten, haben dafür sehr viel Power. Die F4 Serie ist auch schon gut, und TFT Displays mit Headerpins im 2,54 mm Raster gibt es auch reichlich, dank Arduino. Nur ist die Qualität der low cost Dinger oft nicht so pralle, die haben eine sehr starke Winkelabhängigkeit. Und es gibt verschiedene Ansteuerungen und damit unterschiedliche Aktualisierungsgeschwindigkeiten. SPI hat wenig Verdrahtung, ist aber relativ langsam, Parallel geht schneller, und RGB mit HV Sync ist noch schneller. Auf den STM Demoboards wird auch MIPI genutzt, auch sehr schnell. Tja, da bleibt die Qual der Wahl... Und es gibt noch die ESP32, sehr schnell und mit Wifi. Mit Display z.B. das WT32-SC01, ca. 36€ bei Banggood, sehr schönes Teil das man wirklich praktisch verwenden kann. Und spätestens da sollte man sich von den Arduino Vorurteilen verabschieden, da bekommt man Beispiele mit guten Libraries zusammengebaut und die funktionieren auch.
Wenn es Probleme gibt, dann eher mit komplexer Software, z.B. WLAN und Bluetooth bei Espressif. Die Teile kannst du eh nicht selbst programmieren, da nicht alle Details der Chips offen dokumentiert sind. Da mus man sich erstmal drauf einlassen, mir fiel das schwer. Für den ESP8266 habe ich allerdings eine stabile Software Version gefunden die bei mir mehr als 2 Jahre Dauertest stand hielt.
Auch wenn ich jetzt Schläge ab bekomme: Ich würde und werde AVRs nie ganz aussen vor lassen. AVR kann man einfach in Assembler und auch in C programmieren. Und wenn ich absolut keine Lust habe was zu fädeln, dann hole ich mir einen UNO und bastle mit dem. Für den ganzen Kleinkram ist das gut genug. Oft reicht da auch ein DIL8 auf Lochraster. An so einen UNO lässt sich auch ganz einfach ein LCD ran frickeln, ohne dass ich mir mit Feinpitch die Augen kaputt mache. Für die 'harten Sachen' habe ich ein STK500 liegen - brauche das aber so gut wie nie. old school halt
Stefan ⛄ F. schrieb: > Espressif ESP8266 (mit WLAN) und ESP32 (mit WLAN und Bluetooth) > Raspberry RP2040 (ohne WLAN) > > Beides sind 32 Bit Controller Tja, und beide sind weitgehend undokumentiert. Nicht dass das bei rPi + STM32 so viel besser wäre, aber es ist doch ein himmelweiter Unterschied zu früher, als man einfach nachgucken konnte wie es funktioniert. Heute muss man dem glauben, was das Framework raushaut, und Beispiele funktionieren vielleicht noch, aber wenn man nur minimal was ändert kann es plötzlich 'never tested' scheitern. Den Anspruch, nur bedrahtete Bauteile zu verwenden, kann man natürlich auf Arduino-Art umgehen in dem man für alles breakout-boards kauft. Wird dann halt teurer, aber wenn sich Leute schon die Mühe geben, extra etwas für Bastler mit Wurstfingern anzufertigen, soll man die halt auch angemessen bezahlen.
Stefan ⛄ F. schrieb: > Beide programmiert man in der Regel mit > einem Framework (z.B. Arduino), Ich befürchte, dass ihm mit dem C++ des Arduino völlig überfordert ist. Scheint sich ja schon ein innerer Widerstand (oder doch nur ein Vorurteil?) gebildet zu haben. Und gegen innere Widerstände, oder Vorurteile, ist kein Kraut gewachsen.
Stefan ⛄ F. schrieb: > - Raspberry RP2040 (ohne WLAN) Es gibt auch RP2040-Module mit WLAN, inzwischen sogar von der Foundation selber. Wurden kürzlich sogar genau hier von Tam explizit vorgestellt. > Die Zeiten, wo man jedes Register "zu Fuß" selbst > anspricht, neigen sich gerade dem Ende zu - so jedenfalls mein Eindruck. Wenn man maximale Leistung will/braucht und/oder wirklich alle Features der vorhandenen Peripherie nutzen will, führt auch heute kein Weg am Registergefrickel vorbei. Man könnte höchstens darüber streiten, ob man das dann in C oder Asm frickelt. Ich find's in Asm einfacher, weil da der ganze Syntax-Ballast wegfällt. Es geht "einfach so". > Ja sind sie. Ihre I/O Pins sind nicht ganz so robust wie bei 8 Bit > Mikrocontrollern, aber wenn man sich ans Datenblatt hält, bekommt man > keine Probleme. LED direkt ansteuern geht auf jeden Fall immer. Nana... Bei blauen LEDs und 3.3Vio wird's schon arg eng...
Kai P. schrieb: > Nur damit keine Missverständnisse aufkommen: ich erwarte keinen Blick in > die Glaskugel, aber ich weiß ja nicht mal, ob die Hersteller überhaupt > noch Stress-Tests machen und die Ergebnisse veröffentlichen oder wie mit > nachträglich gefundenen Fehlern umgegangen wird. Such Dir Controllerfamilien, die auch im Automobilbereich verwendet werden. Dann kannst Du davon ausgehen, dass zumindest ein Teil der Serie mal eine AEC-Q100 gesehen hat. Bei reinen Consumer-Produkten, wie den aktuell beliebten Espressif ESP32 und ESP8266 findest Du nicht einmal vollständige Datenblätter. Von Errata Sheets und Mailinglisten mit Bugreports brauchen wir da gar nicht reden. > Ich habe z.B. bezüglich moderner SSDs mal gelesen, dass man die nicht > länger irgendwo lagern sollte, da die sonst nach einiger Zeit Daten > verlieren. Obwohl ich den Grund dafür verstehe, war ich dennoch > überrascht Das gilt für NAND-Flash und betrifft somit den Programmspeicher in den Mikrocontrollern nicht. Flash wird mittlerweile überall verwendet, auch Medical und Automotive. EPROM und Maske sind damit ausgestorben. NAND-Flash muss immer überwacht betrieben werden. Das macht der Controller im Inneren der SSD/Speicherkarte/USB-Stick. Aber das kann er natürlich nur, wenn er auch ab und zu in Betrieb ist. Verbaust Du lose NAND-Flash-Chips, dann musst Du Dich selber um das Blockmanagement, wear levelling und um den Refresh kümmern. Das ist nicht trivial, daher wurde eMMC erfunden. Quasi eine SD-Karte zum Einlöten.
Kai P. schrieb: > Aber das ist gar nicht so leicht bzw. ich habe folgendes Problem: ich > bin kein Arduino-Typ, sondern habe früher in Assembler programmiert und > allgemein Erfahrung in der Software-Entwicklung.> Das ist kein Problem. Kümmere dich einfach nicht um die Arduino IDE. Einen ATmega328 in Assembler zu programmieren, geht unverändert.
Nun hat ein jeder seine Lieblings-Chips genannt und über den grünen Klee gelobt - aber das war's dann auch. Also auch etwas Senf von mir: Früher - und da meine ich die 80er Jahre und nicht 2002 - war man zumeist darauf angewiesen, die erzeugte Firmware in ein EPROM hineinzukriegen. Manche damaligen µC hatten daher einen Modus zum Programmieren, der sich ganz stark an das Programmieren von eben solchen EPROM's anlehnt. Das hat sich deutlich geändert. Oft wird eine gewisse Zweckentfremdung der JTAG-Technik zum Programmieren des Chips verwendet - ursprünglich war das JTAG-Protokoll zum Testen von bestückten Leiterplatten gedacht. Bei den heutigen ARM-Cortex Chips gibt es als Vereinfachung von JTAG das SWD-Interface und bei kleineren Architekturen eben firmenspezifische Prorammiermöglichkeiten. Das alles erfordert, sich die betreffenden Programmieradapter zuzulegen. Manche Controller haben zusätzlich einen fest installierten Bootlader, der zumeist über einen ohnehin vorhandenen seriellen Port bedient werden kann. Da enfällt das spezielle Programmiergeschirre. So. Und nun sollte der TO sich fragen, was er als Vorleistung zu seinem Hobby sich anschaffen will und danach die Frage nach für ihn geeigneten Controllern nochmal unter diesem Aspekt überdenken. Eine weitere Frage ist, wie es mit den zugehörigen Manuals aussieht, ob sie gut lesbar sind und die Fragen des Lesers ordentlich beantworten oder nicht. Da man ohne Manual bei den heutigen Chips nicht gut vorankommt, ist diese Frage ebenfalls recht wichtig. Schlußendlich wären da die Fragen nach Preisen und Verfügbarkeit und was man überhaupt damit vorhat. Irgend ein Display kriegt man eigentlich an jeden Controller dran. Bei grafischen Displays würde ich auf alle Fälle auf eine 32 Bit Architektur orientieren, für 8 Bit Controller gibt es stattdessen Text-Displays. Und bloß zu sagen "ich hab ein Handycap und brauche deshalb zwingend einen Controller im DIL-Gehäuse - aber mit Display schon dran" halte ich für die falsche Prämisse. Wenn es zum Spielen und Basteln sein soll, dann ist eine Minimal-Leiterplatte am ehesten richtig: Stromversorgung (5-->3.3V) drauf, Taktgeber/Quarz drauf, Programmierbuchse, ggf. Buchse für das ausgewählte Display, Controller mit allen freien Portpins an Lötösen o.ä. Sowas kann man sich selber designen und auch für geringes Geld fertigen lassen. Das gehört zum Basteln auch dazu. W.S.
Wolfgang schrieb: > Das ist kein Problem. Kümmere dich einfach nicht um die Arduino IDE. > Einen ATmega328 in Assembler zu programmieren, geht unverändert. Das sowieso, klar. Dazu kommen aber die neuen AVRs. Auch die kann man noch locker mit 3.8 auf'm Turm in Asm programmieren, bieten aber viele neue Features. 1. Peripherie für Standardschnittstellen, die endlich das tut, was sie schon immer hätte tun sollen. Das betrifft vor allem I2C und SPI. Bezüglich UART wurde ja bereits zu Atmel-Zeiten deutlich nachgerüstet. Aber auch hier: die neuen Tinys haben endlich auch alle mindestens eine vernünftige UART. 2. Maximalen Takt über den gesamten Spannungsbereich der Versorgung. 3. Einige Asm-Instruktionen sind noch effizienter geworden. Das alles zusammen führt dazu, dass die AVR8 nunmehr für sehr viel mehr Anwendungen als früher(tm) völlig ausreichen. Problematisch ist nach wie vor die Rechenleistung. Fette dumme nutzlose Konstrukte mit double (insbesondere echtem double) sollte man sich besser nicht einschenken. Aber manchmal braucht man halt wirklich double und das in schnell (sehr viel seltener als manche glauben... ;o). Solche Anwendungen sind jedenfalls definitiv nix für AVR8. Für Gefummel mit Bits und Bytes hingegegen sind die AVR8 vielfach sogar deutlich schneller als der ganze 32Bit-Gammel (selbst wenn der mit teils viel höherem Takt läuft, bei gleichem Takt ist der AVR8 sowieso paktisch immer schwer im Vorteil, sowohl bezüglich Durchsatz als auch insbesondere Latenz)... Ein anderer systematischer Engpaß der AVR8 (mit Ausnahme einiger alten XMega) ist die Nichtverfügbarkeit von DMA. Sprich: viele parallele Datenströme mit hohem Durchsatz sind auch definitiv nicht sein Ding.
Jester schrieb: > hole ich mir einen UNO und bastle mit dem. Das ist die mit Abstand dämlichste Platine für einen SMD-Controler. Abseits des Shield-Kindergartens sind Nano (mit USB) und Pro-Mini weitaus sinnvoller einsetzbar.
Die legenäre 4,5V Batterie sollte nicht fehelen weil man mit der Zunge den Ladungszustand prüfen kann.
Manfred schrieb: > Jester schrieb: >> hole ich mir einen UNO und bastle mit dem. > > Das ist die mit Abstand dämlichste Platine für einen SMD-Controler. > > Abseits des Shield-Kindergartens sind Nano (mit USB) und Pro-Mini > weitaus sinnvoller einsetzbar. Das Layout der UNO-Pfostenstecker ist wirklich dämlich - vor allem der 150mil Sprung zwischen IO-7 und IO-8. Aber - ich mag die DIL28-Version des ATmega328. Die sind leider aber nicht immer ganz einfach zu bekommen. Wenn ich Lust habe, rupf ich den ATmega328 dann aus dem Sockel und verpflanz ihn auf mein Frickelboard - ganz ohne USB (Arduino light). Statt dessen steck ich mir dann notfalls einen USB/Serial-Converter (z.B. CP2102/9) ran. Den brauch ich eh ab und zu - für andere Faxen. Wo ich dir unumwunden recht gebe: Um auf einen kompletten Arduino auf ein Stück Lochraster zu verpflanzen eignen sich andere Versionen besser. Aber man hat da ja die Auswahl ...
Vielen Dank für die zahlreichen Anregungen. Da heutzutage selbst relativ kleine Mikrocontroller inzwischen locker 128 KB Flash und 8 KB RAM haben können, würde ich schon gerne in C programmieren. Neben STM32 werde ich mir auch nochmal die "alten" PICs ansehen, ich habe z.B. einen PIC18F57Q43 mit 128 KB Flash und 8 KB RAM auf einem sehr kompakten Curiosity Nano Board entdeckt. Die IDE heißt jetzt anscheinend MPLAB X und da steht etwas von 60 Tage Testversion für C16. Muss man danach zahlen oder gibt es auch eine kostenlose Version, wenn man das wie ich nur als Freizeitbeschäftigung betreibt? Die Antwort gilt dann vermutlich auch für den ATMEGA4809, für den es ebenfalls so ein Nano Board gibt. In der STM32CubeIDE sind anscheinend open-source Komponenten wie Eclipse und GCC eingebunden. Das gefällt mir sehr gut! Hat man diese Freiheit auch bei Microchip? Der Debugger bei MPLAB IDE hat mir zumindest damals gut gefallen.
Bei den derzeit schlecht verfügbaren STM32 Mikrocontrollern hast du die freie Wahl zur Programmierung: - zu Fuß - mit dem HAL Framework von ST - mit den Low-Level Bibliotheken von ST - mit Arduino Framework (vermutlich gibt es noch mehr Optionen) Den RP2040 kannst du (soweit ich mitbekommen habe) so programmieren: - zu Fuß (aber es sind nicht alle Details vollständig dokumentiert) - mit Arduino Framework - mit Micropython Die ESP Chips sind ohne das SDK von Espressif praktisch unbrauchbar. Das "zu Fuß" (aka bare-metal) Programmieren kannst du bei den ESP Chips vergessen. Große Teile der Chips sind überhaupt nicht dokumentiert, der zugehörige Code ist ein closed-source binary. Allerdings enthält das SDK ein ausreichend dokumentiertes API, mit der du alle vorgesehenen Funktionen nutzen kannst. Darauf bauen alle anderen Frameworks auf. Das SDK von Espressif nutzt den GCC. So hast du dann folge Optionen: - mit dem SDK vom Espressif - mit Arduino Framework - mit Micropython - mit LUA aus dem NodeMCU Projekt Von allen IDE's mit denen ich bisher gearbeitet habe, ist Eclipse in vielen Punkten die schlechteste und in keinem Punkt die beste. Allerdings ist sie kostenlos und erfüllt ihren Zweck, insofern will ich mich über die STM32 Cube IDE nicht beklagen. Die Arduino IDE Version 1.x hat einen extrem simplen Texteditor und keinen Debugger. Der Texteditor lässt sich leicht durch bessere (auch IDEs) ersetzen. Mir ist es noch nicht gelungen, irgendeinen Debugger in Kombination mit Arduino zu benutzen. Angeblich ist es jedoch möglich. Die Arduino IDE Version 2.x soll einen Debugger bekommen. Habe ich noch nicht ausprobiert, deswegen kann ich dazu nichts sagen.
:
Bearbeitet durch User
Kai P. schrieb: > und da steht etwas von 60 Tage Testversion für C16 Das stimmt, aber bezieht sich nur auf den 'Super-Duper' Compiler C16. Du kannst weiterhin in C und ASM mit MPLAB X programmieren (wimre heisst der Standardcompiler XC8 oder so). Ob C16 irgendwelche Vorteile hat, kann ich nicht beurteilen - das ist was für die PIC Profis hier. Die gleiche Nummer machen sie beim Microchip Studio, was man derzeit für die AVR benutzt. Da kannste einen Compiler dazukaufen. Normalerweise nehmen sie GCC, der meist voll ausreicht.
Noch nicht genannt wurde Keil µVision. Schon ein..zwei Dekaden her das ich damit 8051 und später ARM programmierte. https://www2.keil.com/mdk5/uvision/ Dort darf auch nach Eval Boards geschaut werden.
Jester schrieb: > Wenn ich Lust habe, rupf ich den ATmega328 dann aus dem Sockel und > verpflanz ihn auf mein Frickelboard - ganz ohne USB (Arduino light). Da komplette Boards aus Chinesien billiger sind als ein ATmega im DIL, pflanze ich das komplett auf, incl. Takt und Resettaster. Bequem mit dem Nano incl. USB, wenn es Strom sparen soll, den ProMini. Der wird dann mit einer CH340-Platine programmiert, bei dem gibt es keinen Ärger mit Fälschungen.
Aktuelle 8051 Evalboards mit J-Link Debugger https://www.silabs.com/development-tools/mcu/8-bit/bb52-ek2701a-efm8bb52-explorer-kit https://www.silabs.com/development-tools/mcu/8-bit/slstk2030a-efm8lb-starter-kit IDE mit kostenfreiem Keil C51 https://www.silabs.com/developers/simplicity-studio
Kai P. schrieb: > ich bin > kein Arduino-Typ Dann nehm ich an die komplexität wird dich sehr schnell erschlagen und du wirst nicht weit kommen. Viel spass beim scheitern!
MaWin schrieb: > Viel spass beim scheitern! Man sollte nicht allzu sehr von sich selbst auf andere schließen. Ich benutze ja auch diverse µC von verschiedenen Herstellern und bin bislang komplett ohne Arduino ausgekommen. Und die Programmiererei ist bei mir nur ein Aspekt von vielen. Allerdings sehe ich durchaus, daß sich hier vornehmlich Programmieriche mit 2 linken Händen tummeln, für die bereits ein UART im Controller zuviel Hardware ist, von dem Selbermachen einer Leiterplatte mal ganz abgesehen. Da hatte neulich doch so einer geschrieben "ich programmiere nicht auf Registerebene". Na denne, prost mahlzeit! W.S.
ESP32 WROOM oder so, VSCode mit Platformio und Arduino Framework.
W.S. schrieb: > und bin bislang komplett ohne Arduino ausgekommen. So gings mir auch..... Bis dann der Tag X kam. W.S. schrieb: > für die bereits ein UART im Controller zuviel Hardware ist, Wie das Leben einem so spielt.... Immer wieder müssen Entscheidungen getroffen werden. Klar kann man für (fast) jeden µC auf dieser Welt eine eigene Software schreiben, welche den seriellen Kram abhandelt. Ohne jeden Zweifel wird man dabei viel lernen. Und viel Lebenszeit investieren. Die Frage ist: Wo setzt man seine Priorität? Arduino hat zumindest den einen Vorteil, dass es den UART (und vielen weiteren) Kram mitbringt, man sich so auf das eigentlich Programm/Problem kümmern kann. Ohne ein Dutzend Räder neu erfinden zu müssen.
EAF schrieb: > man sich so auf das eigentlich > Programm/Problem kümmern kann. Korrektur: man sich so auf das eigentliche Programm/Problem konzentrieren kann.
EAF schrieb: > man sich so auf das eigentliche > Programm/Problem konzentrieren kann. Und was ist für dich das "eigentliche" Programm? Schließlich ist ein µC auch nur ein Bauteil, das auf ne Leiterplatte gelötet wird und dort irgend eine Funktion - in Hardware!! - erfüllen soll. Ohne sich dort beim Programieren intensiv um Hardware- (sprich Schaltungs-) Angelegenheiten kümmern zu wollen, ist ne Art von Wichserei. W.S.
Kai P. schrieb: > Vielen Dank für die zahlreichen Anregungen. Da heutzutage selbst relativ > kleine Mikrocontroller inzwischen locker 128 KB Flash und 8 KB RAM haben > können, würde ich schon gerne in C programmieren. Neben STM32 werde ich > mir auch nochmal die "alten" PICs ansehen, ich habe z.B. einen > PIC18F57Q43 mit 128 KB Flash und 8 KB RAM auf einem sehr kompakten > Curiosity Nano Board entdeckt. Die IDE heißt jetzt anscheinend MPLAB X > und da steht etwas von 60 Tage Testversion für C16. Muss man danach > zahlen oder gibt es auch eine kostenlose Version, wenn man das wie ich > nur als Freizeitbeschäftigung betreibt? Die Antwort gilt dann vermutlich > auch für den ATMEGA4809, für den es ebenfalls so ein Nano Board gibt. Die XC-Compiler kannst Du kostenlos benutzen. Die kostenflichtigen Features brauchst Du nicht. Für PIC18F brauchst Du den XC8 Compiler, XC16 ist für PIC24 und dsPIC33, die ich Dir auch ans Herz lege. Die sind recht einfach zu benutzen (wenn Du PIC16 und PIC18 kennst, findest Du Dich schnell zurecht), aber die sind deutlich leistungsfähiger als alles, was Du bei AVR findest. Da gibts beispielsweise Dual Core 100MHz dsPIC33CH. fchk
W.S. schrieb: > Und was ist für dich das "eigentliche" Programm? Für mich? Tja, "ich" habe im Normalfall mit Ablaufsteuerungen zu tun. Das "eigentliche" Programm besteht dann meist aus endlichen Automaten. Was der TO "wirklich" erreichen will? Keine Ahnung!
EAF schrieb: >W.S. schrieb: >> für die bereits ein UART im Controller zuviel Hardware ist, >Wie das Leben einem so spielt.... >Immer wieder müssen Entscheidungen getroffen werden. >Klar kann man für (fast) jeden µC auf dieser Welt eine eigene Software >schreiben, welche den seriellen Kram abhandelt. >Ohne jeden Zweifel wird man dabei viel lernen. >Und viel Lebenszeit investieren. >Die Frage ist: >Wo setzt man seine Priorität? Hey, du sprichst mir aus der Seele. Die Erkenntnis hatte ich schon 2007, also vor 15 Jahren. Dass ich das noch mal erleben darf: Das Mikrocontrollernetz ist im Arduino-Zeitalter angekommen. Unvergessen ist der selbsternannte Cyblord, der in wenigen Sätzen jeden auf die Palme bringen konnte: Beitrag "Re: Arduino - bringt's das ?" Was wohl aus ihm geworden ist? Das Arduino-Framework ist das Linux der Mikrocontroller und die Anzahl der Bibliotheken wird weiter zunehmen. Hier mal ein schönes Beispiel für eine Library, die man nicht mehr so ganz einfach selber programmiert: https://docs.simplefoc.com/ Einen schönen Tag noch, Franz
Harry L. (mysth) >Franz schrieb: >> as Arduino-Framework ist das Linux der Mikrocontroller >Guter Witz! Klar, war ein wenig "plakativ"... aber Linux läuft vermutlich auf eine Anzahl von Geräten in Milliardengröße und das Arduino-Framework nur auf einer Anzahl von Geräten in Millionengröße, oder was wir die Anzahl der unterstützten Prozessoren hier wohl bedeuten?: https://github.com/stm32duino/Arduino_Core_STM32 Zusätzlich zu den Expressiv IOT Applikationen.
Manfred schrieb: > Da komplette Boards aus Chinesien billiger sind als ein ATmega im DIL, > pflanze ich das komplett auf, incl. Takt und Resettaster. > > Bequem mit dem Nano incl. USB, wenn es Strom sparen soll, den ProMini > Der wird dann mit einer CH340-Platine programmiert, bei dem gibt es > keinen Ärger mit Fälschungen. Genau das hatte ich oben beschrieben. Du nennst es CH340, ich nenne USB/Serial-Converter. Und es ist total Wurst, was man da nimmt. So man noch eine Serielle hat, tut's auch ein MAX232-IFC - siehe Anlage. Auf der Rückseite meines "MAX232-IFC" hatte ich RISM-51 notiert. Steht für "Reduced Instruction Set Monitor 8051" und gab's damals (tm) bei Intel. Kennen heute nur noch die Wenigsten: War im Prinzip ein erweiterter Bootloader, ähnlich dem, was heute die Arduinos mitbringen. Im Prinzip wurde EPROM gegen RAM geswapt (Flash gab's noch nicht) - und man konnte sich in der Entwicklungsphase das dauernde EPROM-Brennen erst mal sparen. Meine IDE hieß damals 'cvs' und 'make', Compiler war DDS MICRO-C 8031/51 (Dave Dunfield). Das war zu einer Zeit, da bastelte Atmel noch an ihren AVR's rum. Ca. ein Jahr später bekam ich eine Einladung zum 'Seminar'. Dort konnte man dann AVR-Studio 1.01 für Win95/WinNT abgreifen. Also im Osten nichts Neues...
Also m.E. ist der ATTiny85 Leistung / Preis unschlagbar. 5 Stück für 13 Euro http://web3.heissa.de/ATtiny85Rev3.pdf Als Entwicklungs-Umgebung empfehle ich platformio das gut in VSCode integriert ist.
Geli schrieb: > Also m.E. ist der ATTiny85 Leistung / Preis unschlagbar. > 5 Stück für 13 Euro Fehlt da en Smily? Das sind 2,60 Euro / IC, der gerade mal 512B RAM und 8KB Flash hat! Vergleiche das mal mit dem RP2040!
Falk B. schrieb: > Fehlt da en Smily? Das sind 2,60 Euro / IC Nein, nicht pro IC sondern pro Board. Inclusive: USB Stecker, Spannungsregler und vorinstalliertem USB Bootloader.
Stefan ⛄ F. schrieb: >> Fehlt da en Smily? Das sind 2,60 Euro / IC > > Nein, nicht pro IC sondern pro Board. > > Inclusive: USB Stecker, Spannungsregler und vorinstalliertem USB > Bootloader. Ok, trotzdem "teuer" im Vergleich zu anderen Mikrocontrollern. Wenn die Größe und Leistung reicht, ist es OK.
Geli schrieb: > Also m.E. ist der ATTiny85 Leistung / Preis unschlagbar. > 5 Stück für 13 Euro > http://web3.heissa.de/ATtiny85Rev3.pdf Ich würde davon abraten, es gehen sehr schnell die Pins aus. Effektiv sind nur 2 IOs voll benutzbar, USB+/-, Reset, Pin6 (LED) nur eingeschränkt. Gerade für Anfänger ist es sehr schwer, die bereits belegten Funktionen mit der zu entwickelnden Anwendung konfliktfrei zu benutzen. Daher hätte man wenigstens einen ATtiny84 draufpappen sollen. Schade drum.
:
Bearbeitet durch User
Peter D. schrieb: > Daher hätte man wenigstens einen ATtiny84 draufpappen sollen. Schade > drum. Oder einfach einen Arduino Uno/Nano nehmen. Wer die paar Euros nicht übrig hat, hat so oder so ein Problem.
Der Digispark ist ein Nieschenprodukt, keine Frage. Bei ihm geht es um die besonders kompakte Bauform und dass man ihn ohne weiteres Equipment programmieren kann. Für einen einfachen Timer reicht das.
Stefan ⛄ F. schrieb: > Bei ihm geht es um die besonders kompakte Bauform und dass man ihn ohne > weiteres Equipment programmieren kann. Für einen einfachen Timer reicht > das. Vollkommen verkrampft. Ein DIL8 Sockel + 6pol Programmierstecker sind billig und reichen als Programmieradapter und man kann alle 5(6) Pins ohne Krampf nutzen.
Falk B. schrieb: > Ein DIL8 Sockel + 6pol Programmierstecker sind billig und reichen Aber dann brauchst du halt zusätzlich noch einen Programmieradapter. Ich benutze einen Digispark als USB zu I²C Brücke, dafür ist der ideal. Wird sogar vom Linux Kernel unterstützt.
Beitrag #7156068 wurde von einem Moderator gelöscht.
Stefan ⛄ F. schrieb: >> Ein DIL8 Sockel + 6pol Programmierstecker sind billig und reichen > > Aber dann brauchst du halt zusätzlich noch einen Programmieradapter. Ja mei, geht daran die Welt zugrunde? Muss jeder 3 Pin Mikrocontroller auch noch WiFi haben? Luxusprobleme der allerfeinsten Art . . .
Falk B. schrieb: > Ja mei, geht daran die Welt zugrunde? Das sagt doch niemand. Wenn die Dinger völliger Quatsch wären, würde sie keiner herstellen und keiner kaufen. Das ist sicher kein Massenprodukt, aber allein die Tatsache, dass sie zeitweise ausverkauft sind und später wieder verfügbar werden sagt mir, dass die gekauft werden. Sogar Conrad und Reichelt haben sie im Programm.
Stefan ⛄ F. schrieb: > Das sagt doch niemand. Wenn die Dinger völliger Quatsch wären, würde sie > keiner herstellen und keiner kaufen. Es so viel Quatsch produziert UND gekauft, das geht auf keine Kuhhaut!
Das mit den PINs stimmt natürlich, aber wenn jemand viele kleine Mini Projekt macht und das ist bei 85% der Bastler der Fall, dann sind die Boards m.E. ideal, wenn man gerne mit Linux arbeitet. Allerdings gibt es auch das hier zu beachten! https://www.heise.de/select/ix/2017/7/1499358388386903
Geli schrieb: > Allerdings gibt es auch das hier zu beachten! > https://www.heise.de/select/ix/2017/7/1499358388386903 Das ist ein genereller Schwachpunkt bei USB. Angeblich waren mal USB Kabel für Apple Geräte im Handel, die beim Einstecken böse Befehle "eingetippt" haben.
Kai P. schrieb: > ich bin kein Arduino-Typ Uebersetzt willst du damit sagen "Ich gehöre zur Elite" rüberkommen tut das als "Ich habe keine ahnung". Ich sage "solche Typen mag ich nicht". Martin (der echte mit dem roten cape)
Frank K. schrieb: > PIC24 und dsPIC33, die ich Dir auch ans Herz lege. Ich ebenso. Die sind auch in ASM recht angenehm. Falk B. schrieb: > Es so viel Quatsch produziert UND gekauft, das geht auf keine Kuhhaut! Und nachdem man festgestellt hat, dass einem der Quatsch nicht gefällt, wird er einfach weggeworfen. Gruß Jobst
**Olimex** hat eine gute Auswahl an Starter-Boards mit verschiedene Prozessoren: https://www.olimex.com/
Geli schrieb: > Allerdings gibt es auch das hier zu beachten! > > https://www.heise.de/select/ix/2017/7/1499358388386903 Jau! 1. das ist keine Digispark IDE, sondern die Arduino IDE 2. nicht Skript, sondern Sketch 3. das betrifft ALLE µC Boards mit nativen oder V-USB Zudem lässt sich das Feature prächtig/vielfältig nutzen, ohne jede böse Absicht.
MaWin schrieb: >> Espressif ESP8266 (mit WLAN) und ESP32 (mit WLAN und Bluetooth) >> Raspberry RP2040 (ohne WLAN) >> >> Beides sind 32 Bit Controller > > Tja, und beide sind weitgehend undokumentiert. Und was ist das? https://files.seeedstudio.com/wiki/XIAO-RP2040/res/rp2040_datasheet.pdf
Kai P. schrieb: > Mich würde noch interessieren, ob moderne Mikrocontroller ähnlich > zuverlässig sind wie ältere Modelle? Im Prinzip ja. Meine Erfahrung beruht auf einigen STM32 Modellen und dem ESP8266. Deren I/O Pins sind leichter kaputt zu kriegen. Aber solange man sich an die Grenzwerte aus dem Datenblatt hält, braucht man nichts zu befürchten. Wenn du mit den Datenblättern arbeitest, nimm immer das Errata Dokument dazu. Die komplexeren Mikrocontroller haben erstaunlich viele Bugs (bzw. unerwartetes Verhalten), die meisten davon kann man per Software umgehen.
Und keiner spricht vom MSP430 oder Tms320f28027... Die ganze Entwickungsumgebung incl. leistungsstarkem Debugger ist kostenlos....
Walter L. schrieb: > Und keiner spricht vom MSP430 oder Tms320f28027... Die ganze > Entwickungsumgebung incl. leistungsstarkem Debugger ist kostenlos.... Weils ein altes glump ist. STM32 ist einfach besser.
Würde dir davon abraten, ruiniert nur die Erinnerungen. Geh mit den Enkelkindern auf den Spielplatz, ist sinnvoller.
Geht besser, wie der TO, mit Eurem Dackel spazieren. Was Ihr habt keinen Dackel? Natuerlich habt Ihr den, und was fuer einen Ihr habt! Selig sind die, die nur einen Dackel haben, weil er im Namen ist. So, das war das Wort zum Freitag.
> Wie sieht es hier bei den aktuellen 32-Bit-Mikrocontrollern aus?
Vielleicht einen mit RX-CPU.
Dieter schrieb: > Natuerlich habt Ihr den, und was fuer einen Ihr habt! Die progressive Denkweise dieses Nutzers ist der Netiquette unserer Zeit um mehrere Äonen voraus. mfg
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.