Forum: Mikrocontroller und Digitale Elektronik ARDUINO ATMEGA328PB Bord erste Erfahrungen


von Gerhard O. (gerhard_)


Lesenswert?

Heute erhielt ich ein paar neue PRO-Minis auf Basis des ATMEGA328PB. Ich 
konnte nicht umhin, mich baldigst danit zu befassen. Hier ist ein kurzer 
Lagebericht für diejenigen die es interessiert:

Zweck der Übung war, das IDE anzupassen und alles für mich Wichtige 
durchzutesten.

Es gab anfänglich Probleme mit der IDE Installation weil man alles erst 
anpassen muß. Der deutsche Hersteller der Bords hat auch alle dazu 
nötigen Dateien bei Github beigelegt.

Kurz und gut, ich konnte ohne Probleme ein größeres älteres Programm von 
mir ohne Änderungen kompilieren und via Bootloader auf die Bord laden. 
Ich hatte interessanterweise ein Problem mit dem RTS Anschluß des FTDI 
USB Kabels wegen der grenzwertigen 3.3V IO Einstellung des USB Adapters. 
Der Reset für den BL funktioniert nicht zuverläßig. Als vorläufige 
Abhilfe dient ein 10K nach Masse am RESET Eingang. Interessanterweise 
stört sich ein normaler 328P nicht daran. Naja, 3.3V IO ist eben 
grenzwertig in einem 5V System.

Ich archivierte auch den BL, Fuses und löschte und ladete den Bootloader 
neu mit Armel Studio V7 und AVR ISP Mk2. So kann ich dann später die 
gebauen Chipeinstellungen bei neuen, nackten ICs nachvollziehen.

Wenn ich dann später mehr Zeit habe, werde ich das zweite USART, TWI und 
die zweite SPI Schnittstellen überprüfen. Beim 1284P funktionierte das 
zweite USART einwandfrei. Deshalb hoffe ich, daß es hier auch keine 
Überraschungen geben wird.

Schlafmodus und Watchdog müssen noch verifiziert werden.

Soweit, so gut!

Mfg,
Gerhard

: Bearbeitet durch User
von ChrisMicro (Gast)


Lesenswert?

>Es gab anfänglich Probleme mit der IDE Installation weil man alles erst
>anpassen muß. Der deutsche Hersteller der Bords hat auch alle dazu
>nötigen Dateien bei Github beigelegt.

Hallo Gerhard,

wieso hast Du die IDE von Github installiert, die gibt es doch hier zum 
fertig herunterladen:

https://www.arduino.cc/en/main/software

von Gerhard O. (gerhard_)


Lesenswert?

ChrisMicro schrieb:
>>Es gab anfänglich Probleme mit der IDE Installation weil man
> alles erst
>>anpassen muß. Der deutsche Hersteller der Bords hat auch alle dazu
>>nötigen Dateien bei Github beigelegt.
>
> Hallo Gerhard,
>
> wieso hast Du die IDE von Github installiert, die gibt es doch hier zum
> fertig herunterladen:
>
> https://www.arduino.cc/en/main/software

Hallo Chris,

Mache ich anfänglich. die neueste V1.81 funktionierte leider nicht. Es 
gab kompilier Probleme. Die Tinys funktionierten. Mit dem 328PB war 
nichts zu machen. Dann installierte ich noch nebenbei V1.6.10 und machte 
alle notwendigen Anpassungen. Damit ging es dann. Trau, schau, wem!

Welche Erfahrungen machtest Du?

Edit: ich lud nur die Hersteller Dateien herunter. Die IDE ist von 
Arduino direkt.

: Bearbeitet durch User
von Wilhelm M. (wimalopaan)


Lesenswert?

Also ich benutze den 328pb schon seit einiger Zeit (kein Arduino). Es 
ist einfach ein idealer uC für kleinere Projekte. Vor allem wegen der 
vielen Timer und den gedoppelten Schnittstellen. Wenn ich einen Wunsch 
hätte, würde ich ihn mir 16k RAM wünschen ...

