"Arduino kompatibler" MC für 2025

OP #7881220
Lesenswert?

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?

#7881252
Lesenswert?

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

Gast #7881261
Lesenswert?

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.

#7881277
Lesenswert?

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.

#7881291
Lesenswert?

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.

#7881297
Lesenswert?

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?

OP #7881299
Lesenswert?

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.

OP #7881321
Lesenswert?

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.

#7881408
Lesenswert?

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.

Angehängte Dateien:
OP #7881502
Lesenswert?

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.

Angehängte Dateien:
#7881507
Lesenswert?

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

#7881845
Lesenswert?

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.

Angehängte Dateien:
#7881849
Lesenswert?

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.

#7882065
Lesenswert?

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.

(Firma: Gast) #7882092
Lesenswert?

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.

Gast #7882247
Lesenswert?

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.

#7882259
Lesenswert?

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)
#7882284
Lesenswert?

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
#7882317
Lesenswert?

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.

#7882357
Lesenswert?

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.

#7882402
Lesenswert?

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. ;-)

#7882489
Lesenswert?

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.

#7882531
Lesenswert?

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.

#7882682
Lesenswert?

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...

#7882685
Lesenswert?

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.

#7882692
Lesenswert?

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.

(Firma: Gast) #7882698
Lesenswert?

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

#7882713
Lesenswert?

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...

#7882910
Lesenswert?

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.

#7882916
Lesenswert?

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

#7883018
Lesenswert?

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

#7883043
Lesenswert?

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.

#7883123
Lesenswert?

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.

#7883428
Lesenswert?

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.

Angehängte Dateien:
Gast #7883439
Lesenswert?

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, ...).

#7883450
Lesenswert?

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.

#7883468
Lesenswert?

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 von einem Moderator gelöscht.
Beitrag #7883479 wurde von einem Moderator gelöscht.
#7883480
Lesenswert?

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
#7883499
Lesenswert?

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!

Angehängte Dateien:
#7884989
Lesenswert?

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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren