-         
Ergebnis 1 bis 10 von 10

Thema: MEGA, wie viel digitale IO Pins sind verfügbar?

  1. #1
    Benutzer Stammmitglied Avatar von spunky9003
    Registriert seit
    14.09.2014
    Beiträge
    36

    Frage MEGA, wie viel digitale IO Pins sind verfügbar?

    Anzeige

    der MEGA hat ja 54 digitale IO Pins, davon sind viele doppelt belegt, sind die trotzdem alle nutzbar? Ich bräuchte 48 bis 50 Eingänge und 2 für ein Bluetooth Modul. Man kann ja auch die analog Pins nutzen, dann müsste das ja reichen.


  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von i_make_it
    Registriert seit
    29.07.2008
    Ort
    Raum DA
    Alter
    50
    Beiträge
    2.816
    Es kommt darauf an was Du für anforderungen an die Digital IO's stellst.
    Mit I2C Portexpandern kannst Du Dir eine richtig große Menge an Digital IO's zulegen.
    Im Gegemsatz zu den internen, wären die aber nicht IRQ (pin change interrupt) fähig.
    https://playground.arduino.cc/Code/I2CPortExpander8574

    Solange Du die "Spezialfunktionen" nicht benötigst und auch keine Libraries verwendest, die Pins einer Spezialfunktion zuordnen, kannst Du alle 69 digital IO's nutzen.
    Näheres steht wie so oft im Datenblatt (ATMega 2560).
    http://ww1.microchip.com/downloads/e..._datasheet.pdf

    Wenn man die Ports nutzt (geht mit Arduino IDE auch) stehen µC seitig sogar alle Ports zur Verfügung
    (Port A-L, wobei Port G nur 6 Pins hat)
    Also 86 Digital IOs (von denen aber halt nur 69 rausgeführt sind).
    Geändert von i_make_it (11.05.2018 um 12:21 Uhr)

  3. #3
    Erfahrener Benutzer Robotik Einstein Avatar von wkrug
    Registriert seit
    17.08.2006
    Ort
    Dietfurt
    Beiträge
    1.947
    Im Prinzip sind alle I/O Pins nutzbar.
    Allerdings gibt es bei den ISP Pins die Einschränkung, das diese nur hochohmig ( > 4,7k ) mit Peripherie verbunden sein dürfen, sonst geht ISP nicht mehr.
    Der Reset Pin sollte auch nicht als I/O genutzt werden, solange man über ISP proggen will.
    Der Quarz braucht weitere 2 Pins.
    Richtige "Analog Pins" gibt es eigentlich hier nicht.
    Die Pins können nur als Eingang für den A/D Converter benutzt werden, sind aber ansonsten normale I/O Pins.
    Die JTAG Schnittstelle braucht wiederum ein paar Pins, wenn man sie nutzen will.

    Weitere Einschränkungen gibt es seitens des Boards.
    Die USB Bridge wird schon mal 2 Pins brauchen ( Bootloader ! ), die nur schwierig anderweitig nutzbar sind.

    Also gewünschte Funktionen anschauen und den Schaltplan des Boards dazu nehmen.
    Erst dann kann man sagen wie viele und welche I/O Pins nutzbar sind.

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    09.10.2014
    Beiträge
    3.042
    Zitat Zitat von wkrug Beitrag anzeigen
    Im Prinzip sind alle I/O Pins nutzbar.
    Allerdings gibt es bei den ISP Pins die Einschränkung, das diese nur hochohmig ( > 4,7k ) mit Peripherie verbunden sein dürfen, sonst geht ISP nicht mehr.
    Der Reset Pin sollte auch nicht als I/O genutzt werden, solange man über ISP proggen will.
    Der Quarz braucht weitere 2 Pins.
    Richtige "Analog Pins" gibt es eigentlich hier nicht.
    Die Pins können nur als Eingang für den A/D Converter benutzt werden, sind aber ansonsten normale I/O Pins.
    Die JTAG Schnittstelle braucht wiederum ein paar Pins, wenn man sie nutzen will.

    Weitere Einschränkungen gibt es seitens des Boards.
    Die USB Bridge wird schon mal 2 Pins brauchen ( Bootloader ! ), die nur schwierig anderweitig nutzbar sind.

    Also gewünschte Funktionen anschauen und den Schaltplan des Boards dazu nehmen.
    Erst dann kann man sagen wie viele und welche I/O Pins nutzbar sind.
    @wkrug: Deine Aussage zum Quarz verstehe ich nicht, wo sollen welche Pins für den Quartz zuständig sein?

    zu Interrupts:
    https://www.arduino.cc/reference/en/...tachinterrupt/


    USB läuft wie sonst auch über die UART pins 0+1, wie sonst auch bei Arduinos, die lassen sich aber auch wie GPIOs programmieren,
    pins 2-13 (=12) sind digitale GPIOs, ebenfalls wie üblich,
    pins 14-21 sind Serial1-3 und i2c,
    pins 22-50 (29) sind wieder digitale GPIOs,
    pins 51-53 sind für SPI,
    die analogen ADC-Input-Pins A0-A15 (16) lassen sich auch als digitale Inputs verwenden.
    pins 51-53 sind für SPI.
    15 der GPIOs sind pwm-fähig,
    6 der GPIOs sind (überlappend) auch für IRQs.
    Die U(S)ARTs 14-19 lassen sich auch als normale GPIOs verwenden, ebenso die Wire (i2c)-Pins 20+21, und im Prinzip aber wie erwähnt auch UART pins 0+1.
    Die ICSP-Schnittstelle ist mit den SPI-Pins verbunden.

    Ohne also spezielle serielle Funktionen (Serial, Wire) zu benötigen oder zu stören, hast du 12+29 = 41 digitale pins, mit Serial1-3 weitere 6 = 47, und mit SPI-Pins weitere 4 =51.
    Und dann kommen die 16 analogen ADCs noch oben drauf.
    Ansonsten kannst du wie oen erwähnt auch über I2C oder SPI port-Multiplexer anschließen wie den PCF8574 (8 dig. pins, plus 1 IRQ pin) oder den MCP23017 (16 dig. pins plus 2 IRQ pins).

    Ich denke, das könnte für deine Zwecke also in jedem Falle dicke reichen.
    ·±≠≡≈³αγελΔΣΩ∞ Schachroboter:www.youtube.com/watch?v=Cv-yzuebC7E Rasenmäher-Robot:www.youtube.com/watch?v=z7mqnaU_9A8

  5. #5
    Erfahrener Benutzer Robotik Einstein Avatar von wkrug
    Registriert seit
    17.08.2006
    Ort
    Dietfurt
    Beiträge
    1.947
    Ok Ok.
    Beim ATMEGA 2560 lassen sich die Quarz Pins nicht umkonfigurieren = Pin 33 und 34.
    Ebenso ist auch der Reset Pin nicht umkonfigurierbar = Pin 30.
    Bei vielen anderen Controllern geht das aber - In diesem Fall hier hast Du HaWe natürlich recht.

    Das mit den ISP Pins ist leider so.
    Wenn man dort z.B. eine LED mit Vorwiderstand einbaut, streiken einige Programmer wie z.B. der AVR ISP MKII.
    Ebenso dürfen da während des Programmierens keine externen Potentiale anliegen.
    Das lässt sich natürlich einfach lösen, wenn man während der Programmierung das Shield abzieht und sämtliche Beschaltung nur auf dem Shield macht.

    Ich kenn nun das Board nicht, aber Ich vermute, das die USB Bridge mit dem USART 0 verbunden ist und somit auf dem RxD Pin des Controllers bereits ein Potential anliegt.

    Ausserdem muß man natürlich gucken, ob alle beschaltbaren Pins auch auf die Anschlussleisten des Board geführt sind und ob auf dem Board bereits eine Beschaltung vorliegt - Deshalb auch der Hinweis mit dem Schaltplan.

  6. #6
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    09.10.2014
    Beiträge
    3.042
    als langjähriger Mega2560-Nutzer muss ich sagen, dass es sich prinzipiell alles wie beim Nano verhält, außer dass I2C nicht mehr über analog 4+5 läuft sondern 20+21, und für USB gibt es hier wie da einen Extra-AVR zwischen UART (pins 0+1, soweit ich weiß kein USART) und USB - alles ganz Arduino-typisch. Der Reset-Pin ist gesondert herausgeführt (neben den analogen ADC), digital GPIO 30 auf der querliegenden Doppel-Pinleiste ist wie jeder andere "normale" GPIO nutzbar. Programmer wird ein Arduinianer auch nicht benutzen, dafür wird ja USB benutzt, also alles ganz entspannt.
    ·±≠≡≈³αγελΔΣΩ∞ Schachroboter:www.youtube.com/watch?v=Cv-yzuebC7E Rasenmäher-Robot:www.youtube.com/watch?v=z7mqnaU_9A8

  7. #7
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    09.10.2014
    Beiträge
    3.042
    Zitat Zitat von wkrug Beitrag anzeigen
    Ok Ok.
    Beim ATMEGA 2560 lassen sich die Quarz Pins nicht umkonfigurieren = Pin 33 und 34.
    Ebenso ist auch der Reset Pin nicht umkonfigurierbar = Pin 30.
    Bei vielen anderen Controllern geht das aber - In diesem Fall hier hast Du HaWe natürlich recht.

    Das mit den ISP Pins ist leider so.
    Wenn man dort z.B. eine LED mit Vorwiderstand einbaut, streiken einige Programmer wie z.B. der AVR ISP MKII.
    Ebenso dürfen da während des Programmierens keine externen Potentiale anliegen.
    Das lässt sich natürlich einfach lösen, wenn man während der Programmierung das Shield abzieht und sämtliche Beschaltung nur auf dem Shield macht.

    Ich kenn nun das Board nicht, aber Ich vermute, das die USB Bridge mit dem USART 0 verbunden ist und somit auf dem RxD Pin des Controllers bereits ein Potential anliegt.

    Ausserdem muß man natürlich gucken, ob alle beschaltbaren Pins auch auf die Anschlussleisten des Board geführt sind und ob auf dem Board bereits eine Beschaltung vorliegt - Deshalb auch der Hinweis mit dem Schaltplan.
    hier an diesem pinout kann man erkennen, dass die AVR-Nr.30 für Reset nichts mit dem Arduino GPIO digital pin 30 zu tun hat, sondern stattdessen der gesonderte Resetpin neben A0 die "interne" AVR-Nr.30 trägt.
    Auch kann man erkennen, dass die AVR-Nr. 33+34 überhaupt nicht auf die Arduino-GPIO-Leisten herausgeführt wurden:

    Klicke auf die Grafik für eine größere Ansicht