Beim avr-gcc musste ich nur die ioxxx.h einbauen. In simavr kann man 
auch einfach die zusätzlichen HW-Ressourcen hinzufügen.

Lediglich schwingt bei mir ein 20MHz-Quarz nicht (zuverlässig) an (seht 
ja auch so im DB). Deswegen nehme ich jetzt die CFPS-Oszillatoren. Damit 
geht er auch mit 24MHz. 32MHz mag er nicht mehr.

von ChrisMicro (Gast)


Lesenswert?

>Welche Erfahrungen machtest Du?

Hmm .. also ich habe verschiedene Versionen der IDEs installiert.

Wenn ich AtmelStudio 7 verwende, importiere ich normalerweise ein leeres 
Sketch und fülle es dann langsam mit dem eigenen Code und füge die 
zusätzlichen Files hinzu.

Den Atmel ICE habe ich nicht angebunden. Vor einiger Zeit hatte in 
Freund Probleme damit, einen AVR-Dragon für einen Arduino zu verwenden, 
weil es dieses Problem mit der Reset-Leitung gibt.
Ich wollte mir auf die Schnelle den Aufwand sparen herauszufinden, wie 
ich das Problem mit der Anbindung des Programmmer/Debuggers löse und 
habe deshalb in "Tools" einen Aufruf für AVR-Dude eingefügt um den 
Arduino über den Bootloader zu programmieren, muss dafür aber auf das 
Debuggen verzichten ( good old printf debugging ).

Eine Hauptfehlerquelle beim Erstellen eines Atmel-Studio-Projekts war 
bei mir jetzt mehrere Male, dass ich keine der Einstellungen beim 
Anlegen des Projekts vergesse oder falsch mache.
Unglücklicherweise ist per Default immer ein Arduino-Yun eingestellt und 
wenn man vergisst, das beim Anlegen umzustellen geht nachher gar nichts. 
Das könnte dazu führen, dass man denkt, es liege an der Arduino-IDE.

Wenn aber alles richtig ist, geht es ohne Probleme. Atmel Studio 
compiliert auch schneller als die Arduino-IDE. Insgesamt ist der 
Entwicklungsprozess damit deutlich schneller.

Für sehr kleine Programme und erste Test verwende ich oft die 
Arduino-IDE direkt, weil mir das Anlegen eines Projekts mit Atmel-Studio 
zu lange geht. Kann aber sein, dass mein "Workflow" bei der Verwendung 
von Atmel-Studio noch zu umständlich ist.

Arduino IDE V1.8.0 funktioniert bei mir gut mit Atmel-Studio 7.0.1188

von Tany (Gast)


Lesenswert?

Ich benutze 3 Programme:
- Arduino zu Flaschen
- Notepad++ zum Programmieren
- Atmel Studio7 zum Debugen bei Bedarf.

von Manfred (Gast)


Lesenswert?

Gerhard O. schrieb:
> Heute erhielt ich ein paar neue PRO-Minis auf Basis des ATMEGA328PB. Ich
> konnte nicht umhin, mich baldigst danit zu befassen.
Die ProMini sind nett, man kann Strom sparen, weil der nicht vorhandene 
USB nicht ständig versorgt werden muß. Komfortabler ist der Nano.

Ich habe mir ProMinis letztes Jahr vom Chinesen bestellt, dazu 
USB-TTL-Adapter mit CH340.

> Zweck der Übung war, das IDE anzupassen und alles für mich Wichtige
> durchzutesten.
Bei mir gab es nichts anzupassen: Adapter dran und aus der IDE heraus 
als Nano angesprochen - passt und funktioniert. Ein Manko der 
CH340-Adapter ist, dass diese den Reset nicht auf die Stiftleiste 
führen, ich also zum flashen manuell reset drücke. Habe ich geändert und 
den DTR manuell angelötet.

