Files
BloomPatched/resources/TargetDescriptionFiles/AVR8/ATTINY167.xml
2025-11-23 20:39:37 +04:00

773 lines
57 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<device name="ATtiny167" family="AVR8" configuration-value="attiny167" architecture="AVRe" avr-family="TINY">
<property-groups>
<property-group key="signatures">
<property key="jtagid" value="0x9487"/>
<property key="signature0" value="0x1e"/>
<property key="signature1" value="0x94"/>
<property key="signature2" value="0x87"/>
</property-group>
<property-group key="ocd">
<property key="ocd_revision" value="1"/>
<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="isp_interface_stk600">
<property key="ispenterprogmode_timeout" value="200"/>
<property key="ispenterprogmode_stabdelay" value="100"/>
<property key="ispenterprogmode_cmdexedelay" value="25"/>
<property key="ispenterprogmode_synchloops" value="32"/>
<property key="ispenterprogmode_bytedelay" value="0"/>
<property key="ispenterprogmode_pollindex" value="3"/>
<property key="ispenterprogmode_pollvalue" value="0x53"/>
<property key="ispleaveprogmode_predelay" value="1"/>
<property key="ispleaveprogmode_postdelay" value="1"/>
<property key="ispchiperase_erasedelay" value="10"/>
<property key="ispchiperase_pollmethod" value="0"/>
<property key="ispprogramflash_mode" value="0x41"/>
<property key="ispprogramflash_blocksize" value="64"/>
<property key="ispprogramflash_delay" value="10"/>
<property key="ispprogramflash_cmd1" value="0x40"/>
<property key="ispprogramflash_cmd2" value="0x4C"/>
<property key="ispprogramflash_cmd3" value="0x00"/>
<property key="ispprogramflash_pollval1" value="0x00"/>
<property key="ispprogramflash_pollval2" value="0x00"/>
<property key="ispprogrameeprom_mode" value="0x41"/>
<property key="ispprogrameeprom_blocksize" value="4"/>
<property key="ispprogrameeprom_delay" value="10"/>
<property key="ispprogrameeprom_cmd1" value="0xC1"/>
<property key="ispprogrameeprom_cmd2" value="0xC2"/>
<property key="ispprogrameeprom_cmd3" value="0x00"/>
<property key="ispprogrameeprom_pollval1" value="0x00"/>
<property key="ispprogrameeprom_pollval2" value="0x00"/>
<property key="ispreadflash_blocksize" value="256"/>
<property key="ispreadeeprom_blocksize" value="256"/>
<property key="ispreadfuse_pollindex" value="4"/>
<property key="ispreadlock_pollindex" value="4"/>
<property key="ispreadsign_pollindex" value="4"/>
<property key="ispreadosccal_pollindex" value="4"/>
</property-group>
<property-group key="pp_interface_stk600">
<property key="ppcontrolstack" value="0x0E 0x1E 0x0E 0x1E 0x2E 0x3E 0x2E 0x3E 0x4E 0x5E 0x4E 0x5E 0x6E 0x7E 0x6E 0x7E 0x06 0x16 0x46 0x56 0x0A 0x1A 0x4A 0x5A 0x1E 0x7C 0x00 0x01 0x00 0x00 0x00 0x00"/>
<property key="ppenterprogmode_stabdelay" value="100"/>
<property key="ppenterprogmode_progmodedelay" value="0"/>
<property key="ppenterprogmode_latchcycles" value="5"/>
<property key="ppenterprogmode_togglevtg" value="1"/>
<property key="ppenterprogmode_poweroffdelay" value="20"/>
<property key="ppenterprogmode_resetdelayms" value="1"/>
<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="0x0B"/>
<property key="ppprogramflash_blocksize" value="256"/>
<property key="ppreadflash_blocksize" value="256"/>
<property key="ppprogrameeprom_polltimeout" value="5"/>
<property key="ppprogrameeprom_mode" value="0x05"/>
<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="isp_interface">
<property key="ispenterprogmode_timeout" value="200"/>
<property key="ispenterprogmode_stabdelay" value="100"/>
<property key="ispenterprogmode_cmdexedelay" value="25"/>
<property key="ispenterprogmode_synchloops" value="32"/>
<property key="ispenterprogmode_bytedelay" value="0"/>
<property key="ispenterprogmode_pollindex" value="3"/>
<property key="ispenterprogmode_pollvalue" value="0x53"/>
<property key="ispleaveprogmode_predelay" value="1"/>
<property key="ispleaveprogmode_postdelay" value="1"/>
<property key="ispchiperase_erasedelay" value="10"/>
<property key="ispchiperase_pollmethod" value="0"/>
<property key="ispprogramflash_mode" value="0x41"/>
<property key="ispprogramflash_blocksize" value="64"/>
<property key="ispprogramflash_delay" value="10"/>
<property key="ispprogramflash_cmd1" value="0x40"/>
<property key="ispprogramflash_cmd2" value="0x4C"/>
<property key="ispprogramflash_cmd3" value="0x00"/>
<property key="ispprogramflash_pollval1" value="0x00"/>
<property key="ispprogramflash_pollval2" value="0x00"/>
<property key="ispprogrameeprom_mode" value="0x41"/>
<property key="ispprogrameeprom_blocksize" value="4"/>
<property key="ispprogrameeprom_delay" value="10"/>
<property key="ispprogrameeprom_cmd1" value="0xC1"/>
<property key="ispprogrameeprom_cmd2" value="0xC2"/>
<property key="ispprogrameeprom_cmd3" value="0x00"/>
<property key="ispprogrameeprom_pollval1" value="0x00"/>
<property key="ispprogrameeprom_pollval2" value="0x00"/>
<property key="ispreadflash_blocksize" value="256"/>
<property key="ispreadeeprom_blocksize" value="256"/>
<property key="ispreadfuse_pollindex" value="4"/>
<property key="ispreadlock_pollindex" value="4"/>
<property key="ispreadsign_pollindex" value="4"/>
<property key="ispreadosccal_pollindex" value="4"/>
</property-group>
<property-group key="pp_interface">
<property key="ppcontrolstack" value="0x0E 0x1E 0x0E 0x1E 0x2E 0x3E 0x2E 0x3E 0x4E 0x5E 0x4E 0x5E 0x6E 0x7E 0x6E 0x7E 0x06 0x16 0x46 0x56 0x0A 0x1A 0x4A 0x5A 0x1E 0x7C 0x00 0x01 0x00 0x00 0x00 0x00"/>
<property key="ppenterprogmode_stabdelay" value="100"/>
<property key="ppenterprogmode_progmodedelay" value="0"/>
<property key="ppenterprogmode_latchcycles" value="5"/>
<property key="ppenterprogmode_togglevtg" value="1"/>
<property key="ppenterprogmode_poweroffdelay" value="15"/>
<property key="ppenterprogmode_resetdelayms" value="1"/>
<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="0x0D"/>
<property key="ppprogramflash_blocksize" value="256"/>
<property key="ppreadflash_blocksize" value="256"/>
<property key="ppprogrameeprom_polltimeout" value="5"/>
<property key="ppprogrameeprom_mode" value="0x05"/>
<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-groups>
<address-spaces>
<address-space key="prog" start="0x00000000" size="16384" endianness="little">
<memory-segment key="internal_program_memory" name="Internal FLASH" type="flash" start="0x00000000" size="16384" 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="3" endianness="little">
<memory-segment key="fuses" name="Fuses" type="fuses" start="0x00000000" size="3" 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="768" 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="512" 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-space key="osccal" start="0x00000000" size="1" endianness="little">
<memory-segment key="osccal" name="OSCCAL" type="osccal" start="0x00000000" size="1" access="R" executable="0"/>
</address-space>
</address-spaces>
<physical-interfaces>
<physical-interface value="debug_wire">
<signals>
<signal name="dW" pad-key="pb7"/>
</signals>
</physical-interface>
<physical-interface value="isp">
<signals>
<signal name="RESET" pad-key="pb7"/>
<signal name="MOSI" pad-key="pa4"/>
<signal name="MISO" pad-key="pa2"/>
<signal name="SCLK" pad-key="pa5"/>
</signals>
</physical-interface>
<physical-interface value="hvpp"/>
</physical-interfaces>
<peripherals>
<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" alternative="false" index="0" function="default"/>
<signal name="PA1" pad-key="pa1" alternative="false" index="1" function="default"/>
<signal name="PA2" pad-key="pa2" alternative="false" index="2" function="default"/>
<signal name="PA3" pad-key="pa3" alternative="false" index="3" function="default"/>
<signal name="PA4" pad-key="pa4" alternative="false" index="4" function="default"/>
<signal name="PA5" pad-key="pa5" alternative="false" index="5" function="default"/>
<signal name="PA6" pad-key="pa6" alternative="false" index="6" function="default"/>
<signal name="PA7" pad-key="pa7" alternative="false" index="7" function="default"/>
</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" alternative="false" index="0" function="default"/>
<signal name="PB1" pad-key="pb1" alternative="false" index="1" function="default"/>
<signal name="PB2" pad-key="pb2" alternative="false" index="2" function="default"/>
<signal name="PB3" pad-key="pb3" alternative="false" index="3" function="default"/>
<signal name="PB4" pad-key="pb4" alternative="false" index="4" function="default"/>
<signal name="PB5" pad-key="pb5" alternative="false" index="5" function="default"/>
<signal name="PB6" pad-key="pb6" alternative="false" index="6" function="default"/>
<signal name="PB7" pad-key="pb7" alternative="false" index="7" function="default"/>
</signals>
</peripheral>
<peripheral key="linuart" name="LINUART" module-key="linuart">
<register-group-instance description="Local Interconnect Network" register-group-key="linuart" address-space-key="data" offset="0x0"/>
</peripheral>
<peripheral key="usi" name="USI" module-key="usi">
<register-group-instance description="Universal Serial Interface" register-group-key="usi" address-space-key="data" offset="0x0"/>
</peripheral>
<peripheral key="tc0" name="TC0" module-key="tc8_async">
<register-group-instance description="Timer/Counter, 8-bit Async" register-group-key="tc0" 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="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="eeprom" name="EEPROM" module-key="eeprom">
<register-group-instance description="EEPROM" register-group-key="eeprom" address-space-key="data" offset="0x0"/>
</peripheral>
<peripheral key="spi" name="SPI" module-key="spi">
<register-group-instance description="Serial Peripheral Interface" register-group-key="spi" address-space-key="data" offset="0x0"/>
</peripheral>
<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="current_source" name="CURRENT_SOURCE" module-key="current_source">
<register-group-instance description="Current Source" register-group-key="current_source" address-space-key="data" offset="0x0"/>
</peripheral>
<peripheral key="ac" name="AC" module-key="ac">
<register-group-instance description="Analog Comparator" register-group-key="ac" 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="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="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="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="0x62">
<bit-field key="ckdiv8" name="CKDIV8" description="Divide clock by 8 internally" mask="0x80"/>
<bit-field key="ckout" name="CKOUT" description="Clock output on PORTB5" mask="0x40"/>
<bit-field key="sut_cksel" name="SUT_CKSEL" description="Select Clock source" mask="0x3F"/>
</register>
<register key="high" name="HIGH" offset="0x01" size="1" initial-value="0xDF">
<bit-field key="rstdisbl" name="RSTDISBL" description="Reset Disabled (Enable PB7 as i/o pin)" mask="0x80"/>
<bit-field key="dwen" name="DWEN" description="Debug Wire enable" mask="0x40"/>
<bit-field key="spien" name="SPIEN" description="Serial program downloading (SPI) enabled" mask="0x20"/>
<bit-field key="wdton" name="WDTON" description="Watch-dog Timer always ON" mask="0x10"/>
<bit-field key="eesave" name="EESAVE" description="Preserve EEPROM through the Chip Erase cycle" mask="0x08"/>
<bit-field key="bodlevel" name="BODLEVEL" description="Brown-out Detector trigger level" mask="0x07"/>
</register>
<register key="extended" name="EXTENDED" offset="0x02" size="1" initial-value="0xFF">
<bit-field key="selfprgen" name="SELFPRGEN" description="Self Programming enable" 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"/>
</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>
</module>
<module key="linuart" name="LINUART" description="Local Interconnect Network">
<register-group key="linuart" name="LINUART">
<register key="lincr" name="LINCR" description="LIN Control Register" offset="0xC8" size="1">
<bit-field key="lswres" name="LSWRES" description="Software Reset" mask="0x80"/>
<bit-field key="lin13" name="LIN13" description="LIN Standard" mask="0x40"/>
<bit-field key="lconf" name="LCONF" description="LIN Configuration bits" mask="0x30"/>
<bit-field key="lena" name="LENA" description="LIN or UART Enable" mask="0x08"/>
<bit-field key="lcmd" name="LCMD" description="LIN Command and Mode bits" mask="0x07"/>
</register>
<register key="linsir" name="LINSIR" description="LIN Status and Interrupt Register" offset="0xC9" size="1">
<bit-field key="lidst" name="LIDST" description="Identifier Status bits" mask="0xE0"/>
<bit-field key="lbusy" name="LBUSY" description="Busy Signal" mask="0x10"/>
<bit-field key="lerr" name="LERR" description="Error Interrupt" mask="0x08"/>
<bit-field key="lidok" name="LIDOK" description="Identifier Interrupt" mask="0x04"/>
<bit-field key="ltxok" name="LTXOK" description="Transmit Performed Interrupt" mask="0x02"/>
<bit-field key="lrxok" name="LRXOK" description="Receive Performed Interrupt" mask="0x01"/>
</register>
<register key="linenir" name="LINENIR" description="LIN Enable Interrupt Register" offset="0xCA" size="1">
<bit-field key="lenerr" name="LENERR" description="Enable Error Interrupt" mask="0x08"/>
<bit-field key="lenidok" name="LENIDOK" description="Enable Identifier Interrupt" mask="0x04"/>
<bit-field key="lentxok" name="LENTXOK" description="Enable Transmit Performed Interrupt" mask="0x02"/>
<bit-field key="lenrxok" name="LENRXOK" description="Enable Receive Performed Interrupt" mask="0x01"/>
</register>
<register key="linerr" name="LINERR" description="LIN Error Register" offset="0xCB" size="1">
<bit-field key="labort" name="LABORT" description="Abort Flag" mask="0x80"/>
<bit-field key="ltoerr" name="LTOERR" description="Frame Time Out Error Flag" mask="0x40"/>
<bit-field key="loverr" name="LOVERR" description="Overrun Error Flag" mask="0x20"/>
<bit-field key="lferr" name="LFERR" description="Framing Error Flag" mask="0x10"/>
<bit-field key="lserr" name="LSERR" description="Synchronization Error Flag" mask="0x08"/>
<bit-field key="lperr" name="LPERR" description="Parity Error Flag" mask="0x04"/>
<bit-field key="lcerr" name="LCERR" description="Checksum Error Flag" mask="0x02"/>
<bit-field key="lberr" name="LBERR" description="Bit Error Flag" mask="0x01"/>
</register>
<register key="linbtr" name="LINBTR" description="LIN Bit Timing Register" offset="0xCC" size="1">
<bit-field key="ldisr" name="LDISR" description="Disable Bit Timing Resynchronization" mask="0x80"/>
<bit-field key="lbt" name="LBT" description="LIN Bit Timing bits" mask="0x3F"/>
</register>
<register key="linbrrl" name="LINBRRL" description="LIN Baud Rate Low Register" offset="0xCD" size="1">
<bit-field key="ldiv" name="LDIV" mask="0xFF"/>
</register>
<register key="linbrrh" name="LINBRRH" description="LIN Baud Rate High Register" offset="0xCE" size="1">
<bit-field key="ldiv" name="LDIV" mask="0x0F"/>
</register>
<register key="lindlr" name="LINDLR" description="LIN Data Length Register" offset="0xCF" size="1">
<bit-field key="ltxdl" name="LTXDL" description="LIN Transmit Data Length bits" mask="0xF0"/>
<bit-field key="lrxdl" name="LRXDL" description="LIN Receive Data Length bits" mask="0x0F"/>
</register>
<register key="linidr" name="LINIDR" description="LIN Identifier Register" offset="0xD0" size="1">
<bit-field key="lp" name="LP" description="Parity bits" mask="0xC0"/>
<bit-field key="lid" name="LID" description="Identifier bit 5 or Data Length bits" mask="0x3F"/>
</register>
<register key="linsel" name="LINSEL" description="LIN Data Buffer Selection Register" offset="0xD1" size="1">
<bit-field key="lainc" name="LAINC" description="Auto Increment of Data Buffer Index (Active Low)" mask="0x08"/>
<bit-field key="lindx" name="LINDX" description="FIFO LIN Data Buffer Index bits" mask="0x07"/>
</register>
<register key="lindat" name="LINDAT" description="LIN Data Register" offset="0xD2" size="1">
<bit-field key="ldata" name="LDATA" mask="0xFF"/>
</register>
</register-group>
</module>
<module key="usi" name="USI" description="Universal Serial Interface">
<register-group key="usi" name="USI">
<register key="usicr" name="USICR" description="USI Control Register" offset="0xB8" size="1">
<bit-field key="usisie" name="USISIE" description="Start Condition Interrupt Enable" mask="0x80"/>
<bit-field key="usioie" name="USIOIE" description="Counter Overflow Interrupt Enable" mask="0x40"/>
<bit-field key="usiwm" name="USIWM" description="USI Wire Mode Bits" mask="0x30"/>
<bit-field key="usics" name="USICS" description="USI Clock Source Select Bits" mask="0x0C"/>
<bit-field key="usiclk" name="USICLK" description="Clock Strobe" mask="0x02"/>
<bit-field key="usitc" name="USITC" description="Toggle Clock Port Pin" mask="0x01"/>
</register>
<register key="usisr" name="USISR" description="USI Status Register" offset="0xB9" size="1">
<bit-field key="usisif" name="USISIF" description="Start Condition Interrupt Flag" mask="0x80"/>
<bit-field key="usioif" name="USIOIF" description="Counter Overflow Interrupt Flag" mask="0x40"/>
<bit-field key="usipf" name="USIPF" description="Stop Condition Flag" mask="0x20"/>
<bit-field key="usidc" name="USIDC" description="Data Output Collision" mask="0x10"/>
<bit-field key="usicnt" name="USICNT" description="USI Counter Value Bits" mask="0x0F"/>
</register>
<register key="usidr" name="USIDR" description="USI Data Register" offset="0xBA" size="1"/>
<register key="usibr" name="USIBR" description="USI Buffer Register" offset="0xBB" size="1"/>
<register key="usipp" name="USIPP" description="USI Pin Position" offset="0xBC" size="1"/>
</register-group>
</module>
<module key="tc8_async" name="TC8_ASYNC" description="Timer/Counter, 8-bit Async">
<register-group key="tc0" name="TC0">
<register key="tifr0" name="TIFR0" description="Timer/Counter0 Interrupt Flag Register" offset="0x35" size="1">
<bit-field key="ocf0a" name="OCF0A" description="Output Compare Flag 0A" mask="0x02"/>
<bit-field key="tov0" name="TOV0" description="Timer/Counter0 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="psr0" name="PSR0" description="Prescaler Reset Asynchronous 8-bit Timer/Counter0" mask="0x02"/>
<bit-field key="psr1" name="PSR1" description="Prescaler Reset Synchronous 16-bit Timer/Counter1" mask="0x01"/>
</register>
<register key="tccr0a" name="TCCR0A" description="Timer/Counter0 Control Register A" offset="0x45" size="1">
<bit-field key="com0a" name="COM0A" description="Compare Output Mode bits" mask="0xC0"/>
<bit-field key="wgm0" name="WGM0" description="Waveform Genration Mode bits" mask="0x03"/>
</register>
<register key="tccr0b" name="TCCR0B" description="Timer/Counter0 Control Register B" offset="0x46" size="1">
<bit-field key="foc0a" name="FOC0A" description="Force Output Compare A" mask="0x80"/>
<bit-field key="cs0" name="CS0" description="Clock Select bits" mask="0x07"/>
</register>
<register key="tcnt0" name="TCNT0" description="Timer/Counter0" offset="0x47" size="1"/>
<register key="ocr0a" name="OCR0A" description="Timer/Counter0 Output Compare Register A" offset="0x48" size="1"/>
<register key="timsk0" name="TIMSK0" description="Timer/Counter0 Interrupt Mask register" offset="0x6E" size="1">
<bit-field key="ocie0a" name="OCIE0A" description="Timer/Counter0 Output Compare Match A Interrupt Enable" mask="0x02"/>
<bit-field key="toie0" name="TOIE0" description="Timer/Counter0 Overflow Interrupt Enable" mask="0x01"/>
</register>
<register key="assr" name="ASSR" description="Asynchronous Status Register" offset="0xB6" size="1">
<bit-field key="exclk" name="EXCLK" description="Enable External Clock Input" mask="0x40"/>
<bit-field key="as0" name="AS0" description="Asynchronous Timer/Counter0" mask="0x20"/>
<bit-field key="tcn0ub" name="TCN0UB" description="Timer/Counter0 Update Busy" mask="0x10"/>
<bit-field key="ocr0aub" name="OCR0AUB" description="Output Compare Register 0A Update Busy" mask="0x08"/>
<bit-field key="tcr0aub" name="TCR0AUB" description="Timer/Counter0 Control Register A Update Busy" mask="0x02"/>
<bit-field key="tcr0bub" name="TCR0BUB" description="Timer/Counter0 Control Register B Update Busy" mask="0x01"/>
</register>
</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/Counter1 Interrupt Flag register" offset="0x36" size="1">
<bit-field key="icf1" name="ICF1" description="Timer/Counter1 Input Capture Flag" mask="0x20"/>
<bit-field key="ocf1b" name="OCF1B" description="Timer/Counter1 Output Compare B Match Flag" mask="0x04"/>
<bit-field key="ocf1a" name="OCF1A" description="Timer/Counter1 Output Compare A Match Flag" mask="0x02"/>
<bit-field key="tov1" name="TOV1" description="Timer/Counter1 Overflow Flag" mask="0x01"/>
</register>
<register key="timsk1" name="TIMSK1" description="Timer/Counter1 Interrupt Mask Register" offset="0x6F" size="1">
<bit-field key="icie1" name="ICIE1" description="Timer/Counter1 Input Capture Interrupt Enable" mask="0x20"/>
<bit-field key="ocie1b" name="OCIE1B" description="Timer/Counter1 Output Compare B Match Interrupt Enable" mask="0x04"/>
<bit-field key="ocie1a" name="OCIE1A" description="Timer/Counter1 Output Compare A Match Interrupt Enable" mask="0x02"/>
<bit-field key="toie1" name="TOIE1" description="Timer/Counter1 Overflow Interrupt Enable" mask="0x01"/>
</register>
<register key="tccr1a" name="TCCR1A" description="Timer/Counter1 Control Register A" offset="0x80" size="1">
<bit-field key="com1a" name="COM1A" description="Compare Output Mode 1A, bits" mask="0xC0"/>
<bit-field key="com1b" name="COM1B" description="Compare Output Mode 1B, bits" mask="0x30"/>
<bit-field key="wgm1" name="WGM1" description="Pulse Width Modulator Select Bits" mask="0x03"/>
</register>
<register key="tccr1b" name="TCCR1B" description="Timer/Counter1 Control Register B" offset="0x81" size="1">
<bit-field key="icnc1" name="ICNC1" description="Input Capture 1 Noise Canceler" mask="0x80"/>
<bit-field key="ices1" name="ICES1" description="Input Capture 1 Edge Select" mask="0x40"/>
<bit-field key="wgm1" name="WGM1" description="Waveform Generation Mode Bits" mask="0x18"/>
<bit-field key="cs1" name="CS1" description="Timer/Counter1 Clock Select bits" mask="0x07"/>
</register>
<register key="tccr1c" name="TCCR1C" description="Timer/Counter1 Control Register C" offset="0x82" size="1">
<bit-field key="foc1a" name="FOC1A" description="Timer/Counter1 Force Output Compare for Channel A" mask="0x80"/>
<bit-field key="foc1b" name="FOC1B" description="Timer/Counter1 Force Output Compare for Channel B" mask="0x40"/>
</register>
<register key="tccr1d" name="TCCR1D" description="Timer/Counter1 Control Register D" offset="0x83" size="1">
<bit-field key="oc1bx" name="OC1BX" description="Timer/Counter1 Output Compare X-pin Enable for Channel B" mask="0x80"/>
<bit-field key="oc1bw" name="OC1BW" description="Timer/Counter1 Output Compare W-pin Enable for Channel B" mask="0x40"/>
<bit-field key="oc1bv" name="OC1BV" description="Timer/Counter1 Output Compare V-pin Enable for Channel B" mask="0x20"/>
<bit-field key="oc1bu" name="OC1BU" description="Timer/Counter1 Output Compare U-pin Enable for Channel B" mask="0x10"/>
<bit-field key="oc1ax" name="OC1AX" description="Timer/Counter1 Output Compare X-pin Enable for Channel A" mask="0x08"/>
<bit-field key="oc1aw" name="OC1AW" description="Timer/Counter1 Output Compare W-pin Enable for Channel A" mask="0x04"/>
<bit-field key="oc1av" name="OC1AV" description="Timer/Counter1 Output Compare V-pin Enable for Channel A" mask="0x02"/>
<bit-field key="oc1au" name="OC1AU" description="Timer/Counter1 Output Compare U-pin Enable for Channel A" mask="0x01"/>
</register>
<register key="tcnt1" name="TCNT1" description="Timer/Counter1 Bytes" offset="0x84" size="2"/>
<register key="icr1" name="ICR1" description="Timer/Counter1 Input Capture Register Bytes" offset="0x86" size="2"/>
<register key="ocr1a" name="OCR1A" description="Timer/Counter1 Output Compare Register A Bytes" offset="0x88" size="2"/>
<register key="ocr1b" name="OCR1B" description="Timer/Counter1 Output Compare Register B Bytes" offset="0x8A" size="2"/>
</register-group>
</module>
<module key="wdt" name="WDT" description="Watchdog Timer">
<register-group key="wdt" name="WDT">
<register key="wdtcr" name="WDTCR" 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="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 Write Enable" mask="0x04"/>
<bit-field key="eepe" name="EEPE" description="EEPROM Write 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>
<module key="spi" name="SPI" description="Serial Peripheral Interface">
<register-group key="spi" name="SPI">
<register key="spcr" name="SPCR" description="SPI Control Register" offset="0x4C" size="1">
<bit-field key="spie" name="SPIE" description="SPI Interrupt Enable" mask="0x80"/>
<bit-field key="spe" name="SPE" description="SPI Enable" mask="0x40"/>
<bit-field key="dord" name="DORD" description="Data Order" mask="0x20"/>
<bit-field key="mstr" name="MSTR" description="Master/Slave Select" mask="0x10"/>
<bit-field key="cpol" name="CPOL" description="Clock polarity" mask="0x08"/>
<bit-field key="cpha" name="CPHA" description="Clock Phase" mask="0x04"/>
<bit-field key="spr" name="SPR" description="SPI Clock Rate Selects" mask="0x03"/>
</register>
<register key="spsr" name="SPSR" description="SPI Status Register" offset="0x4D" size="1">
<bit-field key="spif" name="SPIF" description="SPI Interrupt Flag" mask="0x80"/>
<bit-field key="wcol" name="WCOL" description="Write Collision Flag" mask="0x40"/>
<bit-field key="spi2x" name="SPI2X" description="Double SPI Speed Bit" mask="0x01"/>
</register>
<register key="spdr" name="SPDR" description="SPI Data Register" offset="0x4E" size="1"/>
</register-group>
</module>
<module key="adc" name="ADC" description="Analog-to-Digital Converter">
<register-group key="adc" name="ADC">
<register key="amiscr" name="AMISCR" description="Analog Miscellaneous Control Register (Shared with CURRENT_SOURCE IO_MODULE)" offset="0x77" size="1">
<bit-field key="arefen" name="AREFEN" description="External Voltage Reference Input Enable" mask="0x04"/>
<bit-field key="xrefen" name="XREFEN" description="Internal Voltage Reference Output Enable" mask="0x02"/>
</register>
<register key="adc" name="ADC" description="ADC Data Register Bytes" offset="0x78" size="2"/>
<register key="adcsra" name="ADCSRA" description="The ADC Control and Status register A" offset="0x7A" size="1">
<bit-field key="aden" name="ADEN" description="ADC Enable" mask="0x80"/>
<bit-field key="adsc" name="ADSC" description="ADC Start Conversion" mask="0x40"/>
<bit-field key="adate" name="ADATE" description="ADC Auto Trigger Enable" mask="0x20"/>
<bit-field key="adif" name="ADIF" description="ADC Interrupt Flag" mask="0x10"/>
<bit-field key="adie" name="ADIE" description="ADC Interrupt Enable" mask="0x08"/>
<bit-field key="adps" name="ADPS" description="ADC Prescaler Select Bits" mask="0x07"/>
</register>
<register key="adcsrb" name="ADCSRB" description="The ADC Control and Status register B (Shared with ANALOG_COMPARATOR IO_MODULE)" offset="0x7B" size="1">
<bit-field key="bin" name="BIN" description="Bipolar Input Mode" mask="0x80"/>
<bit-field key="adts" name="ADTS" description="ADC Auto Trigger Source bits" mask="0x07"/>
</register>
<register key="admux" name="ADMUX" description="The ADC multiplexer Selection Register" offset="0x7C" size="1">
<bit-field key="refs" name="REFS" description="Reference Selection Bits" mask="0xC0"/>
<bit-field key="adlar" name="ADLAR" description="Left Adjust Result" mask="0x20"/>
<bit-field key="mux" name="MUX" description="Analog Channel and Gain Selection Bits" mask="0x1F"/>
</register>
<register key="didr0" name="DIDR0" description="Digital Input Disable Register 0" offset="0x7E" size="1">
<bit-field key="adc7d" name="ADC7D" mask="0x80"/>
<bit-field key="adc6d" name="ADC6D" mask="0x40"/>
<bit-field key="adc5d" name="ADC5D" mask="0x20"/>
<bit-field key="adc4d" name="ADC4D" mask="0x10"/>
<bit-field key="adc3d" name="ADC3D" mask="0x08"/>
<bit-field key="adc2d" name="ADC2D" mask="0x04"/>
<bit-field key="adc1d" name="ADC1D" mask="0x02"/>
<bit-field key="adc0d" name="ADC0D" mask="0x01"/>
</register>
<register key="didr1" name="DIDR1" description="Digital Input Disable Register 1" offset="0x7F" size="1">
<bit-field key="adc10d" name="ADC10D" mask="0x40"/>
<bit-field key="adc9d" name="ADC9D" mask="0x20"/>
<bit-field key="adc8d" name="ADC8D" mask="0x10"/>
</register>
</register-group>
</module>
<module key="current_source" name="CURRENT_SOURCE" description="Current Source">
<register-group key="current_source" name="CURRENT_SOURCE">
<register key="amiscr" name="AMISCR" description="Analog Miscellaneous Control Register (Shared with AD_CONVERTER IO_MODULE)" offset="0x77" size="1">
<bit-field key="isrcen" name="ISRCEN" description="Current Source Enable" mask="0x01"/>
</register>
</register-group>
</module>
<module key="ac" name="AC" description="Analog Comparator">
<register-group key="ac" name="AC">
<register key="acsr" name="ACSR" description="Analog Comparator Control And Status Register" offset="0x50" size="1">
<bit-field key="acd" name="ACD" description="Analog Comparator Disable" mask="0x80"/>
<bit-field key="acirs" name="ACIRS" description="Analog Comparator Internal Reference Select" mask="0x40"/>
<bit-field key="aco" name="ACO" description="Analog Compare Output" mask="0x20"/>
<bit-field key="aci" name="ACI" description="Analog Comparator Interrupt Flag" mask="0x10"/>
<bit-field key="acie" name="ACIE" description="Analog Comparator Interrupt Enable" mask="0x08"/>
<bit-field key="acic" name="ACIC" description="Analog Comparator Input Capture Enable" mask="0x04"/>
<bit-field key="acis" name="ACIS" description="Analog Comparator Interrupt Mode Select bits" mask="0x03"/>
</register>
<register key="adcsrb" name="ADCSRB" description="Analog Comparator &amp; ADC Control and Status Register B (Shared with AD_CONVERTER IO_MODULE)" offset="0x7B" size="1">
<bit-field key="acme" name="ACME" description="Analog Comparator Multiplexer Enable" mask="0x40"/>
<bit-field key="acir" name="ACIR" description="Analog Comparator Internal Voltage Reference Select Bits" mask="0x30"/>
</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="0x03"/>
</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="0x03"/>
</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 Enable on any PCINT14..8 pin" mask="0x03"/>
</register>
<register key="eicra" name="EICRA" description="External Interrupt Control Register" offset="0x69" size="1">
<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 Mask Register 0" offset="0x6B" size="1">
<bit-field key="pcint" name="PCINT" description="Pin Change Enable Masks" mask="0xFF"/>
</register>
<register key="pcmsk1" name="PCMSK1" description="Pin Change Mask Register 1" offset="0x6C" size="1">
<bit-field key="pcint" name="PCINT" description="Pin Change Enable Masks" mask="0xFF"/>
</register>
</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="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="ctpb" name="CTPB" description="Clear Temporary Page Buffer" mask="0x10"/>
<bit-field key="rflb" name="RFLB" description="Read Fuse and Lock Bits" 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="cpu" name="CPU" description="CPU Registers">
<register-group key="cpu" name="CPU">
<register key="portcr" name="PORTCR" description="Port Control Register" offset="0x32" size="1"/>
<register key="gpior0" name="GPIOR0" description="General purpose register 0" offset="0x3E" size="1"/>
<register key="gpior1" name="GPIOR1" description="General Purpose register 1" offset="0x4A" size="1"/>
<register key="gpior2" name="GPIOR2" description="General Purpose IO register 2" offset="0x4B" size="1"/>
<register key="dwdr" name="DWDR" description="DebugWire data register" offset="0x51" 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="0x06"/>
<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="wdrf" name="WDRF" description="Watchdog Reset Flag" mask="0x08"/>
<bit-field key="borf" name="BORF" 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="bods" name="BODS" description="BOD Sleep" mask="0x40"/>
<bit-field key="bodse" name="BODSE" description="BOD Sleep Enable" mask="0x20"/>
<bit-field key="pud" name="PUD" description="Pull-up Disable" mask="0x10"/>
</register>
<register key="sp" name="SP" description="Stack Pointer Bytes" 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="clkpr" name="CLKPR" description="Clock Prescale Register" offset="0x61" size="1">
<bit-field key="clkpce" name="CLKPCE" description="Clock Prescaler Change Enable" mask="0x80"/>
<bit-field key="clkps" name="CLKPS" description="Clock Prescaler Select Bits" mask="0x0F"/>
</register>
<register key="clkcsr" name="CLKCSR" description="Clock Control &amp; Status Register" offset="0x62" size="1">
<bit-field key="clkcce" name="CLKCCE" description="Clock Control Change Enable" mask="0x80"/>
<bit-field key="clkrdy" name="CLKRDY" description="Clock Ready Flag" mask="0x10"/>
<bit-field key="clkc" name="CLKC" description="Clock Control bits" mask="0x0F"/>
</register>
<register key="clkselr" name="CLKSELR" description="Clock Selection Register" offset="0x63" size="1">
<bit-field key="cout" name="COUT" description="Clock Out - CKOUT fuse substitution" mask="0x40"/>
<bit-field key="csut" name="CSUT" description="Clock Start-up Time bit 1 - SUT1 fuse substitution" mask="0x30"/>
<bit-field key="csel" name="CSEL" description="Clock Source Select bit 3 - CKSEL3 fuse substitution" mask="0x0F"/>
</register>
<register key="prr" name="PRR" description="Power Reduction Register" offset="0x64" size="1">
<bit-field key="prlin" name="PRLIN" description="Power Reduction LINUART" mask="0x20"/>
<bit-field key="prspi" name="PRSPI" description="Power Reduction SPI" mask="0x10"/>
<bit-field key="prtim1" name="PRTIM1" description="Power Reduction Timer/Counter1" mask="0x08"/>
<bit-field key="prtim0" name="PRTIM0" description="Power Reduction Timer/Counter0" mask="0x04"/>
<bit-field key="prusi" name="PRUSI" description="Power Reduction USI" mask="0x02"/>
<bit-field key="pradc" name="PRADC" description="Power Reduction ADC" mask="0x01"/>
</register>
<register key="osccal" name="OSCCAL" description="Oscillator Calibration Register" offset="0x66" size="1">
<bit-field key="osccal" name="OSCCAL" description="Oscillator Calibration" mask="0xFF"/>
</register>
</register-group>
</module>
</modules>
<pads>
<pad key="agnd" name="AGND"/>
<pad key="avcc" name="AVCC"/>
<pad key="gnd" name="GND"/>
<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="vcc" name="VCC"/>
</pads>
<pinouts>
<pinout key="soic20" name="SOIC20" type="soic">
<pin position="1" pad-key="pa0"/>
<pin position="2" pad-key="pa1"/>
<pin position="3" pad-key="pa2"/>
<pin position="4" pad-key="pa3"/>
<pin position="5" pad-key="avcc"/>
<pin position="6" pad-key="agnd"/>
<pin position="7" pad-key="pa4"/>
<pin position="8" pad-key="pa5"/>
<pin position="9" pad-key="pa6"/>
<pin position="10" pad-key="pa7"/>
<pin position="11" pad-key="pb7"/>
<pin position="12" pad-key="pb6"/>
<pin position="13" pad-key="pb5"/>
<pin position="14" pad-key="pb4"/>
<pin position="15" pad-key="vcc"/>
<pin position="16" pad-key="gnd"/>
<pin position="17" pad-key="pb3"/>
<pin position="18" pad-key="pb2"/>
<pin position="19" pad-key="pb1"/>
<pin position="20" pad-key="pb0"/>
</pinout>
<pinout key="qfn20" name="QFN20" type="qfn">
<pin position="1" pad-key="pa2"/>
<pin position="2" pad-key="pa3"/>
<pin position="3" pad-key="avcc"/>
<pin position="4" pad-key="agnd"/>
<pin position="5" pad-key="pa4"/>
<pin position="6" pad-key="pa5"/>
<pin position="7" pad-key="pa6"/>
<pin position="8" pad-key="pa7"/>
<pin position="9" pad-key="pb7"/>
<pin position="10" pad-key="pb6"/>
<pin position="11" pad-key="pb5"/>
<pin position="12" pad-key="pb4"/>
<pin position="13" pad-key="vcc"/>
<pin position="14" pad-key="gnd"/>
<pin position="15" pad-key="pb3"/>
<pin position="16" pad-key="pb2"/>
<pin position="17" pad-key="pb1"/>
<pin position="18" pad-key="pb0"/>
<pin position="19" pad-key="pa0"/>
<pin position="20" pad-key="pa1"/>
</pinout>
<pinout key="vqfn32" name="VQFN32" type="qfn">
<pin position="1"/>
<pin position="2"/>
<pin position="3" pad-key="pa3"/>
<pin position="4" pad-key="avcc"/>
<pin position="5" pad-key="agnd"/>
<pin position="6"/>
<pin position="7"/>
<pin position="8"/>
<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"/>
<pin position="14" pad-key="pb7"/>
<pin position="15" pad-key="pb6"/>
<pin position="16"/>
<pin position="17"/>
<pin position="18" pad-key="pb5"/>
<pin position="19" pad-key="pb4"/>
<pin position="20" pad-key="vcc"/>
<pin position="21" pad-key="gnd"/>
<pin position="22"/>
<pin position="23"/>
<pin position="24"/>
<pin position="25" pad-key="pb3"/>
<pin position="26" pad-key="pb2"/>
<pin position="27" pad-key="pb1"/>
<pin position="28" pad-key="pb0"/>
<pin position="29" pad-key="pa0"/>
<pin position="30" pad-key="pa1"/>
<pin position="31" pad-key="pa2"/>
<pin position="32"/>
</pinout>
</pinouts>
<variants>
<variant key="attiny167_su" name="ATtiny167-SU" pinout-key="soic20"/>
<variant key="attiny167_mu" name="ATtiny167-MU" pinout-key="vqfn32"/>
<variant key="attiny167_mmu" name="ATtiny167-MMU" pinout-key="qfn20"/>
</variants>
</device>