Programmierinformationen zum Atmega2560

Auslesen des Atmega2560 mit dem mySmartUSBMK3:
avrdude -p m2560 -c stk500v2 -P /dev/ttyUSB0 -v
avrdude -p m2560 -c stk500v2 -P /dev/ttyUSB0 -U flash:r:flash.hex:i
avrdude -p m2560 -c stk500v2 -P /dev/ttyUSB0 -U eeprom:r:eeprom.hex:i
Statt flash oder eeprom, geht auch noch lfuse, hfuse, efuse und signature.

Fuse-Bits: (Zusammenfassung und Beispiele)
efuse: unterste 3 Bits ist BODLEVEL (Schwelle fuer Brown-out Detector), auf 0xFF lassen.

hfuse         OCDEN  JTAGEN SPIEN WDTON EESAVE BOOTSZ1/SZ0 BOOTRST
  default:      1       0     0     1     1        0   0     1       = 0x99
  normal:       1       1     0     1     1        1   0     1       = 0xDD
  Bootloader:   1       1     0     1     1        1   0     0       = 0xDC
lfuse        CKDIV8  CKOUT  SUT1  SUT0  CKSEL3 CKSEL2 CKSEL1 CKSEL0
  default:      0       1     1     0     0      0      1      0     = 0x62
  fuer Quarz:   1       1     1     1     1      1      1      1     = 0xFF
  full Swing:   1       1     1     1     0      1      1      1     = 0xF7
Bedeutung der Fuses:
Setzen der Fuses: avrdude -p m2650 -c stk500v2 -P /dev/ttyUSB0 -U lfuse:w:0xFF:m
Weitere Informationen zu den AVR_Fuses auf mikrocontroller.net

Speicherbelegung:
Der Atmega2560 hat 256KB Flash, 4KB EEPROM und 8KB RAM.
Beim Ausschalten bleiben die Daten im Flash und EEPROM erhalten, Daten im RAM gehen verloren.
Programmbereich: Word-weise organisiert (16-Bit Worte)
0x00000: Application-Flash
0x1F000: Start Boot-Flash (wenn BOOTSZ auf 00 ist)
0x1FFFF: letztes Word im Boot-Flash

RAM-Bereich: Byte-weise organisiert
0000: r0
0001: r1
...
001F: r31
0020: IO-Bereich
005F: letztes Byte im normalen IO-Bereich
0060: erweiterter IO-Bereich
0200: SRAM
21FF: letztes Byte

EEPROM-Bereich: Byte-weise organisiert
0000:
0FFF:

Der Flash ist in 128 Words-Bloecke (Page-Size) unterteilt.
Das heisst es können nur jeweils 128 Words = 256 Bytes aufs mal gelöscht werden.
Im EEPROM ist die Page-Size 8 Bytes.


Timer des Atmega2560

Timer0, Timer2: 8-Bit-TimerCounter

Diese Timer sind ähnlich wie Timer0 beim Atmega8 oder beim Tiny13a.
Ein wichtiger Unterschied: statt TIMSK heisst es jetzt TIMSK0, und entsprechend für den Timer2 TIMSK2.

Timer1, Timer3, Timer4, Timer5: 16-Bit

Der Timer1 ist fast gleich wie beim Atmega32 und beim Atmega8.
Bis auf ein paar kleine Unterschiede:

Letzte Änderung: 3.Okt.2012 / Rolf                                                                                 Validator