Ist der ATMEGA328PB-AU mit der arduino ide kompartibel/erfahrungen

Hallo ich werde mir eine verkleinerte version des pro mini bauen und habe nach dem atmega328p prozessor gesucht.
dabei bin ich bei lcsc.com auf einen noch günstigeren prozessor atmega328p, gestoßen welcher laut datenblatt viel mehr kann (mehr pins, mehr PWM usw.)

https://lcsc.com/product-detail/MICROCHIP_MICROCHIP_ATMEGA328PB-AU_ATMEGA328PB-AU_C132230.html

weis jemand ob ich diesen auch in meinem pro mini nutzen kann und ihn über einen ftdi adapter mit der arduino ide programieren kann ?

laut datenblatt bekomme ich für 35 ct weniger einen besseren prozessor

Gruß Roman

Da gab es von Elektor mal ein Board. Die haben auch eine Erweiterung für die IDE rausgebracht.
Habe aber keine Erfahrung damit.

Der ATMEGA328PB ist eigentlich keine "bessere Variante" eines ATMEGA328P (das ist der Mikrocontroller der z.B. im Arduino UNO, Nano oder MINI verbaut ist) sondern ich würde sagen, es ist einfach ein anderer Mikrocontroller (der zufällig einen sehr ähnlichen Namen hat).

Um ihn über die Arduino-IDE zu programmieren brauchst du die richtige "Core", zum Beispiel von hier:

Auch gibt es wohl im Boardmanager der Arduino-IDE eine Variante des 328PB.

Ich selbst habe mit dem 328PB noch nichts gemacht, kann zu diesem Controller deshalb also wenig sagen, habe aber schon mit anderen "Nicht-Standard-Arduino" Mikrocontroller gearbeitet.

Ganz allgemein braucht es in solchen Fällen meist ein wenig Einarbeitungszeit (vor allem ins oft durchaus umfangreiche Datenblatt).
"Einfache Dinge" wie Eingänge abfragen und Ausgänge auf HIGH oder LOW setzen, funktionieren wohl ohne größere Probleme, falls du aber Komplexeres vor hast und zum Beispiel verschiedene Libraries einbinden willst, gibt es dabei manchen Stolperstein, weil es vorkommt, dass eine Library nicht für diesen Mikrocontroller geeignet ist, weil Register andere Namen haben, Timer anders konfiguriert werden müssen, Interrupt-Pins an anderer Stelle sind, um nur einiges zu nennen.

Kann also durchaus spannend werden :slight_smile:
Erkenntnisgewinn ist also (fast) garantiert.

Ich habe vor kurzem Tests (Basic Sketchs) mit dem ATmega328PB auf einem Fertigboard gemacht. Den ersten Check mit Atmel Studio gemacht ob richtig erkannt wird - passte. Mit dem "MiniCore" ging dann auch das Flashen (ISP benutzt) einwandfrei.

@uxomm, @pimuc
Das hört sich gut an.
Wir werden demnächst unseren ersten Test mit den Atmega328PB mal starten.
Schaun wir mal, was dabei rauskommt und berichten.

watterott.com hat ein Board PRO MINI mit diesem Controller im Sortiment und gibt Unterlagen wie diesem in der Arduino IDE einzubinden und zu programmieren.
https://www.watterott.com/de/Wattuino-pro-mini-PB-5V-16MHz

Ich widerspreche uxomm aber. Meiner Meinung ist der ATmega328BP ein ATmega328P mit Erweiterungen: zweiten I2C Bus, zweiten SPI Bus, zweiten Serial, zwei 16 Bit Timer mehr, 4 PWM Kanäle mehr, Touch Hardware auf allen I/O Pins.
Es gibt aber keine 100% Arduino-spezifische Funktionen zur Ansteuerung der Erweiterungen.

Direkt kannst Du sie zusätzliche Hardware ohne Probleme ansteuern mußt aber wissen wies geht.

Ums klarzustellen: der Unterschied ist zwischen
digitalWrite(pin,HIGH)
und direkte Portmanipulation. via PORTx