Name:	Arduino-Mega-pinout.jpg
Hits:	10
Größe:	148,0 KB
ID:	33453

    PS,
    Die GPIO pins digital 33 und 34 tragen hingegen die internen AVR-Nr.57+56
    Geändert von HaWe (13.05.2018 um 14:14 Uhr)
    ·±≠≡≈³αγελΔΣΩ∞ Schachroboter:www.youtube.com/watch?v=Cv-yzuebC7E Rasenmäher-Robot:www.youtube.com/watch?v=z7mqnaU_9A8

  8. #8
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.10.2008
    Ort
    Sandfurth
    Beiträge
    1.095
    ISP-Pins grundsätzlich als Ausgänge nutzen, welche hochohmige
    Schaltkreiseingänge ansteuert. Zum Beispiel Anzeigetreiber oder
    Anzeigedecoder, dann hat man gleich eine optische Grobkontrolle
    des Flashvorganges durch Flackern.
    Sollten Eingänge von Schaltstufen dort angeschlossen sein, muss
    jedoch extern sichergestellt werden, dass nicht irgendwelche
    Motoren, Magnetve etc undefiniert losspuken.
    VG Micha
    Was brauche ich für Werkzeug - in dieser Reihenfolge seht ihr es:
    Vorschlaghammer, Notebook, BASCOM, Lötequipment, Rohrzange, Bolzenschneider ...

  9. #9
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    09.10.2014
    Beiträge
    3.042
    Zitat Zitat von hardware.bas Beitrag anzeigen
    ISP-Pins grundsätzlich als Ausgänge nutzen, welche hochohmige
    Schaltkreiseingänge ansteuert. Zum Beispiel Anzeigetreiber oder
    Anzeigedecoder, dann hat man gleich eine optische Grobkontrolle
    des Flashvorganges durch Flackern.
    Sollten Eingänge von Schaltstufen dort angeschlossen sein, muss
    jedoch extern sichergestellt werden, dass nicht irgendwelche
    Motoren, Magnetve etc undefiniert losspuken.
    VG Micha
    Die Verwendung der Pins 50-52 als "normale" IOs halte ich sowieso grundsätzlich für schlecht, wenn man auch SPI nutzen will (TFT, SD), denn die ICSP Pins sind wie gesagt mit den Hardware-SPI Pins auf dem GPIO Header (50 MISO, 51 MOSI, 52 SCK) verbunden.
    Flashen wird aber sowieso kein Arduino-Normal-Nutzer über ICSP, man verwendet dazu üblicherweise USB und den Upload per Arduino-IDE.
    ·±≠≡≈³αγελΔΣΩ∞ Schachroboter:www.youtube.com/watch?v=Cv-yzuebC7E Rasenmäher-Robot:www.youtube.com/watch?v=z7mqnaU_9A8

  10. #10
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.10.2008
    Ort
    Sandfurth
    Beiträge
    1.095
    Ist ja auch nur notwendig, wenns eng mit der PIN-Anzahl wird.
    Als SMD-Muffel hab ich das Problem öfter.
    VG Micha
    Was brauche ich für Werkzeug - in dieser Reihenfolge seht ihr es:
    Vorschlaghammer, Notebook, BASCOM, Lötequipment, Rohrzange, Bolzenschneider ...

Ähnliche Themen

  1. Antworten: 3
    Letzter Beitrag: 19.06.2018, 08:39
  2. Welche Bibliotheken sind verfügbar?
    Von HAWK-Matze im Forum Asuro
    Antworten: 15
    Letzter Beitrag: 17.02.2008, 14:58
  3. zu viel für Mega 32?
    Von Baby2b im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 12
    Letzter Beitrag: 05.11.2006, 16:13
  4. Wie viel zykeln sind das ?
    Von NumberFive im Forum C - Programmierung (GCC u.a.)
    Antworten: 5
    Letzter Beitrag: 23.10.2004, 17:42
  5. *I2C* maximale eingänge per i2c auf 8 digitale Pins
    Von Christian Sturm im Forum Elektronik
    Antworten: 9
    Letzter Beitrag: 22.06.2004, 19:44

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •