Forum: Mikrocontroller und Digitale Elektronik ATmega328P mit mehr Pins


von Michael R. (Firma: Brainit GmbH) (fisa)


Lesenswert?

Hallo Leute,

seit einigen Jahren setze ich in meinen Hobby-projekten sehr erfolgreich 
(ausschließlich) den ATmega328P ein, mit dem kenn ich mich mittlerweile 
einigermaßen aus, und habe dieses "Ökosystem" gut im Griff.

Jetzt brauch ich ausnahmsweise mal etwas mehr Pins; müsste also von der 
8-er Reihe auf die 4er gehen, richtig?

Im ersten Moment wollte ich zum ATmega324 greifen, aber da gibts ja noch 
"größere", zB ATmetga1284

Da es von den Kosten her ziemlich egal ist, spricht was dagegen, da 
gleich den größten zu nehmen (und gleich mal 10 Stück auf Halde zu 
legen). Oder gibts da irgendwelche Fallen, in die ich tappsen könnte?

(zB nicht unterstützte Chip-Id im avrdude, ich hatte sowas, als ich 
versehentlich mal ATmega328 (ohne P) bestellt hatte...)

Danke, Michi

von Thomas K. (Firma: Draht_Igel) (magnoval)


Lesenswert?

Ich hatte mir für diesen Fall einige 2560 besorgt, und von China für ein 
paar Cents solche kleinen TQFP 44 - 100 Adapter-Platinen. Der 2560 hat 
genug Pins, Speicher, und läuft auch mit 20Mhz, selbst wenn er mit 16 
angegeben ist.
Ob AvrDude den unterstützt musst Du sehen, ich arbeite nicht mit 
AvrDude.

von Joachim B. (jar)


Angehängte Dateien:

Lesenswert?

ich nutze gerne 328p und 1284p und wechsel auch zwischen den beiden, 
dazu habe ich mir Header angelegt die einfach im Source passend die 
Funktionen austauschen

von Holger L. (max5v)


Lesenswert?

Michael R. schrieb:
> Jetzt brauch ich ausnahmsweise mal etwas mehr Pins;

Wenn du den IC-Typ nicht unbedingt wechseln magst, wären Schieberegister 
\ Portexpander evtl. noch eine Option.

von Christoph db1uq K. (christoph_kessler)


Lesenswert?

Ein Kriterium wäre die Verfügbarkeit als Arduino-Board, da wäre der 2560 
im Arduino Mega zu nennen
https://store.arduino.cc/arduino-mega-2560-rev3

Ein anderes Kriterium ist die Möglichkeit, großes externes SRAM 
anzuschließen, das können nur wenige der AVR-Reihe.

http://www.microchip.com/ParamChartSearch/chart.aspx?branchID=30047
leider listet diese Vergleichstablle diese Möglichkeit nicht.

: Bearbeitet durch User
von Michael R. (Firma: Brainit GmbH) (fisa)


Lesenswert?

Danke euch!

2560 ist mir fast schon wieder zu groß.

Portexpander ist natürlich eine Option, guter Hinweis! Aber vielleicht 
mag ich sowieso mal was anderes löten...

Arduino-Board ist (für mich) kein Kriterium (nicht falsch verstehen, ich 
hab nix gegen Arduino, hat mir am Anfang sehr geholfen, aber ich bin 
schon 2 level aufgestiegen ;-)

externes SRAM? Hmmm.... hätte ich noch nie gebraucht.

Ich glaub ich werd mich einfach mal am 1284 versuchen...

von Christoph db1uq K. (christoph_kessler)


Lesenswert?

http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-2549-8-bit-AVR-Microcontroller-ATmega640-1280-1281-2560-2561_datasheet.pdf
Im 2560/2561 gibt es diese Möglichkeit "XMEM" (extended memory) 
einzuschalten. Ich habe das schon als 32k Grafikspeicher für ein LCD 
benutzt, damals mit dem alten 90S8515, später hieß der Nachfolger 
Atmega8515.

von Thomas B. (Gast)


Lesenswert?

Michael R. schrieb:
> Ich glaub ich werd mich einfach mal am 1284 versuchen...

Sicher eine gute Wahl.
Für einen Prototypen kann der ATmega1284 gut auf eine Lochrasterplatine 
oder eine Permaproto von Adafruit gelötet werden, da nicht viele externe 
Komponenten nötig sind.


Michael R. schrieb:
> Arduino-Board ist (für mich) kein Kriterium (nicht falsch verstehen, ich
> hab nix gegen Arduino, hat mir am Anfang sehr geholfen, aber ich bin
> schon 2 level aufgestiegen ;-)
Und was heisst für dich 2 Level aufgestiegen?

von Oliver S. (oliverso)


Lesenswert?

Michael R. schrieb:
> 2560 ist mir fast schon wieder zu groß.

