pin-Belegungstabelle Mega 2560?

HaWe:

  • aber wird dann timer 3 nicht nur teilweise lahmgelegt, so dass dann sowieso auch pin2 frei wäre?

Frei für was? Diese Sonderfunktionen sind völlig unabhängig von der Funktion als digitale I/Os.

Du solltest dir vielleicht mal grob anschauen wie die Timer generell funktionieren. PWM ist etwas komplexer, aber vereinfacht gesagt, zählt ein Zähler hoch und wird ständig mit einem Wert in einem Vergleichsregister (Output Compare Match Register) verglichen. Wenn der Wert gleich ist wird automatisch ein Ausgang umgeschaltet. In dem man den Wert im Vergleichsregister ändert beeinflusst man den Schaltzeitpunkt. Timer0 und Timer2 haben zwei dieser Vergleichsregister (und somit 2 Ausgangspins). Timer 1 und 3-5 haben jeweils drei Vergleichsregister (oder genau genommen 3 mal 2, da es 16 Bit Timer sind) . Und das schalten der Pins geschieht völlig automatisch ohne dass ein Interrupt den Code unterbricht.

Man kann also auf einem Timer unabhängig voneinander zwei bis drei unterschiedliche PWM Werte einstellen. Und wenn ein Pin PWM macht, dann kann man den den anderen immer noch als normale I/O verwenden.

Wo es da eben zu Konflikten kommt ist wenn eine andere Lib einen bestimmten Timer verwendet um z.B. Software Serial Timing zu machen oder Servos zu steuern. Da hilft ein Blick in die Lib um zu sehen was die verwenden. Bei manchen kann man auch einfach umschalten (z.B. IrRemote)

pins frei für pwm-Motoren ntl, ich brauche jede Menge davon, aber immer hängt sich da so ein blöder timer mit rein!!

eigtl brauche allermindestens 6 oder besser noch 8- 10 pwm-pins. Timer will ich aber auch keine verschenken, gerade wegen aller möglichen libs.

Wenn dir keine anderen Libs reinpfuschen hast du 12 PWM Pins. Wenn du z.B. Timer1 durch den Encoder belegst hast du immer noch 10

Es gibt aber auch externe PWM Controller: http://www.exp-tech.de/Shields/Adafruit-16-Channel-12-bit-PWM-Servo-Driver-I2C-interface-PCA9685.html https://learn.adafruit.com/16-channel-pwm-servo-driver 16 Kanäle, 12 Bit, I2C Interface

Oder als Shield: http://www.ebay.de/itm/Adafruit-Compatible-16-Channel-12-bit-PWM-Servo-shield-I2C-interface-PCA9685-/310954190548?pt=LH_DefaultDomain_0&hash=item48665066d4

nee, ich habe ja meinen Arduino Mega extra für mehr interne pwm-Controller gekauft, und die will ich jetzt auch effektiv nutzen.

Also zurück zur Ausgangsfrage:

pins 44-46 ist klar, die nehme ich als erstes. Und dann?

Nachdem du/ihr euch ja am besten mit den gängigen libs auskennt: welche libs verwenden am häufigsten welche Timer? Servos oder Schrittmotoren-libs z.B. brauche ich nicht, ich verwende ausschließlich meine eigenen Encodermotoren - für die ich die pwms brauche.

Ergänzung: was noch dran soll: ein Grafik-Display (SPI-Bus), plus evtl ein USB-Master-Shield.

Wie schon gesagt, am häufigsten werden von Libs Timer1 und Timer2 verwendet, da die auch auf dem Atmega328 existieren und man dann einfach programmieren kann ohne im Code zwei verschiedene Prozessoren berücksichtigen zu müssen. Timer2 wird vor allem gerne verwendet, da er mehr Prescaler Optionen als die 16 Bit Timer hat. Deshalb hat man mit Timer3 bis Timer5 erst mal potentiell am wenigsten Konflikte.

Mit PWM auf Timer0 bis du auch auf der sicheren Seite, da darauf der millis() Zähler läuft und der somit nie von anderen Libs verwendet wird. millis() und PWM gehen dabei gleichzeitig.

wieso Timer 5? die gehen doch nur bis 4...?

timer 0 -> 13, 4 timer 1 -> 12, 11 timer 2 -> 10, 9 timer 3 -> 5, 3, 2 timer 4 -> 8, 7, 6

Mhh, fällt mir erst jetzt auf dass der in der Tabelle gar nicht aufgeführt ist. :o Der ist in der Arduino IDE aber implementiert: http://arduino.cc/en/Reference/AnalogWrite