Doof bis gefährlich ist, dass die Betriebsspannungen des ProMini und des 
Downloadadapters direkt verbunden sind, da muß man aufpassen. Sobald die 
Platinchen da sind, werde ich hier eine galvanische Trennung aufbauen - 
Aliexpress suche ADuM1201.

> Schlafmodus und Watchdog müssen noch verifiziert werden.
Hatte ich neulich hier an anderer Stelle beschrieben, Schlafmodus mit 
Timer geht problemlos. LED und Spannungsregler runter, bekommt man bei 
5V mit 16MHz Quarz dran um die 7µA.

von Einer K. (Gast)


Lesenswert?

Manfred schrieb:
> Bei mir gab es nichts anzupassen

ATMEGA328PB != ATMEGA328P

von Manfred (Gast)


Lesenswert?

Arduino F. schrieb:
> ATMEGA328PB != ATMEGA328P

http://www.atmel.com/Images/Atmel-42559-Differences-between-ATmega328P-and-ATmega328PB_ApplicationNote_AT15007.pdf
sagt dazu:

" .. However, the functions are backward compatible with the existing 
ATmega328 functions. Existing code for these devices will work in the 
new devices without changing existing configuration or enabling new 
functions. The code that is available for your existing ATmega328 
variants will continue to work on the new ATmega328PB device."

Welche Vorteile bringt es, diesen in der Arduinoumgebung einzusetzen?

von Gerhard O. (gerhard_)


Lesenswert?

Wilhelm M. schrieb:
> mir 16k RAM wünschen ...

Ich interpretiere das als ein (noch) nicht existierender 1284PB;-)
Das ist mein liebster AVR.

: Bearbeitet durch User
von Gerhard O. (gerhard_)


Lesenswert?

Manfred schrieb:
> Arduino F. schrieb:
>> ATMEGA328PB != ATMEGA328P
>
> http://www.atmel.com/Images/Atmel-42559-Difference...
> sagt dazu:
>
> " .. However, the functions are backward compatible with the existing
> ATmega328 functions. Existing code for these devices will work in the
> new devices without changing existing configuration or enabling new
> functions. The code that is available for your existing ATmega328
> variants will continue to work on the new ATmega328PB device."
>
> Welche Vorteile bringt es, diesen in der Arduinoumgebung einzusetzen?

Für einige meiner Projekte sind zwei USARTS notwendig. Da ist aber ein 
644 oder 1284 Overkill. Deshalb fand ich die PB Version des 328 
ansprechend.

Das mit der backwards compatibility stimmt, mein altes Programm 
funktionierte auf dem 328PB einwandfrei.

: Bearbeitet durch User
von Gerhard O. (gerhard_)


Lesenswert?

Tany schrieb:
> Ich benutze 3 Programme:
> - Arduino zu Flaschen
> - Notepad++ zum Programmieren
> - Atmel Studio7 zum Debugen bei Bedarf.

Habe ich auch schon ähnlich gemacht. Bei mir wars Textpad.

von Gerhard O. (gerhard_)


Lesenswert?

ChrisMicro schrieb:
>>Welche Erfahrungen machtest Du?
>
> Hmm .. also ich habe verschiedene Versionen der IDEs installiert.
>
> Wenn ich AtmelStudio 7 verwende, importiere ich normalerweise ein leeres
> Sketch und fülle es dann langsam mit dem eigenen Code und füge die
> zusätzlichen Files hinzu.

