Forum: Mikrocontroller und Digitale Elektronik Atmega328p mehr digital pins


von kuschner (Gast)


Lesenswert?

Hallo,

ich nutze gerne den Atmega328P für meine Projekte. nun benötige ich 
jedoch mind. 16 Digital Pins.

Was macht hier mehr Sinn:
eine I2C Erweiterung wie den MCP23017 nutzen oder auf einen Atmega2560 
z.B. gehen?

Vor allem geht es mir um den Platz auf dem PCB. Das sollte alles 
möglichst klein sein...

von Sebastian R. (sebastian_r569)


Lesenswert?

Kommt drauf an.


Beide Lösungen haben ihre Vor- und Nachteile und du musst wissen, was du 
brauchst. Wenn du einfach nur stumpfe, digitale IOs brauchst, ist nen 
MCP schon nicht verkehrt. Wenn du Sonderfunktionen brauchst oder es 
schnell gehen muss, größerer Controller. Der Preis ist natürlich auch 
unterschiedlich.

von Stefan F. (Gast)


Lesenswert?

Die Analogen Pins kannst du alle auch digital nutzen.

Ein größerer Mikrocontroller ist Kompakter als Mikrocontroller + 
Port-Expander. Zum Beispiel der ATmega644P.

von Veit D. (devil-elec)


Lesenswert?

Hallo,

du kannst auch was Modernes nehmen. Jeweils in 48 Pin Ausführung > 
ATmega4809 oder AVRxxDB48 (xx = 32/64/128). Den 'DB' gibts auch noch mit 
64 Pins. Zwei ICs benötigen mit allen drum und dran immer mehr Platz als 
ein etwas größerer. Der Klopper ATmega2560 ist von den Abmessungen schon 
ganz schön groß wenn die Hälfte der Pins dann ungenutzt bleiben würde. 
Kommt wie immer auf die Vorlieben an was aktuell einfacher ist.

: Bearbeitet durch User
von kuschner (Gast)


Lesenswert?

Hi,

Danke euch. Ich brauche keine weiteren Funktionen, sondern nur Digitale 
Ausgänge. Und davon mind. 16. Welche PCB wäre denn dann zu empfehlen? 
Möglichst klein :)

Ich möchte später mittels ArduinoIDE diesen genauso "programmieren" 
können wie den Atmega328P. Also einmal Bootloader Flashen und dann ganz 
normal das Sketch aufspielen

von kuschner (Gast)


Lesenswert?

Bzw. kann ich die AX Pins beim Atmega328P Feinfachgenauso nutzen wie die 
Digital Pins? also ich DigitalWrite()...

von Testi (Gast)


Lesenswert?

kuschner schrieb:
> Bzw. kann ich die AX Pins beim Atmega328P Feinfachgenauso nutzen
> wie die
> Digital Pins? also ich DigitalWrite()...

Ja

von kuschner (Gast)


Lesenswert?

Danke!

Dann bleibe ich beim Atmega328P.

Die 12 Digitalen und 4 Analogen reichen mir genau :)

von Axel R. (axlr)


Angehängte Dateien:

Lesenswert?

edit. kurzes "ja" hätte hier gereicht, stimmt...


kuschner schrieb:
> Bzw. kann ich die AX Pins beim Atmega328P Feinfachgenauso nutzen wie die
> Digital Pins? also ich DigitalWrite()...

https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf

Ja sicher, traust Du dich nicht, ins datenblatt zu sehen?
Ob der Arduion das mit digitalwreit macht? probiers doch mal aus. oder 
schau bei wiring.c im Quellcode nach.

: Bearbeitet durch User
von Peter D. (peda)


Lesenswert?

kuschner schrieb:
> nun benötige ich
> jedoch mind. 16 Digital Pins.

Erzähl mal, was sonst noch.

Es sind 23 IOs verfügbar.
Will man Reset (für ISP) und Quarz, bleiben noch 20 IOs.
Die Pins für ISP oder Bootloader (UART) darf man in der Applikation 
anderweitig benutzen.

von M. K. (sylaina)


Lesenswert?

kuschner schrieb:
> ich nutze gerne den Atmega328P für meine Projekte. nun benötige ich
> jedoch mind. 16 Digital Pins.

Öhm, Atmega328P hat doch 22 I/Os (23 wenn man den Reset-Pin mit nimmt), 
wenn du nur 16 brauchst: Wo genau hängt es dann bei dir? Check ich grade 
nicht.

: Bearbeitet durch User
von Sozialarbeiter (Gast)


Lesenswert?

M. K. schrieb:
> Atmega328P hat doch 22 I/Os

Nicht wenn man Arduidiot ist und nur den Uno vor sich liegen hat.

von summit (Gast)


Lesenswert?

Axel R. schrieb:
> Ob der Arduion das mit digitalwreit macht? probiers doch mal aus. oder

Holla.

von Veit D. (devil-elec)


Lesenswert?