Grüße Uwe

uxomm:
Der ATMEGA328PB ist eigentlich keine "bessere Variante" eines ATMEGA328P (das ist der Mikrocontroller der z.B. im Arduino UNO, Nano oder MINI verbaut ist) sondern ich würde sagen, es ist einfach ein anderer Mikrocontroller (der zufällig einen sehr ähnlichen Namen hat).

Das würde ich so nicht sagen. Ich behaupte schon das der 328PB ein leicht aufgebohrter 328P ist. Schon der Name/Bezeichnung sagt das er abgeleitet ist. Er hat von allen mehr Hardwareinheiten zu bieten. Der Umgang ist identisch. Hier und da noch paar kleine Features mehr. Aber das was der 328P hat, hat der PB mindestens auch. Da fehlt nichts im Vergleich. Schade nur das der RAM bei 2kB blieb.
Nicht verwechseln mit der neuen 3000er und 4000er ATmega Serie. Die sind wirklich anders.

Laut Erinnerung gabs letztens Probleme die watterott 328PB Erweiterung in die IDE zu verpflanzen. Beim überfliegen der MiniCore sieht das gut aus. Ich wünsche maximale Erfolge.

Meine Meinung bleib beim alten ATmega328P wenn Du über die Arduino IDE mit Arduino-Funktionen programmieren willst.
Grüße Uwe

Naja...scheint ja alles gut beschrieben zu sein....wir werden sehen.
Wird schon schief gehen.

uwefed:
Meine Meinung bleib beim alten ATmega328P wenn Du über die Arduino IDE mit Arduino-Funktionen programmieren willst.
Grüße Uwe

Uwe, man muss auch mal neue Dinge angehen.
Für mich ist eine 2. UART sehr reizvoll.

HotSystems:
Uwe, man muss auch mal neue Dinge angehen.
Für mich ist eine 2. UART sehr reizvoll.

Ja, zweifelsfrei.
Wenn ich es aber nicht brauche warum soll ich mir die Arbeit machen?
Wenn ich nur eine zweite serielle Schnittstelle brauche ( USB und serielle Schnittstelle) dann nehme ich einen Leornardo/MICRO.
Das ist aber von Fall zu Fall zu entscheiden.

Grüße Uwe

uwefed:
Ja, zweifelsfrei.
Wenn ich es aber nicht brauche warum soll ich mir die Arbeit machen?
Wenn ich nur eine zweite serielle Schnittstelle brauche ( USB und serielle Schnittstelle) dann nehme ich einen Leornardo/MICRO.
Das ist aber von Fall zu Fall zu entscheiden.

Grüße Uwe

Ja, stimmt soweit. Aber mit dem Micro kann ich mich nicht so recht anfreunden.
Und hier habe ich eine Herausforderung die mich reizt.

Das hängt aktuell an einer anderen Sache die gerade am werden ist.
Da kann der TO evtl. was zu sagen.

Ich habe mir diese Boards Pololu A-Star 328PB Micro 16Mhz 5V gekauft. Pololu gibt in seiner Beschreibung eine Erweiterung für die Arduino IDE mit, die aber bei mir nicht funktioniert hat. Zudem gilt bei dem Pololu-Board: Der ISP-Header ist seitenverkehrt verdrahtet. Pin 1 ist auf der Unterseite markiert. Hatte beim ersten Board diese Besonderheit nicht bemerkt. Hier gibt zudem ein Multimeter Sicherheit was die Pinbelegung betrifft.

Installation in der Arduino 1.8.8 (ohne Board-Manager): MiniCore Archiv runterladen, entpacken. Im "Arduino"-Ordner (Pfad der in den Voreinstellungen angegeben ist) ein neuen Ordner mit "hardware" anlegen, und dort hinein den MiniCore kopieren.

Der zweite Serialport ist für mich bei diesem Board entscheidend gewesen. Habe die Funktion noch nicht am Objekt getestet, aber Serial.begin und Serial1.begin werden fehlerfrei kompiliert.

@pimuc
Danke für deine Beschreibung.