Das hört sich interessant an. Müßte ich mal ausprobieren.
>
> Den Atmel ICE habe ich nicht angebunden. Vor einiger Zeit hatte in
> Freund Probleme damit, einen AVR-Dragon für einen Arduino zu verwenden,
> weil es dieses Problem mit der Reset-Leitung gibt.
Ähnlich wie bei meinem 3.3V RTS Problem?
> Ich wollte mir auf die Schnelle den Aufwand sparen herauszufinden, wie
> ich das Problem mit der Anbindung des Programmmer/Debuggers löse und
> habe deshalb in "Tools" einen Aufruf für AVR-Dude eingefügt um den
> Arduino über den Bootloader zu programmieren, muss dafür aber auf das
> Debuggen verzichten ( good old printf debugging ).
Ja. Das geht. Habe ich auch schon gemacht.
>
> Eine Hauptfehlerquelle beim Erstellen eines Atmel-Studio-Projekts war
> bei mir jetzt mehrere Male, dass ich keine der Einstellungen beim
> Anlegen des Projekts vergesse oder falsch mache.
> Unglücklicherweise ist per Default immer ein Arduino-Yun eingestellt und
> wenn man vergisst, das beim Anlegen umzustellen geht nachher gar nichts.
> Das könnte dazu führen, dass man denkt, es liege an der Arduino-IDE.
>
> Wenn aber alles richtig ist, geht es ohne Probleme. Atmel Studio
> compiliert auch schneller als die Arduino-IDE. Insgesamt ist der
> Entwicklungsprozess damit deutlich schneller.
Mit CodevisionAVR geht Entwicklung auch recht gut. Allerdings finde ich 
Arduino für kleine Projekte für die Schnelle auch sehr praktisch.
>
> Für sehr kleine Programme und erste Test verwende ich oft die
> Arduino-IDE direkt, weil mir das Anlegen eines Projekts mit Atmel-Studio
> zu lange geht. Kann aber sein, dass mein "Workflow" bei der Verwendung
> von Atmel-Studio noch zu umständlich ist.
A.S hat m.M.n. ein sehr "müdes" Verhalten. Irgendwie bringt dieses 
Program auch leistungsfähige PCs in die Knieh.
>
> Arduino IDE V1.8.0 funktioniert bei mir gut mit Atmel-Studio 7.0.1188
Das müßte ich erst mal ausprobieren.

In der Firma ziehten wir mal ein internes Labor Programm auf 2560 Basis 
und Arduino IDE durch. Zum Teil wurde das A.IDE verwendet. Es machte 
kein Problem in üblicher Weise mit vielen Source Files (.cpp,h) zu 
arbeiten. Es besteht kein Grund alles in eine einzige .ino zu stecken. 
Man kann so viel leichter wiederverwendbare Programme erstellen.

von Manfred (Gast)


Lesenswert?

Tany schrieb:
> Ich benutze 3 Programme:
> - Arduino zu Flaschen
> - Notepad++ zum Programmieren
> - Atmel Studio7 zum Debugen bei Bedarf.
Die Erweiterung, mit der NP++ auch die Arduino-Syntax kennt, habe ich 
erst vor 14 Tagen erfolgreich einbinden können, im Gegensatz zu der IDE 
ist der Editor vernünftig benutzbar.

An Atmel Studio habe ich mich noch herangetraut, mal abwarten.

Gerhard O. schrieb:
>> Welche Vorteile bringt es, diesen in der Arduinoumgebung einzusetzen?
> Für einige meiner Projekte sind zwei USARTS notwendig. Da ist aber ein
> 644 oder 1284 Overkill. Deshalb fand ich die PB Version des 328
> ansprechend.
Danke für die Erklärung, das 'PB' hatte ich überlesen.

von Gerhard O. (gerhard_)


Lesenswert?

