Files

656 lines
47 KiB
XML
Raw Permalink Normal View History

2025-11-23 20:39:37 +04:00
<?xml version="1.0" encoding="UTF-8"?>
<device name="ATmega406" family="AVR8" configuration-value="atmega406" architecture="AVRe+" avr-family="MEGA">
<property-groups>
<property-group key="signatures">
<property key="jtagid" value="0x0950703F"/>
<property key="signature0" value="0x1e"/>
<property key="signature1" value="0x95"/>
<property key="signature2" value="0x07"/>
</property-group>
<property-group key="ocd">
<property key="ocd_revision" value="3"/>
<property key="ocd_datareg" value="0x31"/>
<property key="progbase" value="0x0000"/>
</property-group>
<property-group key="jtag_interface">
<property key="allowfullpagestream" value="0x00"/>
</property-group>
<property-group key="pp_interface">
<property key="ppcontrolstack" value="0x0E 0x1E 0x0F 0x1F 0x2E 0x3E 0x2F 0x3F 0x4E 0x5E 0x4F 0x5F 0x6E 0x7E 0x6F 0x7F 0x66 0x76 0x67 0x77 0x6A 0x7A 0x6B 0x7B 0xBE 0xFD 0x00 0x01 0x00 0x00 0x00 0x00"/>
<property key="ppenterprogmode_stabdelay" value="100"/>
<property key="ppenterprogmode_progmodedelay" value="0"/>
<property key="ppenterprogmode_latchcycles" value="6"/>
<property key="ppenterprogmode_togglevtg" value="0"/>
<property key="ppenterprogmode_poweroffdelay" value="0"/>
<property key="ppenterprogmode_resetdelayms" value="0"/>
<property key="ppenterprogmode_resetdelayus" value="0"/>
<property key="ppleaveprogmode_stabdelay" value="15"/>
<property key="ppleaveprogmode_resetdelay" value="15"/>
<property key="ppchiperase_pulsewidth" value="0"/>
<property key="ppchiperase_polltimeout" value="10"/>
<property key="ppprogramflash_polltimeout" value="5"/>
<property key="ppprogramflash_mode" value="0x0F"/>
<property key="ppprogramflash_blocksize" value="256"/>
<property key="ppreadflash_blocksize" value="256"/>
<property key="ppprogrameeprom_polltimeout" value="5"/>
<property key="ppprogrameeprom_mode" value="0x07"/>
<property key="ppprogrameeprom_blocksize" value="256"/>
<property key="ppreadeeprom_blocksize" value="256"/>
<property key="ppprogramfuse_pulsewidth" value="0"/>
<property key="ppprogramfuse_polltimeout" value="5"/>
<property key="ppprogramlock_pulsewidth" value="0"/>
<property key="ppprogramlock_polltimeout" value="5"/>
</property-group>
<property-group key="boot_section_options">
<property-group key="boot_section_1">
<property key="start_address" value="0x00009E00"/>
<property key="size" value="512"/>
<property key="page_size" value="128"/>
</property-group>
<property-group key="boot_section_2">
<property key="start_address" value="0x00009C00"/>
<property key="size" value="1024"/>
<property key="page_size" value="128"/>
</property-group>
<property-group key="boot_section_3">
<property key="start_address" value="0x00009800"/>
<property key="size" value="2048"/>
<property key="page_size" value="128"/>
</property-group>
<property-group key="boot_section_4">
<property key="start_address" value="0x00009000"/>
<property key="size" value="4096"/>
<property key="page_size" value="128"/>
</property-group>
</property-group>
</property-groups>
<address-spaces>
<address-space key="prog" start="0x00000000" size="40960" endianness="little">
<memory-segment key="internal_program_memory" name="Internal FLASH" type="flash" start="0x00000000" size="40960" page-size="128" access="RW" executable="1"/>
</address-space>
<address-space key="signatures" start="0x00000000" size="3" endianness="little">
<memory-segment key="signatures" name="Signatures" type="signatures" start="0x00000000" size="3" access="R" executable="0"/>
</address-space>
<address-space key="fuses" start="0x00000000" size="2" endianness="little">
<memory-segment key="fuses" name="Fuses" type="fuses" start="0x00000000" size="2" access="RW" executable="0"/>
</address-space>
<address-space key="lockbits" start="0x00000000" size="1" endianness="little">
<memory-segment key="lockbits" name="Lockbits" type="lockbits" start="0x00000000" size="1" access="RW" executable="0"/>
</address-space>
<address-space key="data" start="0x00000000" size="2304" endianness="little">
<memory-segment key="gp_registers" name="General Purpose Registers" type="gp_registers" start="0x00000000" size="32" executable="0"/>
<memory-segment key="mapped_io" name="Mapped Input/Output" type="io" start="0x00000020" size="224" executable="0"/>
<memory-segment key="internal_ram" name="Internal RAM" type="ram" start="0x00000100" size="2048" executable="0"/>
</address-space>
<address-space key="eeprom" start="0x00000000" size="512" endianness="little">
<memory-segment key="internal_eeprom" name="Internal EEPROM" type="eeprom" start="0x00000000" size="512" page-size="4" access="RW" executable="0"/>
</address-space>
</address-spaces>
<physical-interfaces>
<physical-interface value="hvpp"/>
<physical-interface value="jtag">
<signals>
<signal name="TMS" pad-key="pb2"/>
<signal name="TDI" pad-key="pb1"/>
<signal name="TCK" pad-key="pb3"/>
<signal name="TDO" pad-key="pb0"/>
</signals>
</physical-interface>
</physical-interfaces>
<peripherals>
<peripheral key="adc" name="ADC" module-key="adc">
<register-group-instance description="Analog-to-Digital Converter" register-group-key="adc" address-space-key="data" offset="0x0"/>
</peripheral>
<peripheral key="exint" name="EXINT" module-key="exint">
<register-group-instance description="External Interrupts" register-group-key="exint" address-space-key="data" offset="0x0"/>
</peripheral>
<peripheral key="tc1" name="TC1" module-key="tc16">
<register-group-instance description="Timer/Counter, 16-bit" register-group-key="tc1" address-space-key="data" offset="0x0"/>
</peripheral>
<peripheral key="wakeup_timer" name="WAKEUP_TIMER" module-key="wakeup_timer">
<register-group-instance description="Wakeup Timer" register-group-key="wakeup_timer" address-space-key="data" offset="0x0"/>
</peripheral>
<peripheral key="battery_protection" name="BATTERY_PROTECTION" module-key="battery_protection">
<register-group-instance description="Battery Protection" register-group-key="battery_protection" address-space-key="data" offset="0x0"/>
</peripheral>
<peripheral key="fet" name="FET" module-key="fet">
<register-group-instance description="FET Control" register-group-key="fet" address-space-key="data" offset="0x0"/>
</peripheral>
<peripheral key="coulomb_counter" name="COULOMB_COUNTER" module-key="coulomb_counter">
<register-group-instance description="Coulomb Counter" register-group-key="coulomb_counter" address-space-key="data" offset="0x0"/>
</peripheral>
<peripheral key="cell_balancing" name="CELL_BALANCING" module-key="cell_balancing">
<register-group-instance description="Cell Balancing" register-group-key="cell_balancing" address-space-key="data" offset="0x0"/>
</peripheral>
<peripheral key="cpu" name="CPU" module-key="cpu">
<register-group-instance description="CPU Registers" register-group-key="cpu" address-space-key="data" offset="0x0"/>
</peripheral>
<peripheral key="wdt" name="WDT" module-key="wdt">
<register-group-instance description="Watchdog Timer" register-group-key="wdt" address-space-key="data" offset="0x0"/>
</peripheral>
<peripheral key="tc0" name="TC0" module-key="tc8">
<register-group-instance description="Timer/Counter, 8-bit" register-group-key="tc0" address-space-key="data" offset="0x0"/>
</peripheral>
<peripheral key="porta" name="PORTA" module-key="gpio_port">
<register-group-instance description="I/O Port" register-group-key="porta" address-space-key="data" offset="0x0"/>
<signals>
<signal name="PA0" pad-key="pa0" index="0" function="PORTA"/>
<signal name="PA1" pad-key="pa1" index="1" function="PORTA"/>
<signal name="PA2" pad-key="pa2" index="2" function="PORTA"/>
<signal name="PA3" pad-key="pa3" index="3" function="PORTA"/>
<signal name="PA4" pad-key="pa4" index="4" function="PORTA"/>
<signal name="PA5" pad-key="pa5" index="5" function="PORTA"/>
<signal name="PA6" pad-key="pa6" index="6" function="PORTA"/>
<signal name="PA7" pad-key="pa7" index="7" function="PORTA"/>
</signals>
</peripheral>
<peripheral key="portb" name="PORTB" module-key="gpio_port">
<register-group-instance description="I/O Port" register-group-key="portb" address-space-key="data" offset="0x0"/>
<signals>
<signal name="PB0" pad-key="pb0" index="0" function="PORTB"/>
<signal name="PB1" pad-key="pb1" index="1" function="PORTB"/>
<signal name="PB2" pad-key="pb2" index="2" function="PORTB"/>
<signal name="PB3" pad-key="pb3" index="3" function="PORTB"/>
<signal name="PB4" pad-key="pb4" index="4" function="PORTB"/>
<signal name="PB5" pad-key="pb5" index="5" function="PORTB"/>
<signal name="PB6" pad-key="pb6" index="6" function="PORTB"/>
<signal name="PB7" pad-key="pb7" index="7" function="PORTB"/>
</signals>
</peripheral>
<peripheral key="portc" name="PORTC" module-key="gpio_port">
<register-group-instance description="I/O Port" register-group-key="portc" address-space-key="data" offset="0x0"/>
<signals>
<signal name="PC0" pad-key="pc0" index="0" function="PORTC"/>
</signals>
</peripheral>
<peripheral key="portd" name="PORTD" module-key="gpio_port">
<register-group-instance description="I/O Port" register-group-key="portd" address-space-key="data" offset="0x0"/>
<signals>
<signal name="PD0" pad-key="pd0" index="0" function="PORTD"/>
<signal name="PD1" pad-key="pd1" index="1" function="PORTD"/>
</signals>
</peripheral>
<peripheral key="boot_load" name="BOOT_LOAD" module-key="boot_load">
<register-group-instance description="Bootloader" register-group-key="boot_load" address-space-key="data" offset="0x0"/>
</peripheral>
<peripheral key="twi" name="TWI" module-key="twi">
<register-group-instance description="Two Wire Serial Interface" register-group-key="twi" address-space-key="data" offset="0x0"/>
</peripheral>
<peripheral key="bandgap" name="BANDGAP" module-key="bandgap">
<register-group-instance description="Bandgap" register-group-key="bandgap" address-space-key="data" offset="0x0"/>
</peripheral>
<peripheral key="eeprom" name="EEPROM" module-key="eeprom">
<register-group-instance description="EEPROM" register-group-key="eeprom" address-space-key="data" offset="0x0"/>
</peripheral>
<peripheral key="fuse" name="FUSE" module-key="fuse">
<register-group-instance description="Fuses" register-group-key="fuse" address-space-key="fuses" offset="0x0"/>
</peripheral>
<peripheral key="lockbit" name="LOCKBIT" module-key="lockbit">
<register-group-instance description="Lockbits" register-group-key="lockbit" address-space-key="lockbits" offset="0x0"/>
</peripheral>
</peripherals>
<modules>
<module key="fuse" name="FUSE" description="Fuses">
<register-group key="fuse" name="FUSE">
<register key="low" name="LOW" offset="0x00" size="1" initial-value="0xCD">
<bit-field key="wdton" name="WDTON" description="Watchdog timer always on" mask="0x80"/>
<bit-field key="eesave" name="EESAVE" description="Preserve EEPROM through the Chip Erase cycle" mask="0x40"/>
<bit-field key="bootsz" name="BOOTSZ" description="Select boot size" mask="0x30"/>
<bit-field key="bootrst" name="BOOTRST" description="Boot Reset vector Enabled" mask="0x08"/>
<bit-field key="sut_cksel" name="SUT_CKSEL" description="Clock Selection" mask="0x07"/>
</register>
<register key="high" name="HIGH" offset="0x01" size="1" initial-value="0xFE">
<bit-field key="ocden" name="OCDEN" description="On-Chip Debug Enabled" mask="0x02"/>
<bit-field key="jtagen" name="JTAGEN" description="JTAG Interface Enabled" mask="0x01"/>
</register>
</register-group>
</module>
<module key="lockbit" name="LOCKBIT" description="Lockbits">
<register-group key="lockbit" name="LOCKBIT">
<register key="lockbit" name="LOCKBIT" offset="0x00" size="1" initial-value="0xFF">
<bit-field key="lb" name="LB" description="Memory Lock" mask="0x03"/>
<bit-field key="blb0" name="BLB0" description="Boot Loader Protection Mode" mask="0x0C"/>
<bit-field key="blb1" name="BLB1" description="Boot Loader Protection Mode" mask="0x30"/>
</register>
</register-group>
</module>
<module key="adc" name="ADC" description="Analog-to-Digital Converter">
<register-group key="adc" name="ADC">
<register key="vadc" name="VADC" description="VADC Data Register Bytes" offset="0x78" size="2"/>
<register key="vadcsr" name="VADCSR" description="The VADC Control and Status register" offset="0x7A" size="1">
<bit-field key="vaden" name="VADEN" description="VADC Enable" mask="0x08"/>
<bit-field key="vadsc" name="VADSC" description="VADC Satrt Conversion" mask="0x04"/>
<bit-field key="vadccif" name="VADCCIF" description="VADC Conversion Complete Interrupt Flag" mask="0x02"/>
<bit-field key="vadccie" name="VADCCIE" description="VADC Conversion Complete Interrupt Enable" mask="0x01"/>
</register>
<register key="vadmux" name="VADMUX" description="The VADC multiplexer Selection Register" offset="0x7C" size="1">
<bit-field key="vadmux" name="VADMUX" description="Analog Channel and Gain Selection Bits" mask="0x0F"/>
</register>
</register-group>
</module>
<module key="exint" name="EXINT" description="External Interrupts">
<register-group key="exint" name="EXINT">
<register key="pcifr" name="PCIFR" description="Pin Change Interrupt Flag Register" offset="0x3B" size="1">
<bit-field key="pcif" name="PCIF" description="Pin Change Interrupt Flags" mask="0x03"/>
</register>
<register key="eifr" name="EIFR" description="External Interrupt Flag Register" offset="0x3C" size="1">
<bit-field key="intf" name="INTF" description="External Interrupt Flags" mask="0x0F"/>
</register>
<register key="eimsk" name="EIMSK" description="External Interrupt Mask Register" offset="0x3D" size="1">
<bit-field key="int" name="INT" description="External Interrupt Request 1 Enable" mask="0x0F"/>
</register>
<register key="pcicr" name="PCICR" description="Pin Change Interrupt Control Register" offset="0x68" size="1">
<bit-field key="pcie" name="PCIE" description="Pin Change Interrupt Enables" mask="0x03"/>
</register>
<register key="eicra" name="EICRA" description="External Interrupt Control Register" offset="0x69" size="1">
<bit-field key="isc3" name="ISC3" description="External Interrupt Sense Control 3 Bits" mask="0xC0"/>
<bit-field key="isc2" name="ISC2" description="External Interrupt Sense Control 2 Bits" mask="0x30"/>
<bit-field key="isc1" name="ISC1" description="External Interrupt Sense Control 1 Bits" mask="0x0C"/>
<bit-field key="isc0" name="ISC0" description="External Interrupt Sense Control 0 Bits" mask="0x03"/>
</register>
<register key="pcmsk0" name="PCMSK0" description="Pin Change Enable Mask Register 0" offset="0x6B" size="1"/>
<register key="pcmsk1" name="PCMSK1" description="Pin Change Enable Mask Register 1" offset="0x6C" size="1"/>
</register-group>
</module>
<module key="tc16" name="TC16" description="Timer/Counter, 16-bit">
<register-group key="tc1" name="TC1">
<register key="tifr1" name="TIFR1" description="Timer/Counter Interrupt Flag register" offset="0x36" size="1">
<bit-field key="ocf1a" name="OCF1A" description="Timer/Counter1 Output Compare Flag A" mask="0x02"/>
<bit-field key="tov1" name="TOV1" description="Timer/Counter1 Overflow Flag" mask="0x01"/>
</register>
<register key="gtccr" name="GTCCR" description="General Timer/Counter Control Register" offset="0x43" size="1">
<bit-field key="tsm" name="TSM" description="Timer/Counter Synchronization Mode" mask="0x80"/>
<bit-field key="psrsync" name="PSRSYNC" description="Prescaler Reset" mask="0x01"/>
</register>
<register key="timsk1" name="TIMSK1" description="Timer/Counter Interrupt Mask Register" offset="0x6F" size="1">
<bit-field key="ocie1a" name="OCIE1A" description="Timer/Counter1 Output Compare Interrupt Enable" mask="0x02"/>
<bit-field key="toie1" name="TOIE1" description="Timer/Counter1 Overflow Interrupt Enable" mask="0x01"/>
</register>
<register key="tccr1b" name="TCCR1B" description="Timer/Counter1 Control Register B" offset="0x81" size="1">
<bit-field key="ctc1" name="CTC1" description="Clear Timer/Counter on Compare Match" mask="0x08"/>
<bit-field key="cs1" name="CS1" description="Clock Select1 bits" mask="0x07"/>
</register>
<register key="tcnt1" name="TCNT1" description="Timer Counter 1 Bytes" offset="0x84" size="2"/>
<register key="ocr1al" name="OCR1AL" description="Output Compare Register 1A Low byte" offset="0x88" size="1"/>
<register key="ocr1ah" name="OCR1AH" description="Output Compare Register 1A High byte" offset="0x89" size="1"/>
</register-group>
</module>
<module key="wakeup_timer" name="WAKEUP_TIMER" description="Wakeup Timer">
<register-group key="wakeup_timer" name="WAKEUP_TIMER">
<register key="wutcsr" name="WUTCSR" description="Wake-up Timer Control Register" offset="0x62" size="1">
<bit-field key="wutif" name="WUTIF" description="Wake-up Timer Interrupt Flag" mask="0x80"/>
<bit-field key="wutie" name="WUTIE" description="Wake-up Timer Interrupt Enable" mask="0x40"/>
<bit-field key="wutcf" name="WUTCF" description="Wake-up timer Calibration Flag" mask="0x20"/>
<bit-field key="wutr" name="WUTR" description="Wake-up Timer Reset" mask="0x10"/>
<bit-field key="wute" name="WUTE" description="Wake-up Timer Enable" mask="0x08"/>
<bit-field key="wutp" name="WUTP" description="Wake-up Timer Prescaler Bits" mask="0x07"/>
</register>
</register-group>
</module>
<module key="battery_protection" name="BATTERY_PROTECTION" description="Battery Protection">
<register-group key="battery_protection" name="BATTERY_PROTECTION">
<register key="bpir" name="BPIR" description="Battery Protection Interrupt Register" offset="0xF2" size="1">
<bit-field key="duvif" name="DUVIF" description="Deep Under-voltage Early Warning Interrupt Flag" mask="0x80"/>
<bit-field key="cocif" name="COCIF" description="Charge Over-current Protection Activated Interrupt Flag" mask="0x40"/>
<bit-field key="docif" name="DOCIF" mask="0x20"/>
<bit-field key="scif" name="SCIF" mask="0x10"/>
<bit-field key="duvie" name="DUVIE" description="Deep Under-voltage Early Warning Interrupt Enable" mask="0x08"/>
<bit-field key="cocie" name="COCIE" mask="0x04"/>
<bit-field key="docie" name="DOCIE" mask="0x02"/>
<bit-field key="scie" name="SCIE" mask="0x01"/>
</register>
<register key="bpduv" name="BPDUV" description="Battery Protection Deep Under Voltage Register" offset="0xF3" size="1">
<bit-field key="duvt" name="DUVT" mask="0x30"/>
<bit-field key="dudl" name="DUDL" mask="0x0F"/>
</register>
<register key="bpscd" name="BPSCD" description="Battery Protection Short-Circuit Detection Level Register" offset="0xF4" size="1">
<bit-field key="scdl" name="SCDL" mask="0x0F"/>
</register>
<register key="bpocd" name="BPOCD" description="Battery Protection OverCurrent Detection Level Register" offset="0xF5" size="1">
<bit-field key="dcdl" name="DCDL" mask="0xF0"/>
<bit-field key="ccdl" name="CCDL" mask="0x0F"/>
</register>
<register key="cbptr" name="CBPTR" description="Current Battery Protection Timing Register" offset="0xF6" size="1">
<bit-field key="scpt" name="SCPT" mask="0xF0"/>
<bit-field key="ocpt" name="OCPT" mask="0x0F"/>
</register>
<register key="bpcr" name="BPCR" description="Battery Protection Control Register" offset="0xF7" size="1">
<bit-field key="duvd" name="DUVD" mask="0x08"/>
<bit-field key="scd" name="SCD" mask="0x04"/>
<bit-field key="dcd" name="DCD" mask="0x02"/>
<bit-field key="ccd" name="CCD" mask="0x01"/>
</register>
<register key="bpplr" name="BPPLR" description="Battery Protection Parameter Lock Register" offset="0xF8" size="1">
<bit-field key="bpple" name="BPPLE" description="Battery Protection Parameter Lock Enable" mask="0x02"/>
<bit-field key="bppl" name="BPPL" description="Battery Protection Parameter Lock" mask="0x01"/>
</register>
</register-group>
</module>
<module key="fet" name="FET" description="FET Control">
<register-group key="fet" name="FET">
<register key="fcsr" name="FCSR" offset="0xF0" size="1">
<bit-field key="pwmoc" name="PWMOC" description="Pulse Width Modulation of OC output" mask="0x20"/>
<bit-field key="pwmopc" name="PWMOPC" description="Pulse Width Modulation Modulation of OPC output" mask="0x10"/>
<bit-field key="cps" name="CPS" description="Current Protection Status" mask="0x08"/>
<bit-field key="dfe" name="DFE" description="Discharge FET Enable" mask="0x04"/>
<bit-field key="cfe" name="CFE" description="Charge FET Enable" mask="0x02"/>
<bit-field key="pfd" name="PFD" description="Precharge FET disable" mask="0x01"/>
</register>
</register-group>
</module>
<module key="coulomb_counter" name="COULOMB_COUNTER" description="Coulomb Counter">
<register-group key="coulomb_counter" name="COULOMB_COUNTER">
<register key="cadac0" name="CADAC0" description="ADC Accumulate Current" offset="0xE0" size="1"/>
<register key="cadac1" name="CADAC1" description="ADC Accumulate Current" offset="0xE1" size="1"/>
<register key="cadac2" name="CADAC2" description="ADC Accumulate Current" offset="0xE2" size="1"/>
<register key="cadac3" name="CADAC3" description="ADC Accumulate Current" offset="0xE3" size="1"/>
<register key="cadcsra" name="CADCSRA" description="CC-ADC Control and Status Register A" offset="0xE4" size="1">
<bit-field key="caden" name="CADEN" description="When the CADEN bit is cleared (zero), the CC-ADC is disabled. When the CADEN bit is set (one), the CC-ADC will continuously measure the voltage drop over the external sense resistor RSENSE. In Power-down, only the Regular Current detection is active. In Power-off, the CC-ADC is always disabled." mask="0x80"/>
<bit-field key="cadub" name="CADUB" description="CC_ADC Update Busy" mask="0x20"/>
<bit-field key="cadas" name="CADAS" description="CC_ADC Accumulate Current Select Bits" mask="0x18"/>
<bit-field key="cadsi" name="CADSI" description="The CADSI bits determine the current sampling interval for the Regular Current detection in Power-down mode. The actual settings remain to be determined." mask="0x06"/>
<bit-field key="cadse" name="CADSE" description="When the CADSE bit is written to one, the ongoing CC-ADC conversion is aborted, and the CC-ADC enters Regular Current detection mode." mask="0x01"/>
</register>
<register key="cadcsrb" name="CADCSRB" description="CC-ADC Control and Status Register B" offset="0xE5" size="1">
<bit-field key="cadacie" name="CADACIE" mask="0x40"/>
<bit-field key="cadrcie" name="CADRCIE" description="Regular Current Interrupt Enable" mask="0x20"/>
<bit-field key="cadicie" name="CADICIE" description="CAD Instantenous Current Interrupt Enable" mask="0x10"/>
<bit-field key="cadacif" name="CADACIF" description="CC-ADC Accumulate Current Interrupt Flag" mask="0x04"/>
<bit-field key="cadrcif" name="CADRCIF" description="CC-ADC Accumulate Current Interrupt Flag" mask="0x02"/>
<bit-field key="cadicif" name="CADICIF" description="CC-ADC Instantaneous Current Interrupt Flag" mask="0x01"/>
</register>
<register key="cadrcc" name="CADRCC" description="CC-ADC Regular Charge Current" offset="0xE6" size="1"/>
<register key="cadrdc" name="CADRDC" description="CC-ADC Regular Discharge Current" offset="0xE7" size="1"/>
<register key="cadic" name="CADIC" description="CC-ADC Instantaneous Current" offset="0xE8" size="2"/>
</register-group>
</module>
<module key="cell_balancing" name="CELL_BALANCING" description="Cell Balancing">
<register-group key="cell_balancing" name="CELL_BALANCING">
<register key="cbcr" name="CBCR" description="Cell Balancing Control Register" offset="0xF1" size="1">
<bit-field key="cbe" name="CBE" description="Cell Balancing Enables" mask="0x0F"/>
</register>
</register-group>
</module>
<module key="cpu" name="CPU" description="CPU Registers">
<register-group key="cpu" name="CPU">
<register key="gpior0" name="GPIOR0" description="General Purpose IO Register 0" offset="0x3E" size="1"/>
<register key="gpior1" name="GPIOR1" description="General Purpose IO Register 1" offset="0x4A" size="1"/>
<register key="gpior2" name="GPIOR2" description="General Purpose IO Register 2" offset="0x4B" size="1"/>
<register key="smcr" name="SMCR" description="Sleep Mode Control Register" offset="0x53" size="1">
<bit-field key="sm" name="SM" description="Sleep Mode Select bits" mask="0x0E"/>
<bit-field key="se" name="SE" description="Sleep Enable" mask="0x01"/>
</register>
<register key="mcusr" name="MCUSR" description="MCU Status Register" offset="0x54" size="1">
<bit-field key="jtrf" name="JTRF" description="JTAG Reset Flag" mask="0x10"/>
<bit-field key="wdrf" name="WDRF" description="Watchdog Reset Flag" mask="0x08"/>
<bit-field key="bodrf" name="BODRF" description="Brown-out Reset Flag" mask="0x04"/>
<bit-field key="extrf" name="EXTRF" description="External Reset Flag" mask="0x02"/>
<bit-field key="porf" name="PORF" description="Power-on reset flag" mask="0x01"/>
</register>
<register key="mcucr" name="MCUCR" description="MCU Control Register" offset="0x55" size="1">
<bit-field key="jtd" name="JTD" description="JTAG Disable" mask="0x80"/>
<bit-field key="pud" name="PUD" description="Pull-up disable" mask="0x10"/>
<bit-field key="ivsel" name="IVSEL" description="Interrupt Vector Select" mask="0x02"/>
<bit-field key="ivce" name="IVCE" description="Interrupt Vector Change Enable" mask="0x01"/>
</register>
<register key="sp" name="SP" description="Stack Pointer" offset="0x5D" size="2"/>
<register key="sreg" name="SREG" description="Status Register" offset="0x5F" size="1">
<bit-field key="i" name="I" description="Global Interrupt Enable" mask="0x80"/>
<bit-field key="t" name="T" description="Bit Copy Storage" mask="0x40"/>
<bit-field key="h" name="H" description="Half Carry Flag" mask="0x20"/>
<bit-field key="s" name="S" description="Sign Bit" mask="0x10"/>
<bit-field key="v" name="V" description="Two's Complement Overflow Flag" mask="0x08"/>
<bit-field key="n" name="N" description="Negative Flag" mask="0x04"/>
<bit-field key="z" name="Z" description="Zero Flag" mask="0x02"/>
<bit-field key="c" name="C" description="Carry Flag" mask="0x01"/>
</register>
<register key="prr0" name="PRR0" description="Power Reduction Register 0" offset="0x64" size="1">
<bit-field key="prtwi" name="PRTWI" description="Power Reduction TWI" mask="0x08"/>
<bit-field key="prtim1" name="PRTIM1" description="Power Reduction Timer/Counter1" mask="0x04"/>
<bit-field key="prtim0" name="PRTIM0" description="Power Reduction Timer/Counter0" mask="0x02"/>
<bit-field key="prvadc" name="PRVADC" description="Power Reduction V-ADC" mask="0x01"/>
</register>
<register key="fosccal" name="FOSCCAL" description="Fast Oscillator Calibration Value" offset="0x66" size="1"/>
<register key="didr0" name="DIDR0" description="Digital Input Disable Register" offset="0x7E" size="1"/>
<register key="ccsr" name="CCSR" description="Clock Control and Status Register" offset="0xC0" size="1">
<bit-field key="xoe" name="XOE" description="32 kHz Crystal Oscillator Enable" mask="0x02"/>
<bit-field key="acs" name="ACS" description="Asynchronous Clock Select" mask="0x01"/>
</register>
</register-group>
</module>
<module key="wdt" name="WDT" description="Watchdog Timer">
<register-group key="wdt" name="WDT">
<register key="wdtcsr" name="WDTCSR" description="Watchdog Timer Control Register" offset="0x60" size="1">
<bit-field key="wdif" name="WDIF" description="Watchdog Timeout Interrupt Flag" mask="0x80"/>
<bit-field key="wdie" name="WDIE" description="Watchdog Timeout Interrupt Enable" mask="0x40"/>
<bit-field key="wdp" name="WDP" description="Watchdog Timer Prescaler Bits" mask="0x27"/>
<bit-field key="wdce" name="WDCE" description="Watchdog Change Enable" mask="0x10"/>
<bit-field key="wde" name="WDE" description="Watch Dog Enable" mask="0x08"/>
</register>
</register-group>
</module>
<module key="tc8" name="TC8" description="Timer/Counter, 8-bit">
<register-group key="tc0" name="TC0">
<register key="tifr0" name="TIFR0" description="Timer/Counter Interrupt Flag register" offset="0x35" size="1">
<bit-field key="ocf0b" name="OCF0B" description="Output Compare Flag" mask="0x04"/>
<bit-field key="ocf0a" name="OCF0A" description="Output Compare Flag" mask="0x02"/>
<bit-field key="tov0" name="TOV0" description="Overflow Flag" mask="0x01"/>
</register>
<register key="tccr0a" name="TCCR0A" description="Timer/Counter0 Control Register" offset="0x44" size="1">
<bit-field key="com0a" name="COM0A" description="Force Output Compare" mask="0xC0"/>
<bit-field key="com0b" name="COM0B" mask="0x30"/>
<bit-field key="wgm0" name="WGM0" description="Clock Select0 bits" mask="0x03"/>
</register>
<register key="tccr0b" name="TCCR0B" description="Timer/Counter0 Control Register" offset="0x45" size="1">
<bit-field key="foc0a" name="FOC0A" description="Force Output Compare" mask="0x80"/>
<bit-field key="foc0b" name="FOC0B" description="Waveform Generation Mode" mask="0x40"/>
<bit-field key="wgm02" name="WGM02" mask="0x08"/>
<bit-field key="cs0" name="CS0" description="Clock Select0 bits" mask="0x07"/>
</register>
<register key="tcnt0" name="TCNT0" description="Timer Counter 0" offset="0x46" size="1"/>
<register key="ocr0a" name="OCR0A" description="Output compare Register A" offset="0x47" size="1">
<bit-field key="ocr0a" name="OCR0A" mask="0xFF"/>
</register>
<register key="ocr0b" name="OCR0B" description="Output compare Register B" offset="0x48" size="1">
<bit-field key="ocr0b" name="OCR0B" mask="0xFF"/>
</register>
<register key="timsk0" name="TIMSK0" description="Timer/Counter Interrupt Mask Register" offset="0x6E" size="1">
<bit-field key="ocie0b" name="OCIE0B" description="Output Compare Interrupt Enable" mask="0x04"/>
<bit-field key="ocie0a" name="OCIE0A" description="Output Compare Interrupt Enable" mask="0x02"/>
<bit-field key="toie0" name="TOIE0" description="Overflow Interrupt Enable" mask="0x01"/>
</register>
</register-group>
</module>
<module key="gpio_port" name="PORT" description="I/O Port">
<register-group key="porta" name="PORTA">
<register key="pina" name="PINA" description="Port A Input Pins" offset="0x20" size="1"/>
<register key="ddra" name="DDRA" description="Port A Data Direction Register" offset="0x21" size="1"/>
<register key="porta" name="PORTA" description="Port A Data Register" offset="0x22" size="1"/>
</register-group>
<register-group key="portb" name="PORTB">
<register key="pinb" name="PINB" description="Port B Input Pins" offset="0x23" size="1"/>
<register key="ddrb" name="DDRB" description="Port B Data Direction Register" offset="0x24" size="1"/>
<register key="portb" name="PORTB" description="Port B Data Register" offset="0x25" size="1"/>
</register-group>
<register-group key="portc" name="PORTC">
<register key="portc" name="PORTC" description="Port C Data Register" offset="0x28" size="1"/>
</register-group>
<register-group key="portd" name="PORTD">
<register key="pind" name="PIND" description="Input Pins, Port D" offset="0x29" size="1"/>
<register key="ddrd" name="DDRD" description="Data Direction Register, Port D" offset="0x2A" size="1"/>
<register key="portd" name="PORTD" description="Data Register, Port D" offset="0x2B" size="1"/>
</register-group>
</module>
<module key="boot_load" name="BOOT_LOAD" description="Bootloader">
<register-group key="boot_load" name="BOOT_LOAD">
<register key="spmcsr" name="SPMCSR" description="Store Program Memory Control Register" offset="0x57" size="1">
<bit-field key="spmie" name="SPMIE" description="SPM Interrupt Enable" mask="0x80"/>
<bit-field key="rwwsb" name="RWWSB" description="Read While Write Section Busy" mask="0x40"/>
<bit-field key="sigrd" name="SIGRD" description="Signature Row Read" mask="0x20"/>
<bit-field key="rwwsre" name="RWWSRE" description="Read While Write section read enable" mask="0x10"/>
<bit-field key="blbset" name="BLBSET" description="Boot Lock Bit Set" mask="0x08"/>
<bit-field key="pgwrt" name="PGWRT" description="Page Write" mask="0x04"/>
<bit-field key="pgers" name="PGERS" description="Page Erase" mask="0x02"/>
<bit-field key="spmen" name="SPMEN" description="Store Program Memory Enable" mask="0x01"/>
</register>
</register-group>
</module>
<module key="twi" name="TWI" description="Two Wire Serial Interface">
<register-group key="twi" name="TWI">
<register key="twbr" name="TWBR" description="TWI Bit Rate register" offset="0xB8" size="1"/>
<register key="twsr" name="TWSR" description="TWI Status Register" offset="0xB9" size="1">
<bit-field key="tws" name="TWS" description="TWI Status" mask="0xF8"/>
<bit-field key="twps" name="TWPS" description="TWI Prescaler" mask="0x03"/>
</register>
<register key="twar" name="TWAR" description="TWI (Slave) Address register" offset="0xBA" size="1">
<bit-field key="twa" name="TWA" description="TWI (Slave) Address register Bits" mask="0xFE"/>
<bit-field key="twgce" name="TWGCE" description="TWI General Call Recognition Enable Bit" mask="0x01"/>
</register>
<register key="twdr" name="TWDR" description="TWI Data register" offset="0xBB" size="1"/>
<register key="twcr" name="TWCR" description="TWI Control Register" offset="0xBC" size="1">
<bit-field key="twint" name="TWINT" description="TWI Interrupt Flag" mask="0x80"/>
<bit-field key="twea" name="TWEA" description="TWI Enable Acknowledge Bit" mask="0x40"/>
<bit-field key="twsta" name="TWSTA" description="TWI Start Condition Bit" mask="0x20"/>
<bit-field key="twsto" name="TWSTO" description="TWI Stop Condition Bit" mask="0x10"/>
<bit-field key="twwc" name="TWWC" description="TWI Write Collition Flag" mask="0x08"/>
<bit-field key="twen" name="TWEN" description="TWI Enable Bit" mask="0x04"/>
<bit-field key="twie" name="TWIE" description="TWI Interrupt Enable" mask="0x01"/>
</register>
<register key="twamr" name="TWAMR" description="TWI (Slave) Address Mask Register" offset="0xBD" size="1">
<bit-field key="twam" name="TWAM" mask="0xFE"/>
</register>
<register key="twbcsr" name="TWBCSR" description="TWI Bus Control and Status Register" offset="0xBE" size="1">
<bit-field key="twbcif" name="TWBCIF" description="TWI Bus Connect/Disconnect Interrupt Flag" mask="0x80"/>
<bit-field key="twbcie" name="TWBCIE" description="TWI Bus Connect/Disconnect Interrupt Enable" mask="0x40"/>
<bit-field key="twbdt" name="TWBDT" description="TWI Bus Disconnect Time-out Period" mask="0x06"/>
<bit-field key="twbcip" name="TWBCIP" description="TWI Bus Connect/Disconnect Interrupt Polarity" mask="0x01"/>
</register>
</register-group>
</module>
<module key="bandgap" name="BANDGAP" description="Bandgap">
<register-group key="bandgap" name="BANDGAP">
<register key="bgccr" name="BGCCR" description="Bandgap Calibration Register" offset="0xD0" size="1">
<bit-field key="bgd" name="BGD" description="Setting the BGD bit to one will disable the bandgap voltage reference. This bit must be cleared before enabling CC-ADC or V-ADC, and must remain unset while either ADC is enabled." mask="0x80"/>
<bit-field key="bgcc" name="BGCC" description="BG Calibration of PTAT Current Bits" mask="0x3F"/>
</register>
<register key="bgcrr" name="BGCRR" description="Bandgap Calibration of Resistor Ladder" offset="0xD1" size="1"/>
</register-group>
</module>
<module key="eeprom" name="EEPROM" description="EEPROM">
<register-group key="eeprom" name="EEPROM">
<register key="eecr" name="EECR" description="EEPROM Control Register" offset="0x3F" size="1">
<bit-field key="eepm" name="EEPM" description="EEPROM Programming Mode Bits" mask="0x30"/>
<bit-field key="eerie" name="EERIE" description="EEPROM Ready Interrupt Enable" mask="0x08"/>
<bit-field key="eempe" name="EEMPE" description="EEPROM Master Programming Enable" mask="0x04"/>
<bit-field key="eepe" name="EEPE" description="EEPROM Programming Enable" mask="0x02"/>
<bit-field key="eere" name="EERE" description="EEPROM Read Enable" mask="0x01"/>
</register>
<register key="eedr" name="EEDR" description="EEPROM Data Register" offset="0x40" size="1"/>
<register key="eear" name="EEAR" description="EEPROM Address Register Bytes" offset="0x41" size="2"/>
</register-group>
</module>
</modules>
<pads>
<pad key="batt" name="BATT"/>
<pad key="gnd" name="GND"/>
<pad key="ni" name="NI"/>
<pad key="nni" name="NNI"/>
<pad key="nv" name="NV"/>
<pad key="oc" name="OC"/>
<pad key="od" name="OD"/>
<pad key="opc" name="OPC"/>
<pad key="pa0" name="PA0"/>
<pad key="pa1" name="PA1"/>
<pad key="pa2" name="PA2"/>
<pad key="pa3" name="PA3"/>
<pad key="pa4" name="PA4"/>
<pad key="pa5" name="PA5"/>
<pad key="pa6" name="PA6"/>
<pad key="pa7" name="PA7"/>
<pad key="pb0" name="PB0"/>
<pad key="pb1" name="PB1"/>
<pad key="pb2" name="PB2"/>
<pad key="pb3" name="PB3"/>
<pad key="pb4" name="PB4"/>
<pad key="pb5" name="PB5"/>
<pad key="pb6" name="PB6"/>
<pad key="pb7" name="PB7"/>
<pad key="pc0" name="PC0"/>
<pad key="pd0" name="PD0"/>
<pad key="pd1" name="PD1"/>
<pad key="pi" name="PI"/>
<pad key="ppi" name="PPI"/>
<pad key="pv1" name="PV1"/>
<pad key="pv2" name="PV2"/>
<pad key="pv3" name="PV3"/>
<pad key="pv4" name="PV4"/>
<pad key="pvt1" name="PVT1"/>
<pad key="reset" name="RESET"/>
<pad key="scl" name="SCL"/>
<pad key="sda" name="SDA"/>
<pad key="sgnd" name="SGND"/>
<pad key="vcc" name="VCC"/>
<pad key="vfet" name="VFET"/>
<pad key="vref" name="VREF"/>
<pad key="vrefgnd" name="VREFGND"/>
<pad key="vreg" name="VREG"/>
<pad key="xtal1" name="XTAL1"/>
<pad key="xtal2" name="XTAL2"/>
</pads>
<pinouts>
<pinout key="qfp48" name="QFP48" type="qfp">
<pin position="1" pad-key="sgnd"/>
<pin position="2" pad-key="pa0"/>
<pin position="3" pad-key="pa1"/>
<pin position="4" pad-key="pa2"/>
<pin position="5" pad-key="pa3"/>
<pin position="6" pad-key="vreg"/>
<pin position="7" pad-key="vcc"/>
<pin position="8" pad-key="gnd"/>
<pin position="9" pad-key="pa4"/>
<pin position="10" pad-key="pa5"/>
<pin position="11" pad-key="pa6"/>
<pin position="12" pad-key="pa7"/>
<pin position="13" pad-key="reset"/>
<pin position="14" pad-key="xtal1"/>
<pin position="15" pad-key="xtal2"/>
<pin position="16" pad-key="gnd"/>
<pin position="17" pad-key="pb0"/>
<pin position="18" pad-key="pb1"/>
<pin position="19" pad-key="pb2"/>
<pin position="20" pad-key="pb3"/>
<pin position="21" pad-key="pb4"/>
<pin position="22" pad-key="pb5"/>
<pin position="23" pad-key="scl"/>
<pin position="24" pad-key="sda"/>
<pin position="25" pad-key="pb6"/>
<pin position="26" pad-key="pb7"/>
<pin position="27" pad-key="pd0"/>
<pin position="28" pad-key="pd1"/>
<pin position="29" pad-key="gnd"/>
<pin position="30" pad-key="pc0"/>
<pin position="31" pad-key="batt"/>
<pin position="32" pad-key="opc"/>
<pin position="33" pad-key="oc"/>
<pin position="34" pad-key="vfet"/>
<pin position="35" pad-key="od"/>
<pin position="36" pad-key="pvt1"/>
<pin position="37" pad-key="gnd"/>
<pin position="38" pad-key="pv4"/>
<pin position="39" pad-key="pv3"/>
<pin position="40" pad-key="pv2"/>
<pin position="41" pad-key="pv1"/>
<pin position="42" pad-key="nv"/>
<pin position="43" pad-key="vref"/>
<pin position="44" pad-key="vrefgnd"/>
<pin position="45" pad-key="ppi"/>
<pin position="46" pad-key="pi"/>
<pin position="47" pad-key="ni"/>
<pin position="48" pad-key="nni"/>
</pinout>
</pinouts>
<variants>
<variant key="atmega406_1aau" name="ATmega406-1AAU" pinout-key="qfp48"/>
</variants>
</device>