Was stört sich an „zu groß“?

Oliver

von Michael R. (Firma: Brainit GmbH) (fisa)


Lesenswert?

Oliver S. schrieb:
> Was stört sich an „zu groß“?

Ich löte lieber 44 Pins statt 100 ;-) Die I/O Leitungen der 4er Reihe 
sind momentan mehr als ausreichend.

Thomas B. schrieb:
> Und was heisst für dich 2 Level aufgestiegen?

Erster Aufstieg:  Platinen selbst designen, ätzen und bestücken
Zweiter Aufstieg: Umstieg von THT auf SMD, also AVR in TQFP statt DIL

Da ich immer auch etwas Peripherie rundherum habe, mach ich mir lieber 
gleich eine "richtige" Platine, damit sind die ganzen Arduino-Boards 
(von denen ich immer noch einige rumliegen habe) nicht mehr wirklich 
nötig.

: Bearbeitet durch User
von Thomas B. (Gast)


Lesenswert?

Michael R. schrieb:
> Ich löte lieber 44 Pins statt 100 ;-)
Der ATmega1284P-AU im TQFP-Gehäuse ist auch von Hand mit einer feinen 
Lötspitze noch gut lötbar.


Michael R. schrieb:
> Erster Aufstieg:  Platinen selbst designen, ätzen und bestücken
> Zweiter Aufstieg: Umstieg von THT auf SMD, also AVR in TQFP statt DIL

Alle klar :-)

Michael R. schrieb:
> ...mach ich mir lieber gleich eine "richtige" Platine
Auf jeden Fall ein guter Ansatz.
Wenn du alle Pins des 1284 auf Stiftleisten führst, hast du ein 
universelles Board für zukünftige Anwendungen.

von Oliver S. (oliverso)


Lesenswert?

Thomas B. schrieb:
> Wenn du alle Pins des 1284 auf Stiftleisten führst, hast du ein
> universelles Board für zukünftige Anwendungen.

Dann kann man aber auch gleich einen Arduino Mega nehmen.

Oliver

von Thomas B. (Gast)


Lesenswert?

Oliver S. schrieb:
> Dann kann man aber auch gleich einen Arduino Mega nehmen.

Arduino Mega verwendet etinen ATmega2560 mit 100 Pins.

Michael R. schrieb:
> Ich löte lieber 44 Pins statt 100 ;-) Die I/O Leitungen der 4er Reihe
> sind momentan mehr als ausreichend.

Michael lötet lieber 44 statt 100 Pins :-)


Michael R. schrieb:
> Da ich immer auch etwas Peripherie rundherum habe, mach ich mir lieber
> gleich eine "richtige" Platine

und ist damit auch flexibel bei der Form und Grösse der Leiterplatte.

von S. Landolt (Gast)


Lesenswert?

Und wie immer der Hinweis, dass der ATmega1284P über 16 KiB RAM verfügt.

von Joachim B. (jar)


Lesenswert?

S. Landolt schrieb:
> dass der ATmega1284P über 16 KiB RAM verfügt.

und damit doppelt so viel wichtiges SRAM wie der m2560!

von Arne (Gast)


Lesenswert?

In DIP:
* wie schon erwaehnt ATmega1284 als groesster Controller mit ADC (und 
AFAIK der einzige mit mehr als 4k RAM).
* ATmega162 ohne ADC, aber mit 3 zusaetzlichen I/Os (insgesamt 35). Wenn 
8k Flash und 512B RAM reichen, geht auch der ATmega8515 (die 
DIP-Versionen sind pinkompatibel).

von Thomas E. (thomase)


Lesenswert?

Thomas K. schrieb:
> Der 2560...läuft auch mit 20Mhz, selbst wenn er mit 16 angegeben ist.

Das hat du natürlich ausgiebig getestet und kannst es für alle 
Funktionen garantieren?

von Stefan F. (Gast)


Lesenswert?

Wenn du mit der Arduino IDE programmierst, fällt Dir warscheinlich ein 
Wechsel auf STM32F103 Boards leicht. Diese µC Serie ist sehr 
preisgünstig.

Der STM32F103C8T6 ist ein bisschen größer als der ATmega328:
https://de.aliexpress.com/item/Free-Shipping-STM32F103C8T6-ARM-STM32-Minimum-System-Development-Board-Module-Forarduino/32502726562.html

Wenn das zu wenig ist, käme als nächstes der STM32F103RBT6 in Frage:
https://de.aliexpress.com/item/STM32F103RBT6-ARM-STM32-Minimum-System-Development-Board-Module-For-arduino-Minimum-System-Board-STM32F103C8T6-upgrade-version/32821993698.html

Oder noch größer, der STM32F103VET6:
https://de.aliexpress.com/item/STM32-development-board-STM32-STM32F103VET6-minimum-system-board-core-board-cortex-M3/32830281663.html