Peter D. schrieb:
> Es sind 23 IOs verfügbar.
> Will man Reset (für ISP) und Quarz, bleiben noch 20 IOs.
> Die Pins für ISP oder Bootloader (UART) darf man in der Applikation
> anderweitig benutzen.

Dann sollte man auch dazu sagen, dass man die Pins 0/1 an der die UART 
zum flashen hängt und die fast immer für serielle Ausgaben genutzt wird, 
nicht durch die eigene äußere Beschaltung beeinflusst werden sollte. 
Ansonsten funktioniert gar nichts mehr. Im dümmsten Fall bis zum 
zerflashten Controller. Zumindestens während des flashens sollte da 
nichts angeschlossen sein, wenn man auf Nummer sicher gehen möchte. Nur 
wer denkt immer daran?

Ich würde auch niemals den Resetpin zum I/O Pin machen. Der Weg zurück 
ist viel zu aufwändig.

: Bearbeitet durch User
von Sebastian W. (wangnick)


Lesenswert?

kuschner schrieb:
> Dann bleibe ich beim Atmega328P.
> Die 12 Digitalen und 4 Analogen reichen mir genau :)

FYI, der Atmega328PB ist gleich gross, hat 4 digitale Ausgänge mehr als 
der Atmega328P, und wird auch von the Arduino-Umgebung unterstützt 
(https://github.com/watterott/ATmega328PB-Testing).

LG, Sebastian

von Joachim B. (jar)


Lesenswert?

kuschner schrieb:
> Was macht hier mehr Sinn:
> eine I2C Erweiterung wie den MCP23017 nutzen oder auf einen Atmega2560
> z.B. gehen?

bei Erweiterung finde ich PCF8574(a) besser
größerer ATmega, kommt drauf an flash oder SRAM?
Der m1284p hat doppelt so viel SRAM gegenüber den m2560 aber nur halben 
flash

Sebastian R. schrieb:
> Wenn du Sonderfunktionen brauchst oder es
> schnell gehen muss, größerer Controller

Stefan ⛄ F. schrieb:
> Die Analogen Pins kannst du alle auch digital nutzen.

warum klappt das dann bei A6 & A7 nicht digital beim m328p?
https://www.avrfreaks.net/sites/default/files/nano_0.png
Soviel zu ALLE

: Bearbeitet durch User
von Andreas B. (bitverdreher)


Lesenswert?

Veit D. schrieb:
> Ich würde auch niemals den Resetpin zum I/O Pin machen. Der Weg zurück
> ist viel zu aufwändig.
Reset einfach fest auf 12V. Hat bei mir immer (allerdings tiny10) 
funktioniert.

Joachim B. schrieb:
> warum klappt das dann bei A6 & A7 nicht digital beim m328p?
Weil der Mega328p keinen Port A besitzt.

von Joachim B. (jar)


Lesenswert?

Andreas B. schrieb:
> Joachim B. schrieb:
>> warum klappt das dann bei A6 & A7 nicht digital beim m328p?
> Weil der Mega328p keinen Port A besitzt.

Arduino Sprech, sind die only Analogports 6 und 7 die eben nicht als 
digital Pins konfiguriert werden können im 32pin SO
Beitrag "Re: Atmega328P-AU ADC6 & 7 als Digital Pin"

https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf
finde ich hier nicht ist aber bekannt

von Georg M. (g_m)


Lesenswert?

Joachim B. schrieb:
> finde ich hier nicht

Weiter scrollen, auf Seite 3.

von Arno (Gast)


Lesenswert?

Im Datenblatt heißen die Pins ADC6 und ADC7. In der verlinkten PDF auf 
Seite 3. Die 28-Pin-Version des Controllers hat die gar nicht.

Die sind tatsächlich die Ausnahme von der Regel. Schon seit 
ATMega8-Zeiten: 
https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-2486-8-bit-AVR-microcontroller-ATmega8_L_summary.pdf

Nebenbei bemerkt: Das oben verlinkte ist das Datenblatt der 
Automotive-Version des 328P. Aus irgendeinem Grund spucken die 
Suchmaschinen das bevorzugt aus, ich empfehle aber, die Version des 
Datenblatts zu verwenden, die zum verwendeten Controller passt: 
https://ww1.microchip.com/downloads/en/DeviceDoc/ATmega48A-PA-88A-PA-168A-PA-328-P-DS-DS40002061B.pdf 
(auch wenn das bei diesem Thema keinen Unterschied macht)

MfG, Arno

von Veit D. (devil-elec)


Lesenswert?

Hallo,

die analogen Pins A0-A5 werden als Digital Pin einfach von 14-19 
weitergezählt. Die Nummern sind dafür hinterlegt.

von Stefan F. (Gast)


Lesenswert?

Joachim B. schrieb:
> warum klappt das dann bei A6 & A7 nicht digital beim m328p?
> Soviel zu ALLE

Ja, diese beiden sind eine Ausnahme

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.