1 ifndef __regm406inc 2__regm406inc equ 1 3 save 4 listing off ; no listing over this file 5 6;**************************************************************************** 7;* * 8;* AS 1.42 - File REGM406.INC * 9;* * 10;* Contains Bit & Register Definitions for ATmega406 * 11;* * 12;**************************************************************************** 13 14;---------------------------------------------------------------------------- 15; Memory Limits 16 17E2END equ 511 18RAMSTART equ 0x100,data 19RAMEND equ 0x8ff,data 20FLASHEND label 0x9fff 21 22;---------------------------------------------------------------------------- 23; Chip Control 24 25MCUCR port 0x35 ; MCU Control Register 26IVCE avrbit MCUCR,0 ; Interrupt Vector Change Enable 27IVSEL avrbit MCUCR,1 ; Interrupt Vector Select 28 29MCUSR port 0x34 ; MCU Status Register 30PORF avrbit MCUSR,0 ; Power-On Reset Occured 31EXTRF avrbit MCUSR,1 ; External Reset Occured 32BORF avrbit MCUSR,2 ; Brown-Out Reset Occured 33WDRF avrbit MCUSR,3 ; Watchdog Reset Occured 34 35SMCR port 0x33 ; Sleep Mode Control Register 36SE avrbit SMCR,0 ; Sleep Mode Enable 37SM0 avrbit SMCR,1 ; Sleep Mode Select 38SM1 avrbit SMCR,2 39SM2 avrbit SMCR,3 40 41PRR0 sfr 0x64 ; Power Reduction Register 0 42PRVADC avrbit PRR0,0 ; Power Reduction Voltage ADC 43PRTIM0 avrbit PRR0,1 ; Power Reduction Timer/Counter 0 44PRTIM1 avrbit PRR0,2 ; Power Reduction Timer/Counter 1 45PRTWI avrbit PRR0,3 ; Power Reduction Two Wire Interface 46 47FOSCCAL sfr 0x66 ; Fast Oscillator Calibration 48 49CCSR sfr 0xc0 ; Clock Control and Status Register 50XOE avrbit CCSR,1 ; 32 kHz Crystal Oscillator Enable 51ACS avrbit CCSR,0 ; Asynchronous Clock Select 52 53WUTCSR sfr 0x62 ; Wake-up Timer Control and Status Register 54WUTIF avrbit WUTCSR,7 ; Wake-up Timer Interrupt Flag 55WUTIE avrbit WUTCSR,6 ; Wake-up Timer Interrupt Enable 56WUTCF avrbit WUTCSR,5 ; Wake-up Timer Calibration Flag 57WUTR avrbit WUTCSR,4 ; Wake-up Timer Reset 58WUTE avrbit WUTCSR,3 ; Wake-up Timer Enable 59WUTP2 avrbit WUTCSR,2 ; Wake-up Timer Prescaler 2, 1, and 0 60WUTP1 avrbit WUTCSR,1 61WUTP0 avrbit WUTCSR,0 62 63BGCCR sfr 0xd0 ; Bandgap Calibration C Register 64BGEN avrbit BGCCR,7 ; reserved 65BGCC5 avrbit BGCCR,5 ; BG Calibration of PTAT Current 66BGCC4 avrbit BGCCR,4 67BGCC3 avrbit BGCCR,3 68BGCC2 avrbit BGCCR,2 69BGCC1 avrbit BGCCR,1 70BGCC0 avrbit BGCCR,0 71 72BGCRR sfr 0xd1 ; Bandgap Calibration R Register 73BGCR7 avrbit BGCRR,7 ; BG Calibration of Resistor Ladder 74BGCR6 avrbit BGCRR,6 75BGCR5 avrbit BGCRR,5 76BGCR4 avrbit BGCRR,4 77BGCR3 avrbit BGCRR,3 78BGCR2 avrbit BGCRR,2 79BGCR1 avrbit BGCRR,1 80BGCR0 avrbit BGCRR,0 81 82;---------------------------------------------------------------------------- 83; EEPROM/Program Memory Access 84 85 include "eem2.inc" 86 include "spmcsr37.inc" 87 88EEPM0 avrbit EECR,4 ; EEPROM Programming Mode 89EEPM1 avrbit EECR,5 90 91SIGRD avrbit SPMCSR,5 ; Signature Row Read 92 93;---------------------------------------------------------------------------- 94; JTAG 95 96JTD avrbit MCUCR,7 ; JTAG Disable 97 98JTRF avrbit MCUSR,4 ; JTAG Reset Occured 99 100OCDR port 0x31 ; On-Chip Debug Register 101 102;---------------------------------------------------------------------------- 103; GPIO 104 105PINA port 0x00 ; Port A @ 0x00 (IO) ff. 106PINB port 0x03 ; Port B @ 0x03 (IO) ff. 107PORTC port 0x08 ; Port C @ 0x08 (Inp only) 108PIND port 0x09 ; Port D @ 0x09 (IO) ff. 109 110PCMSK0 sfr 0x6b ; Pin Change Mask Register 0 111PCMSK1 sfr 0x6c ; Pin Change Mask Register 1 112PCICR sfr 0x68 ; Pin Change Interrupt Control Register 113PCIFR port 0x1b ; Pin Change Interrupt Flag Register 114 115GPIOR0 port 0x1e ; General Purpose I/O Registers 116GPIOR1 port 0x2a 117GPIOR2 port 0x2b 118 119;---------------------------------------------------------------------------- 120; Interrupt Vectors 121 122 enumconf 2,code 123 enum BPINT_vect=2 ; battery protection Interrupt 124 nextenum INT0_vect ; External Interrupt Request 0 125 nextenum INT1_vect ; External Interrupt Request 1 126 nextenum INT2_vect ; External Interrupt Request 2 127 nextenum INT3_vect ; External Interrupt Request 3 128 nextenum PCINT0_vect ; Pin Change Interrupt Request 0 129 nextenum PCINT1_vect ; Pin Change Interrupt Request 1 130 nextenum WDT_vect ; Watchdog Time-Out Interrupt 131 nextenum WAKE_UP_vect ; Wake-Up Timer Overflow 132 nextenum TIMER1_COMP_vect ; Timer/Counter 1 Compare Match 133 nextenum TIMER1_OVF_vect ; Timer/Counter 1 Overflow 134 nextenum TIMER0_COMPA_vect ; Timer/Counter 0 Compare Match A 135 nextenum TIMER0_COMPB_vect ; Timer/Counter 0 Compare Match B 136 nextenum TIMER0_OVF_vect ; Timer/Counter 0 Overflow 137 nextenum TWI_BUS_CD_vect ; Two-Wire Bus Connect/Disconnect 138 nextenum TWI_vect ; 2-Wire Transfer Complete 139 nextenum VADC_vect ; Voltage ADC Conversion Complete 140 nextenum CCADC_CONV_vect ; CC-ADC Instantaneous Current Conversion Complete 141 nextenum CCADC_REG_CUR_vect ; CC-ADC Regular Current 142 nextenum CCADC_ACC_vect ; CC-ADC Accumulate Current Conversion Complete 143 nextenum EE_READY_vect ; EEPROM Ready 144 nextenum SPM_READY_vect ; Store Program Memory Ready 145 146;---------------------------------------------------------------------------- 147; External Interrupts 148 149EICRA sfr 0x69 ; External Interrupt Control Register A 150ISC00 avrbit EICRA,0 ; External Interrupt 0 Sense Control 151ISC01 avrbit EICRA,1 152ISC10 avrbit EICRA,2 ; External Interrupt 1 Sense Control 153ISC11 avrbit EICRA,3 154ISC20 avrbit EICRA,4 ; External Interrupt 2 Sense Control 155ISC21 avrbit EICRA,5 156ISC30 avrbit EICRA,6 ; External Interrupt 3 Sense Control 157ISC31 avrbit EICRA,7 158 159EIMSK port 0x1d ; External Interrupt Mask Register 160INT0 avrbit EIMSK,0 ; Enable External Interrupt 0 161INT1 avrbit EIMSK,1 ; Enable External Interrupt 1 162INT2 avrbit EIMSK,2 ; Enable External Interrupt 2 163INT3 avrbit EIMSK,3 ; Enable External Interrupt 3 164 165EIFR port 0x1c ; External Interrupt Flag Register 166INTF0 avrbit EIFR,0 ; External Interrupt 0 Occured 167INTF1 avrbit EIFR,1 ; External Interrupt 1 Occured 168INTF2 avrbit EIFR,2 ; External Interrupt 2 Occured 169INTF3 avrbit EIFR,3 ; External Interrupt 3 Occured 170 171;---------------------------------------------------------------------------- 172; Timers 173 174GTCCR port 0x23 ; General Timer/Counter Control Register 175PSRSYNC avrbit GTCCR,0 ; Prescaler Reset 176TSM avrbit GTCCR,7 ; Timer/Counter Synchronization Mode 177 178TCCR0A port 0x24 ; Timer/Counter 0 Control Register A 179WGM00 avrbit TCCR0A,0 ; Timer/Counter 0 Waveform Generation Mode 180WGM01 avrbit TCCR0A,1 181COM0B0 avrbit TCCR0A,4 ; Timer/Counter 0 Compare B Mode 182COM0B1 avrbit TCCR0A,5 183COM0A0 avrbit TCCR0A,6 ; Timer/Counter 0 Compare A Mode 184COM0A1 avrbit TCCR0A,7 185TCCR0B port 0x25 ; Timer/Counter 0 Control Register B 186CS00 avrbit TCCR0B,0 ; Timer/Counter 0 Clock Select 187CS01 avrbit TCCR0B,1 188CS02 avrbit TCCR0B,2 189WGM02 avrbit TCCR0B,3 ; Timer/Counter 0 Waveform Generation Mode 190FOC0B avrbit TCCR0B,6 ; Timer/Counter 0 Force Output Compare B 191FOC0A avrbit TCCR0B,7 ; Timer/Counter 0 Force Output Compare A 192TCNT0 port 0x26 ; Timer/Counter 0 193OCR0A port 0x27 ; Timer/Counter 0 Output Compare Value A 194OCR0B port 0x28 ; Timer/Counter 0 Output Compare Value B 195 196TCCR1B sfr 0x81 ; Timer/Counter 1 Control Register B 197CS10 avrbit TCCR1B,0 ; Timer/Counter 1 Prescaler Setting 198CS11 avrbit TCCR1B,1 199CS12 avrbit TCCR1B,2 200CTC1 avrbit TCCR1B,3 ; Timer/Counter 1 Clear on Match 201TCNT1L sfr 0x84 ; Timer/Counter 1 Value LSB 202TCNT1H sfr 0x85 ; Timer/Counter 1 Value MSB 203OCR1AL sfr 0x88 ; Timer/Counter 1 Output Compare Value A LSB 204OCR1AH sfr 0x89 ; Timer/Counter 1 Output Compare Value A MSB 205 206TIMSK0 sfr 0x6e ; Timer/Counter 0 Interrupt Mask Register 207TOIE0 avrbit TIMSK0,0 ; Timer/Counter 0 Overflow Interrupt Enable 208OCIE0A avrbit TIMSK0,1 ; Timer/Counter 0 Output Compare Interrupt Enable A 209OCIE0B avrbit TIMSK0,2 ; Timer/Counter 0 Output Compare Interrupt Enable B 210TIMSK1 sfr 0x6f ; Timer/Counter 1 Interrupt Mask Register 211TOIE1 avrbit TIMSK1,0 ; Timer/Counter 1 Overflow Interrupt Enable 212OCIE1A avrbit TIMSK1,1 ; Timer/Counter 1 Output Compare Interrupt Enable A 213ICIE1 avrbit TIMSK1,5 ; Timer/Counter 1 Input Capture Event 214 215TIFR0 port 0x15 ; Timer/Counter 0 Interrupt Status Register 216TIFR1 port 0x16 ; Timer/Counter 1 Interrupt Status Register 217 218;---------------------------------------------------------------------------- 219; Watchdog Timer 220 221 include "wdme.inc" 222 223;---------------------------------------------------------------------------- 224; TWI 225 226 include "twimb8.inc" 227 228TWBCSR sfr 0xbe ; TWI Bus Control and Status Register 229TWBCIF avrbit TWBCSR,7 ; TWI Bus Connect/Disconnect Interrupt Flag 230TWBCIE avrbit TWBCSR,6 ; TWI Bus Connect/Disconnect Interrupt Enable 231TWBDT1 avrbit TWBCSR,2 ; TWI Bus Disconnect Time-Out Period 232TWBDT0 avrbit TWBCSR,1 233TWBCIP avrbit TWBCSR,0 ; TWI Bus Connect/Disconnect Interrupt Polarity 234 235;---------------------------------------------------------------------------- 236; Coulomb Counter 237 238CADCSRA sfr 0xe4 ; CC-ADC Control and Status Register A 239CADSE avrbit CADCSRA,0 ; CC-ADC Current Sampling Enable 240CADIS0 avrbit CADCSRA,1 ; CC-ADC Current Sampling Interval 241CADIS1 avrbit CADCSRA,2 242CADAS0 avrbit CADCSRA,3 ; CC-ADC Accumulate Current Select 243CADAS1 avrbit CADCSRA,4 244CADUB avrbit CADCSRA,5 ; CADUB: CC-ADC Update Busy 245CADEN avrbit CADCSRA,7 ; CC-ADC Enable 246 247CADCSRB sfr 0xe5 ; CC-ADC Control and Status Register B 248CADACIE avrbit CADCSRB,6 ; CC-ADC Accumulate Current Interrupt Enable 249CADRCIE avrbit CADCSRB,5 ; CC-ADC Regular Current Interrupt Enable 250CADICIE avrbit CADCSRB,4 ; CC-ADC Instantaneous Current Interrupt Enable 251CADACIF avrbit CADCSRB,2 ; CC-ADC Accumulate Current Interrupt Flag 252CADRCIF avrbit CADCSRB,1 ; CC-ADC Regular Current Interrupt Flag 253CADICIF avrbit CADCSRB,0 ; CC-ADC Instantaneous Current Interrupt Flag 254 255CADICL sfr 0xe8 ; CC-ADC Instantaneous Current 256CADICH sfr 0xe9 257 258CADAC0 sfr 0xe0 ; CC-ADC Accumulate Current 259CADAC1 sfr 0xe1 260CADAC2 sfr 0xe2 261CADAC3 sfr 0xe3 262 263CADRCC sfr 0xe6 ; CC-ADC Regular Charge Current 264 265CADRDC sfr 0xe7 ; CC-ADC Regular Discharge Current 266 267;---------------------------------------------------------------------------- 268; Voltage A/D Converter 269 270VADMUX sfr 0x7c ; Multiplexer Selection Register 271VADMUX0 avrbit VADMUX,0 ; Channel Selection Bits 272VADMUX1 avrbit VADMUX,1 273VADMUX2 avrbit VADMUX,2 274VADMUX3 avrbit VADMUX,3 275 276VADCSR sfr 0x7a ; Control and Status Register 277VADCCIE avrbit VADCSR,0 ; V-ADC Conversion Complete Interrupt Enable 278VADCCIF avrbit VADCSR,1 ; V-ADC Conversion Complete Interrupt Flag 279VADSC avrbit VADCSR,2 ; Voltage ADC Start Conversion 280VADEN avrbit VADCSR,3 ; V-ADC Enable 281 282VADCL sfr 0x78 ; V-ADC Data Register 283VADCH sfr 0x79 284 285DIDR0 sfr 0x7e ; Digital Input Disable Register 0 286VADC0D avrbit DIDR0,0 ; V-ADC0 Digital Input Disable 287VADC1D avrbit DIDR0,1 ; V-ADC1 Digital Input Disable 288VADC2D avrbit DIDR0,2 ; V-ADC2 Digital Input Disable 289VADC3D avrbit DIDR0,3 ; V-ADC3 Digital Input Disable 290 291;---------------------------------------------------------------------------- 292; FET Control 293 294FCSR sfr 0xf0 ; FET Control and Status Register 295PWMOC avrbit FCSR,5 ; Pulse Width Modulation of OC Output 296PWMOPC avrbit FCSR,4 ; Pulse Width Modulation of OPC Output 297CPS avrbit FCSR,3 ; Current Protection Status 298DFE avrbit FCSR,2 ; Discharge FET Enable 299CFE avrbit FCSR,1 ; Charge FET Enable 300PFD avrbit FCSR,0 ; Precharge FET Disable 301 302;---------------------------------------------------------------------------- 303; Cell Balancing 304 305CBCR sfr 0xf1 ; Cell Balancing Control Register 306CBE4 avrbit CBCR,3 ; Cell Balancing Enable 4 307CBE3 avrbit CBCR,2 ; Cell Balancing Enable 3 308CBE2 avrbit CBCR,1 ; Cell Balancing Enable 2 309CBE1 avrbit CBCR,0 ; Cell Balancing Enable 1 310 311;---------------------------------------------------------------------------- 312; Battery Protection 313 314BPPLR sfr 0xf8 ; Battery Protection Parameter Lock Register 315BPPLE avrbit BPPLR,1 ; Battery Protection Parameter Lock Enable 316BPPL avrbit BPPLR,0 ; Battery Protection Parameter Lock 317 318BPCR sfr 0xf7 ; Battery Protection Control Register 319DUVD avrbit BPCR,3 ; Deep Under-Voltage Protection Disable 320SCD avrbit BPCR,2 ; Short Circuit Protection Disabled 321DCD avrbit BPCR,1 ; Discharge Over-Current Protection Disable 322CCD avrbit BPCR,0 ; Charge Over-Current Protection Disable 323 324CBPTR sfr 0xf6 ; Current Battery Protection Timing Register 325SCPT3 avrbit CBPTR,7 ; Short-Circuit Protection Timing 326SCPT2 avrbit CBPTR,6 327SCPT1 avrbit CBPTR,5 328SCPT0 avrbit CBPTR,4 329OCPT3 avrbit CBPTR,3 ; Over-Current Protection Timing 330OCPT2 avrbit CBPTR,2 331OCPT1 avrbit CBPTR,1 332OCPT0 avrbit CBPTR,0 333 334BPOCD sfr 0xf5 ; Battery Protection Over-Current Detection Level Register 335DCDL3 avrbit BPOCD,7 ; Discharge Over-Current Detection Level 336DCDL2 avrbit BPOCD,6 337DCDL1 avrbit BPOCD,5 338DCDL0 avrbit BPOCD,4 339CCDL3 avrbit BPOCD,3 ; Charge Over-Current Detection Level 340CCDL2 avrbit BPOCD,2 341CCDL1 avrbit BPOCD,1 342CCDL0 avrbit BPOCD,0 343 344BPSCD sfr 0xf4 ; Battery Protection Short-Circuit Detection Level Register 345SCDL3 avrbit BPSCD,3 ; Short-Circuit Detection Level 346SCDL2 avrbit BPSCD,2 347SCDL1 avrbit BPSCD,1 348SCDL0 avrbit BPSCD,0 349 350BPDUV sfr 0xf3 ; Battery Protection Deep Under Voltage Register 351DUVT1 avrbit BPDUV,5 ; Deep Under-Voltage Timing 352DUVT0 avrbit BPDUV,4 353DUDL3 avrbit BPDUV,3 ; Deep Under-Voltage Detection Level 354DUDL2 avrbit BPDUV,2 355DUDL1 avrbit BPDUV,1 356DUDL0 avrbit BPDUV,0 357 358BPIR sfr 0xf2 ; Battery Protection Interrupt Register 359DUVIF avrbit BPIR,7 ; Deep Under-Voltage Early Warning Interrupt Flag 360COCIF avrbit BPIR,6 ; Charge Over-Current Protection Activated Interrupt Flag 361DOCIF avrbit BPIR,5 ; Discharge Over-Current Protection Activated Interrupt Flag 362SCIF avrbit BPIR,4 ; Short-Circuit Protection Activated Interrupt Flag 363DUVIE avrbit BPIR,3 ; Deep Under-Voltage Early Warning Interrupt Enable 364COCIE avrbit BPIR,2 ; Charge Over-Current Protection Activated Interrupt Enable 365DOCIE avrbit BPIR,1 ; Discharge Over-Current Protection Activated Interrupt Enable 366SCIE avrbit BPIR,0 ; Short-Circuit Protection Activated Interrupt Enable 367 368 restore ; re-enable listing 369 370 endif ; __regm406inc 371