Es gibt noch weitere Größen von diesem Chip. Das schöne ist: Sie werden 
alle gleich programmiert.

Die Arduino Erweiterung dazu heisst "STM32Duino". Wiki: 
http://wiki.stm32duino.com/index.php?title=Main_Page

Falls du nicht mit Arduino programmierst, ist dieser Hinweis natürlich 
unpassend.

von Joachim B. (jar)


Lesenswert?

Stefan U. schrieb:
> Wenn du mit der Arduino IDE programmierst, fällt Dir warscheinlich ein
> Wechsel auf STM32F103 Boards leicht. Diese µC Serie ist sehr
> preisgünstig.

aber nur 3,3V? damit ist viel Zubehör für 5V doch nicht nutzbar?

von Stefan F. (Gast)


Lesenswert?

Die STM32F103 haben viele 5V tolerante Pins und viele 5V Chips 
akzeptieren auch 3,3V bereits als gültigen High Pegel. Die 
Spannungswandler auf den oben genannten Boards kann man mit 5V füttern.

Auf einige Nucleo Boards von STM kann sogar Arduino Shields direkt 
aufstecken.

von Stefan F. (Gast)


Lesenswert?

> Arduino ...
> aber ich bin schon 2 level aufgestiegen ;-)

Oh entschuldige, das habe ich ganz überlesen. Ich hätte was für Level 3 
:-)
http://stefanfrings.de/stm32/index.html

von c-hater (Gast)


Angehängte Dateien:

Lesenswert?

Thomas B. schrieb:

> Auf jeden Fall ein guter Ansatz.
> Wenn du alle Pins des 1284 auf Stiftleisten führst, hast du ein
> universelles Board für zukünftige Anwendungen.

Hähä.

Da es den 1284P auch in DIL gibt, kann man ein Entwicklungsboard 
problemlos auf Streifenleiter selbst basteln. Ich entwickle seit 
etlichen Jahren nahezu alles für AVR8 auf eben so einem 
selbstgebastelten Board. Und nur dann, wenn spezielle Schnittstellen 
gebraucht werden, steckt da kein 1284P drauf, sondern eine 
Adapterplatine auf DIL40 mit einem (kleineren AVR8), der eben die gerade 
benötigten Schnittstellen hat.

Was diese Konstruktion über die Jahre schon an Entwicklungszeit und 
Prototypen-Kosten gespart hat, mag ich kaum zusammenrechnen...

Da dieses Board rein privat entstanden ist (obwohl mehrere Kopien davon 
seit langem auch in der Firma benutzt werden), kann ich, welch seltenes 
Glück, auch mal was davon zeigen. Siehe Anhänge.

Das angestöpselte Debugboard zeigt nur, wie man an das Evalboard Sachen 
ankoppelt. Aber ja, ich gebe es zu: Natürlich war die erste Anwendung, 
die damals darauf lief, ein Knightrider-Lauflicht. ;o)

Inzwischen dient das Debugboard aber wirklich nur noch als solches. Ich 
schwöre!

von Stefan F. (Gast)


Angehängte Dateien:

Lesenswert?

> Natürlich war die erste Anwendung,
> die damals darauf lief, ein Knightrider-Lauflicht.

Was für ein Zufall, guck mal was ich gerade auf dem Kopf habe.
(Das ist eine Anregung für einen Workshop mit Kindern)

von Joachim B. (jar)


Lesenswert?

Thomas B. schrieb:
> Wenn du alle Pins des 1284 auf Stiftleisten führst, hast du ein
> universelles Board für zukünftige Anwendungen.

es gibt (gab) den m1284p als Arduino Nachbau etwas größer als nano

https://github.com/JChristensen/mini1284

die ersten 5 musste ich selber löten mit Platinen von OSH Park
Dann konnte man einige Fertigmodule aus USA über ebay kaufen

nun gibts leider keine mehr

von M. K. (sylaina)


Lesenswert?

Michael R. schrieb:
> Da es von den Kosten her ziemlich egal ist, spricht was dagegen, da
> gleich den größten zu nehmen (und gleich mal 10 Stück auf Halde zu
> legen). Oder gibts da irgendwelche Fallen, in die ich tappsen könnte?

Welche "Fallen" sollte es denn da geben? Bei Microchip gibt es eine 
parametrische Suche, hier: 
https://www.microchip.com/paramChartSearch/chart.aspx?branchID=30047, da 
kannst du aussuchen, was du alles im Controller haben willst und 
bekommst nur die Controller angezeigt, die deinen Vorgaben entsprechen. 
Vielleicht hilft dir das. Spontan kam mir bei deiner Frage z.B. der 
Atmega644 in den Sinn, also der kleine Atmega1284 ;)

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.