On the Arduino Mega, it works on pins 2 - 13 and 44 - 46

44-46 ist Timer5. Den hattest du ja selbst erwähnt:

pins 44-46 ist klar, die nehme ich als erstes.

Dann stimmt das oben mit 10-12 Pins nicht :) Die drei Pins hatte ich da nicht mitgezählt :o

aaaa-ha! :)

dann hab ich also schon Timer 5 ausgebremst (3 pwms) dann nehme ich Timer 0 dazu (+2 pwms) und dann noch Timer 4 (+3 pwms) Summe= 8

das geht dann ja 8)

mille grazie! :)

Hi, this is the new version: http://pighixxx.com/megapdf.pdf and the processor: http://pighixxx.com/atmega2560v3_0.pdf

That's kinda ugly and hard to read. I'll stick with the old version.

Hallo, Serenifly, nun hab´Dich mal nicht so... Das ist mehr als man erwarten. Da steckt viel Herzblut drin. Ich sage mal Danke schön. Gruß und Spaß Andreas

Von mir gibt es Dank für die vorherige Version. Die ist wirklich schön praktisch :slight_smile:

danke auch für den guten Willen, aber gut lesbar ist es leider nicht.

Eine einfache Tabelle mit pin-Nummer und dann nacheinander Spaltenweise Einträgen über Zusatzfunktionen wäre leichter lesbar als die grafische Aufbereitung mit unsortiereten bunten Kürzeln. Da geht zuviel Information in den Mini-Icons unter. (my2ct)

Hallo,

die alte Version ist wirklich besser lesbar. Muß man ja mal sagen dürfen.

@ pighixxx: I think also, the old version is better readable. Really. ;)

Tanks for the feedback, The tips are always useful.
These versions contain more information (ie power ports) but I’m also working on light versions.

For those who want here all the pinouts and related changelogs:

BOARDS
Updated 06/08/2014

2009
Version 3.0
http://pighixxx.com/2009pdf.pdf

Uno
Version 3.0
http://pighixxx.com/unov3pdf.pdf

Mega
Version 3.1
http://pighixxx.com/megapdf.pdf
Updated 3.1 04/08/2014

  • Added IDE correspondence
  • Bug Fixes

Leonardo
Version 3.0
http://pighixxx.com/leonardopdf.pdf

Yun
Version 3.0
http://pighixxx.com/yunpdf.pdf

Pro Mini
Version 3.0
http://pighixxx.com/prominiv3_0.pdf

Pro
Version 1.0
http://pighixxx.com/propdf.pdf

Nano
Version 3.0
http://pighixxx.com/nanopdf.pdf

Mini
Version 3.0
http://pighixxx.com/minipdf.pdf

Micro
Version 3.0
http://pighixxx.com/micropdf.pdf

Esplora
Version 3.0
http://pighixxx.com/esplorapdf.pdf

Ethernet
Version 1.0
http://pighixxx.com/ethernetpdf.pdf

Fio
Version 1.0
http://pighixxx.com/fiopdf.pdf

Lilypad
Version 1.0
http://pighixxx.com/lilypadbase.pdf

Lilypad simple
Version 3.0
http://pighixxx.com/lilypadsimple.pdf

Lilypad simplesnap
Version 1.0
http://pighixxx.com/lilypadsimplesnap.pdf

Lilypad USB
Version 1.0
http://pighixxx.com/lilypadusb.pdf

MPUs
Updated 02/08/2014

ATMEGA328
Version 3.0
http://pighixxx.com/atmega328v3_0.pdf

ATMEGA328mlf
Version 3.0
http://pighixxx.com/atmega382mlfv3_0.pdf

ATMEGA2560
Version 3.0
http://pighixxx.com/atmega2560v3_0.pdf

ATMEGA32U4
Version 3.0
http://pighixxx.com/atmega32u4pdf.pdf

ATTINY
Version 3.0
http://pighixxx.com/attinypdfv3_0.pdf

ATMEGA1284
Version 3.0
http://pighixxx.com/ATMEGA1284PDFV3_0.PDF

MISCELLANEOUS
Updated 02/08/2014

555 Tribute
Version 3.0
http://pighixxx.com/ne555pdf.pdf

741 Tribute
Version 3.0
http://www.pighixxx.com/741pdf.pdf

Have a nice day!

Thank you pighixxx!

Hallo,

Thank you pighixxx! You are doing a good job for us. :)

Thanks. There were many times when I looked for those diagrams on Google image search, but the picture host was still down and most others were low resolution and barely readable. :)

vllt hat doch irgend jemand eine (wie es im TOP heißt: ) pin-Belegungs_tabelle_ ? ;)