Manfred schrieb:
> Tany schrieb:
>> Ich benutze 3 Programme:
>> - Arduino zu Flaschen
>> - Notepad++ zum Programmieren
>> - Atmel Studio7 zum Debugen bei Bedarf.
> Die Erweiterung, mit der NP++ auch die Arduino-Syntax kennt, habe ich
> erst vor 14 Tagen erfolgreich einbinden können, im Gegensatz zu der IDE
> ist der Editor vernünftig benutzbar.
Ich habe mich über die Jahre an Textpad gewöhnt. Die Syntax Dateien kann 
man leicht selber anpassen und editieren. Ausserdem hat TP schon die 
meisten Syntax Dateien für die meisten Sprachen. Was ich bei TP angenehm 
finde, ist die leichte Konfigurierung für die Compilerwerkzeuge. Da 
hatte ich mit NP++ früher mal mehr Probleme. NP++ müßte ich mal wieder 
ausprobieren. Ein Kollege benutzt es ständig in der Firma.
>
> An Atmel Studio habe ich mich noch herangetraut, mal abwarten.
Ich finde es w.g. sehr "sluggish" (müdes Verhalten); oft brauchen 
Dialoge relativ lange. Hat aber auch seine Vorzüge. Zum Flashen und Fuse 
einstellen ist es natürlich auch sehr nützlich.
>
> Gerhard O. schrieb:
>>> Welche Vorteile bringt es, diesen in der Arduinoumgebung einzusetzen?
>> Für einige meiner Projekte sind zwei USARTS notwendig. Da ist aber ein
>> 644 oder 1284 Overkill. Deshalb fand ich die PB Version des 328
>> ansprechend.
> Danke für die Erklärung, das 'PB' hatte ich überlesen.
Wenn Atmel auf mich hören würde, wünsche ich mir zu Weihnachten einen 
1284PB;-)

: Bearbeitet durch User
von ChrisMicro (Gast)


Lesenswert?

Gerhard O.
>> Für sehr kleine Programme und erste Test verwende ich oft die
>> Arduino-IDE direkt, weil mir das Anlegen eines Projekts mit Atmel-Studio
>> zu lange geht. Kann aber sein, dass mein "Workflow" bei der Verwendung
>> von Atmel-Studio noch zu umständlich ist.
>A.S hat m.M.n. ein sehr "müdes" Verhalten. Irgendwie bringt dieses
>Program auch leistungsfähige PCs in die Knieh.

Das Problem mit dem "müden Verhalten" von Atmel-Studio hatte ich auch. 
Auf meinem alten Laptop lief das so gut wie gar nicht. Da ich es dann 
beruflich nutzen musste, habe ich aufgerüstet: CoreI7 HQ, 16GB Ram + SSD
Damit läuft dann Atmel-Studio flüssig. Ärgerlich, dass diese Investition 
notwendig war, aber die Nerven schont das deutlich.

von Richard B. (r71)


Lesenswert?

Gerhard O. schrieb:
> Als vorläufige Abhilfe dient ein 10K nach Masse am RESET Eingang.

Was für ein Board ist das?

Solche Probleme kenne ich eigentlich nicht.

von Gerhard O. (gerhard_)


Lesenswert?

Richard B. schrieb:
> Gerhard O. schrieb:
>> Als vorläufige Abhilfe dient ein 10K nach Masse am RESET Eingang.
>
> Was für ein Board ist das?
>
> Solche Probleme kenne ich eigentlich nicht.

Watterott Pro-Mini PB.

Das Problem ist sicherlich nicht die Board. Mein Ftdi USB kabel hat 
leider nur 3.3 Logik Signale und die sind halt für eine 5V uC Versorgung 
etwas grenzwertig. Erschwerend kommt noch die Art der Reset Steuerung 
mittels der RTS Leitung dazu. Ich bin sicher, dass ich mit einem 5v 
Logik Adapter keine Probleme hätte. Dass mir bis jetzt normale Pro-Minis 
aus China keine Probleme machten ist purer Zufall.

: Bearbeitet durch User
von Andreas W. (andreasw) Benutzerseite


Lesenswert?

Das mit dem Reset haben wir ebenfalls festgestellt. Der Reseteingang des 
328P und 328PB verhält sich unterschiedlich.
Mit unserem FTDI-Breakout [1] auf FT231X Basis (5V Versorgung, 3,3V 
Pegel) funktioniert der automatische Reset beim 328PB nur sporadisch und 
beim 328P immer.
Bei unserem neuen CP2102N-Breakout [2] haben wir daher auch Pegelwandler 
eingebaut.

[1] https://github.com/watterott/FTDI-Breakout
[2] https://github.com/watterott/CP2102N-Breakout

