Ich muss eine Schaltung bauen, die dann von - sagen wir mal Einsteigern - verwendet und programmiert wird. Nichts spezielles, 2x ADC einlesen, 4 Taster, 4 Relais, Display. Daher auch keine besonderen Anforderungen an den MC. Der unbedingte Wunsch war aber, dass die Platine direkt mit einem FTDI Kabel (TTL-232Rx) aus der Arduino-IDE heraus und ohne Zusatzpakete zu installieren verwendbar ist, weil u.A. die Anleitung ansonsten unnötig kompliziert wird und sich auch ändern könnte, wenn neue IDE Versionen etc. kommen. Welchen Microcontroller sollte ich also verwenden, der möglichst noch längere Zeit lieferbar ist (also eben nicht den ATMega328P...) und direkt unterstützt wird? Also für die IDE als originales Board erscheint, wenn der Bootloader drauf ist?
Warum nicht einen Arduino Nano? Oder einen ESP32? Da braucht es kein FTDI-Kabel. Es reicht ein USB-Kabel.
Niklas M. schrieb: > Welchen Microcontroller sollte ich also verwenden, der möglichst noch > längere Zeit lieferbar ist (also eben nicht den ATMega328P...) und > direkt unterstützt wird? Also für die IDE als originales Board > erscheint, wenn der Bootloader drauf ist? Warum kein ATMega328P? Der ist auf vielen Arduino-Boards drauf und erfüllt genau deine Anforderungen. Wie lange der erhältlich ist, weiß man natürlich nicht, daher erlaube mir eine Rückfrage: Warum ist die lange Erhältlichkeit wichtig? Ist abzusehen, dass die Anwender den Microcontroller regelmäßig zerstören werden? Ist geplant, in ferner Zukunft noch mehr von diesen Schaltungen zu entwickeln? Ich würde mal spekulieren, dass die Arduino-IDE in Zukunft weiterhin den klassischen auf einem ATMega328 basierten Arduino unterstützen wird. Davon gibt es einfach sehr viele und die sind sehr beliebt. Ansonsten kann ich nur Eines empfehlen, was vielleicht etwas ärgerlich ist, das Problem aber behebt: Verpasse deiner Schaltung einen Steckverbinder und stecke dort eine originale Arduino-Platine (bzw. einen kompatiblen Nachbau) auf. Dadurch wird deine Schaltung zum großen Shield und du musst dich nicht um die Integration der Arduino-Hardware kümmern. Der etwas unglückliche Formfaktor des Arduino wird so schnell nicht abgelöst werden, da wird man also weiterhin kompatible Boards finden (und selbst wenn er abgelöst wird, wird es Adapterplatinen geben).
Ja, das Produkt soll sehr langlebig werden, kann sein dass in 5-10 Jahren noch was nachgebaut wird. https://www.microchip.com/en-us/product/atmega328p Not Recommended for new designs Und nein, der ATMEGA328PB ist nicht Pin- und direkt SW-kompatibel. Leider. Ein fertiges Arduino-NANO oder PRO (sehr selten) einzubauen geht leider wegen dem Formfaktor wirklich nicht.
Niklas M. schrieb: > also eben nicht den ATMega328P Wieso nicht? Der wird bestimmt noch lange hergestellt, oder zumindest sein Nachfolger mit ATmega328PB. Damit er direkt unterstützt wird musst du ihn mit Bootloader präpariert kaufen. Einige Händler bieten das an. Die meisten STM32 Mikrocontroller haben bereits einen Bootloader an Werk, allerdings muss man "Fremdsoftware" (Den STM32 Core) über den Boardmanager der Arduino IDE installieren. Es ist daher nicht > für die IDE als originales Board erscheint aber nahe dran.
Ein anderer Ansatz wäre ein RP2040. Den kann man auch mit der Arduino-Umgebung programmieren, der braucht keine USB-Seriell-Bridge ... Und er spielt in einer anderen Liga als der nun ziemlich angealterte Atmega328.
Ich glaube es gibt überhaupt keinen Mikrocontroller, der von der Arduino IDE direkt als original erkannt wird.
Harald K. schrieb: > Ein anderer Ansatz wäre ein RP2040. Den kann man auch mit der > Arduino-Umgebung programmieren, der braucht keine USB-Seriell-Bridge ... > Und er spielt in einer anderen Liga als der nun ziemlich angealterte > Atmega328. Das ist nicht zielführend. Das explizite Ziel war, eine Möglichkeit zu finden, das Board heute an einen Rechner mit gerade eben installierter Arduino-IDE stecken und ohne weitere Konfiguration losprogrammieren zu können, und in 10 Jahren nochmal ein Board zu bauen, mit dem das immer noch geht. Da bringt es wenig, wenn für den RP2040 erst andere Libraries installiert werden müssen. Das Problem hier ist kein technisches Problem. Das Problem hier ist, dass der Nutzer eine Anforderung gibt, die zwar im Prinzip erfüllbar ist, aber nur mit absurd großem Aufwand. Wichtig ist es hier, als Entwickler nochmal sehr genau nachzufragen und eine erträgliche Lösung zu finden, denn dem Nutzer ist überhaupt nicht klar, welche Konsequenzen er mit seiner Anforderung auslöst. Eine mögliche Lösung könnte ja z.B. sein, eine vorkonfigurierte Arduino-IDE bereitzustellen, in der die ganzen Libraries schon installiert sind, die man für das Board der Wahl braucht.
Installiert sich die Arduino IDE die Boards nicht sogar automatisch? Ist kein Internet vorhanden? Ein Board muss so oder so ausgewählt werden. Ob man da einen Arduino auswählt oder einen ESP32-C3 ist dann auch egal.
F. schrieb: > Das Problem hier ist, dass der Nutzer eine Anforderung gibt, > die zwar im Prinzip erfüllbar ist, aber nur mit absurd großem Aufwand. In der Tat. Die Anforderung ist Unfug.
Niklas M. schrieb: > Ich muss eine Schaltung bauen, die dann von - sagen wir mal Einsteigern > - verwendet und programmiert wird. Nichts spezielles, 2x ADC einlesen, 4 > Taster, 4 Relais, Display. Daher auch keine besonderen Anforderungen an > den MC. > Der unbedingte Wunsch war aber, dass die Platine direkt mit einem FTDI > Kabel (TTL-232Rx) aus der Arduino-IDE heraus und ohne Zusatzpakete zu > installieren verwendbar ist, weil u.A. die Anleitung ansonsten unnötig > kompliziert wird und sich auch ändern könnte, wenn neue IDE Versionen > etc. kommen. > Welchen Microcontroller sollte ich also verwenden, der möglichst noch > längere Zeit lieferbar ist (also eben nicht den ATMega328P...) und > direkt unterstützt wird? Also für die IDE als originales Board > erscheint, wenn der Bootloader drauf ist? Das ist ja wie Birne Helene ohne Birne. Was die IDE in 10 Jahren noch unterstützt, weiss heute noch keiner. Ob es 328 oder Nachfolger in 10 Jahren noch gibt, ebenfalls nicht. Zweckmässig wäre wohl ein Controller, der ein USB-Massenspeicherinterfach hat, und die Software nur ein Interpreter für eine dialogorientierte Hochsprache ist. Das wird es in in 10 Jahren wohl noch geben.
Niklas M. schrieb: > Ja, das Produkt soll sehr langlebig werden, kann sein dass in 5-10 > Jahren noch was nachgebaut wird. Und? > https://www.microchip.com/en-us/product/atmega328p > Not Recommended for new designs NRFD heißt nicht, daß der morgen abgekündigt wird. Abgekündigt heißt nicht, daß der morgen nicht mehr erhältlich ist. > Und nein, der ATMEGA328PB ist nicht Pin- und direkt SW-kompatibel. Albern. Für deine pillepalle-Anforderungen ist er allemal kompatibel. Zumal du ja wohl mit Arduino programmieren willst. Da wird der ATMega328PB jetzt schon unterstützt. Warum nimmst du nicht gleich ein Arduino-Board deiner Wahl mit dem ATMega328PB?
Also ich halte die Anforderung, dass die Benutzer sich nicht zuerst in der IDE irgendwelche 3rd Party Zusatzpakete installieren müssen, für durchaus vernünftig und sehr Supportanfragenmindernd. Die User kämpfen ja eh schon mit dem Leben, dem Universum und den ganzen Rest. hust Lehrer hust. Was in 10 Jahren ist - eh keine Ahnung, aber man kann ja immerhin keinen jetzt schon als "Not Recommended for new designs" MC einsetzen.
Hier übrigens gut erklärt, was man machen muss, damit der ATMega328PB funktioniert: https://wolles-elektronikkiste.de/atmega328pb-basierte-boards Man muss ein Board Package installieren. Davon gibts mehrere, aber nur von kleineren Händlern. Ob die weiter gepflegt werden? Keine Ahnung, verlassen möchte ich mich nicht darauf. Übrigens war der Arduino Pro Mini ein absolut geniales Teil, leider nicht mehr aktuell und natürlich hat Arduino den Unsinn mit den Pins nicht im 100mil Raster auch dort gemacht, warum auch immer. Renesas RA4M1 klang mal interessant, scheint aber nicht weiter verfolgt zu werden und die SW soll nicht sooooooo toll sein, selbst die "offizielle". MGM240S werde ich mir mal ansehen, danke, ist halt deutlicher overkill und teuer.
Das war bei Arduino 1.8.19 so dass man irgendwelche Links hinterlegen musste. Die Arduino IDE 2.3.x macht das mittlerweile ungefragt OOTB. Arduino ist doch wie Fritzing extra für Kinder gemacht.
:
Bearbeitet durch User
Sherlock schrieb: > Die meisten STM32 Mikrocontroller haben bereits einen Bootloader an > Werk, allerdings muss man "Fremdsoftware" (Den STM32 Core) über den > Boardmanager der Arduino IDE installieren. "Fremdsoftware" kann er scheinbar nicht. Den Bootloader sehe ich kritisch: Ich habe mal eine externe Entwicklung betreut, die einen STM32L072С8 nutzt. Nach Einspielen eines Treibers konnte ich unter Windows per USB das Gerät parametrieren, erstmal alles gut. Dann habe ich ein Update per USB aufgerufen und peng, Treiber fehlt. Nach etwas Sucherei zusätzlich den STM-Treiber für den Bootloader eingespielt, war das Gerät leider schon tot. Das war eine gefährliche Falle, für Betrieb und Update zwei unterschiedliche Treiber zu brauchen. Niklas M. schrieb: > Ein fertiges Arduino-NANO oder PRO (sehr selten) einzubauen geht leider > wegen dem Formfaktor wirklich nicht. Wenn der 'Formfaktor' des NANO unpassend ist, sollte dringend die Anforderung revidiert werden - der ist wie ein großes DIL-IC klaglos handhabbar. Dessen Original mit FTDI-USB läuft klaglos mit der A*-IDE. Bei den ChiNanos mit CH340 muß man unter Windows den USB-Treiber nachinstallieren - wozu es widersprüchliche Aussagen gibt. Aber, wenn das schon zuviel verlangt ist, sollte man besser Tischler oder Gärtner werden. Niklas M. schrieb: > Übrigens war der Arduino Pro Mini ein absolut geniales Teil, leider > nicht mehr aktuell und natürlich hat Arduino den Unsinn mit den Pins > nicht im 100mil Raster auch dort gemacht, warum auch immer. Was am ProMini passt denn da nicht? Ich habe mehr als einen auf 2,54mm Lochraster gesetzt. Die halb versetzen 6 Pins auf der Stirnseite führen kein Signal, was nicht auch auf den beiden Längsseiten vorhanden wäre. Ein Ärgernis ist allerdings, dass I2C auf den Längsseiten nicht zugänglich ist. Zu allem Überfluß sind aus China zwei abweichende Layouts des ProMini unterwegs. Dass man, im Gegensatz zum Nano, für den ProMini einen USB-Adapter benötigt, ist eher lästig und eine mögliche Fehlerquelle. Der Vorteil ist, dass ich kein USB-IC mit Strom versorgen muß und das Ding mit 8 MHz an einem LiIon-Akku sparsam betreiben kann, wenn ich LED und Regler entferne. Alexander schrieb: > Darf ich Dich mal fragen, hast Du schon mal Arduino benutzt? Die könnte er evtl. mit NEIN beantworten. Ich denke, dass sich Niklas M. (nik23) mit seinen Sonderwünschen auf Arduino.cc austoben sollte.
Was hast du denn da noch dazwischen gebastelt, einen Pegelwandler? Optokoppler? Ich hab so ein Teil das gibts für 5 Eur.
:
Bearbeitet durch User
Niklas M. schrieb: > dann von - sagen wir mal Einsteigern Für die Einsteiger von heute hat die Smartphone-Tauglichkeit oberste Priorität.
Alexander schrieb: > Was hast du denn da noch dazwischen gebastelt, einen Pegelwandler? Beim Pro steckt man direkt einen FTDI TTL-232R-3V3 (für die 3.3V Variante bzw einen FTDI TTL-232R-5V an. https://docs.arduino.cc/retired/getting-started-guides/ArduinoProMini/ Auf dem Board ist kein überflüssiger (und oft fragwürdiger / nicht 100% kompatibler) USB Chip und er ist kleiner als der NANO. Mehr Beschaltung wie im Anhang braucht es zum programmieren in der Schaltung nicht. Zusätzliches Problem beim Nano: das USB Kabel war mir oft im Weg, wenn die Schaltung in einem (etwas tieferen) Gehäuse eingebaut war. Da muss man mit dem Kabel erst mal rankommen zum anstecken oder gar eins dranhängen lassen. Aber darum geht es ja überhaupt nicht: Ich brauche eben de facto einen Nachfolger für den altehrwürdigen ATMega328P und möchte die guten Eigenschaften dieser Lösung (Kabel einstecken, in der Arduino IDE "Arduino Pro or Pro Mini" auswählen und los gehts) behalten.
Niklas M. schrieb: > Aber darum geht es ja überhaupt nicht: Ich brauche eben de facto einen > Nachfolger für den altehrwürdigen ATMega328P und möchte die guten > Eigenschaften dieser Lösung (Kabel einstecken, in der Arduino IDE > "Arduino Pro or Pro Mini" auswählen und los gehts) behalten. Dann geh doch einfach auf https://www.arduino.cc/en/hardware/ und such Dir eine neue Basis aus. Da gibts nicht nur den alten 328P, sondern auch moderne MCUs, zum Beispiel: https://store.arduino.cc/products/uno-r4-minima oder: https://store.arduino.cc/products/arduino-zero Abpinnen können solltest Du dann schon. fchk
Alexander schrieb: > Was hast du denn da noch dazwischen gebastelt, einen Pegelwandler? > Optokoppler? Falls ich gemeint sein sollte: Eine galvanische Trennung mit ADUM1201 und Optokoppler. Dann ist es egal, ob der ProMini an drei oder fünf Volt läuft. Und wichtig ist, dass der PC geschützt ist, wenn im Versuchsaufbau ein Fehler mit Überspannung auftritt. Am Nano kann ich einen USB-Trenner mit ADUM3160 verwenden, wenn z.B. das System keine sichere Netztrennung aufweist. Aber ich weiß, das machen nur Angsthasen und wahren Fachleuten passieren keine kritischen Fehler. Niklas M. schrieb: > Beim Pro steckt man direkt einen FTDI TTL-232R-3V3 (für die 3.3V > Variante bzw einen FTDI TTL-232R-5V an. Das ist schön für Dich. Niklas M. schrieb: > Auf dem Board ist kein überflüssiger (und oft fragwürdiger / nicht 100% > kompatibler) USB Chip und er ist kleiner als der NANO. Mehr Beschaltung > wie im Anhang braucht es zum programmieren in der Schaltung nicht. Ich könnte auch einen CH340 direkt anschließen, an dem nichts fragwürdig ist. So ziemlich alle China-Arduinos haben den CH340 und funktionieren, außer bei den Leuten, die zu dusselig sind, den Treiber zu installieren. > Zusätzliches Problem beim Nano: das USB Kabel war mir oft im Weg, wenn > die Schaltung in einem (etwas tieferen) Gehäuse eingebaut war. Nur, wenn man beim Aufbau nicht nachdenkt. In einem Gerät habe ich intern ein Kabel Mini-USB nach USB-B verbaut und den Zugang an der Gehäuserückwand. Eine andere Variante ist ein Loch mit Blindkappe.
Es wurde schon angekündigt, (Link dazu gabs hier im Forum) das aus dem GCC Compiler etliche Atmegas rausfliegen werden. Da der gcc Comiler von der Arduino IDE genutzt wird, ist es nur eine Frage der Zeit, wann die Atmega basierten Arduinos nicht mehr ohne Handstände verwendbar sind. Mark Twain sagte einmal: "Prognosen sind schwierug, besonders, wenn sie die Zukunft betreffen.
Gerald B. schrieb: > Es wurde schon angekündigt, (Link dazu gabs hier im Forum) das aus dem > GCC Compiler etliche Atmegas rausfliegen werden. Pointer? Ich glaub das nämlich nicht. Support für eine (selbst abgekündigte, aber da sind wir noch lange nicht) Architektur ohne Not aus einem Compiler zu entfernen, ist das dümmste was mir einfällt.
Axel S. schrieb: > Ich glaub das nämlich nicht. Ich habe es auch noch nie erlebt das überhaupt mal eine Architktur aus irgendeinem Compiler entfernt wurde. Warum sollte also gerade der GCC dies überhaupt tun? Das wäre nicht nur völlig sinnlos, sondern auch noch extrem dumm. Ohne direkte Quelle kann man das einfach garnicht glauben.
Soweit ich weiß, dümpelt Arduino noch mit der AVR-GCC Version 7.3 rum. Mit C++11 Bei mir, meiner Arduino IDE, ist mittlerweile eine AVR-GCC Ver. 15.x im Einsatz. Mit C++20 Also selbst wenn es keine 16er GCC Version für AVR geben wird, wird die AVR Unterstützung in der Arduino IDE nicht sterben, sondern nur (noch mehr) Staub ansetzen.
:
Bearbeitet durch User
Niklas M. schrieb: > Und nein, der ATMEGA328PB ist nicht Pin- und direkt SW-kompatibel. Der ATmega328PB ist sehr wohl 100% abwärtskompatibel. Die zusätzlichen IO-Register muß man nicht benutzen. Nur die Signatur ist eine andere.
Gerald B. schrieb: > Da der gcc Comiler von > der Arduino IDE genutzt wird, ist es nur eine Frage der Zeit, wann die > Atmega basierten Arduinos nicht mehr ohne Handstände verwendbar sind. Nur weil es eine neue Version gibt, zerstören sich nicht alle Vorgängerversion von selbst. Man darf sie weiterhin benutzen. Bestimmt verwenden viele auch noch den alten WINAVR-2010.
Peter D. schrieb: > Niklas M. schrieb: >> Und nein, der ATMEGA328PB ist nicht Pin- und direkt SW-kompatibel. > > Der ATmega328PB ist sehr wohl 100% abwärtskompatibel. Die zusätzlichen > IO-Register muß man nicht benutzen. > Nur die Signatur ist eine andere. Und der Oszillator. Was die 100% deutlich schrumpfen lässt. Die PB Variante ist das Nachfolgemodell, sicherlich noch über 10 Jahre erhältlich, aber kein 100%iger DropIn Ersatzstoff.
Irgendwo habe ich von einem Bootloader für den ATMEGA328PB gelesen, der der Arduino IDE einen ATMEGA328P vorgaukelt, finde den aber leider nicht mehr. Hat da wer Erfahrungen damit? Funktioniert es damit tatsächlich problemlos? Die nicht funktionierenden 2 zusätzlichen IOs wären durchaus verkraftbar.
Niklas M. schrieb: > Irgendwo habe ich von einem Bootloader für den ATMEGA328PB > gelesen, der > der Arduino IDE einen ATMEGA328P vorgaukelt, Das riecht nach einem dirty hack. Es gibt durchaus funktionierende 328PB Arduino Cores, die ohne sowas auskommen.
Gerald B. schrieb: > Da der gcc Comiler von > der Arduino IDE genutzt wird, ist es nur eine Frage der Zeit, wann die > Atmega basierten Arduinos nicht mehr ohne Handstände verwendbar sind. Die Arduino IDE ist darauf vorbereitet, unterschiedliche Versionen des Compiler parallel zu installieren. Für alte Mikrocontroller nimmt dann halt eine alte Version (why not?). Und für die neuen wird Microchip sicher einen geeigneten Compiler bereitstellen.
Peter D. schrieb: > Niklas M. schrieb: >> Und nein, der ATMEGA328PB ist nicht Pin- und direkt SW-kompatibel. > > Der ATmega328PB ist sehr wohl 100% abwärtskompatibel. Die zusätzlichen > IO-Register muß man nicht benutzen. > Nur die Signatur ist eine andere. Hallo, hier muss ich Euch leider widersprechen. Die einzigste Garantie ist die es gibt, dass der PB zum P binärkompatibel ist. Also man kann das hex File vom P auf den PB flashen und den PB in die Schaltung einsetzen, als Reparaturersatz o.ä. solange die Taktquelle passt. Der Quellcode ist nicht kompatibel! Weil der PB paar Hardwareinheiten doppelt hat im Vergleich zum P, sind paar Registernamen anders. Das heißt ohne Anpassung vom P Quellcode kann man für den PB nicht kompilieren. Vergleicht bitte die Headerfiles beider Controller. Wahllos verglichen, paar Bsp.
1 | P: #define SPCR _SFR_IO8(0x2C) |
2 | PB: #define SPCR0 _SFR_IO8(0x2C) |
3 | |
4 | P: #define PRR _SFR_MEM8(0x64) |
5 | PB: #define PRR0 _SFR_MEM8(0x64) |
6 | |
7 | P: #define TWCR _SFR_MEM8(0xBC) |
8 | PB: #define TWCR0 _SFR_MEM8(0xBC) |
9 | |
10 | P: #define SPI_STC_vect _VECTOR(17) |
11 | PB: #define SPI0_STC_vect _VECTOR(17) |
:
Bearbeitet durch User
Veit D. schrieb: > Das heißt ohne > Anpassung vom P Quellcode kann man für den PB nicht kompilieren. Mit Board MiniCore sind auch die "P" Namen definiert, es waren keine Änderungen im Sourcecode erforderlich, weil in pins_arduino.h
1 | // Make sure the ATmega328PB is backwards compatible with the 328 and 328P
|
2 | #if defined(__AVR_ATmega328PB__)
|
3 | // SPI
|
4 | #define SPCR SPCR0
|
5 | #define SPSR SPSR0
|
6 | #define SPDR SPDR0
|
7 | #define SPI_STC_vect SPI0_STC_vect
|
8 | #define SPI_STC_vect_num SPI0_STC_vect_num
|
9 | // I2C
|
10 | #define TWBR TWBR0
|
11 | #define TWSR TWSR0
|
12 | #define TWAR TWAR0
|
13 | #define TWDR TWDR0
|
14 | #define TWCR TWCR0
|
15 | #define TWAMR TWAMR0
|
16 | #define TWI_vect TWI0_vect
|
17 | #define TWI_vect_num TWI0_vect_num
|
18 | // UART
|
19 | #define USART_RX_vect USART0_RX_vect
|
20 | #define USART_RX_vect_num USART0_RX_vect_num
|
21 | #define USART_UDRE_vect USART0_UDRE_vect
|
22 | #define USART_UDRE_vect_num USART0_UDRE_vect_num
|
23 | #define USART_TX_vect USART0_TX_vect
|
24 | #define USART_TX_vect_num USART0_TX_vect_num
|
25 | #endif // 328PB defs
|
:
Bearbeitet durch User
Niklas M. schrieb: > Irgendwo habe ich von einem Bootloader für den ATMEGA328PB gelesen, der > der Arduino IDE einen ATMEGA328P vorgaukelt, finde den aber leider nicht > mehr. Hat da wer Erfahrungen damit? Wenn man den "Optiboot 328P" per ISP auf einen 328PB spielt gibt er sich als 328P aus, weil es so im Bootloadercode fest drinsteht.
Helmut H. schrieb: > Veit D. schrieb: >> Das heißt ohne >> Anpassung vom P Quellcode kann man für den PB nicht kompilieren. > > Mit Board MiniCore sind auch die "P" Namen definiert, es waren keine > Änderungen im Sourcecode erforderlich, weil in pins_arduino.h Hallo, wenn man sich die pins_arduino.h genauer anschaut, wurden doppelte Einträge gemacht, also 2 Namen für das gleiche Register usw. damit man Quellcode kompatibel wird. Dafür hat MCUdude extra nachgeholfen. Funktioniert nur mit der Arduino IDE und diesem MiniCore Package. Das sollte man nicht verallgemeinern. Für die nicht Arduino Programmierer gilt gesagtes. Ich will mich da auch gar nicht streiten, wollte nur auf den Umstand hinweisen und eine allgemein nicht richtige Aussage korrigieren. Mehr wollte ich nicht.
Veit D. schrieb: > Die einzigste Garantie ist die > es gibt, dass der PB zum P binärkompatibel ist. Also man kann das hex > File vom P auf den PB flashen und den PB in die Schaltung einsetzen, als > Reparaturersatz o.ä. solange die Taktquelle passt. Mehr will man doch auch nicht im Nano. Es ging doch nur um die Angst, daß es den 328P irgendwann nicht mehr gibt. Als PB compilieren muß man erst, wenn man die erweiterten Ressourcen nutzen will, z.B. mehr IO-Pins, mehrere SPI. Und dann muß man eh eine eigene Platine entwerfen.
Hallo, das ist ja in sofern korrekt, Peter. Nur wie gesagt, ohne dem angepassten MiniCore Package kann man P Quellcode nicht für einen PB kompilieren. Also wenn jemand den PB Nano im Microchip Studio programmiert, dann muss er das Headerfile anpassen oder seinen Quellcode. Eins von beiden muss er machen. Selbst wenn er nur die P Hardwareeinheiten vom PB nutzen möchte. Mehr wollte ich nicht sagen, weil es hieß der PB wäre zum P Softwarekompatibel. Was eben ohne "eigene" Anpassung nicht stimmt. Irgendwo muss eine Anpassung erfolgen. Das wollte ich nicht unkommentiert im Raum stehen lassen. ;-)
:
Bearbeitet durch User
Veit D. schrieb: > Nur wie gesagt, ohne dem > angepassten MiniCore Package kann man P Quellcode nicht für einen PB > kompilieren. Also wenn jemand den PB Nano im Microchip Studio > programmiert, dann muss er das Headerfile anpassen oder seinen > Quellcode. Eins von beiden muss er machen. Nein! Er kann es auch stumpf für einen 328P übersetzen und den resultierenden Binärcode auf den 328PB aufspielen. Das ist die Definition von kompatibel. Daß er 328P Quellcode nicht mit der Angabe "und jetzt bitte für einen 328PB" übersetzen kann, liegt auf der Hand. Denn in den 328PB Headerfiles gibt es andere Namen für einige SFRs. Und wenn er diese Headerfiles nutzt (was der Compiler automatisch bei der Angabe -mmcu=m328pb macht) dann muß er auch den Quellcode anpassen. Aber diese Anpassungen hat die Arduino IDE für Bibliotheken schon gemacht (spätestens wenn er ein Board-Package für ein Board mit 328PB installiert). So lange er die Arduino-Abstraktionsschichten benutzt, sieht sein Sketch für 328P und 328PB genau gleich aus. Das ist der Grund, warum man das Arduino-Framework benutzt (genauer gesagt der einzige Grund warum man das benutzen wollen würde). Wenn er händisch (also unter Umgehung der Arduino Libs) auf diese Register zugreifen will, dann ist das seine Sache. Das war aber schon immer so.
Niklas M. schrieb: > Arduino-IDE Welche ? Die IDE 1.x von neulich oder die IDE 2.x von heute ? Oder alle die in den nächsten 10 Jahren auf dasselbe Boot aufsatteln wollen, Eclipse ist doch jetzt schon tot. Schon mit dem Original Arduino Uno hat man das Problem, dass es welche mit altem und welche mit neuem Bootloader gibt und man die passend einstellen muss in der IDE sonst funktioniert es nicht. Und dann gibt es welche mit FTDI232R und ATmega16U2 und CH340 und ohne die passenden Treiber geht wieder nix. Arduino ist durch den Wildwuchs alles andere als einfach, und hat sich überlebt, so wie die AVR. Setz auf STM32. Geht zwar auch mit ArduinoIDE aber CubeIDE ist die richtigere.
Niklas M. schrieb: > Ob die weiter gepflegt werden? Keine Ahnung, > verlassen möchte ich mich nicht darauf. Dann pflege sie selber für deine Anwendung. Bei allem Externen kann die Firma morgen Pleite gehen.
Michael B. schrieb: > Schon mit dem Original Arduino Uno hat man das Problem, > dass es welche mit altem und welche mit neuem Bootloader gibt Völliger Unsinn! Du machst deinem Namen alle Ehre.
Michael B. schrieb: > Setz auf STM32. Geht zwar auch mit ArduinoIDE aber CubeIDE ist die > richtigere. Naja, in diesem speziellen Fall eben nicht CubeIDE: Niklas M. schrieb: > Der unbedingte Wunsch war aber, dass die Platine direkt mit einem FTDI > Kabel (TTL-232Rx) aus der Arduino-IDE heraus und ohne Zusatzpakete zu > installieren verwendbar ist Das wäre nahezu perfekt. Das FTDI-Kabel (DELOCK 83785) passt mit einer 6-poligen Stiftleiste 1:1 an einen STM32, man muss nicht einmal einen Booloader flashen. Die ArduinoIDE müsste nur das Protokoll vom STM UART-Bootloader verstehen...
Veit D. schrieb: > (...) Also wenn jemand den PB Nano im Microchip Studio > programmiert, dann muss er das Headerfile anpassen oder seinen > Quellcode. Eins von beiden muss er machen. Nein, er muss beides machen. Entweder Du nutzt die Header vom 328P und verwendest in Deinem Code die alten Registenamen, oder Du nutzt die neuen Header vom 328PB und verwendest die neuen Registernamen. Das muss zusammenpassen. Du kannst aber komplett in der alten Welt bleiben, Code für den 328P schreiben und übersetzen und den dann in einen 328PB flashen. Der PB ist ein die shrink, um die Produktion billiger zu machen. Microchip verkauft derzeit so viele ATmega328P(B) und davon abgeleitete Typen, dass da sicherlich für die nächsten Jahre keine Abkündigung zu erwarten ist.
Bauform B. schrieb: > Die ArduinoIDE müsste nur das Protokoll vom STM > UART-Bootloader verstehen... Ist das ein Problem? Der Arduino IDE wird über die programmers.txt boards.txt und platform.txt mitgeteilt wie sie das abhandeln kann. Und wenn sich das "Interface" dort noch nicht findet, sollte es mit wenigen Zeilen nachzurüsten sein.
Arduino F. schrieb: > Michael B. schrieb: >> Schon mit dem Original Arduino Uno hat man das Problem, >> dass es welche mit altem und welche mit neuem Bootloader gibt > Völliger Unsinn! Ganz so unsinnig ist es nicht. Ich habe selbst schon erlebt, wie Anfänger an der Auswahl des richtigen Bootloaders bei einem Arduino-Nano-Klon gescheitert sind. Da kommt man als unbedarfter Anfänger erstmal nicht drauf. Aber das ist für den TO Niklas M. (nik23) tatsächlich relativ unerheblich. Er will ja offenbar den nackten Controller für ein eigenes miniaturisiertes Board benutzen, welches dann möglichst lange und möglichst mit der dann jeweils aktuellsten Arduino-IDE programmierbar sein soll. Auf seine (ggf. auch in Zukunft) produzierten Boards muss er den Bootloader draufbekommen, was komplizierter ist als "einfach" ein fertiges Board zu kaufen. Aber an der Stelle ist (hoffentlich) die "möglichst einfach und nur mit der Arduino-IDE und seriellem Adapter"-Anforderung noch nicht relevant. Falls er die Idee verfolgt, den 328PB zu bestücken, und ihn dann wie einen 328P zu programmieren, sollte sich aber sein modifizierter Bootloader so verhalten, wie die Standardeinstellung für alten/neuen Bootloader in der Arduino-IDE gesetzt ist, damit hier nicht noch extra umgeschaltet werden muss.
Chris V. schrieb: > Ganz so unsinnig ist es nicht. Ich habe selbst schon erlebt, wie > Anfänger an der Auswahl des richtigen Bootloaders bei einem > Arduino-Nano-Klon gescheitert sind. Da kommt man als unbedarfter > Anfänger erstmal nicht drauf. Wenn ihm Nano meint, dann soll ihm nicht UNO sagen. Dann alle UNO bis R4 haben den gleichen Bootloader. Und der R4 ist eine ganz andere Welt(ARM).
Peter D. schrieb: > Niklas M. schrieb: >> Und nein, der ATMEGA328PB ist nicht Pin- und direkt SW-kompatibel. > > Der ATmega328PB ist sehr wohl 100% abwärtskompatibel. Die zusätzlichen > IO-Register muß man nicht benutzen. > Nur die Signatur ist eine andere. Es gibt Nano-Boards mit 2 UARTs? Ab jetzt bestelle ich die Arduino-Nano Boards nur noch mit dem 328PB... Auf der Microchip Seite heißt es "Recommended for Automotive Design" was hoffentlich heißt dass es den Chip noch viele Jahre gibt...
Axel S. schrieb: > Veit D. schrieb: >> Nur wie gesagt, ohne dem >> angepassten MiniCore Package kann man P Quellcode nicht für einen PB >> kompilieren. Also wenn jemand den PB Nano im Microchip Studio >> programmiert, dann muss er das Headerfile anpassen oder seinen >> Quellcode. Eins von beiden muss er machen. > > Nein! > ... Ich bin erstaunt. Du antwortest mit Nein und wiederholst genau das was ich schon längst geschrieben habe. Lies meine vorherigen Antworten. Ist genau das.
Soul E. schrieb: > Der PB ist ein die shrink, um die Produktion billiger zu machen. > Microchip verkauft derzeit so viele ATmega328P(B) und davon abgeleitete > Typen, dass da sicherlich für die nächsten Jahre keine Abkündigung zu > erwarten ist. Wenn ich mir so ansehe, was für olle Controller bei Microchip noch verfügbar sind (im Gegensatz zu vielen anderen Herstellern), so ist nicht davon auszugehen, dass ausgerechnet der recht populäre ATm328 hier den Anfang macht. Vielleicht streicht man irgendwann die kleineren 48, 88 und 168, da diese durch den 328 ersetzt werden können. Allerdings ist der ATm328PB nicht nur ein einfacher die-shrink. Er bietet auch etwas mehr Funktionalität als die ATm328P(A). Ansonsten, wenn man etwas haben möchte, was schon ewig da ist und vermutlich in diversen Formen noch einige Zeit und von diversen Herstellern geben wird, dann sollte man nach 8052 Derivaten Ausschau halten. Die gibt es auch als 100MHz Single-Cycle Variante, wenn es etwas flotter sein soll. Oder auch mit UART-Bootloader fest im Chip integriert. Gruß Jobst
Hallo, der ATmega328 und 328P haben den offiziellen Status: Not Recommended for new designs Das Thema wurde schon x mal durchgekaut. Ganz ehrlich.
:
Bearbeitet durch User
Niklas M. schrieb: > Der unbedingte Wunsch war aber, dass die Platine direkt mit einem FTDI > Kabel (TTL-232Rx) aus der Arduino-IDE heraus und ohne Zusatzpakete zu > installieren verwendbar ist Mein Favorit ist der ATmega32U4. Der hat USB eingebaut und benötigt keinen extra FTDI oder CH340 chip. Die ACM Treiber sind im Betriebssystem drin und Probleme mit seriellen Baudraten gibt es prinzipbedingt nicht. Er hat einen freien Hardware UART der nicht bereits durch die PC Verbindung belegt ist. https://www.microchip.com/en-us/product/atmega32u4 https://store.arduino.cc/products/arduino-micro Michael
Hallo, damit sie dann vor dem Problem stehen im laufenden Programm keine serielle Ausgabe im Terminal zu erhalten. Man muss sich im setup() vorher entscheiden was man benötigt. Das mit dem USB vom ATmega32U4 hat auch so seine Eier. Jeder Neuling mit Arduino Micro stolpert über das Problem. Ein Arduino Nano ESP32 krankt an einem ähnlichen Symptom. Dann wird wieder ein extra USB-Serial Adapter benötigt welcher separat an der USART hängt und ist man wieder beim FTDI/CH34x. Ich kann auch das Problem vom TO nicht so richtig nachvollziehen. Jeder alte Standard Arduino (Uno, Nano, Mega) ist out of the box verwendbar. Neuere Modelle für die ein extra Board Package benötigt wird sind auch kein Problem. Die Arduino IDE 2.x erkennt das, fragt nach, ob das Board Package installiert werden soll.
Jobst M. schrieb: > Wenn ich mir so ansehe, was für olle Controller bei Microchip noch > verfügbar sind (im Gegensatz zu vielen anderen Herstellern), so ist > nicht davon auszugehen, dass ausgerechnet der recht populäre ATm328 hier > den Anfang macht. Vielleicht streicht man irgendwann die kleineren 48, > 88 und 168, da diese durch den 328 ersetzt werden können. Microchip ist da wirklich sehr ausdauernd. Z.B. gab es früher gefühlt 100 Firmen, die den 22V10 im Programm hatten. Heute ist nur noch der ATF22V10 von Microchip in Produktion.
> nicht davon auszugehen, dass ausgerechnet der recht populäre ATm328 hier > den Anfang macht. Und es ist auch noch so dass es den fast 100% kompatiblen 328PB gibt, bei dem nichts von "Not Recommended for new designs" auf der Webseite steht.
F. schrieb: > Das ist nicht zielführend. Das explizite Ziel war, eine Möglichkeit zu > finden, das Board heute an einen Rechner mit gerade eben installierter > Arduino-IDE stecken und ohne weitere Konfiguration losprogrammieren zu > können Eben noch mal getestet. Jungfreudiges Arduino IDE installieren, Board auswählen, auf "Yes" klicken. Findet auch den "RP2040" Suchbegriff.
Ich glaube, ein frisch installierte Arduino IDE (2.x) kann überhaupt keinen Mikrocontroller programmieren, ohne den dazu nötigen Core herunter zu laden. Die alte Arduino IDE (1.8) enthielt hingegen Unterstützung für die klassischen Modelle (Uno, Nano, Mega, ...).
Georg S. schrieb: >> nicht davon auszugehen, dass ausgerechnet der recht populäre ATm328 hier >> den Anfang macht. > > Und es ist auch noch so dass es den fast 100% kompatiblen 328PB gibt, > bei dem nichts von "Not Recommended for new designs" auf der Webseite > steht. Sehe ich auch so. Deshalb verwende ich ohne Bedenken immer noch den 328P. Und wenn es den in 10 Jahren tatsächlich nicht mehr geben sollte, dann wäre es vielleicht auch zumutbar die Headerfiles für den 328PB zu ändern und den Quelltext einmal neu zu kompilieren. Und wenn in 20 Jahren dann auch der 328PB ausläuft, dann kaufe ich mir bei Pollin noch so viele Exemplare, daß ich die wichtigen Dinge reparieren kann.
Sherlock 🕵🏽♂️ schrieb: > Ich glaube, ein frisch installierte Arduino IDE (2.x) kann überhaupt > keinen Mikrocontroller programmieren, ohne den dazu nötigen Core > herunter zu laden. Die alte Arduino IDE (1.8) enthielt hingegen > Unterstützung für die klassischen Modelle (Uno, Nano, Mega, ...). Wie man zu so einer Aussage kommen kann, ich weiß es nicht. Tut mir leid. Bei der Vorlage muss man sagen, du hast keine Ahnung.
Beitrag #7883470 wurde vom Autor gelöscht.
Veit D. schrieb: > Wie man zu so einer Aussage kommen kann, ich weiß es nicht. Tut mir > leid. Bei der Vorlage muss man sagen, du hast keine Ahnung. Probiere es aus und entschuldige dich danach!
Beitrag #7883479 wurde vom Autor gelöscht.
Hallo, a) verwende ich die Arduino IDE 1.x und 2.x schon sehr lange, ich weiß was ich dazu schreibe b) habe ich es mit dem .zip File jetzt nochmal gegen getestet, falls sich etwas unerwartet geändert haben sollte, kann ja sein c) steht es in der Beschreibung https://docs.arduino.cc/software/ide-v2/tutorials/ide-v2-board-manager/ unter AVR Also. Wer von euch hat es
1 | [ ] ausprobiert |
2 | [ ] nicht ausprobiert |
Ich muss dem Stefan leider recht geben, auch wenn mir das prinzipiell gar nicht schmeckt.
Veit D. schrieb: > b) habe ich es mit dem .zip File jetzt nochmal gegen getestet, Hast du auch den Arduino15 Ordner gelöscht? Denn da finden sich die Reste einer vorherigen Installation.
Hallo, nein, habe ich nicht gelöscht. Ich werde es sichern und den Test nachher wiederholen. Würde im Falle auch der Beschreibung widersprechen. Ich bin gespannt ...
Hier sind alle Standardpfade die angelegt werden. https://support.arduino.cc/hc/en-us/articles/360021325733-Uninstall-Arduino-IDE
Hallo, Arduino15 Ordner gesichert und umbenannt. .zip File nochmal frisch entpackt. So eine Scheiße. :-) :-) :-) Das Standard AVR Board Package ist wirklich in der IDE 2.x nicht dabei. Es wird sogar entgegen der Beschreibung frisch runtergeladen. Okay. Nachdem ich paar Leute zu unrecht angegangen bin und die große Fresse gehabt habe, entschuldige ich mich in aller Form dafür. Man oh man. Was für ein Tag. ;-) Entschuldigung!
:
Bearbeitet durch User
Hallo, ich muss euch sagen, es kommt noch besser, es verhält sich anders wie wir alle dachten. Wenn die "Simulation" Umgebung falsch ist, kommt man zu falschen Ergebnissen. Um eine frische IDE "Installation" zu simulieren, was für die eigentliche Frage entscheidend ist, muss man zusätzlich den Ordner
1 | C:\Users\xyz\AppData\Roaming\arduino-ide |
löschen. Also
1 | C:\Users\xyz\AppData\Local\Arduino15 |
und
1 | C:\Users\xyz\AppData\Roaming\arduino-ide |
Im letzteren wird in einer Konfigurationsdatei ein Flag gespeichert, was besagt, dass das AVR Board Package schon installiert wurde. Macht man das, wird nach Start der IDE automatisch das AVR Board Package runtergeladen und installiert.
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.