Перейти к содержанию

Регистры ATmega2560

ATmega2560 управляется 157 регистрами ввода-вывода: 55 из них лежат в области ввода-вывода (адреса 0x20–0x5F, команды IN и OUT), остальные — в расширенной области (LDS и STS). Ниже — все регистры по адресам и страницы блоков с описанием каждого бита и конструктором значения.

Данные: описание ATmega2560 из пакета Microchip ATmega_DFP 3.6.299 (Apache-2.0), сверено со сводкой регистров даташита 2549Q.

Блоки

Все регистры по адресам

АдресРегистрНазначениеБиты 7…0После сброса
0x20 (I/O 0x00)PINAВходы порта APINA7 PINA6 PINA5 PINA4 PINA3 PINA2 PINA1 PINA0—
0x21 (I/O 0x01)DDRAНаправление выводов порта ADDA7 DDA6 DDA5 DDA4 DDA3 DDA2 DDA1 DDA00x00
0x22 (I/O 0x02)PORTAВыходы и подтяжки порта APORTA7 PORTA6 PORTA5 PORTA4 PORTA3 PORTA2 PORTA1 PORTA00x00
0x23 (I/O 0x03)PINBВходы порта BPINB7 PINB6 PINB5 PINB4 PINB3 PINB2 PINB1 PINB0—
0x24 (I/O 0x04)DDRBНаправление выводов порта BDDB7 DDB6 DDB5 DDB4 DDB3 DDB2 DDB1 DDB00x00
0x25 (I/O 0x05)PORTBВыходы и подтяжки порта BPORTB7 PORTB6 PORTB5 PORTB4 PORTB3 PORTB2 PORTB1 PORTB00x00
0x26 (I/O 0x06)PINCВходы порта CPINC7 PINC6 PINC5 PINC4 PINC3 PINC2 PINC1 PINC0—
0x27 (I/O 0x07)DDRCНаправление выводов порта CDDC7 DDC6 DDC5 DDC4 DDC3 DDC2 DDC1 DDC00x00
0x28 (I/O 0x08)PORTCВыходы и подтяжки порта CPORTC7 PORTC6 PORTC5 PORTC4 PORTC3 PORTC2 PORTC1 PORTC00x00
0x29 (I/O 0x09)PINDВходы порта DPIND7 PIND6 PIND5 PIND4 PIND3 PIND2 PIND1 PIND0—
0x2A (I/O 0x0A)DDRDНаправление выводов порта DDDD7 DDD6 DDD5 DDD4 DDD3 DDD2 DDD1 DDD00x00
0x2B (I/O 0x0B)PORTDВыходы и подтяжки порта DPORTD7 PORTD6 PORTD5 PORTD4 PORTD3 PORTD2 PORTD1 PORTD00x00
0x2C (I/O 0x0C)PINEВходы порта EPINE7 PINE6 PINE5 PINE4 PINE3 PINE2 PINE1 PINE0—
0x2D (I/O 0x0D)DDREНаправление выводов порта EDDE7 DDE6 DDE5 DDE4 DDE3 DDE2 DDE1 DDE00x00
0x2E (I/O 0x0E)PORTEВыходы и подтяжки порта EPORTE7 PORTE6 PORTE5 PORTE4 PORTE3 PORTE2 PORTE1 PORTE00x00
0x2F (I/O 0x0F)PINFВходы порта FPINF7 PINF6 PINF5 PINF4 PINF3 PINF2 PINF1 PINF0—
0x30 (I/O 0x10)DDRFНаправление выводов порта FDDF7 DDF6 DDF5 DDF4 DDF3 DDF2 DDF1 DDF00x00
0x31 (I/O 0x11)PORTFВыходы и подтяжки порта FPORTF7 PORTF6 PORTF5 PORTF4 PORTF3 PORTF2 PORTF1 PORTF00x00
0x32 (I/O 0x12)PINGВходы порта G— — PING5 PING4 PING3 PING2 PING1 PING0—
0x33 (I/O 0x13)DDRGНаправление выводов порта G— — DDG5 DDG4 DDG3 DDG2 DDG1 DDG00x00
0x34 (I/O 0x14)PORTGВыходы и подтяжки порта G— — PORTG5 PORTG4 PORTG3 PORTG2 PORTG1 PORTG00x00
0x35 (I/O 0x15)TIFR0Флаги прерываний таймера 0— — — — — OCF0B OCF0A TOV00x00
0x36 (I/O 0x16)TIFR1Флаги прерываний таймера 1— — ICF1 — OCF1C OCF1B OCF1A TOV10x00
0x37 (I/O 0x17)TIFR2Флаги прерываний таймера 2— — — — — OCF2B OCF2A TOV20x00
0x38 (I/O 0x18)TIFR3Флаги прерываний таймера 3— — ICF3 — OCF3C OCF3B OCF3A TOV30x00
0x39 (I/O 0x19)TIFR4Флаги прерываний таймера 4— — ICF4 — OCF4C OCF4B OCF4A TOV40x00
0x3A (I/O 0x1A)TIFR5Флаги прерываний таймера 5— — ICF5 — OCF5C OCF5B OCF5A TOV50x00
0x3B (I/O 0x1B)PCIFRФлаги прерываний по изменению выводов— — — — — PCIF2 PCIF1 PCIF00x00
0x3C (I/O 0x1C)EIFRФлаги внешних прерыванийINTF7 INTF6 INTF5 INTF4 INTF3 INTF2 INTF1 INTF00x00
0x3D (I/O 0x1D)EIMSKРазрешение внешних прерыванийINT7 INT6 INT5 INT4 INT3 INT2 INT1 INT00x00
0x3E (I/O 0x1E)GPIOR0Регистр общего назначения 0данные0x00
0x3F (I/O 0x1F)EECRУправление EEPROM— — EEPM1 EEPM0 EERIE EEMPE EEPE EERE—
0x40 (I/O 0x20)EEDRДанные EEPROMданные0x00
0x41 (I/O 0x21)EEARАдрес EEPROM16 бит—
0x43 (I/O 0x23)GTCCRОбщее управление таймерамиTSM — — — — — PSRASY PSRSYNC0x00
0x44 (I/O 0x24)TCCR0AУправление таймером 0, регистр ACOM0A1 COM0A0 COM0B1 COM0B0 — — WGM01 WGM000x00
0x45 (I/O 0x25)TCCR0BУправление таймером 0, регистр BFOC0A FOC0B — — WGM02 CS02 CS01 CS000x00
0x46 (I/O 0x26)TCNT0Счётный регистр таймера 0данные0x00
0x47 (I/O 0x27)OCR0AРегистр сравнения A таймера 0данные0x00
0x48 (I/O 0x28)OCR0BРегистр сравнения B таймера 0данные0x00
0x4A (I/O 0x2A)GPIOR1Регистр общего назначения 1данные0x00
0x4B (I/O 0x2B)GPIOR2Регистр общего назначения 2данные0x00
0x4C (I/O 0x2C)SPCRУправление SPISPIE SPE DORD MSTR CPOL CPHA SPR1 SPR00x00
0x4D (I/O 0x2D)SPSRСостояние SPISPIF WCOL — — — — — SPI2X0x00
0x4E (I/O 0x2E)SPDRДанные SPIданные—
0x50 (I/O 0x30)ACSRУправление и состояние компаратораACD ACBG ACO ACI ACIE ACIC ACIS1 ACIS0—
0x51 (I/O 0x31)OCDRРегистр внутрисхемной отладки (OCD)OCDR7 OCDR6 OCDR5 OCDR4 OCDR3 OCDR2 OCDR1 OCDR00x00
0x53 (I/O 0x33)SMCRРежим сна— — — — SM2 SM1 SM0 SE0x00
0x54 (I/O 0x34)MCUSRПричина сброса— — — JTRF WDRF BORF EXTRF PORF—
0x55 (I/O 0x35)MCUCRУправление микроконтроллеромJTD — — PUD — — IVSEL IVCE0x00
0x57 (I/O 0x37)SPMCSRСамопрограммирование (SPM)SPMIE RWWSB SIGRD RWWSRE BLBSET PGWRT PGERS SPMEN0x00
0x5B (I/O 0x3B)RAMPZСтаршие биты адреса Z для ELPM и SPM— — — — — — RAMPZ1 RAMPZ00x00
0x5C (I/O 0x3C)EINDСтаршие биты адреса для EICALL и EIJMP— — — — — — — EIND00x00
0x5D (I/O 0x3D)SPУказатель стека16 бит0x21FF
0x5F (I/O 0x3F)SREGРегистр состоянияI T H S V N Z C0x00
0x60WDTCSRУправление сторожевым таймеромWDIF WDIE WDP3 WDCE WDE WDP2 WDP1 WDP0—
0x61CLKPRДелитель тактовой частотыCLKPCE — — — CLKPS3 CLKPS2 CLKPS1 CLKPS0—
0x64PRR0Отключение тактирования модулей, регистр 0PRTWI PRTIM2 PRTIM0 — PRTIM1 PRSPI PRUSART0 PRADC0x00
0x65PRR1Отключение тактирования модулей, регистр 1— — PRTIM5 PRTIM4 PRTIM3 PRUSART3 PRUSART2 PRUSART10x00
0x66OSCCALКалибровка RC-генератораданные—
0x68PCICRРазрешение прерываний по изменению выводов— — — — — PCIE2 PCIE1 PCIE00x00
0x69EICRAУсловия срабатывания INT0 и INT1ISC31 ISC30 ISC21 ISC20 ISC11 ISC10 ISC01 ISC000x00
0x6AEICRBУсловия срабатывания INT4–INT7ISC71 ISC70 ISC61 ISC60 ISC51 ISC50 ISC41 ISC400x00
0x6BPCMSK0Маска выводов группы 0 (PCINT)PCINT7 PCINT6 PCINT5 PCINT4 PCINT3 PCINT2 PCINT1 PCINT00x00
0x6CPCMSK1Маска выводов группы 1 (PCINT)PCINT15 PCINT14 PCINT13 PCINT12 PCINT11 PCINT10 PCINT9 PCINT80x00
0x6DPCMSK2Маска выводов группы 2 (PCINT)PCINT23 PCINT22 PCINT21 PCINT20 PCINT19 PCINT18 PCINT17 PCINT160x00
0x6ETIMSK0Маска прерываний таймера 0— — — — — OCIE0B OCIE0A TOIE00x00
0x6FTIMSK1Маска прерываний таймера 1— — ICIE1 — OCIE1C OCIE1B OCIE1A TOIE10x00
0x70TIMSK2Маска прерываний таймера 2— — — — — OCIE2B OCIE2A TOIE20x00
0x71TIMSK3Маска прерываний таймера 3— — ICIE3 — OCIE3C OCIE3B OCIE3A TOIE30x00
0x72TIMSK4Маска прерываний таймера 4— — ICIE4 — OCIE4C OCIE4B OCIE4A TOIE40x00
0x73TIMSK5Маска прерываний таймера 5— — ICIE5 — OCIE5C OCIE5B OCIE5A TOIE50x00
0x74XMCRAИнтерфейс внешней памяти, регистр ASRE SRL2 SRL1 SRL0 SRW11 SRW10 SRW01 SRW000x00
0x75XMCRBИнтерфейс внешней памяти, регистр BXMBK — — — — XMM2 XMM1 XMM00x00
0x78ADCРезультат преобразования АЦП16 бит0x0000
0x7AADCSRAУправление АЦП, регистр AADEN ADSC ADATE ADIF ADIE ADPS2 ADPS1 ADPS00x00
0x7BADCSRBУправление АЦП, регистр B— ACME — — MUX5 ADTS2 ADTS1 ADTS00x00
0x7CADMUXОпорное напряжение и вход АЦПREFS1 REFS0 ADLAR MUX4 MUX3 MUX2 MUX1 MUX00x00
0x7DDIDR2Отключение цифровых входов ADC8–ADC15ADC15D ADC14D ADC13D ADC12D ADC11D ADC10D ADC9D ADC8D0x00
0x7EDIDR0Отключение цифровых входов АЦПADC7D ADC6D ADC5D ADC4D ADC3D ADC2D ADC1D ADC0D0x00
0x7FDIDR1Отключение цифровых входов компаратора— — — — — — AIN1D AIN0D0x00
0x80TCCR1AУправление таймером 1, регистр ACOM1A1 COM1A0 COM1B1 COM1B0 COM1C1 COM1C0 WGM11 WGM100x00
0x81TCCR1BУправление таймером 1, регистр BICNC1 ICES1 — WGM13 WGM12 CS12 CS11 CS100x00
0x82TCCR1CУправление таймером 1, регистр CFOC1A FOC1B FOC1C — — — — —0x00
0x84TCNT1Счётный регистр таймера 116 бит0x0000
0x86ICR1Регистр захвата таймера 116 бит0x0000
0x88OCR1AРегистр сравнения A таймера 116 бит0x0000
0x8AOCR1BРегистр сравнения B таймера 116 бит0x0000
0x8COCR1CРегистр сравнения C таймера 116 бит0x0000
0x90TCCR3AУправление таймером 3, регистр ACOM3A1 COM3A0 COM3B1 COM3B0 COM3C1 COM3C0 WGM31 WGM300x00
0x91TCCR3BУправление таймером 3, регистр BICNC3 ICES3 — WGM33 WGM32 CS32 CS31 CS300x00
0x92TCCR3CУправление таймером 3, регистр CFOC3A FOC3B FOC3C — — — — —0x00
0x94TCNT3Счётный регистр таймера 316 бит0x0000
0x96ICR3Регистр захвата таймера 316 бит0x0000
0x98OCR3AРегистр сравнения A таймера 316 бит0x0000
0x9AOCR3BРегистр сравнения B таймера 316 бит0x0000
0x9COCR3CРегистр сравнения C таймера 316 бит0x0000
0xA0TCCR4AУправление таймером 4, регистр ACOM4A1 COM4A0 COM4B1 COM4B0 COM4C1 COM4C0 WGM41 WGM400x00
0xA1TCCR4BУправление таймером 4, регистр BICNC4 ICES4 — WGM43 WGM42 CS42 CS41 CS400x00
0xA2TCCR4CУправление таймером 4, регистр CFOC4A FOC4B FOC4C — — — — —0x00
0xA4TCNT4Счётный регистр таймера 416 бит0x0000
0xA6ICR4Регистр захвата таймера 416 бит0x0000
0xA8OCR4AРегистр сравнения A таймера 416 бит0x0000
0xAAOCR4BРегистр сравнения B таймера 416 бит0x0000
0xACOCR4CРегистр сравнения C таймера 416 бит0x0000
0xB0TCCR2AУправление таймером 2, регистр ACOM2A1 COM2A0 COM2B1 COM2B0 — — WGM21 WGM200x00
0xB1TCCR2BУправление таймером 2, регистр BFOC2A FOC2B — — WGM22 CS22 CS21 CS200x00
0xB2TCNT2Счётный регистр таймера 2данные0x00
0xB3OCR2AРегистр сравнения A таймера 2данные0x00
0xB4OCR2BРегистр сравнения B таймера 2данные0x00
0xB6ASSRАсинхронный режим таймера 2— EXCLK AS2 TCN2UB OCR2AUB OCR2BUB TCR2AUB TCR2BUB0x00
0xB8TWBRСкорость TWIданные0x00
0xB9TWSRСостояние TWITWS7 TWS6 TWS5 TWS4 TWS3 — TWPS1 TWPS00xF8
0xBATWARСобственный адрес TWITWA6 TWA5 TWA4 TWA3 TWA2 TWA1 TWA0 TWGCE0xFE
0xBBTWDRДанные TWIданные0xFF
0xBCTWCRУправление TWITWINT TWEA TWSTA TWSTO TWWC TWEN — TWIE0x00
0xBDTWAMRМаска адреса TWITWAM6 TWAM5 TWAM4 TWAM3 TWAM2 TWAM1 TWAM0 —0x00
0xC0UCSR0AСостояние USART0, регистр ARXC0 TXC0 UDRE0 FE0 DOR0 UPE0 U2X0 MPCM00x20
0xC1UCSR0BУправление USART0, регистр BRXCIE0 TXCIE0 UDRIE0 RXEN0 TXEN0 UCSZ02 RXB80 TXB800x00
0xC2UCSR0CФормат кадра USART0, регистр CUMSEL01 UMSEL00 UPM01 UPM00 USBS0 UCSZ01 UCSZ00 UCPOL00x06
0xC4UBRR0Скорость USART016 бит—
0xC6UDR0Данные USART0данные0x00
0xC8UCSR1AСостояние USART1, регистр ARXC1 TXC1 UDRE1 FE1 DOR1 UPE1 U2X1 MPCM10x20
0xC9UCSR1BУправление USART1, регистр BRXCIE1 TXCIE1 UDRIE1 RXEN1 TXEN1 UCSZ12 RXB81 TXB810x00
0xCAUCSR1CФормат кадра USART1, регистр CUMSEL11 UMSEL10 UPM11 UPM10 USBS1 UCSZ11 UCSZ10 UCPOL10x06
0xCCUBRR1Скорость USART116 бит—
0xCEUDR1Данные USART1данные0x00
0xD0UCSR2AСостояние USART2, регистр ARXC2 TXC2 UDRE2 FE2 DOR2 UPE2 U2X2 MPCM20x20
0xD1UCSR2BУправление USART2, регистр BRXCIE2 TXCIE2 UDRIE2 RXEN2 TXEN2 UCSZ22 RXB82 TXB820x00
0xD2UCSR2CФормат кадра USART2, регистр CUMSEL21 UMSEL20 UPM21 UPM20 USBS2 UCSZ21 UCSZ20 UCPOL20x06
0xD4UBRR2Скорость USART216 бит—
0xD6UDR2Данные USART2данные0x00
0x100PINHВходы порта HPINH7 PINH6 PINH5 PINH4 PINH3 PINH2 PINH1 PINH0—
0x101DDRHНаправление выводов порта HDDH7 DDH6 DDH5 DDH4 DDH3 DDH2 DDH1 DDH00x00
0x102PORTHВыходы и подтяжки порта HPORTH7 PORTH6 PORTH5 PORTH4 PORTH3 PORTH2 PORTH1 PORTH00x00
0x103PINJВходы порта JPINJ7 PINJ6 PINJ5 PINJ4 PINJ3 PINJ2 PINJ1 PINJ0—
0x104DDRJНаправление выводов порта JDDJ7 DDJ6 DDJ5 DDJ4 DDJ3 DDJ2 DDJ1 DDJ00x00
0x105PORTJВыходы и подтяжки порта JPORTJ7 PORTJ6 PORTJ5 PORTJ4 PORTJ3 PORTJ2 PORTJ1 PORTJ00x00
0x106PINKВходы порта KPINK7 PINK6 PINK5 PINK4 PINK3 PINK2 PINK1 PINK0—
0x107DDRKНаправление выводов порта KDDK7 DDK6 DDK5 DDK4 DDK3 DDK2 DDK1 DDK00x00
0x108PORTKВыходы и подтяжки порта KPORTK7 PORTK6 PORTK5 PORTK4 PORTK3 PORTK2 PORTK1 PORTK00x00
0x109PINLВходы порта LPINL7 PINL6 PINL5 PINL4 PINL3 PINL2 PINL1 PINL0—
0x10ADDRLНаправление выводов порта LDDL7 DDL6 DDL5 DDL4 DDL3 DDL2 DDL1 DDL00x00
0x10BPORTLВыходы и подтяжки порта LPORTL7 PORTL6 PORTL5 PORTL4 PORTL3 PORTL2 PORTL1 PORTL00x00
0x120TCCR5AУправление таймером 5, регистр ACOM5A1 COM5A0 COM5B1 COM5B0 COM5C1 COM5C0 WGM51 WGM500x00
0x121TCCR5BУправление таймером 5, регистр BICNC5 ICES5 — WGM53 WGM52 CS52 CS51 CS500x00
0x122TCCR5CУправление таймером 5, регистр CFOC5A FOC5B FOC5C — — — — —0x00
0x124TCNT5Счётный регистр таймера 516 бит0x0000
0x126ICR5Регистр захвата таймера 516 бит0x0000
0x128OCR5AРегистр сравнения A таймера 516 бит0x0000
0x12AOCR5BРегистр сравнения B таймера 516 бит0x0000
0x12COCR5CРегистр сравнения C таймера 516 бит0x0000
0x130UCSR3AСостояние USART3, регистр ARXC3 TXC3 UDRE3 FE3 DOR3 UPE3 U2X3 MPCM30x20
0x131UCSR3BУправление USART3, регистр BRXCIE3 TXCIE3 UDRIE3 RXEN3 TXEN3 UCSZ32 RXB83 TXB830x00
0x132UCSR3CФормат кадра USART3, регистр CUMSEL31 UMSEL30 UPM31 UPM30 USBS3 UCSZ31 UCSZ30 UCPOL30x06
0x134UBRR3Скорость USART316 бит—
0x136UDR3Данные USART3данные0x00