: Bearbeitet durch User
von Olaf B. (Firma: OBUP) (obrecht)


Lesenswert?

Gerhard O. schrieb:
> ch habe mich über die Jahre an Textpad

Ich benutze - beruflich wie privat - Sublime Text für die 
Programmierung. Benutze eine heterogene Umgebung - Linux & WinDoof, 
deshalb die meisten IDEs & Editoren nicht verwendbar.

> Wenn Atmel auf mich hören würde, wünsche ich mir zu Weihnachten einen
> 1284PB

Unterstütze Deinen Wunsch. Schreiben wir doch an den Weihnachtsmann/CEO

> Atmel Studio7 zum Debugen bei Bedarf

Geht unter Linux nicht ;-((

> - Arduino zu flashen

ST3 Plugin & avrdude

mfg

Olaf

P.S.: benötige auch noch ein paar Mins/Nanos. Vorrat erschöpft ;-))

von Gerhard O. (gerhard_)


Lesenswert?

Andreas W. schrieb:
> Das mit dem Reset haben wir ebenfalls festgestellt. Der
> Reseteingang des
> 328P und 328PB verhält sich unterschiedlich.
> Mit unserem FTDI-Breakout [1] auf FT231X Basis (5V Versorgung, 3,3V
> Pegel) funktioniert der automatische Reset beim 328PB nur sporadisch und
> beim 328P immer.
> Bei unserem neuen CP2102N-Breakout [2] haben wir daher auch Pegelwandler
> eingebaut.
>
> [1] https://github.com/watterott/FTDI-Breakout
> [2] https://github.com/watterott/CP2102N-Breakout

Hallo Andreas,

Danke für die Hinweise. Bin also damit nicht alleine.

Ich behalf mich gestern mit einem 10 KOhm von RESET auf Masse. Damit 
funktioniert der 3.3V FTDI Adapter 100% zuverläßig. Bis ich das besser 
gelöst habe, ist das mir im Augenblick gut genug. Bin ja froh, daß alles 
zufriedenstellend funktioniert.

Grüße,
Gerhard

von Gerhard O. (gerhard_)


Lesenswert?

Andreas W. schrieb:
> Das mit dem Reset haben wir ebenfalls festgestellt. Der Reseteingang des
> 328P und 328PB verhält sich unterschiedlich.
> Mit unserem FTDI-Breakout [1] auf FT231X Basis (5V Versorgung, 3,3V
> Pegel) funktioniert der automatische Reset beim 328PB nur sporadisch und
> beim 328P immer.
> Bei unserem neuen CP2102N-Breakout [2] haben wir daher auch Pegelwandler
> eingebaut.

Die Reset Threshold Spannung beim ATMEGA328P ist bei 5V Vdd = etwas mehr 
als 2.1V. Beim 328P reicht es noch einigermaßen.

Beim 328PB sind es nur rund 1.55V. Der 3.3V DTR Pulse kann also die 
Spannung am RESET Pin bestenfalls auf rund 1.7V herunter ziehen und der 
328PB kann deshalb nichts dafür wenn er dann nicht darauf reagiert.

Im Laboraufbau konnte ich mit einem vorübergehend angeschlossenen 20K am 
RESET Pin nach Masse keine Probleme mehr feststellen. Das legt die 
Spannung am RESET Pin auf rund 3.3V fest. Programmieren mittels 
Bootlader ist damit jetzt 100% zuverlässig. Trotzdem ist es nicht 
permanent zu empfehlen weil natürlich über den Spannungsteiler andauernd 
etwas Strom fließt.

Allerdings erspart das den vorgeschlagenen Pegelwandler.

von Andreas W. (andreasw) Benutzerseite


Lesenswert?

Das ist ja doch ein ziemlich großer Unterschied der Schwellenwerte.
Irgendwie war mir das im Datenblatt noch gar nicht aufgefallen.
Ich habe es bei unserem "ATmega328PB" Projekt auf GitHub mit 
hinzugefügt.

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
Noch kein Account? Hier anmelden.