Частые вопросы

Сколько регистров ввода-вывода у ATmega2560?

В описании Microchip у ATmega2560 157 регистров периферии и ядра (16-битные — EEAR, SP и ADC — считаются одним регистром). 55 из них доступны командами IN и OUT, 32 — ещё и битовыми командами SBI и CBI.

Чем адрес регистра в области ввода-вывода отличается от адреса в памяти?

Регистры с адресами 0x20–0x5F в пространстве данных доступны и как область ввода-вывода с адресами 0x00–0x3F: IN и OUT принимают именно этот адрес, на 0x20 меньше. Регистры выше 0x5F (расширенная область) читаются и пишутся только командами LDS, STS, LD и ST.

Где описаны биты регистров ATmega2560?

На страницах блоков: AC, USART0/1/2/3, TWI, SPI, порты, TC0, TC2, EEPROM, TC1/3/4/5, EXINT, CPU и ADC. У каждого бита — номер, имя из avr/io.h, назначение, доступ и значение после сброса по даташиту 2549Q.

Источники

  1. Microchip. Atmel. ATmega640/V-1280/V-1281/V-2560/V-2561/V datasheet (2549Q) — сводка регистров, диаграммы битов и значения после сброса
  2. Microchip ATmega_DFP 3.6.299, описание ATmega2560 (ATDF) — регистры, битовые поля и их значения, лицензия Apache-2.0

Нашли ошибку в регистрах?