From 8b653d5ad0d0e55247eb5c8df618ffe142afde04 Mon Sep 17 00:00:00 2001 From: MCUdude Date: Thu, 19 Oct 2023 22:42:25 +0200 Subject: [PATCH] Update avrdude.conf to 7.2 --- avr/avrdude.conf | 8077 ++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 7111 insertions(+), 966 deletions(-) diff --git a/avr/avrdude.conf b/avr/avrdude.conf index ade0ddbb..1097b831 100755 --- a/avr/avrdude.conf +++ b/avr/avrdude.conf @@ -23,6 +23,7 @@ # type = ; # programmer type, quoted string # # supported types can be listed by "-c ?type" # prog_modes = PM_ {| PM_} # interfaces, eg, PM_SPM|PM_PDI (1) +# extra_features = HAS_ {| HAS_} # extra features, eg, HAS_SUFFER|HAS_VTARG_ADJ (2) # connection_type = parallel | serial | usb | spi # baudrate = ; # baudrate for avr910-programmer # vcc = [, ... ] ; # pin number(s) @@ -36,7 +37,7 @@ # pgmled = ; # pin number # vfyled = ; # pin number # usbvid = ; # USB VID (Vendor ID) -# usbpid = [, ...] ; # USB PID (Product ID) (2) +# usbpid = [, ...] ; # USB PID (Product ID) (3) # usbdev = ; # USB interface or other device info # usbvendor = ; # USB Vendor Name # usbproduct = ; # USB Product Name @@ -62,11 +63,25 @@ # # - PM_AVR32JTAG: JTAG for 32-bit AVRs # # - PM_aWire: AVR32 parts # # -# # (2) Not all programmer types can process a list of PIDs +# # (2) The following extra programmer features are known: +# # - HAS_SUFFER: Only present on Xplained Mini/Nano programmers. +# # The Super User Fantastic Feature Enable Register allows the user to modify +# # the behavior of the mEDBG programmer/debugger chip. See the Xplained Mini/Nano +# # documentation for more information +# # - HAS_VTARG_SWITCH: Programer has a programmable target power switch +# # - HAS_VTARG_ADJ: Programmer has an adjustable target power source that can +# # be controlled with Avrdude +# # - HAS_FOSC_ADJ: Programmer has a programable frequency generator that +# # can clock an AVR directly through its XTAL1 pin +# # - HAS_VAREF_ADJ: Programmer has an adjustable analog reference voltage that +# # can be controlled with Avrdude +# # +# # (3) Not all programmer types can process a list of PIDs # # part -# desc = ; # quoted string -# id = ; # quoted string +# desc = ; # quoted string, the long part name, eg, "ATmega328p" +# id = ; # quoted string, normally an abbreviated part name +# variants = [, ...]; # quoted strings, each starts with ": ..." # family_id = ; # quoted string, eg, "megaAVR" or "tinyAVR" # prog_modes = PM_ {| PM_} # interfaces, eg, PM_SPM|PM_ISP|PM_HVPP|PM_debugWIRE # mcuid = ; # unique id in 0..2039 for 8-bit AVRs @@ -87,15 +102,14 @@ # is_at90s1200 = ; # AT90S1200 part # signature = ; # signature bytes # usbpid = ; # DFU USB PID -# chip_erase_delay = ; # micro-seconds +# chip_erase_delay = ; # microseconds # reset = dedicated | io ; # retry_pulse = reset | sck ; -# chip_erase_delay = ; # chip erase delay (us) # # STK500 parameters (parallel programming IO lines) -# pagel = ; # pin name in hex, i.e., 0xD7 -# bs2 = ; # pin name in hex, i.e., 0xA0 +# pagel = ; # page load pin name in hex, eg, 0xD7 +# bs2 = ; # byte select 2 pin name in hex, eg, 0xA0 # serial = ; # can use serial downloading -# parallel = ; # can use par. programming +# parallel = ; # can use parallel programming # # STK500v2 parameters, to be taken from Atmel's ATDF files # timeout = ; # stabdelay = ; @@ -136,12 +150,12 @@ # idr = ; # IO addr of IDR (OCD) reg # rampz = ; # IO addr of RAMPZ reg # spmcr = ; # mem addr of SPMC[S]R reg -# eecr = ; # mem addr of EECR reg only when != 0x3f +# eecr = ; # mem addr of EECR reg # eind = ; # mem addr of EIND reg -# mcu_base = ; -# nvm_base = ; -# ocd_base = ; -# ocdrev = ; +# mcu_base = ; # MCU control block in ATxmega devices +# nvm_base = ; # NVM controller in ATxmega devices +# ocd_base = ; # OCD module in AVR8X/UPDI devices +# ocdrev = ; # JTAGICE3 parameter from ATDF files # pgm_enable = ; # chip_erase = ; # # parameters for bootloaders @@ -153,6 +167,8 @@ # size = ; # bytes # page_size = ; # bytes # num_pages = ; # numeric +# initval = ; # factory setting of fuses and lockbits +# bitmask = ; # bits used (only in fuses and lockbits) # n_word_writes = ; # TPI only: if set, number of words to write # min_write_delay = ; # micro-seconds # max_write_delay = ; # micro-seconds @@ -177,10 +193,10 @@ # ; # # If any of the above parameters are not specified, the default value -# of 0 is used for numerics (except for mcuid, hvupdi_variant and -# ocdrev, where the default value is -1, and for autobaud_sync which -# defaults to 0x30), or the empty string "" for string values. If a -# required parameter is left empty, AVRDUDE will complain. Almost all +# of 0 is used for numerics (except for mcuid, hvupdi_variant, ocdrev, +# initval and bitmask, all of which default to -1, and for autobaud_sync +# which defaults to 0x30), or the empty string "" for string values. If +# a required parameter is left empty, AVRDUDE will complain. Almost all # occurrences of numbers (with the exception of pin numbers and where # they are separated by space, eg, in signature and readback) can also # be given as simple expressions involving arithemtic and bitwise @@ -220,7 +236,7 @@ # This flag was added to work around a problem with the # at90s4433/2333's; see the at90s4433 errata at: # -# http://www.atmel.com/dyn/resources/prod_documents/doc1280.pdf +# https://www.microchip.com/content/dam/mchp/documents/OTH/ProductDocuments/DataSheets/doc1042.pdf # # INSTRUCTION FORMATS # @@ -242,9 +258,12 @@ # 'aN' = the bit is the Nth address bit, bit-number = N, i.e., a12 # is address bit 12 on input, a0 is address bit 0. # -# 'i' = the bit is an input data bit +# 'i' = the bit is an input data bit (can optionally be followed +# by a memory bit position between 0 and 7 if that differs +# from the bit-position in the SPI write command byte) # -# 'o' = the bit is an output data bit +# 'o' = the bit is an output data bit (can optionally be followed +# by a memory bit position between 0 and 7) # # Each instruction must be composed of 32 bit specifiers. The # instruction specification closely follows the instruction data @@ -401,6 +420,8 @@ default_parallel = "/dev/parport0"; default_serial = "/dev/ttyS0"; default_spi = ""; # default_bitclock = 2.5; +default_linuxgpio = "gpiochip0"; +allow_subshells = no; @@ -412,6 +433,29 @@ default_spi = ""; # PROGRAMMER DEFINITIONS # +#------------------------------------------------------------ +# dryrun +#------------------------------------------------------------ + +# Using -c dryrun is a good way to get acquainted with AVRDUDE and its +# command line -U memory operations, -T terminal commands or the +# interactive terminal -t. No hardware needs to be connected, as the +# dryrun programmer emulates what can be expected to happen with a real +# -c programmer and a corresponding connected physical programmer or a +# directly connected board when it has a bootloader. +# +# Examples: +# avrdude -c dryrun -p ATmega328P -t # Interactive terminal: enter help +# avrdude -c dryrun -p ATmega2560 -U flash:w:myapplication.hex:i +# avrdude -c dryrun -p AVR64DB48 -Tconfig + +programmer + id = "dryrun"; + desc = "Emulates programming without a programmer"; + type = "dryrun"; + prog_modes = PM_TPI | PM_ISP | PM_UPDI | PM_PDI; +; + #------------------------------------------------------------ # wiring #------------------------------------------------------------ @@ -431,6 +475,13 @@ programmer # arduino #------------------------------------------------------------ +# Serves optiboot bootloaders and others using the STK500v1 protocol; +# it is superseded by the more modern -c urclock programmer, see below. +# The programmer is named after the popular embedded programming +# environment Arduino that has for a long time used optiboot +# bootloaders. Same as the stk500v1 except that it resets the attached +# board and treats EEPROM as the optiboot bootloaders expect. + programmer id = "arduino"; desc = "Arduino for bootloader using STK500 v1 protocol"; @@ -443,7 +494,23 @@ programmer # urclock #------------------------------------------------------------ +# Serves urboot and optiboot bootloaders +# - Reads/writes flash/EEPROM via the MCU bootloader and a serial connection +# - Automatically resets an attached board via RTS/DTR into bootloader mode +# - Implements urprotocol, a skeleton version of STK500v1 +# - Supports vector bootloaders by patching interrupt vectors during upload: +# + Vector bootloaders run on all parts, no need for a HW boot section +# + Can be much smaller than the smallest HW boot section of a part, eg, +# 256 bytes for ATmega2560 (smallest HW boot section is 1024 bytes) +# - Checks sizes of applications so they don't overwrite the bootloader +# - Keeps the bootloader alive during interactive terminal sessions +# - Provides a 4-byte metadata interface in top flash for +# + Allowing applications to utilise unused flash similar to EEPROM +# + Storing in top flash the file name and its last-modified date +# + Displaying file name and date of the last uploaded application +# # See https://github.com/stefanrueger/urboot + programmer id = "urclock"; desc = "Urclock programmer for urboot bootloaders using urprotocol"; @@ -468,29 +535,31 @@ programmer # ft2232h #------------------------------------------------------------ -# this will interface with the chips on these programmers: -# -# http://real.kiev.ua/old/avreal/en/adapters -# http://www.amontec.com/jtagkey.shtml, jtagkey-tiny.shtml -# http://www.olimex.com/dev/arm-usb-ocd.html, arm-usb-tiny.html -# http://www.ethernut.de/en/hardware/turtelizer/index.html -# http://elk.informatik.fh-augsburg.de/hhweb/doc/openocd/usbjtag/usbjtag.html -# http://dangerousprototypes.com/docs/FT2232_breakout_board -# http://www.ftdichip.com/Products/Modules/DLPModules.htm,DLP-2232*,DLP-USB1232H -# http://flashrom.org/FT2232SPI_Programmer +# Interfaces with the chips on these programmers: +# - http://real.kiev.ua/old/avreal/en/adapters +# - http://www.amontec.com/jtagkey.shtml and .../jtagkey-tiny.shtml +# - http://www.olimex.com/dev/arm-usb-ocd.html, arm-usb-tiny.html +# - http://www.ethernut.de/en/hardware/turtelizer/index.html +# - https://web.archive.org/web/20161221220118/http://elk.informatik.fh-augsburg.de/hhweb/doc/openocd/usbjtag/usbjtag.html +# - http://dangerousprototypes.com/docs/FT2232_breakout_board +# - http://flashrom.org/FT2232SPI_Programmer # -# The drivers will look for a specific device and use the first one found. -# If you have mulitple devices, then look for unique information (like SN) -# And fill that in here. +# The drivers will look for a specific device and use the first one +# found. If you have mulitple devices, and they give out serial +# numbers, a different entry for each of them can be created in a +# persnonal ~/.avrduderc or avrdude.rc entry and the usbsn = "..."; +# field added to distinguish between them. # # Note that the pin numbers for the main ISP signals (reset, sck, # sdo, sdi) are fixed and cannot be changed, since they must match # the way the Multi-Protocol Synchronous Serial Engine (MPSSE) of # these FTDI ICs has been designed. +# +# See also https://ftdichip.com/wp-content/uploads/2020/07/DS_FT2232H.pdf programmer - id = "ft2232h"; - desc = "FT2232H based generic programmer"; + id = "ft2232h", "avrftdi", "2232h"; + desc = "FT2232H/D based generic programmer"; type = "avrftdi"; prog_modes = PM_TPI | PM_ISP; connection_type = usb; @@ -504,15 +573,6 @@ programmer sdi = 2; # AD2 (TDO) ; -#------------------------------------------------------------ -# avrftdi -#------------------------------------------------------------ - -programmer parent "ft2232h" - id = "avrftdi"; - desc = "FT2232D based generic programmer"; -; - #------------------------------------------------------------ # 2232HIO #------------------------------------------------------------ @@ -547,24 +607,33 @@ programmer parent "ft2232h" ; #------------------------------------------------------------ -# ft4232h +# avrisp-u #------------------------------------------------------------ -#The FT4232H can be treated as FT2232H, but it has a different USB -#device ID of 0x6011. +# Kanda's low cost FT2232H based programmer. Uses a different reset pin. +# Adds a buffer and a LED indicating that the programming is in progress. +# https://www.kanda.com/products/Kanda/AVRISP-U.html programmer parent "ft2232h" - id = "ft4232h"; - desc = "FT4232H based generic programmer"; - usbpid = 0x6011; + id = "avrisp-u"; + desc = "Kanda AVRISP-U"; + usbsn = "AVR"; + buff = ~5; + reset = 4; + pgmled = ~10; ; #------------------------------------------------------------ -# 4232h +# ft4232h #------------------------------------------------------------ -programmer parent "ft4232h" - id = "4232h"; +# The FT4232H can be treated as FT2232H but with a different USB +# device ID of 0x6011 + +programmer parent "ft2232h" + id = "ft4232h", "4232h"; + desc = "FT4232H based generic programmer"; + usbpid = 0x6011; ; #------------------------------------------------------------ @@ -650,23 +719,15 @@ programmer parent "ft232h" # o-link #------------------------------------------------------------ -# On the adapter you can read "O-Link". On the PCB is printed "OpenJTAG v3.1" -# You can find it as "OpenJTAG ARM JTAG USB" in the internet. -# (But there are also several projects called Open JTAG, eg. -# http://www.openjtag.org, which are completely different.) -# http://www.100ask.net/shop/english.html (website seems to be outdated) -# http://item.taobao.com/item.htm?id=1559277013 -# http://www.micro4you.com/store/openjtag-arm-jtag-usb.html (schematics!) -# some other sources which call it O-Link -# http://www.andahammer.com/olink/ -# http://www.developmentboard.net/31-o-link-debugger.html -# http://armwerks.com/catalog/o-link-debugger-copy/ -# or just have a look at ebay ... -# It is basically the same entry as jtagkey with different usb ids. +# On the adapter you can read "O-Link". On the PCB is printed "OpenJTAG v3.1". +# You can find it as "OpenJTAG ARM JTAG USB" in the internet. Note there are also +# several projects called Open JTAG, which are completely different. Some other +# sources call it O-Link or just have a look at ebay ... It is basically the same +# entry as jtagkey with different usb ids. See www.100ask.net programmer parent "jtagkey" id = "o-link"; - desc = "O-Link, OpenJTAG from www.100ask.net"; + desc = "O-Link, OpenJTAG ARM JTAG USB"; usbvid = 0x1457; usbpid = 0x5118; usbvendor = "www.100ask.net"; @@ -749,14 +810,18 @@ programmer # Kristech KT-LINK FT2232H interface with IO switching and voltage buffers. # Created on 20220410 by CeDeROM Tomasz CEDRO (www.cederom.io). # Interface DataSheet: https://kristech.pl/files/KT-LINK-UM-ENG.pdf +# # AVRDUDE FT2232H PIN NUMBER DECODE: # | 0 | 1 | .. | 7 | 8 | 9 | .. | 15 | # | ADBUS0 | ADBUS1 | .. | ADBUS7 | ACBUS0 | ACBUS1 | .. | ACBUS7 | +# # KT-LINK JTAG CONN: # 1=Vsense(->EXT13), 19=5V(EXT1->EXT3), 20=GND, 3=TPIRST, 9=TPICLK, 7=TPIDATA. +# # INTERNALS CONFIGURATION ("~" MEANS ACTIVE LOW): # ~TRST_EN=10(ACBUS2), ~CLK_EN=14(ACBUS6), ~SDO_EN=13(ACBUS5), # TMS_SEL=5(ADBUS5), ~TMS_EN=12(ACBUS4), LED=~15(ACBUS7). +# # CONNECTION NOTES: # * Connect EXT connector pin 1 with 3 to get 5V on JTAG connector pin 19. # * Connect JTAG connector pin 1 to 5V (i.e. EXT pin 13 or JTAG pin 19). @@ -765,7 +830,7 @@ programmer programmer id = "ktlink"; - desc = "KT-LINK FT2232H interface with IO switching and voltage buffers."; + desc = "KT-LINK FT2232H interface with IO switching and voltage buffers"; type = "avrftdi"; prog_modes = PM_TPI | PM_ISP; connection_type = usb; @@ -789,8 +854,9 @@ programmer programmer id = "digilent-hs2"; - desc = "Digilient JTAG HS2 (MPSSE)"; + desc = "Digilent JTAG HS2 (MPSSE)"; type = "avrftdi"; + prog_modes = PM_TPI | PM_ISP; connection_type = usb; usbvid = 0x0403; usbpid = 0x6014; @@ -802,6 +868,33 @@ programmer sdi = 2; ; +#------------------------------------------------------------ +# flyswatter2 +#------------------------------------------------------------ + +# FT2232H based JTAG programmer. Requires a buff pin to be set. +# https://www.tincantools.com/flyswatter2 + +programmer + id = "flyswatter2"; + desc = "TinCan Tools Flyswatter 2"; + type = "avrftdi"; + prog_modes = PM_TPI | PM_ISP; + connection_type = usb; + usbvid = 0x0403; + usbpid = 0x6010; + usbdev = "A"; + usbvendor = "TinCanTools"; + usbproduct = "Flyswatter2"; + buff = ~6; + reset = 3; + sck = 0; + sdo = 1; + sdi = 2; + rdyled = ~11; + pgmled = ~12; +; + #------------------------------------------------------------ # serialupdi #------------------------------------------------------------ @@ -835,7 +928,7 @@ programmer id = "avrispv2"; desc = "Atmel AVR ISP v2"; type = "stk500v2"; - prog_modes = PM_TPI | PM_ISP | PM_PDI; + prog_modes = PM_TPI | PM_ISP; connection_type = serial; ; @@ -844,21 +937,14 @@ programmer #------------------------------------------------------------ programmer - id = "avrispmkII"; + id = "avrispmkII", "avrisp2"; desc = "Atmel AVR ISP mkII"; type = "stk500v2"; prog_modes = PM_TPI | PM_ISP | PM_PDI; + extra_features = HAS_VTARG_READ; connection_type = usb; ; -#------------------------------------------------------------ -# avrisp2 -#------------------------------------------------------------ - -programmer parent "avrispmkII" - id = "avrisp2"; -; - #------------------------------------------------------------ # buspirate #------------------------------------------------------------ @@ -904,6 +990,7 @@ programmer desc = "Atmel STK500"; type = "stk500generic"; prog_modes = PM_ISP; + extra_features = HAS_VTARG_ADJ | HAS_VTARG_READ | HAS_FOSC_ADJ | HAS_VAREF_ADJ; connection_type = serial; ; @@ -916,6 +1003,22 @@ programmer desc = "Atmel STK500 version 1.x firmware"; type = "stk500"; prog_modes = PM_ISP; + extra_features = HAS_VTARG_ADJ | HAS_VTARG_READ | HAS_FOSC_ADJ | HAS_VAREF_ADJ; + connection_type = serial; +; + +#------------------------------------------------------------ +# arduino_as_isp +#------------------------------------------------------------ + +# Not to be confused with arduinoISP, this is the same as `-c stk500v1` +# but treats EEPROM r/w correctly for arduino_as_isp programmers + +programmer + id = "arduino_as_isp"; + desc = "Arduino board as programmer using arduino as ISP firmware"; + type = "stk500"; + prog_modes = PM_ISP; connection_type = serial; ; @@ -936,10 +1039,11 @@ programmer #------------------------------------------------------------ programmer - id = "stk500v2"; + id = "stk500v2", "scratchmonkey"; desc = "Atmel STK500 version 2.x firmware"; type = "stk500v2"; prog_modes = PM_TPI | PM_ISP; + extra_features = HAS_VTARG_ADJ | HAS_VTARG_READ | HAS_FOSC_ADJ | HAS_VAREF_ADJ; connection_type = serial; ; @@ -948,10 +1052,11 @@ programmer #------------------------------------------------------------ programmer - id = "stk500pp"; + id = "stk500pp", "scratchmonkey_pp"; desc = "Atmel STK500 v2 in parallel programming mode"; type = "stk500pp"; prog_modes = PM_HVPP; + extra_features = HAS_VTARG_ADJ | HAS_VTARG_READ | HAS_FOSC_ADJ | HAS_VAREF_ADJ; connection_type = serial; ; @@ -960,10 +1065,11 @@ programmer #------------------------------------------------------------ programmer - id = "stk500hvsp"; + id = "stk500hvsp", "scratchmonkey_hvsp"; desc = "Atmel STK500 v2 in high-voltage serial programming mode"; type = "stk500hvsp"; prog_modes = PM_HVSP; + extra_features = HAS_VTARG_ADJ | HAS_VTARG_READ | HAS_FOSC_ADJ | HAS_VAREF_ADJ; connection_type = serial; ; @@ -976,6 +1082,7 @@ programmer desc = "Atmel STK600"; type = "stk600"; prog_modes = PM_TPI | PM_ISP | PM_PDI; + extra_features = HAS_VTARG_ADJ | HAS_VTARG_READ | HAS_FOSC_ADJ | HAS_VAREF_ADJ; connection_type = usb; ; @@ -988,6 +1095,7 @@ programmer desc = "Atmel STK600 in parallel programming mode"; type = "stk600pp"; prog_modes = PM_HVPP; + extra_features = HAS_VTARG_ADJ | HAS_VTARG_READ | HAS_FOSC_ADJ | HAS_VAREF_ADJ; connection_type = usb; ; @@ -1000,6 +1108,7 @@ programmer desc = "Atmel STK600 in high-voltage serial programming mode"; type = "stk600hvsp"; prog_modes = PM_HVSP; + extra_features = HAS_VTARG_ADJ | HAS_VTARG_READ | HAS_FOSC_ADJ | HAS_VAREF_ADJ; connection_type = usb; ; @@ -1069,11 +1178,15 @@ programmer # arduino-ft232r #------------------------------------------------------------ -# see http://www.geocities.jp/arduino_diecimila/bootloader/index_en.html -# Note: pins are numbered from 1! +# This programmer helps programming the Arduino Diecimila, NG and +# Duemilanove (but not the Uno) without bootloader or external +# programmer using the on-board FT232RL chip. Instructions here: +# https://make.kosakalab.com/arduino/bootloader/index_en.html +# Note that the -c diecimila avrdude.conf entry mentioned in above post +# is the same as the -c arduino-ft232r entry here. programmer - id = "arduino-ft232r"; + id = "arduino-ft232r", "diecimila"; desc = "Arduino: FT232R connected to ISP"; type = "ftdi_syncbb"; prog_modes = PM_TPI | PM_ISP; @@ -1101,17 +1214,6 @@ programmer sdi = 1; # RxD = D1 (wire to TPIDATA directly) ; -#------------------------------------------------------------ -# diecimila -#------------------------------------------------------------ - -# website mentioned above uses this id - -programmer parent "arduino-ft232r" - id = "diecimila"; - desc = "alias for arduino-ft232r"; -; - #------------------------------------------------------------ # uncompatino #------------------------------------------------------------ @@ -1140,9 +1242,10 @@ programmer #------------------------------------------------------------ # FTDI USB to serial cable TTL-232R-5V with a custom adapter for ICSP -# http://www.ftdichip.com/Products/Cables/USBTTLSerial.htm -# http://www.ftdichip.com/Support/Documents/DataSheets/Cables/DS_TTL-232R_CABLES.pdf -# For ICSP pinout see for example http://www.atmel.com/images/doc2562.pdf +# - https://ftdichip.com/product-category/products/cables/usb-ttl-serial-cable-series/ +# - http://www.ftdichip.com/Support/Documents/DataSheets/Cables/DS_TTL-232R_CABLES.pdf +# +# For ICSP pinout see, e.g., http://ww1.microchip.com/downloads/en/DeviceDoc/doc2562.pdf # (Figure 1. ISP6PIN header pinout and Table 1. Connections required for ISP ...) # TTL-232R GND 1 Black -> ICPS GND (pin 6) # TTL-232R CTS 2 Brown -> ICPS SDO (pin 4) @@ -1150,8 +1253,9 @@ programmer # TTL-232R TXD 4 Orange -> ICPS RESET (pin 5) # TTL-232R RXD 5 Yellow -> ICPS SCK (pin 3) # TTL-232R RTS 6 Green -> ICPS SDI (pin 1) -# Except for VCC and GND, you can connect arbitual pairs as long as -# the following table is adjusted. +# +# Except for VCC and GND, you can connect arbitrary pairs as long as the +# following table is adjusted. programmer id = "ttl232r"; @@ -1169,9 +1273,33 @@ programmer # usbasp #------------------------------------------------------------ +# From http://www.fischl.de/usbasp +# USBasp is a USB in-circuit programmer for Atmel AVR controllers. It +# simply consists of an ATmega88 or an ATmega8 and a couple of passive +# components. The programmer uses a firmware-only USB driver, no +# special USB controller is needed. +# +# Firmware, schematics and drivers are available under above URL, too. +# +# Alternative firmware for the external programmer: +# +# - https://github.com/mariusgreuel/USBasp +# Windows OS descriptor to load WinUSB driver automatically +# +# - https://github.com/nerdralph/usbasp +# WCID compliant, meaning it should work on Windows without any +# driver or .inf install; default SCK clock of 1.5 MHz and automatic +# SCK slowing if target does not respond; PORTD is left as input, so +# this firmware also works with USBISP modules, eg, +# https://www.sciencetronics.com/greenphotons/?p=938 +# +# - https://github.com/dioannidis/usbasp +# As above plus HID UART support, setting unique serial number and +# AT89S51/AT89S52 support + programmer id = "usbasp"; - desc = "USBasp, http://www.fischl.de/usbasp/"; + desc = "USBasp ISP and TPI programmer"; type = "usbasp"; prog_modes = PM_TPI | PM_ISP; connection_type = usb; @@ -1179,25 +1307,20 @@ programmer usbpid = 0x05dc; # Obdev's free shared PID usbvendor = "www.fischl.de"; usbproduct = "USBasp"; - # following variants are autodetected for id "usbasp" - - # original usbasp from fischl.de - # see above "usbasp" - # old usbasp from fischl.de + # Old usbasp from fischl.de: # usbvid = 0x03EB; # ATMEL # usbpid = 0xC7B4; # (unoffical) USBasp # usbvendor = "www.fischl.de"; # usbproduct = "USBasp"; - - # NIBObee (only if -P nibobee is given on command line) - # see below "nibobee" ; #------------------------------------------------------------ # nibobee #------------------------------------------------------------ +# http://www.nicai-systems.com/en/nibobee + programmer id = "nibobee"; desc = "NIBObee"; @@ -1228,14 +1351,16 @@ programmer # usbtiny #------------------------------------------------------------ -# USBtiny can also be used for TPI programming. +# https://learn.adafruit.com/usbtinyisp +# +# The ISP USBtiny programmer can also be used for TPI programming. # In that case, a resistor of 1 kOhm is needed between SDI and SDO # pins of the connector, and SDI (pin 1 of the 6-pin connector) # connects to TPIDATA. programmer id = "usbtiny"; - desc = "USBtiny simple USB programmer, https://learn.adafruit.com/usbtinyisp"; + desc = "USBtiny simple USB programmer"; type = "usbtiny"; prog_modes = PM_TPI | PM_ISP; connection_type = usb; @@ -1307,11 +1432,12 @@ programmer # ehajo-isp #------------------------------------------------------------ -# commercial version of USBtiny, using a separate VID/PID +# Commercial version of USBtiny using a separate VID/PID from +# http://www.eHaJo.de (closed from end of 2023) programmer id = "ehajo-isp"; - desc = "avr-isp-programmer from eHaJo, http://www.eHaJo.de"; + desc = "AVR ISP programmer from eHaJo.de"; type = "usbtiny"; prog_modes = PM_TPI | PM_ISP; connection_type = usb; @@ -1323,12 +1449,14 @@ programmer # iseavrprog #------------------------------------------------------------ -# commercial version of USBtiny, using a separate VID/PID +# Commercial version of USBtiny using a separate VID/PID from +# https://iascaled.com +# # https://github.com/IowaScaledEngineering/ckt-avrprogrammer programmer id = "iseavrprog"; - desc = "USBtiny-based programmer, https://iascaled.com"; + desc = "AVR ISP programmer from iascaled.com"; type = "usbtiny"; prog_modes = PM_TPI | PM_ISP; connection_type = usb; @@ -1364,6 +1492,38 @@ programmer usbpid = 0x0478; ; +#------------------------------------------------------------ +# ch341a +#------------------------------------------------------------ + +# Allows programming of AVR parts with F_CPU of min 6.8 MHz with the +# CH341A chip http://www.wch-ic.com/downloads/CH341DS1_PDF.html +# +# See also: +# https://www.onetransistor.eu/2017/08/ch341a-mini-programmer-schematic.html +# +# Connection scheme: +# CH341A chip -- AVR ISP Connector +# ~CTS/D0/CS0 -- RESET (can be D1 or D2, see reset setting below) +# ~DCD/D3/DCK -- SCK +# ~DTR/D5/DOUT -- SDO +# ~SLP/D7/DIN -- SDI +# GND -- GND +# 5V -- Vcc/Vin (or disconnect if separately powered) + +programmer + id = "ch341a"; + desc = "ch341a programmer (AVR must have minimum F_CPU of 6.8 MHz)"; + type = "ch341a"; + prog_modes = PM_ISP; + connection_type = usb; + usbvid = 0x1a86; + usbpid = 0x5512; + usbvendor = "wch.cn"; + usbproduct = "CH341A"; + reset = 0; # Can be 0, 1 or 2 for CS0, CS1 or CS2 +; + #------------------------------------------------------------ # butterfly #------------------------------------------------------------ @@ -1401,56 +1561,37 @@ programmer ; #------------------------------------------------------------ -# mkbutterfly +# butterfly_mk and mkbutterfly #------------------------------------------------------------ -# suggested in http://forum.mikrokopter.de/topic-post48317.html +# http://forum.mikrokopter.de programmer - id = "mkbutterfly"; + id = "butterfly_mk", "mkbutterfly"; desc = "Mikrokopter.de Butterfly for bootloader"; type = "butterfly_mk"; prog_modes = PM_SPM; connection_type = serial; ; -#------------------------------------------------------------ -# butterfly_mk -#------------------------------------------------------------ - -programmer parent "mkbutterfly" - id = "butterfly_mk"; -; - #------------------------------------------------------------ # jtagmkI #------------------------------------------------------------ programmer - id = "jtagmkI"; + id = "jtagmkI", "jtag1"; desc = "Atmel JTAG ICE (mkI)"; type = "jtagmki"; prog_modes = PM_JTAGmkI; + extra_features = HAS_VTARG_READ; connection_type = serial; baudrate = 115200; # default is 115200 ; -#------------------------------------------------------------ -# jtag1 -#------------------------------------------------------------ - -# easier to type - -programmer parent "jtagmkI" - id = "jtag1"; -; - #------------------------------------------------------------ # jtag1slow #------------------------------------------------------------ -# easier to type - programmer parent "jtag1" id = "jtag1slow"; baudrate = 19200; @@ -1470,6 +1611,7 @@ programmer desc = "Atmel JTAG ICE mkII"; type = "jtagmkii"; prog_modes = PM_JTAG | PM_XMEGAJTAG | PM_AVR32JTAG; + extra_features = HAS_VTARG_READ; connection_type = usb; baudrate = 19200; # default is 19200 ; @@ -1478,8 +1620,6 @@ programmer # jtag2slow #------------------------------------------------------------ -# easier to type - programmer parent "jtagmkII" id = "jtag2slow"; ; @@ -1488,23 +1628,13 @@ programmer parent "jtagmkII" # jtag2fast #------------------------------------------------------------ -# JTAG ICE mkII @ 115200 Bd +# JTAG ICE mkII @ 115200 Bd (and alias jtag2 the fast version) programmer parent "jtag2slow" - id = "jtag2fast"; + id = "jtag2fast", "jtag2"; baudrate = 115200; ; -#------------------------------------------------------------ -# jtag2 -#------------------------------------------------------------ - -# make the fast one the default, people will love that - -programmer parent "jtag2fast" - id = "jtag2"; -; - #------------------------------------------------------------ # jtag2isp #------------------------------------------------------------ @@ -1516,6 +1646,7 @@ programmer desc = "Atmel JTAG ICE mkII in ISP mode"; type = "jtagmkii_isp"; prog_modes = PM_TPI | PM_ISP; + extra_features = HAS_VTARG_READ; connection_type = usb; baudrate = 115200; ; @@ -1531,6 +1662,7 @@ programmer desc = "Atmel JTAG ICE mkII in debugWire mode"; type = "jtagmkii_dw"; prog_modes = PM_debugWIRE; + extra_features = HAS_VTARG_READ; connection_type = usb; baudrate = 115200; ; @@ -1542,25 +1674,11 @@ programmer # JTAG ICE mkII in AVR32 mode programmer - id = "jtagmkII_avr32"; - desc = "Atmel JTAG ICE mkII in AVR32 mode"; - type = "jtagmkii_avr32"; - prog_modes = PM_aWire; - connection_type = usb; - baudrate = 115200; -; - -#------------------------------------------------------------ -# jtag2avr32 -#------------------------------------------------------------ - -# JTAG ICE mkII in AVR32 mode - -programmer - id = "jtag2avr32"; + id = "jtagmkII_avr32", "jtag2avr32"; desc = "Atmel JTAG ICE mkII in AVR32 mode"; type = "jtagmkii_avr32"; prog_modes = PM_aWire; + extra_features = HAS_VTARG_READ; connection_type = usb; baudrate = 115200; ; @@ -1576,6 +1694,7 @@ programmer desc = "Atmel JTAG ICE mkII in PDI mode"; type = "jtagmkii_pdi"; prog_modes = PM_PDI; + extra_features = HAS_VTARG_READ; connection_type = usb; baudrate = 115200; ; @@ -1591,6 +1710,7 @@ programmer desc = "Atmel AVR Dragon in JTAG mode"; type = "dragon_jtag"; prog_modes = PM_JTAG | PM_XMEGAJTAG | PM_AVR32JTAG; + extra_features = HAS_VTARG_READ; connection_type = usb; baudrate = 115200; ; @@ -1606,6 +1726,7 @@ programmer desc = "Atmel AVR Dragon in ISP mode"; type = "dragon_isp"; prog_modes = PM_TPI | PM_ISP; + extra_features = HAS_VTARG_READ; connection_type = usb; baudrate = 115200; ; @@ -1621,6 +1742,7 @@ programmer desc = "Atmel AVR Dragon in PP mode"; type = "dragon_pp"; prog_modes = PM_HVPP; + extra_features = HAS_VTARG_READ; connection_type = usb; baudrate = 115200; ; @@ -1636,6 +1758,7 @@ programmer desc = "Atmel AVR Dragon in HVSP mode"; type = "dragon_hvsp"; prog_modes = PM_HVSP; + extra_features = HAS_VTARG_READ; connection_type = usb; baudrate = 115200; ; @@ -1651,6 +1774,7 @@ programmer desc = "Atmel AVR Dragon in debugWire mode"; type = "dragon_dw"; prog_modes = PM_debugWIRE; + extra_features = HAS_VTARG_READ; connection_type = usb; baudrate = 115200; ; @@ -1666,6 +1790,7 @@ programmer desc = "Atmel AVR Dragon in PDI mode"; type = "dragon_pdi"; prog_modes = PM_PDI; + extra_features = HAS_VTARG_READ; connection_type = usb; baudrate = 115200; ; @@ -1679,6 +1804,7 @@ programmer desc = "Atmel AVR JTAGICE3 in JTAG mode"; type = "jtagice3"; prog_modes = PM_JTAG | PM_XMEGAJTAG | PM_AVR32JTAG; + extra_features = HAS_VTARG_READ; connection_type = usb; usbpid = 0x2110, 0x2140; ; @@ -1692,6 +1818,7 @@ programmer desc = "Atmel AVR JTAGICE3 in PDI mode"; type = "jtagice3_pdi"; prog_modes = PM_PDI; + extra_features = HAS_VTARG_READ; connection_type = usb; usbpid = 0x2110, 0x2140; ; @@ -1705,6 +1832,7 @@ programmer desc = "Atmel AVR JTAGICE3 in UPDI mode"; type = "jtagice3_updi"; prog_modes = PM_UPDI; + extra_features = HAS_VTARG_READ; connection_type = usb; usbpid = 0x2110, 0x2140; hvupdi_support = 1; @@ -1719,6 +1847,7 @@ programmer desc = "Atmel AVR JTAGICE3 in debugWIRE mode"; type = "jtagice3_dw"; prog_modes = PM_debugWIRE; + extra_features = HAS_VTARG_READ; connection_type = usb; usbpid = 0x2110, 0x2140; ; @@ -1732,6 +1861,7 @@ programmer desc = "Atmel AVR JTAGICE3 in ISP mode"; type = "jtagice3_isp"; prog_modes = PM_ISP; + extra_features = HAS_VTARG_READ; connection_type = usb; usbpid = 0x2110, 0x2140; ; @@ -1778,14 +1908,15 @@ programmer ; #------------------------------------------------------------ -# xplainedmini +# xplainedmini / xplainedmini_isp #------------------------------------------------------------ programmer - id = "xplainedmini"; + id = "xplainedmini", "xplainedmini_isp"; desc = "Atmel AVR XplainedMini in ISP mode"; type = "jtagice3_isp"; prog_modes = PM_ISP; + extra_features = HAS_SUFFER | HAS_VTARG_SWITCH; connection_type = usb; usbpid = 0x2145; ; @@ -1799,6 +1930,7 @@ programmer desc = "Atmel AVR XplainedMini in debugWIRE mode"; type = "jtagice3_dw"; prog_modes = PM_debugWIRE; + extra_features = HAS_SUFFER | HAS_VTARG_SWITCH; connection_type = usb; usbpid = 0x2145; ; @@ -1812,6 +1944,7 @@ programmer desc = "Atmel AVR XplainedMini in UPDI mode"; type = "jtagice3_updi"; prog_modes = PM_UPDI; + extra_features = HAS_SUFFER | HAS_VTARG_SWITCH; connection_type = usb; usbpid = 0x2145; hvupdi_support = 1; @@ -1831,14 +1964,15 @@ programmer ; #------------------------------------------------------------ -# atmelice +# atmelice / atmelice_jtag #------------------------------------------------------------ programmer - id = "atmelice"; + id = "atmelice", "atmelice_jtag"; desc = "Atmel-ICE (ARM/AVR) in JTAG mode"; type = "jtagice3"; prog_modes = PM_JTAG | PM_XMEGAJTAG | PM_AVR32JTAG; + extra_features = HAS_VTARG_READ; connection_type = usb; usbpid = 0x2141; ; @@ -1852,6 +1986,7 @@ programmer desc = "Atmel-ICE (ARM/AVR) in PDI mode"; type = "jtagice3_pdi"; prog_modes = PM_PDI; + extra_features = HAS_VTARG_READ; connection_type = usb; usbpid = 0x2141; ; @@ -1865,6 +2000,7 @@ programmer desc = "Atmel-ICE (ARM/AVR) in UPDI mode"; type = "jtagice3_updi"; prog_modes = PM_UPDI; + extra_features = HAS_VTARG_READ; connection_type = usb; usbpid = 0x2141; hvupdi_support = 1; @@ -1879,6 +2015,7 @@ programmer desc = "Atmel-ICE (ARM/AVR) in debugWIRE mode"; type = "jtagice3_dw"; prog_modes = PM_debugWIRE; + extra_features = HAS_VTARG_READ; connection_type = usb; usbpid = 0x2141; ; @@ -1892,6 +2029,7 @@ programmer desc = "Atmel-ICE (ARM/AVR) in ISP mode"; type = "jtagice3_isp"; prog_modes = PM_ISP; + extra_features = HAS_VTARG_READ; connection_type = usb; usbpid = 0x2141; ; @@ -1905,19 +2043,21 @@ programmer desc = "Atmel-ICE (ARM/AVR) in TPI mode"; type = "jtagice3_tpi"; prog_modes = PM_TPI; + extra_features = HAS_VTARG_READ; connection_type = usb; usbpid = 0x2141; ; #------------------------------------------------------------ -# powerdebugger +# powerdebugger / powerdebugger_jtag #------------------------------------------------------------ programmer - id = "powerdebugger"; + id = "powerdebugger", "powerdebugger_jtag"; desc = "Atmel PowerDebugger (ARM/AVR) in JTAG mode"; type = "jtagice3"; prog_modes = PM_JTAG | PM_XMEGAJTAG | PM_AVR32JTAG; + extra_features = HAS_VTARG_ADJ | HAS_VTARG_READ; connection_type = usb; usbpid = 0x2144; ; @@ -1931,6 +2071,7 @@ programmer desc = "Atmel PowerDebugger (ARM/AVR) in PDI mode"; type = "jtagice3_pdi"; prog_modes = PM_PDI; + extra_features = HAS_VTARG_ADJ | HAS_VTARG_READ; connection_type = usb; usbpid = 0x2144; ; @@ -1944,6 +2085,7 @@ programmer desc = "Atmel PowerDebugger (ARM/AVR) in UPDI mode"; type = "jtagice3_updi"; prog_modes = PM_UPDI; + extra_features = HAS_VTARG_ADJ | HAS_VTARG_READ; connection_type = usb; usbpid = 0x2144; hvupdi_support = 0, 1; @@ -1958,6 +2100,7 @@ programmer desc = "Atmel PowerDebugger (ARM/AVR) in debugWire mode"; type = "jtagice3_dw"; prog_modes = PM_debugWIRE; + extra_features = HAS_VTARG_ADJ | HAS_VTARG_READ; connection_type = usb; usbpid = 0x2144; ; @@ -1971,6 +2114,7 @@ programmer desc = "Atmel PowerDebugger (ARM/AVR) in ISP mode"; type = "jtagice3_isp"; prog_modes = PM_ISP; + extra_features = HAS_VTARG_ADJ | HAS_VTARG_READ; connection_type = usb; usbpid = 0x2144; ; @@ -1984,19 +2128,21 @@ programmer desc = "Atmel PowerDebugger (ARM/AVR) in TPI mode"; type = "jtagice3_tpi"; prog_modes = PM_TPI; + extra_features = HAS_VTARG_ADJ | HAS_VTARG_READ; connection_type = usb; usbpid = 0x2144; ; #------------------------------------------------------------ -# pickit4 +# pickit4 / pickit4_jtag #------------------------------------------------------------ programmer - id = "pickit4"; + id = "pickit4", "pickit4_jtag"; desc = "MPLAB(R) PICkit 4 in JTAG mode"; type = "jtagice3"; prog_modes = PM_JTAG | PM_XMEGAJTAG; + extra_features = HAS_VTARG_READ; connection_type = usb; usbpid = 0x2177, 0x2178, 0x2179; ; @@ -2010,6 +2156,7 @@ programmer desc = "MPLAB(R) PICkit 4 in UPDI mode"; type = "jtagice3_updi"; prog_modes = PM_UPDI; + extra_features = HAS_VTARG_READ; connection_type = usb; usbpid = 0x2177, 0x2178, 0x2179; hvupdi_support = 0, 1, 2; @@ -2024,6 +2171,7 @@ programmer desc = "MPLAB(R) PICkit 4 in PDI mode"; type = "jtagice3_pdi"; prog_modes = PM_PDI; + extra_features = HAS_VTARG_READ; connection_type = usb; usbpid = 0x2177, 0x2178, 0x2179; ; @@ -2037,6 +2185,7 @@ programmer desc = "MPLAB(R) PICkit 4 in ISP mode"; type = "jtagice3_isp"; prog_modes = PM_ISP; + extra_features = HAS_VTARG_READ; connection_type = usb; usbpid = 0x2177, 0x2178, 0x2179; ; @@ -2050,19 +2199,21 @@ programmer desc = "MPLAB(R) PICkit 4 in TPI mode"; type = "jtagice3_tpi"; prog_modes = PM_TPI; + extra_features = HAS_VTARG_READ; connection_type = usb; usbpid = 0x2177, 0x2178, 0x2179; ; #------------------------------------------------------------ -# snap +# snap /snap_jtag #------------------------------------------------------------ programmer - id = "snap"; + id = "snap", "snap_jtag"; desc = "MPLAB(R) Snap in JTAG mode"; type = "jtagice3"; prog_modes = PM_JTAG | PM_XMEGAJTAG; + extra_features = HAS_VTARG_READ; connection_type = usb; usbpid = 0x2180, 0x217f, 0x2181; ; @@ -2076,6 +2227,7 @@ programmer desc = "MPLAB(R) SNAP in UPDI mode"; type = "jtagice3_updi"; prog_modes = PM_UPDI; + extra_features = HAS_VTARG_READ; connection_type = usb; usbpid = 0x2180, 0x217f, 0x2181; hvupdi_support = 1; @@ -2090,6 +2242,7 @@ programmer desc = "MPLAB(R) SNAP in PDI mode"; type = "jtagice3_pdi"; prog_modes = PM_PDI; + extra_features = HAS_VTARG_READ; connection_type = usb; usbpid = 0x2180, 0x217f, 0x2181; ; @@ -2103,6 +2256,7 @@ programmer desc = "MPLAB(R) SNAP in ISP mode"; type = "jtagice3_isp"; prog_modes = PM_ISP; + extra_features = HAS_VTARG_READ; connection_type = usb; usbpid = 0x2180, 0x217f, 0x2181; ; @@ -2116,6 +2270,7 @@ programmer desc = "MPLAB(R) SNAP in TPI mode"; type = "jtagice3_tpi"; prog_modes = PM_TPI; + extra_features = HAS_VTARG_READ; connection_type = usb; usbpid = 0x2180, 0x217f, 0x2181; ; @@ -2129,6 +2284,7 @@ programmer desc = "Curiosity nano (nEDBG) in UPDI mode"; type = "jtagice3_updi"; prog_modes = PM_UPDI; + extra_features = HAS_VTARG_ADJ | HAS_VTARG_READ; connection_type = usb; usbpid = 0x2175; hvupdi_support = 1; @@ -2222,12 +2378,12 @@ programmer # siprog #------------------------------------------------------------ +# Serial port adapter http://www.lancos.com/siprogsch.html # Same as above, different name -# reset=!txd sck=rts sdo=dtr sdi=cts programmer parent "ponyser" id = "siprog"; - desc = "Lancos SI-Prog "; + desc = "Lancos SI-Prog (same as ponyser)"; ; #------------------------------------------------------------ @@ -2317,6 +2473,19 @@ programmer part desc = "ATtiny11"; id = "t11"; + variants = + "ATtiny11: N/A, Fmax=N/A, T=[N/A, N/A], Vcc=[2.7 V, 5.5 V]", + "ATtiny11-6PC: DIP8, Fmax=6 MHz, T=[0 C, 70 C], Vcc=[4 V, 5.5 V]", + "ATtiny11-6PI: DIP8, Fmax=6 MHz, T=[-40 C, 85 C], Vcc=[4 V, 5.5 V]", + "ATtiny11-6PU: DIP8, Fmax=6 MHz, T=[-40 C, 85 C], Vcc=[4 V, 5.5 V]", + "ATtiny11-6SC: SOIC8, Fmax=6 MHz, T=[0 C, 70 C], Vcc=[4 V, 5.5 V]", + "ATtiny11-6SI: SOIC8, Fmax=6 MHz, T=[-40 C, 85 C], Vcc=[4 V, 5.5 V]", + "ATtiny11-6SU: SOIC8, Fmax=6 MHz, T=[-40 C, 85 C], Vcc=[4 V, 5.5 V]", + "ATtiny11L-2PC: DIP8, Fmax=2 MHz, T=[0 C, 70 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny11L-2PI: DIP8, Fmax=2 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny11L-2SC: SOIC8, Fmax=2 MHz, T=[0 C, 70 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny11L-2SI: SOIC8, Fmax=2 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny11L-2SU: SOIC8, Fmax=2 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]"; prog_modes = PM_HVSP; mcuid = 8; n_interrupts = 5; @@ -2334,7 +2503,7 @@ part latchcycles = 1; togglevtg = 1; poweroffdelay = 25; - resetdelayus = 50; + resetdelayms = 1; hvleavestabdelay = 100; resetdelay = 25; chiperasepolltimeout = 40; @@ -2358,10 +2527,14 @@ part memory "fuse" size = 1; + initval = 0xf4; + bitmask = 0x1f; ; memory "lock" size = 1; + initval = 0xff; + bitmask = 0x06; ; memory "signature" @@ -2380,6 +2553,15 @@ part part desc = "ATtiny12"; id = "t12"; + variants = + "ATtiny12: N/A, Fmax=8 MHz, T=[N/A, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny12-8PU: PDIP8, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[4 V, 5.5 V]", + "ATtiny12-8SU: SOIC8, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[4 V, 5.5 V]", + "ATtiny12L-4PU: PDIP8, Fmax=4 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny12L-4SU: SOIC8, Fmax=4 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny12L-4SUR: SOIC8, Fmax=4 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny12V-1SU: SOIC8, Fmax=1.2 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny12V-1SUR: SOIC8, Fmax=1.2 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; prog_modes = PM_ISP | PM_HVSP; mcuid = 9; n_interrupts = 6; @@ -2404,7 +2586,7 @@ part latchcycles = 1; togglevtg = 1; poweroffdelay = 25; - resetdelayus = 50; + resetdelayms = 1; hvleavestabdelay = 100; resetdelay = 25; chiperasepolltimeout = 40; @@ -2419,8 +2601,8 @@ part min_write_delay = 9000; max_write_delay = 20000; readback = 0xff 0xff; - mode = 4; - delay = 8; + mode = 0x04; + delay = 20; blocksize = 64; readsize = 256; read = "1010.0000--xxxx.xxxx--xxaa.aaaa--oooo.oooo"; @@ -2431,9 +2613,9 @@ part size = 1024; min_write_delay = 4500; max_write_delay = 20000; - readback = 0xff 0xff; - mode = 4; - delay = 5; + readback = 0xff 0x00; + mode = 0x04; + delay = 10; blocksize = 128; readsize = 256; read_lo = "0010.0000--xxxx.xxxa--aaaa.aaaa--oooo.oooo"; @@ -2444,6 +2626,7 @@ part memory "fuse" size = 1; + initval = 0x52; min_write_delay = 9000; max_write_delay = 9000; read = "0101.0000--xxxx.xxxx--xxxx.xxxx--oooo.oooo"; @@ -2452,6 +2635,8 @@ part memory "lock" size = 1; + initval = 0xff; + bitmask = 0x06; min_write_delay = 9000; max_write_delay = 9000; read = "0101.1000--xxxx.xxxx--xxxx.xxxx--xxxx.xoox"; @@ -2476,6 +2661,31 @@ part part desc = "ATtiny13"; id = "t13"; + variants = + "ATtiny13: N/A, Fmax=20 MHz, T=[N/A, 85 C], Vcc=[N/A, N/A]", + "ATtiny13-20MMU: MLF10, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny13-20MMUR: VDFN10, Fmax=20 MHz, T=[N/A, N/A], Vcc=[2.7 V, 5.5 V]", + "ATtiny13-20MU: MLF20, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny13-20MUR: WQFN20, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny13-20PU: PDIP8, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny13-20SQ: SOIC8, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny13-20SQR: SOIC8, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny13-20SSQ: SOIC8N, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny13-20SSQR: SOIC8, Fmax=20 MHz, T=[N/A, N/A], Vcc=[2.7 V, 5.5 V]", + "ATtiny13-20SSU: SOIC8N, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny13-20SSUR: SOIC8N, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny13-20SU: SOIC8, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny13-20SUR: SOIC8, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny13V-10MMU: MLF10, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny13V-10MMUR: VDFN10, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny13V-10MU: MLF20, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny13V-10MUR: WQFN20, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny13V-10PQ: PDIP8, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny13V-10PU: PDIP8, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny13V-10SSU: SOIC8N, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny13V-10SSUR: SOIC8N, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny13V-10SU: SOIC8, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny13V-10SUR: SOIC8, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; prog_modes = PM_SPM | PM_ISP | PM_HVSP | PM_debugWIRE; mcuid = 10; n_interrupts = 10; @@ -2505,13 +2715,14 @@ part latchcycles = 1; togglevtg = 1; poweroffdelay = 25; - resetdelayus = 90; + resetdelayms = 1; hvleavestabdelay = 100; resetdelay = 25; chiperasepolltimeout = 40; programfusepolltimeout = 25; programlockpolltimeout = 25; synchcycles = 6; + idr = 0x2e; spmcr = 0x57; eecr = 0x3c; ocdrev = 0; @@ -2523,8 +2734,7 @@ part page_size = 4; min_write_delay = 4000; max_write_delay = 4000; - readback = 0xff 0xff; - mode = 65; + mode = 0x41; delay = 5; blocksize = 4; readsize = 256; @@ -2541,9 +2751,8 @@ part num_pages = 32; min_write_delay = 4500; max_write_delay = 4500; - readback = 0xff 0xff; - mode = 65; - delay = 6; + mode = 0x41; + delay = 10; blocksize = 32; readsize = 256; read_lo = "0010.0000--0000.000a--aaaa.aaaa--oooo.oooo"; @@ -2555,6 +2764,7 @@ part memory "lfuse" size = 1; + initval = 0x6a; min_write_delay = 4500; max_write_delay = 4500; read = "0101.0000--0000.0000--xxxx.xxxx--oooo.oooo"; @@ -2563,6 +2773,8 @@ part memory "hfuse" size = 1; + initval = 0xff; + bitmask = 0x1f; min_write_delay = 4500; max_write_delay = 4500; read = "0101.1000--0000.1000--xxxx.xxxx--oooo.oooo"; @@ -2571,6 +2783,8 @@ part memory "lock" size = 1; + initval = 0xff; + bitmask = 0x03; min_write_delay = 4500; max_write_delay = 4500; read = "0101.1000--0000.0000--xxxx.xxxx--oooo.oooo"; @@ -2595,6 +2809,27 @@ part part parent "t13" desc = "ATtiny13A"; id = "t13a"; + variants = + "ATtiny13A-MMF: VDFN10, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny13A-MMFR: VDFN10, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny13A-MMU: MLF10, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny13A-MMUR: MLF10, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny13A-MU: MLF20, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny13A-MUR: WQFN20, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny13A-PU: PDIP8, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny13A-SF: SOIC8, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny13A-SFR: SOIC8, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny13A-SH: SOIC8, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny13A-SN: SOIC8, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny13A-SNR: SOIC8, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny13A-SS7: SOIC8, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny13A-SS7R: SOIC8, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny13A-SSH: SOIC8, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny13A-SSHR: SOIC8N, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny13A-SSU: SOIC8, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny13A-SSUR: SOIC8, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny13A-SU: SOIC8, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny13A-SUR: SOIC8, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 11; ; @@ -2605,6 +2840,14 @@ part parent "t13" part desc = "ATtiny15"; id = "t15"; + variants = + "ATtiny15: N/A, Fmax=N/A, T=[N/A, N/A], Vcc=[2.7 V, 5.5 V]", + "ATtiny15L-1PC: DIP8, Fmax=1.6 MHz, T=[0 C, 70 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny15L-1PI: DIP8, Fmax=1.6 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny15L-1PU: DIP8, Fmax=1.6 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny15L-1SC: SOIC8, Fmax=1.6 MHz, T=[0 C, 70 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny15L-1SI: SOIC8, Fmax=1.6 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny15L-1SU: SOIC8, Fmax=1.6 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]"; prog_modes = PM_ISP | PM_HVSP; mcuid = 12; n_interrupts = 9; @@ -2629,7 +2872,7 @@ part latchcycles = 16; togglevtg = 1; poweroffdelay = 25; - resetdelayus = 50; + resetdelayms = 1; hvleavestabdelay = 100; resetdelay = 25; chiperasepolltimeout = 40; @@ -2645,8 +2888,8 @@ part min_write_delay = 8200; max_write_delay = 8200; readback = 0xff 0xff; - mode = 4; - delay = 10; + mode = 0x04; + delay = 20; blocksize = 64; readsize = 256; read = "1010.0000--xxxx.xxxx--xxaa.aaaa--oooo.oooo"; @@ -2657,9 +2900,9 @@ part size = 1024; min_write_delay = 4100; max_write_delay = 4100; - readback = 0xff 0xff; - mode = 4; - delay = 5; + readback = 0xff 0x00; + mode = 0x04; + delay = 10; blocksize = 128; readsize = 256; read_lo = "0010.0000--xxxx.xxxa--aaaa.aaaa--oooo.oooo"; @@ -2670,6 +2913,8 @@ part memory "fuse" size = 1; + initval = 0x5c; + bitmask = 0xf3; min_write_delay = 9000; max_write_delay = 9000; read = "0101.0000--xxxx.xxxx--xxxx.xxxx--oooo.xxoo"; @@ -2678,6 +2923,8 @@ part memory "lock" size = 1; + initval = 0xff; + bitmask = 0x06; min_write_delay = 9000; max_write_delay = 9000; read = "0101.1000--xxxx.xxxx--xxxx.xxxx--xxxx.xoox"; @@ -2696,12 +2943,125 @@ part ; #------------------------------------------------------------ -# AT90s1200 +# AT89S51 +#------------------------------------------------------------ + +# Nonstandard part +# - Tested with -c avrisp +# - USBASP programmers may require different firmware + +part + desc = "AT89S51"; + id = "89S51"; + variants = + "AT89S51: N/A, Fmax=33 MHz, T=[N/A, N/A], Vcc=[4 V, 5.5 V]", + "AT89S51-24AU: TQFP44, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[4 V, 5.5 V]", + "AT89S51-24JU: PLCC44, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[4 V, 5.5 V]", + "AT89S51-24PU: PDIP40, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[4 V, 5.5 V]"; + prog_modes = PM_ISP | PM_HVPP; + mcuid = 372; + stk500_devcode = 0xe0; + chip_erase_delay = 250000; + signature = 0x1e 0x51 0x06; + timeout = 200; + stabdelay = 100; + cmdexedelay = 25; + synchloops = 32; + pollindex = 4; + pollvalue = 0x69; + predelay = 1; + postdelay = 1; + chiperasepulsewidth = 15; + programfusepulsewidth = 2; + programlockpolltimeout = 1; + chip_erase = "1010.1100--100x.xxxx--xxxx.xxxx--xxxx.xxxx"; + pgm_enable = "1010.1100--0101.0011--xxxx.xxxx--xxxx.xxxx"; + + memory "flash" + size = 4096; + min_write_delay = 4500; + max_write_delay = 4500; + readback = 0xff 0xff; + mode = 0x02; + delay = 10; + blocksize = 256; + read = "0010.0000--xxxa.aaaa--aaaa.aaaa--oooo.oooo"; + write = "0100.0000--xxxa.aaaa--aaaa.aaaa--iiii.iiii"; + # Nonstandard page mode is available but not implemented + ; + + memory "lock" + size = 1; + read = "0010.0100--xxxx.xxxx--xxxx.xxxx--xxxo.ooxx"; + # Nonstandard write: expect verification errors + # See datasheet Page 20, Note 1 https://ww1.microchip.com/downloads/en/DeviceDoc/doc2487.pdf + # Activate lock mode 0 through chip erase: avrdude -e + # Activate lock mode 1: avrdude -e -V -U lock:w:1:m + # Activate lock mode 2: avrdude -e -V -U lock:w:1:m -U lock:w:2:m + # Activate lock mode 3: avrdude -e -V -U lock:w:1:m -U lock:w:2:m -U lock:w:3:m + write = "1010.1100--1110.00ii--xxxx.xxxx--xxxx.xxxx"; + ; + + memory "signature" + size = 3; + read = "0 0 1 0 1 0 0 0 x x x x x x a1 a0 x x x x x x x 0 o o o o o o o o"; + ; +; + +#------------------------------------------------------------ +# AT89S52 +#------------------------------------------------------------ + +part parent "89S51" + desc = "AT89S52"; + id = "89S52"; + variants = + "AT89S52: N/A, Fmax=33 MHz, T=[N/A, N/A], Vcc=[4 V, 5.5 V]", + "AT89S52-24AU: TQFP44, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[4 V, 5.5 V]", + "AT89S52-24AUR: TQFP44, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[4 V, 5.5 V]", + "AT89S52-24JU: PLCC44, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[4 V, 5.5 V]", + "AT89S52-24PU: PDIP40, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[4 V, 5.5 V]"; + mcuid = 373; + stk500_devcode = 0xe1; + signature = 0x1e 0x52 0x06; + + memory "flash" + size = 8192; + ; +; + +#------------------------------------------------------------ +# AT90S1200 #------------------------------------------------------------ part desc = "AT90S1200"; id = "1200"; + variants = + "AT90S1200-12PC: DIP20, Fmax=12 MHz, T=[0 C, 70 C], Vcc=[4 V, 6 V]", + "AT90S1200-12PI: DIP20, Fmax=12 MHz, T=[-40 C, 85 C], Vcc=[4 V, 6 V]", + "AT90S1200-12SC: SOIC20, Fmax=12 MHz, T=[0 C, 70 C], Vcc=[4 V, 6 V]", + "AT90S1200-12SI: SOIC20, Fmax=12 MHz, T=[-40 C, 85 C], Vcc=[4 V, 6 V]", + "AT90S1200-12YC: SSOP20, Fmax=12 MHz, T=[0 C, 70 C], Vcc=[4 V, 6 V]", + "AT90S1200-12YI: SSOP20, Fmax=12 MHz, T=[-40 C, 85 C], Vcc=[4 V, 6 V]", + "AT90S1200-4PC: DIP20, Fmax=4 MHz, T=[0 C, 70 C], Vcc=[2.7 V, 6 V]", + "AT90S1200-4PI: DIP20, Fmax=4 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 6 V]", + "AT90S1200-4SC: SOIC20, Fmax=4 MHz, T=[0 C, 70 C], Vcc=[2.7 V, 6 V]", + "AT90S1200-4SI: SOIC20, Fmax=4 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 6 V]", + "AT90S1200-4YC: SSOP20, Fmax=4 MHz, T=[0 C, 70 C], Vcc=[2.7 V, 6 V]", + "AT90S1200-4YI: SSOP20, Fmax=4 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 6 V]", + "AT90S1200A-12PC: DIP20, Fmax=12 MHz, T=[0 C, 70 C], Vcc=[4 V, 6 V]", + "AT90S1200A-12PI: DIP20, Fmax=12 MHz, T=[-40 C, 85 C], Vcc=[4 V, 6 V]", + "AT90S1200A-12SC: SOIC20, Fmax=12 MHz, T=[0 C, 70 C], Vcc=[4 V, 6 V]", + "AT90S1200A-12SI: SOIC20, Fmax=12 MHz, T=[-40 C, 85 C], Vcc=[4 V, 6 V]", + "AT90S1200A-12YC: SSOP20, Fmax=12 MHz, T=[0 C, 70 C], Vcc=[4 V, 6 V]", + "AT90S1200A-12YI: SSOP20, Fmax=12 MHz, T=[-40 C, 85 C], Vcc=[4 V, 6 V]", + "AT90S1200A-4PC: DIP20, Fmax=4 MHz, T=[0 C, 70 C], Vcc=[2.7 V, 6 V]", + "AT90S1200A-4PI: DIP20, Fmax=4 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 6 V]", + "AT90S1200A-4SC: SOIC20, Fmax=4 MHz, T=[0 C, 70 C], Vcc=[2.7 V, 6 V]", + "AT90S1200A-4SI: SOIC20, Fmax=4 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 6 V]", + "AT90S1200A-4YC: SSOP20, Fmax=4 MHz, T=[0 C, 70 C], Vcc=[2.7 V, 6 V]", + "AT90S1200A-4YI: SSOP20, Fmax=4 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 6 V]"; prog_modes = PM_SPM | PM_ISP | PM_HVPP; mcuid = 183; n_interrupts = 4; @@ -2737,7 +3097,7 @@ part min_write_delay = 4000; max_write_delay = 9000; readback = 0x00 0xff; - mode = 4; + mode = 0x04; delay = 20; blocksize = 32; readsize = 256; @@ -2750,7 +3110,7 @@ part min_write_delay = 4000; max_write_delay = 9000; readback = 0xff 0xff; - mode = 2; + mode = 0x02; delay = 15; blocksize = 128; readsize = 256; @@ -2762,10 +3122,14 @@ part memory "fuse" size = 1; + initval = 0xdf; + bitmask = 0x21; ; memory "lock" size = 1; + initval = 0xff; + bitmask = 0x06; min_write_delay = 9000; max_write_delay = 20000; write = "1010.1100--1111.1ii1--xxxx.xxxx--xxxx.xxxx"; @@ -2778,12 +3142,25 @@ part ; #------------------------------------------------------------ -# AT90s4414 +# AT90S4414 #------------------------------------------------------------ part desc = "AT90S4414"; id = "4414"; + variants = + "AT90S4414-4AC: TQFP44, Fmax=4 MHz, T=[0 C, 70 C], Vcc=[2.7 V, 6 V]", + "AT90S4414-4AI: TQFP44, Fmax=4 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 6 V]", + "AT90S4414-4JC: LCC44, Fmax=4 MHz, T=[0 C, 70 C], Vcc=[2.7 V, 6 V]", + "AT90S4414-4JI: LCC44, Fmax=4 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 6 V]", + "AT90S4414-4PC: DIP40, Fmax=4 MHz, T=[0 C, 70 C], Vcc=[2.7 V, 6 V]", + "AT90S4414-4PI: DIP40, Fmax=4 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 6 V]", + "AT90S4414-8AC: TQFP44, Fmax=8 MHz, T=[0 C, 70 C], Vcc=[4 V, 6 V]", + "AT90S4414-8AI: TQFP44, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[4 V, 6 V]", + "AT90S4414-8JC: LCC44, Fmax=8 MHz, T=[0 C, 70 C], Vcc=[4 V, 6 V]", + "AT90S4414-8JI: LCC44, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[4 V, 6 V]", + "AT90S4414-8PC: DIP40, Fmax=8 MHz, T=[0 C, 70 C], Vcc=[4 V, 6 V]", + "AT90S4414-8PI: DIP40, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[4 V, 6 V]"; prog_modes = PM_SPM | PM_ISP | PM_HVPP; mcuid = 190; n_interrupts = 13; @@ -2817,7 +3194,7 @@ part min_write_delay = 9000; max_write_delay = 20000; readback = 0x80 0x7f; - mode = 4; + mode = 0x04; delay = 12; blocksize = 64; readsize = 256; @@ -2830,7 +3207,7 @@ part min_write_delay = 9000; max_write_delay = 20000; readback = 0x7f 0x7f; - mode = 4; + mode = 0x04; delay = 12; blocksize = 64; readsize = 256; @@ -2842,10 +3219,14 @@ part memory "fuse" size = 1; + initval = 0xdf; + bitmask = 0x21; ; memory "lock" size = 1; + initval = 0xff; + bitmask = 0x06; min_write_delay = 9000; max_write_delay = 9000; write = "1010.1100--1111.1ii1--xxxx.xxxx--xxxx.xxxx"; @@ -2858,12 +3239,21 @@ part ; #------------------------------------------------------------ -# AT90s2313 +# AT90S2313 #------------------------------------------------------------ part desc = "AT90S2313"; id = "2313"; + variants = + "AT90S2313-10PC: DIP20, Fmax=10 MHz, T=[0 C, 70 C], Vcc=[4 V, 6 V]", + "AT90S2313-10PI: DIP20, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[4 V, 6 V]", + "AT90S2313-10SC: SOIC20, Fmax=10 MHz, T=[0 C, 70 C], Vcc=[4 V, 6 V]", + "AT90S2313-10SI: SOIC20, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[4 V, 6 V]", + "AT90S2313-4PC: DIP20, Fmax=4 MHz, T=[0 C, 70 C], Vcc=[2.7 V, 6 V]", + "AT90S2313-4PI: DIP20, Fmax=4 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 6 V]", + "AT90S2313-4SC: SOIC20, Fmax=4 MHz, T=[0 C, 70 C], Vcc=[2.7 V, 6 V]", + "AT90S2313-4SI: SOIC20, Fmax=4 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 6 V]"; prog_modes = PM_SPM | PM_ISP | PM_HVPP; mcuid = 186; n_interrupts = 11; @@ -2897,7 +3287,7 @@ part min_write_delay = 4000; max_write_delay = 9000; readback = 0x80 0x7f; - mode = 4; + mode = 0x04; delay = 12; blocksize = 64; readsize = 256; @@ -2910,7 +3300,7 @@ part min_write_delay = 4000; max_write_delay = 9000; readback = 0x7f 0x7f; - mode = 4; + mode = 0x04; delay = 12; blocksize = 128; readsize = 256; @@ -2922,10 +3312,14 @@ part memory "fuse" size = 1; + initval = 0xdf; + bitmask = 0x21; ; memory "lock" size = 1; + initval = 0xff; + bitmask = 0x06; min_write_delay = 9000; max_write_delay = 9000; write = "1010.1100--111x.xiix--xxxx.xxxx--xxxx.xxxx"; @@ -2938,13 +3332,18 @@ part ; #------------------------------------------------------------ -# AT90s2333 +# AT90S2333 #------------------------------------------------------------ part ##### WARNING: No XML file for device 'AT90S2333'! ##### desc = "AT90S2333"; id = "2333"; + variants = + "AT90S2333-8AC: TQFP32, Fmax=8 MHz, T=[0 C, 70 C], Vcc=[4 V, 6 V]", + "AT90S2333-8AI: TQFP32, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[4 V, 6 V]", + "AT90S2333-8PC: DIP28, Fmax=8 MHz, T=[0 C, 70 C], Vcc=[4 V, 6 V]", + "AT90S2333-8PI: DIP28, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[4 V, 6 V]"; prog_modes = PM_SPM | PM_ISP | PM_HVPP; mcuid = 188; n_interrupts = 14; @@ -2978,7 +3377,7 @@ part min_write_delay = 9000; max_write_delay = 20000; readback = 0x00 0xff; - mode = 4; + mode = 0x04; delay = 12; blocksize = 128; readsize = 256; @@ -2991,7 +3390,7 @@ part min_write_delay = 9000; max_write_delay = 20000; readback = 0xff 0xff; - mode = 4; + mode = 0x04; delay = 12; blocksize = 128; readsize = 256; @@ -3003,6 +3402,7 @@ part memory "fuse" size = 1; + bitmask = 0x3f; min_write_delay = 9000; max_write_delay = 20000; pwroff_after_write = yes; @@ -3012,6 +3412,7 @@ part memory "lock" size = 1; + bitmask = 0x06; min_write_delay = 9000; max_write_delay = 20000; read = "0101.1000--xxxx.xxxx--xxxx.xxxx--xxxx.xoox"; @@ -3025,12 +3426,17 @@ part ; #------------------------------------------------------------ -# AT90s2343 (also AT90s2323 and ATtiny22) +# AT90S2343 (also AT90S2323 and ATtiny22) #------------------------------------------------------------ part desc = "AT90S2343"; id = "2343"; + variants = + "AT90S2343-10PC: DIP8, Fmax=10 MHz, T=[0 C, 70 C], Vcc=[4 V, 6 V]", + "AT90S2343-10PI: DIP8, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[4 V, 6 V]", + "AT90S2343-10SC: SOIC8, Fmax=10 MHz, T=[0 C, 70 C], Vcc=[4 V, 6 V]", + "AT90S2343-10SI: SOIC8, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[4 V, 6 V]"; prog_modes = PM_SPM | PM_ISP | PM_HVSP; mcuid = 189; n_interrupts = 3; @@ -3069,7 +3475,7 @@ part min_write_delay = 9000; max_write_delay = 20000; readback = 0x00 0xff; - mode = 4; + mode = 0x04; delay = 12; blocksize = 64; readsize = 256; @@ -3082,7 +3488,7 @@ part min_write_delay = 9000; max_write_delay = 20000; readback = 0xff 0xff; - mode = 4; + mode = 0x04; delay = 12; blocksize = 128; readsize = 128; @@ -3094,17 +3500,21 @@ part memory "fuse" size = 1; + initval = 0xde; + bitmask = 0x21; min_write_delay = 9000; max_write_delay = 20000; - read = "0101.1000--xxxx.xxxx--xxxx.xxxx--ooox.xxxo"; + read = "0101.1000--xxxx.xxxx--xxxx.xxxx--xxox.xxxo"; write = "1010.1100--1011.111i--xxxx.xxxx--xxxx.xxxx"; ; memory "lock" size = 1; + initval = 0xff; + bitmask = 0x06; min_write_delay = 9000; max_write_delay = 20000; - read = "0101.1000--xxxx.xxxx--xxxx.xxxx--ooox.xxxo"; + read = "0 1 0 1 1 0 0 0 x x x x x x x x x x x x x x x x o1 o2 x x x x x x"; write = "1010.1100--1111.1ii1--xxxx.xxxx--xxxx.xxxx"; ; @@ -3115,19 +3525,101 @@ part ; #------------------------------------------------------------ -# AT90s4433 +# AT90S2323 #------------------------------------------------------------ -part +part parent "2343" + desc = "AT90S2323"; + id = "2323"; + variants = + "AT90S2323-10PC: DIP8, Fmax=10 MHz, T=[0 C, 70 C], Vcc=[4 V, 6 V]", + "AT90S2323-10PI: DIP8, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[4 V, 6 V]", + "AT90S2323-10SC: SOIC8, Fmax=10 MHz, T=[0 C, 70 C], Vcc=[4 V, 6 V]", + "AT90S2323-10SI: SOIC8, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[4 V, 6 V]"; + mcuid = 187; + stk500_devcode = 0x41; + avr910_devcode = 0x48; + signature = 0x1e 0x91 0x02; +; + +#------------------------------------------------------------ +# ATtiny22 +#------------------------------------------------------------ + +part parent "2343" + desc = "ATtiny22"; + id = "t22"; + variants = + "ATtiny22L-1PC: DIP8, Fmax=1 MHz, T=[0 C, 70 C], Vcc=[2.7 V, 6 V]", + "ATtiny22L-1PI: DIP8, Fmax=1 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 6 V]", + "ATtiny22L-1SC: SOIC8, Fmax=1 MHz, T=[0 C, 70 C], Vcc=[2.7 V, 6 V]", + "ATtiny22L-1SI: SOIC8, Fmax=1 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 6 V]"; + mcuid = 13; + stk500_devcode = 0x20; + avr910_devcode = 0x00; # Unknown + signature = 0x1e 0x91 0x06; + + memory "fuse" + initval = -1; + ; +; + +#------------------------------------------------------------ +# AT90S4433 +#------------------------------------------------------------ + +part parent "2333" desc = "AT90S4433"; id = "4433"; - prog_modes = PM_SPM | PM_ISP | PM_HVPP; + variants = + "AT90S4433-8AC: TQFP32, Fmax=8 MHz, T=[0 C, 70 C], Vcc=[4 V, 6 V]", + "AT90S4433-8AI: TQFP32, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[4 V, 6 V]", + "AT90S4433-8PC: DIP28, Fmax=8 MHz, T=[0 C, 70 C], Vcc=[4 V, 6 V]", + "AT90S4433-8PI: DIP28, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[4 V, 6 V]"; mcuid = 191; - n_interrupts = 14; stk500_devcode = 0x51; avr910_devcode = 0x30; - chip_erase_delay = 20000; signature = 0x1e 0x92 0x03; + + memory "eeprom" + size = 256; + read = "1010.0000--xxxx.xxxx--aaaa.aaaa--oooo.oooo"; + write = "1100.0000--xxxx.xxxx--aaaa.aaaa--iiii.iiii"; + ; + + memory "flash" + size = 4096; + read_lo = "0010.0000--xxxx.xaaa--aaaa.aaaa--oooo.oooo"; + read_hi = "0010.1000--xxxx.xaaa--aaaa.aaaa--oooo.oooo"; + write_lo = "0100.0000--xxxx.xaaa--aaaa.aaaa--iiii.iiii"; + write_hi = "0100.1000--xxxx.xaaa--aaaa.aaaa--iiii.iiii"; + ; + + memory "fuse" + initval = 0xda; + ; + + memory "lock" + initval = 0xff; + ; +; + +#------------------------------------------------------------ +# AT90S8515 +#------------------------------------------------------------ + +part + desc = "AT90S8515"; + id = "8515"; + variants = + "AT90S8515-8PC: DIP40, Fmax=8 MHz, T=[0 C, 70 C], Vcc=[4 V, 6 V]"; + prog_modes = PM_SPM | PM_ISP | PM_HVPP; + mcuid = 193; + n_interrupts = 13; + stk500_devcode = 0x60; + avr910_devcode = 0x38; + chip_erase_delay = 20000; + signature = 0x1e 0x93 0x01; timeout = 200; stabdelay = 100; cmdexedelay = 25; @@ -3143,157 +3635,11 @@ part 0xbe, 0xfd, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00; hventerstabdelay = 100; hvleavestabdelay = 15; + resetdelay = 15; chiperasepulsewidth = 15; programfusepulsewidth = 2; programlockpolltimeout = 1; - chip_erase = "1010.1100--1000.0000--xxxx.xxxx--xxxx.xxxx"; - pgm_enable = "1010.1100--0101.0011--xxxx.xxxx--xxxx.xxxx"; - - memory "eeprom" - size = 256; - min_write_delay = 9000; - max_write_delay = 20000; - readback = 0x00 0xff; - mode = 4; - delay = 12; - blocksize = 128; - readsize = 256; - read = "1010.0000--xxxx.xxxx--aaaa.aaaa--oooo.oooo"; - write = "1100.0000--xxxx.xxxx--aaaa.aaaa--iiii.iiii"; - ; - - memory "flash" - size = 4096; - min_write_delay = 9000; - max_write_delay = 20000; - readback = 0xff 0xff; - mode = 4; - delay = 12; - blocksize = 128; - readsize = 256; - read_lo = "0010.0000--xxxx.xaaa--aaaa.aaaa--oooo.oooo"; - read_hi = "0010.1000--xxxx.xaaa--aaaa.aaaa--oooo.oooo"; - write_lo = "0100.0000--xxxx.xaaa--aaaa.aaaa--iiii.iiii"; - write_hi = "0100.1000--xxxx.xaaa--aaaa.aaaa--iiii.iiii"; - ; - - memory "fuse" - size = 1; - min_write_delay = 9000; - max_write_delay = 20000; - pwroff_after_write = yes; - read = "0101.0000--xxxx.xxxx--xxxx.xxxx--xxoo.oooo"; - write = "1010.1100--101i.iiii--xxxx.xxxx--xxxx.xxxx"; - ; - - memory "lock" - size = 1; - min_write_delay = 9000; - max_write_delay = 20000; - read = "0101.1000--xxxx.xxxx--xxxx.xxxx--xxxx.xoox"; - write = "1010.1100--1111.1ii1--xxxx.xxxx--xxxx.xxxx"; - ; - - memory "signature" - size = 3; - read = "0011.0000--xxxx.xxxx--xxxx.xxaa--oooo.oooo"; - ; -; - -#------------------------------------------------------------ -# AT90s4434 -#------------------------------------------------------------ - -part -##### WARNING: No XML file for device 'AT90S4434'! ##### - desc = "AT90S4434"; - id = "4434"; - prog_modes = PM_SPM | PM_ISP; - mcuid = 192; - n_interrupts = 17; - stk500_devcode = 0x52; - avr910_devcode = 0x6c; - chip_erase_delay = 20000; - signature = 0x1e 0x92 0x02; - chip_erase = "1010.1100--1000.0000--xxxx.xxxx--xxxx.xxxx"; - pgm_enable = "1010.1100--0101.0011--xxxx.xxxx--xxxx.xxxx"; - - memory "eeprom" - size = 256; - min_write_delay = 9000; - max_write_delay = 20000; - readback = 0x00 0xff; - read = "1010.0000--xxxx.xxxx--aaaa.aaaa--oooo.oooo"; - write = "1100.0000--xxxx.xxxx--aaaa.aaaa--iiii.iiii"; - ; - - memory "flash" - size = 4096; - min_write_delay = 9000; - max_write_delay = 20000; - readback = 0xff 0xff; - read_lo = "0010.0000--xxxx.xaaa--aaaa.aaaa--oooo.oooo"; - read_hi = "0010.1000--xxxx.xaaa--aaaa.aaaa--oooo.oooo"; - write_lo = "0100.0000--xxxx.xaaa--aaaa.aaaa--iiii.iiii"; - write_hi = "0100.1000--xxxx.xaaa--aaaa.aaaa--iiii.iiii"; - ; - - memory "fuse" - size = 1; - min_write_delay = 9000; - max_write_delay = 20000; - read = "0101.0000--xxxx.xxxx--xxxx.xxxx--xxoo.oooo"; - write = "1010.1100--101i.iiii--xxxx.xxxx--xxxx.xxxx"; - ; - - memory "lock" - size = 1; - min_write_delay = 9000; - max_write_delay = 20000; - read = "0101.1000--xxxx.xxxx--xxxx.xxxx--xxxx.xoox"; - write = "1010.1100--1111.1ii1--xxxx.xxxx--xxxx.xxxx"; - ; - - memory "signature" - size = 3; - read = "0011.0000--xxxx.xxxx--xxxx.xxaa--oooo.oooo"; - ; -; - -#------------------------------------------------------------ -# AT90s8515 -#------------------------------------------------------------ - -part - desc = "AT90S8515"; - id = "8515"; - prog_modes = PM_SPM | PM_ISP | PM_HVPP; - mcuid = 193; - n_interrupts = 13; - stk500_devcode = 0x60; - avr910_devcode = 0x38; - chip_erase_delay = 20000; - signature = 0x1e 0x93 0x01; - timeout = 200; - stabdelay = 100; - cmdexedelay = 25; - synchloops = 32; - pollindex = 3; - pollvalue = 0x53; - predelay = 1; - postdelay = 1; - pp_controlstack = - 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; - hventerstabdelay = 100; - hvleavestabdelay = 15; - resetdelay = 15; - chiperasepulsewidth = 15; - programfusepulsewidth = 2; - programlockpolltimeout = 1; - chip_erase = "1010.1100--100x.xxxx--xxxx.xxxx--xxxx.xxxx"; + chip_erase = "1010.1100--100x.xxxx--xxxx.xxxx--xxxx.xxxx"; pgm_enable = "1010.1100--0101.0011--xxxx.xxxx--xxxx.xxxx"; memory "eeprom" @@ -3301,7 +3647,7 @@ part min_write_delay = 4000; max_write_delay = 9000; readback = 0x80 0x7f; - mode = 4; + mode = 0x04; delay = 12; blocksize = 128; readsize = 256; @@ -3314,7 +3660,7 @@ part min_write_delay = 4000; max_write_delay = 9000; readback = 0x7f 0x7f; - mode = 4; + mode = 0x04; delay = 12; blocksize = 128; readsize = 256; @@ -3326,10 +3672,14 @@ part memory "fuse" size = 1; + initval = 0xdf; + bitmask = 0x21; ; memory "lock" size = 1; + initval = 0xff; + bitmask = 0x06; min_write_delay = 9000; max_write_delay = 9000; write = "1010.1100--1111.1ii1--xxxx.xxxx--xxxx.xxxx"; @@ -3342,12 +3692,19 @@ part ; #------------------------------------------------------------ -# AT90s8535 +# AT90S8535 #------------------------------------------------------------ part desc = "AT90S8535"; id = "8535"; + variants = + "AT90S8535-8AC: TQFP44, Fmax=8 MHz, T=[0 C, 70 C], Vcc=[4 V, 6 V]", + "AT90S8535-8AI: TQFP44, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[4 V, 6 V]", + "AT90S8535-8JC: LCC44, Fmax=8 MHz, T=[0 C, 70 C], Vcc=[4 V, 6 V]", + "AT90S8535-8JI: LCC44, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[4 V, 6 V]", + "AT90S8535-8PC: DIP40, Fmax=8 MHz, T=[0 C, 70 C], Vcc=[4 V, 6 V]", + "AT90S8535-8PI: DIP40, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[4 V, 6 V]"; prog_modes = PM_SPM | PM_ISP | PM_HVPP; mcuid = 195; n_interrupts = 17; @@ -3381,7 +3738,7 @@ part min_write_delay = 9000; max_write_delay = 20000; readback = 0x00 0xff; - mode = 4; + mode = 0x04; delay = 12; blocksize = 128; readsize = 256; @@ -3394,7 +3751,7 @@ part min_write_delay = 9000; max_write_delay = 20000; readback = 0xff 0xff; - mode = 4; + mode = 0x04; delay = 12; blocksize = 128; readsize = 256; @@ -3406,17 +3763,21 @@ part memory "fuse" size = 1; + initval = 0xdf; + bitmask = 0x21; min_write_delay = 9000; max_write_delay = 9000; - read = "0101.1000--xxxx.xxxx--xxxx.xxxx--xxxx.xxxo"; + read = "0101.1000--xxxx.xxxx--xxxx.xxxx--xxox.xxxo"; write = "1010.1100--1011.111i--xxxx.xxxx--xxxx.xxxx"; ; memory "lock" size = 1; + initval = 0xff; + bitmask = 0x06; min_write_delay = 9000; max_write_delay = 9000; - read = "0101.1000--xxxx.xxxx--xxxx.xxxx--ooxx.xxxx"; + read = "0 1 0 1 1 0 0 0 x x x x x x x x x x x x x x x x o1 o2 x x x x x x"; write = "1010.1100--1111.1ii1--xxxx.xxxx--xxxx.xxxx"; ; @@ -3426,6 +3787,51 @@ part ; ; +#------------------------------------------------------------ +# AT90S4434 +#------------------------------------------------------------ + +# No XML file for device AT90S4434, so parenting off AT90S8535 +# with which it shares the datasheet. + +part parent "8535" + desc = "AT90S4434"; + id = "4434"; + variants = + "AT90S4434-8AC: TQFP44, Fmax=8 MHz, T=[0 C, 70 C], Vcc=[4 V, 6 V]", + "AT90S4434-8AI: TQFP44, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[4 V, 6 V]", + "AT90S4434-8JC: LCC44, Fmax=8 MHz, T=[0 C, 70 C], Vcc=[4 V, 6 V]", + "AT90S4434-8JI: LCC44, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[4 V, 6 V]", + "AT90S4434-8PC: DIP40, Fmax=8 MHz, T=[0 C, 70 C], Vcc=[4 V, 6 V]", + "AT90S4434-8PI: DIP40, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[4 V, 6 V]"; + mcuid = 192; + stk500_devcode = 0x52; + avr910_devcode = 0x6c; + signature = 0x1e 0x92 0x02; + + memory "eeprom" + size = 256; + read = "1010.0000--xxxx.xxxx--aaaa.aaaa--oooo.oooo"; + write = "1100.0000--xxxx.xxxx--aaaa.aaaa--iiii.iiii"; + ; + + memory "flash" + size = 4096; + read_lo = "0010.0000--xxxx.xaaa--aaaa.aaaa--oooo.oooo"; + read_hi = "0010.1000--xxxx.xaaa--aaaa.aaaa--oooo.oooo"; + write_lo = "0100.0000--xxxx.xaaa--aaaa.aaaa--iiii.iiii"; + write_hi = "0100.1000--xxxx.xaaa--aaaa.aaaa--iiii.iiii"; + ; + + memory "fuse" + max_write_delay = 20000; + ; + + memory "lock" + max_write_delay = 20000; + ; +; + #------------------------------------------------------------ # ATmega103 #------------------------------------------------------------ @@ -3433,12 +3839,19 @@ part part desc = "ATmega103"; id = "m103"; + variants = + "ATmega103-6AC: TQFP64, Fmax=6 MHz, T=[0 C, 70 C], Vcc=[4 V, 5.5 V]", + "ATmega103-6AI: TQFP64, Fmax=6 MHz, T=[-40 C, 85 C], Vcc=[4 V, 5.5 V]", + "ATmega103L-4AC: TQFP64, Fmax=4 MHz, T=[0 C, 70 C], Vcc=[2.7 V, 3.6 V]", + "ATmega103L-4AI: TQFP64, Fmax=4 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 3.6 V]"; prog_modes = PM_SPM | PM_ISP | PM_HVPP; mcuid = 84; n_interrupts = 24; stk500_devcode = 0xb1; avr910_devcode = 0x41; chip_erase_delay = 112000; + pagel = 0xa0; + bs2 = 0xd7; signature = 0x1e 0x97 0x01; timeout = 200; stabdelay = 100; @@ -3466,7 +3879,7 @@ part min_write_delay = 4000; max_write_delay = 9000; readback = 0x80 0x7f; - mode = 4; + mode = 0x04; delay = 12; blocksize = 64; readsize = 256; @@ -3482,7 +3895,7 @@ part min_write_delay = 22000; max_write_delay = 56000; readback = 0xff 0xff; - mode = 17; + mode = 0x11; delay = 70; blocksize = 256; readsize = 256; @@ -3495,6 +3908,8 @@ part memory "fuse" size = 1; + initval = 0xdf; + bitmask = 0x2b; min_write_delay = 9000; max_write_delay = 9000; read = "0101.0000--xxxx.xxxx--xxxx.xxxx--xxox.o1oo"; @@ -3503,6 +3918,8 @@ part memory "lock" size = 1; + initval = 0xff; + bitmask = 0x06; min_write_delay = 9000; max_write_delay = 9000; read = "0101.1000--xxxx.xxxx--xxxx.xxxx--xxxx.xoox"; @@ -3522,6 +3939,24 @@ part part desc = "ATmega64"; id = "m64"; + variants = + "ATmega64: N/A, Fmax=16 MHz, T=[N/A, N/A], Vcc=[N/A, N/A]", + "ATmega64-16AN: TQFP64, Fmax=16 MHz, T=[-40 C, 105 C], Vcc=[4.5 V, 5.5 V]", + "ATmega64-16AU: TQFP64, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[4.2 V, 5.5 V]", + "ATmega64-16AUR: TQFP64, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[4.2 V, 5.5 V]", + "ATmega64-16MN: QFN64, Fmax=16 MHz, T=[-40 C, 105 C], Vcc=[4.5 V, 5.5 V]", + "ATmega64-16MU: QFN64, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[4.5 V, 5.5 V]", + "ATmega64-16MUR: VQFN64, Fmax=16 MHz, T=[N/A, N/A], Vcc=[4.5 V, 5.5 V]", + "ATmega64L-8AN: TQFP64, Fmax=8 MHz, T=[-40 C, 105 C], Vcc=[2.7 V, 5.5 V]", + "ATmega64L-8AQ: TQFP64, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega64L-8AQR: TQFP64, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega64L-8AU: TQFP64, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega64L-8AUR: TQFP64, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega64L-8MN: QFN64, Fmax=8 MHz, T=[-40 C, 105 C], Vcc=[2.7 V, 5.5 V]", + "ATmega64L-8MQ: MLF64, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega64L-8MQR: VQFN64, Fmax=8 MHz, T=[N/A, N/A], Vcc=[2.7 V, 5.5 V]", + "ATmega64L-8MU: QFN64, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega64L-8MUR: MLF64, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]"; prog_modes = PM_SPM | PM_ISP | PM_HVPP | PM_JTAG | PM_JTAGmkI; mcuid = 72; n_interrupts = 35; @@ -3551,11 +3986,13 @@ part hventerstabdelay = 100; latchcycles = 6; hvleavestabdelay = 15; + resetdelay = 15; chiperasepolltimeout = 10; programfusepolltimeout = 5; programlockpolltimeout = 5; idr = 0x22; spmcr = 0x68; + eecr = 0x3c; ocdrev = 2; chip_erase = "1010.1100--1000.0000--xxxx.xxxx--xxxx.xxxx"; pgm_enable = "1010.1100--0101.0011--xxxx.xxxx--xxxx.xxxx"; @@ -3566,7 +4003,7 @@ part min_write_delay = 9000; max_write_delay = 9000; readback = 0xff 0xff; - mode = 4; + mode = 0x04; delay = 20; blocksize = 64; readsize = 256; @@ -3581,9 +4018,9 @@ part num_pages = 256; min_write_delay = 4500; max_write_delay = 4500; - readback = 0xff 0xff; - mode = 33; - delay = 6; + readback = 0xff 0x00; + mode = 0x21; + delay = 10; blocksize = 128; readsize = 256; read_lo = "0010.0000--xaaa.aaaa--aaaa.aaaa--oooo.oooo"; @@ -3595,32 +4032,38 @@ part memory "lfuse" size = 1; - min_write_delay = 9000; - max_write_delay = 9000; + initval = 0xe1; + min_write_delay = 4500; + max_write_delay = 4500; read = "0101.0000--0000.0000--xxxx.xxxx--oooo.oooo"; write = "1010.1100--1010.0000--xxxx.xxxx--iiii.iiii"; ; memory "hfuse" size = 1; - min_write_delay = 9000; - max_write_delay = 9000; + initval = 0x99; + min_write_delay = 4500; + max_write_delay = 4500; read = "0101.1000--0000.1000--xxxx.xxxx--oooo.oooo"; write = "1010.1100--1010.1000--xxxx.xxxx--iiii.iiii"; ; memory "efuse" size = 1; - min_write_delay = 9000; - max_write_delay = 9000; + initval = 0xfd; + bitmask = 0x03; + min_write_delay = 4500; + max_write_delay = 4500; read = "0101.0000--0000.1000--xxxx.xxxx--oooo.oooo"; write = "1010.1100--1010.0100--xxxx.xxxx--xxxx.xxii"; ; memory "lock" size = 1; - min_write_delay = 9000; - max_write_delay = 9000; + initval = 0xff; + bitmask = 0x3f; + min_write_delay = 4500; + max_write_delay = 4500; read = "0101.1000--0000.0000--xxxx.xxxx--oooo.oooo"; write = "1010.1100--111x.xxxx--xxxx.xxxx--11ii.iiii"; ; @@ -3643,6 +4086,14 @@ part part parent "m64" desc = "ATmega64A"; id = "m64a"; + variants = + "ATmega64A-AN: TQFP64, Fmax=16 MHz, T=[-40 C, 105 C], Vcc=[2.7 V, 5.5 V]", + "ATmega64A-ANR: TQFP64, Fmax=16 MHz, T=[-40 C, 105 C], Vcc=[2.7 V, 5.5 V]", + "ATmega64A-AU: TQFP64, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega64A-AUR: TQFP64, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega64A-MN: QFN64, Fmax=16 MHz, T=[-40 C, 105 C], Vcc=[2.7 V, 5.5 V]", + "ATmega64A-MU: MLF64, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega64A-MUR: VQFN64, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]"; mcuid = 73; ; @@ -3653,6 +4104,23 @@ part parent "m64" part desc = "ATmega128"; id = "m128"; + variants = + "ATmega128-16AN: TQFP64, Fmax=16 MHz, T=[-40 C, 105 C], Vcc=[4.5 V, 5.5 V]", + "ATmega128-16ANR: TQFP64, Fmax=16 MHz, T=[-40 C, 105 C], Vcc=[4.5 V, 5.5 V]", + "ATmega128-16AU: TQFP64, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[4.5 V, 5.5 V]", + "ATmega128-16AUR: TQFP64, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[4.5 V, 5.5 V]", + "ATmega128-16MN: MLF64, Fmax=16 MHz, T=[-40 C, 105 C], Vcc=[4.5 V, 5.5 V]", + "ATmega128-16MNR: MLF64, Fmax=16 MHz, T=[N/A, N/A], Vcc=[4.5 V, 5.5 V]", + "ATmega128-16MU: MLF64, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[4.5 V, 5.5 V]", + "ATmega128-16MUR: MLF64, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[4.5 V, 5.5 V]", + "ATmega128L-8AN: TQFP64, Fmax=8 MHz, T=[-40 C, 105 C], Vcc=[3 V, 5.5 V]", + "ATmega128L-8ANR: TQFP64, Fmax=8 MHz, T=[-40 C, 105 C], Vcc=[3 V, 5.5 V]", + "ATmega128L-8AU: TQFP64, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega128L-8AUR: TQFP64, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega128L-8MN: MLF64, Fmax=8 MHz, T=[-40 C, 105 C], Vcc=[3 V, 5.5 V]", + "ATmega128L-8MNR: MLF64, Fmax=8 MHz, T=[N/A, N/A], Vcc=[2.7 V, 5.5 V]", + "ATmega128L-8MU: MLF64, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega128L-8MUR: MLF64, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]"; prog_modes = PM_SPM | PM_ISP | PM_HVPP | PM_JTAG | PM_JTAGmkI; mcuid = 85; n_interrupts = 35; @@ -3660,7 +4128,7 @@ part boot_section_size = 1024; stk500_devcode = 0xb2; avr910_devcode = 0x43; - chip_erase_delay = 9000; + chip_erase_delay = 10000; pagel = 0xd7; bs2 = 0xa0; signature = 0x1e 0x97 0x02; @@ -3682,12 +4150,14 @@ part hventerstabdelay = 100; latchcycles = 6; hvleavestabdelay = 15; + resetdelay = 15; chiperasepolltimeout = 10; programfusepolltimeout = 5; programlockpolltimeout = 5; idr = 0x22; rampz = 0x3b; spmcr = 0x68; + eecr = 0x3c; ocdrev = 1; chip_erase = "1010.1100--1000.0000--xxxx.xxxx--xxxx.xxxx"; pgm_enable = "1010.1100--0101.0011--xxxx.xxxx--xxxx.xxxx"; @@ -3695,11 +4165,11 @@ part memory "eeprom" size = 4096; page_size = 8; - min_write_delay = 9000; - max_write_delay = 9000; + min_write_delay = 10000; + max_write_delay = 10000; readback = 0xff 0xff; - mode = 4; - delay = 12; + mode = 0x04; + delay = 20; blocksize = 64; readsize = 256; read = "1010.0000--xxxx.aaaa--aaaa.aaaa--oooo.oooo"; @@ -3711,11 +4181,11 @@ part size = 0x20000; page_size = 256; num_pages = 512; - min_write_delay = 4500; - max_write_delay = 4500; - readback = 0xff 0xff; - mode = 33; - delay = 6; + min_write_delay = 5000; + max_write_delay = 5000; + readback = 0xff 0x00; + mode = 0x21; + delay = 10; blocksize = 128; readsize = 256; read_lo = "0010.0000--aaaa.aaaa--aaaa.aaaa--oooo.oooo"; @@ -3727,32 +4197,38 @@ part memory "lfuse" size = 1; - min_write_delay = 9000; - max_write_delay = 9000; + initval = 0xe1; + min_write_delay = 4500; + max_write_delay = 4500; read = "0101.0000--0000.0000--xxxx.xxxx--oooo.oooo"; write = "1010.1100--1010.0000--xxxx.xxxx--iiii.iiii"; ; memory "hfuse" size = 1; - min_write_delay = 9000; - max_write_delay = 9000; + initval = 0x99; + min_write_delay = 4500; + max_write_delay = 4500; read = "0101.1000--0000.1000--xxxx.xxxx--oooo.oooo"; write = "1010.1100--1010.1000--xxxx.xxxx--iiii.iiii"; ; memory "efuse" size = 1; - min_write_delay = 9000; - max_write_delay = 9000; + initval = 0xfd; + bitmask = 0x03; + min_write_delay = 4500; + max_write_delay = 4500; read = "0101.0000--0000.1000--xxxx.xxxx--oooo.oooo"; write = "1010.1100--1010.0100--xxxx.xxxx--xxxx.xxii"; ; memory "lock" size = 1; - min_write_delay = 9000; - max_write_delay = 9000; + initval = 0xff; + bitmask = 0x3f; + min_write_delay = 4500; + max_write_delay = 4500; read = "0101.1000--0000.0000--xxxx.xxxx--oooo.oooo"; write = "1010.1100--111x.xxxx--xxxx.xxxx--11ii.iiii"; ; @@ -3775,6 +4251,16 @@ part part parent "m128" desc = "ATmega128A"; id = "m128a"; + variants = + "ATmega128A: TQFP64, Fmax=N/A, T=[N/A, N/A], Vcc=[N/A, N/A]", + "ATmega128A-AN: TQFP64, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega128A-ANR: TQFP64, Fmax=16 MHz, T=[-40 C, 105 C], Vcc=[2.7 V, 5.5 V]", + "ATmega128A-AU: TQFP64, Fmax=16 MHz, T=[-40 C, 105 C], Vcc=[2.7 V, 5.5 V]", + "ATmega128A-AUR: TQFP64, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega128A-MN: VQFN64, Fmax=16 MHz, T=[-40 C, 105 C], Vcc=[2.7 V, 5.5 V]", + "ATmega128A-MNR: TQFP64, Fmax=16 MHz, T=[N/A, N/A], Vcc=[2.7 V, 5.5 V]", + "ATmega128A-MU: QFN64, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega128A-MUR: QFN64, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]"; mcuid = 86; ; @@ -3785,6 +4271,15 @@ part parent "m128" part desc = "AT90CAN128"; id = "c128"; + variants = + "AT90CAN128: N/A, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[4.5 V, N/A]", + "AT90CAN128-15AZ: TQFP64, Fmax=16 MHz, T=[-40 C, 125 C], Vcc=[2.7 V, 5.5 V]", + "AT90CAN128-16AI: TQFP64, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "AT90CAN128-16AU: TQFP64, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "AT90CAN128-16AUR: TQFP64, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "AT90CAN128-16MI: QFN64, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "AT90CAN128-16MU: QFN64, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "AT90CAN128-16MUR: QFN64, Fmax=16 MHz, T=[N/A, N/A], Vcc=[2.7 V, 5.5 V]"; prog_modes = PM_SPM | PM_ISP | PM_HVPP | PM_JTAG | PM_JTAGmkI; mcuid = 176; n_interrupts = 37; @@ -3814,6 +4309,7 @@ part hventerstabdelay = 100; latchcycles = 6; hvleavestabdelay = 15; + resetdelay = 15; chiperasepolltimeout = 10; programfusepolltimeout = 5; programlockpolltimeout = 5; @@ -3830,8 +4326,7 @@ part page_size = 8; min_write_delay = 9000; max_write_delay = 9000; - readback = 0xff 0xff; - mode = 65; + mode = 0x41; delay = 20; blocksize = 8; readsize = 256; @@ -3848,9 +4343,8 @@ part num_pages = 512; min_write_delay = 4500; max_write_delay = 4500; - readback = 0xff 0xff; - mode = 65; - delay = 6; + mode = 0x41; + delay = 10; blocksize = 256; readsize = 256; read_lo = "0010.0000--aaaa.aaaa--aaaa.aaaa--oooo.oooo"; @@ -3862,6 +4356,7 @@ part memory "lfuse" size = 1; + initval = 0x62; min_write_delay = 9000; max_write_delay = 9000; read = "0101.0000--0000.0000--xxxx.xxxx--oooo.oooo"; @@ -3870,6 +4365,7 @@ part memory "hfuse" size = 1; + initval = 0x99; min_write_delay = 9000; max_write_delay = 9000; read = "0101.1000--0000.1000--xxxx.xxxx--oooo.oooo"; @@ -3878,6 +4374,8 @@ part memory "efuse" size = 1; + initval = 0xff; + bitmask = 0x0f; min_write_delay = 9000; max_write_delay = 9000; read = "0101.0000--0000.1000--xxxx.xxxx--oooo.oooo"; @@ -3886,6 +4384,8 @@ part memory "lock" size = 1; + initval = 0xff; + bitmask = 0x3f; min_write_delay = 9000; max_write_delay = 9000; read = "0101.1000--0000.0000--xxxx.xxxx--oooo.oooo"; @@ -3910,6 +4410,14 @@ part part desc = "AT90CAN64"; id = "c64"; + variants = + "AT90CAN64: N/A, Fmax=16 MHz, T=[N/A, N/A], Vcc=[2.7 V, 5.5 V]", + "AT90CAN64-16AI: TQFP64, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "AT90CAN64-16AU: TQFP64, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "AT90CAN64-16AUR: TQFP64, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "AT90CAN64-16MI: QFN64, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "AT90CAN64-16MU: QFN64, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "AT90CAN64-16MUR: VQFN64, Fmax=16 MHz, T=[N/A, N/A], Vcc=[2.7 V, 5.5 V]"; prog_modes = PM_SPM | PM_ISP | PM_HVPP | PM_JTAG; mcuid = 172; n_interrupts = 37; @@ -3939,11 +4447,11 @@ part hventerstabdelay = 100; latchcycles = 6; hvleavestabdelay = 15; + resetdelay = 15; chiperasepolltimeout = 10; programfusepolltimeout = 5; programlockpolltimeout = 5; idr = 0x31; - rampz = 0x3b; spmcr = 0x57; eecr = 0x3f; ocdrev = 3; @@ -3955,8 +4463,7 @@ part page_size = 8; min_write_delay = 9000; max_write_delay = 9000; - readback = 0xff 0xff; - mode = 65; + mode = 0x41; delay = 20; blocksize = 8; readsize = 256; @@ -3973,9 +4480,8 @@ part num_pages = 256; min_write_delay = 4500; max_write_delay = 4500; - readback = 0xff 0xff; - mode = 65; - delay = 6; + mode = 0x41; + delay = 10; blocksize = 256; readsize = 256; read_lo = "0010.0000--aaaa.aaaa--aaaa.aaaa--oooo.oooo"; @@ -3987,6 +4493,7 @@ part memory "lfuse" size = 1; + initval = 0x62; min_write_delay = 9000; max_write_delay = 9000; read = "0101.0000--0000.0000--xxxx.xxxx--oooo.oooo"; @@ -3995,6 +4502,7 @@ part memory "hfuse" size = 1; + initval = 0x99; min_write_delay = 9000; max_write_delay = 9000; read = "0101.1000--0000.1000--xxxx.xxxx--oooo.oooo"; @@ -4003,6 +4511,8 @@ part memory "efuse" size = 1; + initval = 0xff; + bitmask = 0x0f; min_write_delay = 9000; max_write_delay = 9000; read = "0101.0000--0000.1000--xxxx.xxxx--oooo.oooo"; @@ -4011,6 +4521,8 @@ part memory "lock" size = 1; + initval = 0xff; + bitmask = 0x3f; min_write_delay = 9000; max_write_delay = 9000; read = "0101.1000--0000.0000--xxxx.xxxx--oooo.oooo"; @@ -4035,6 +4547,14 @@ part part desc = "AT90CAN32"; id = "c32"; + variants = + "AT90CAN32: N/A, Fmax=16 MHz, T=[N/A, N/A], Vcc=[2.7 V, 5.5 V]", + "AT90CAN32-16AI: TQFP64, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "AT90CAN32-16AU: TQFP64, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "AT90CAN32-16AUR: TQFP64, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "AT90CAN32-16MI: QFN64, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "AT90CAN32-16MU: QFN64, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "AT90CAN32-16MUR: VQFN64, Fmax=16 MHz, T=[N/A, N/A], Vcc=[2.7 V, 5.5 V]"; prog_modes = PM_SPM | PM_ISP | PM_HVPP | PM_JTAG; mcuid = 171; n_interrupts = 37; @@ -4064,11 +4584,11 @@ part hventerstabdelay = 100; latchcycles = 6; hvleavestabdelay = 15; + resetdelay = 15; chiperasepolltimeout = 10; programfusepolltimeout = 5; programlockpolltimeout = 5; idr = 0x31; - rampz = 0x3b; spmcr = 0x57; eecr = 0x3f; ocdrev = 3; @@ -4080,8 +4600,7 @@ part page_size = 8; min_write_delay = 9000; max_write_delay = 9000; - readback = 0xff 0xff; - mode = 65; + mode = 0x41; delay = 20; blocksize = 8; readsize = 256; @@ -4098,9 +4617,8 @@ part num_pages = 128; min_write_delay = 4500; max_write_delay = 4500; - readback = 0xff 0xff; - mode = 65; - delay = 6; + mode = 0x41; + delay = 10; blocksize = 256; readsize = 256; read_lo = "0010.0000--aaaa.aaaa--aaaa.aaaa--oooo.oooo"; @@ -4112,6 +4630,7 @@ part memory "lfuse" size = 1; + initval = 0x62; min_write_delay = 9000; max_write_delay = 9000; read = "0101.0000--0000.0000--xxxx.xxxx--oooo.oooo"; @@ -4120,6 +4639,7 @@ part memory "hfuse" size = 1; + initval = 0x99; min_write_delay = 9000; max_write_delay = 9000; read = "0101.1000--0000.1000--xxxx.xxxx--oooo.oooo"; @@ -4128,6 +4648,8 @@ part memory "efuse" size = 1; + initval = 0xff; + bitmask = 0x0f; min_write_delay = 9000; max_write_delay = 9000; read = "0101.0000--0000.1000--xxxx.xxxx--oooo.oooo"; @@ -4136,6 +4658,8 @@ part memory "lock" size = 1; + initval = 0xff; + bitmask = 0x3f; min_write_delay = 9000; max_write_delay = 9000; read = "0101.1000--0000.0000--xxxx.xxxx--oooo.oooo"; @@ -4160,6 +4684,22 @@ part part desc = "ATmega16"; id = "m16"; + variants = + "ATmega16: N/A, Fmax=16 MHz, T=[N/A, N/A], Vcc=[N/A, N/A]", + "ATmega16-16AQR: TQFP44, Fmax=16 MHz, T=[N/A, N/A], Vcc=[4.5 V, 5.5 V]", + "ATmega16-16AU: TQFP44, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[4.5 V, 5.5 V]", + "ATmega16-16AUR: TQFP44, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[4.5 V, 5.5 V]", + "ATmega16-16MQ: MLF44, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[4.5 V, 5.5 V]", + "ATmega16-16MU: MLF44, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[4.5 V, 5.5 V]", + "ATmega16-16MUR: MLF44, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[4.5 V, 5.5 V]", + "ATmega16-16PU: PDIP40, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[4.5 V, 5.5 V]", + "ATmega16L-8AQ: TQFP44, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega16L-8AQR: TQFP44, Fmax=8 MHz, T=[N/A, N/A], Vcc=[2.7 V, 5.5 V]", + "ATmega16L-8AU: TQFP44, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega16L-8AUR: TQFP44, Fmax=8 MHz, T=[N/A, N/A], Vcc=[2.7 V, 5.5 V]", + "ATmega16L-8MU: MLF44, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega16L-8MUR: VQFN44, Fmax=8 MHz, T=[N/A, N/A], Vcc=[2.7 V, 5.5 V]", + "ATmega16L-8PU: PDIP40, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]"; prog_modes = PM_SPM | PM_ISP | PM_HVPP | PM_JTAG | PM_JTAGmkI; mcuid = 49; n_interrupts = 21; @@ -4187,7 +4727,6 @@ part 0x66, 0x76, 0x67, 0x77, 0x6a, 0x7a, 0x6b, 0x7b, 0xbe, 0xfd, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00; hventerstabdelay = 100; - progmodedelay = 100; latchcycles = 6; hvleavestabdelay = 15; resetdelay = 15; @@ -4196,6 +4735,7 @@ part programlockpolltimeout = 5; idr = 0x31; spmcr = 0x57; + eecr = 0x3c; ocdrev = 2; chip_erase = "1010.1100--100x.xxxx--xxxx.xxxx--xxxx.xxxx"; pgm_enable = "1010.1100--0101.0011--xxxx.xxxx--xxxx.xxxx"; @@ -4206,8 +4746,8 @@ part min_write_delay = 9000; max_write_delay = 9000; readback = 0xff 0xff; - mode = 4; - delay = 10; + mode = 0x04; + delay = 20; blocksize = 128; readsize = 256; read = "1010.0000--00xx.xxaa--aaaa.aaaa--oooo.oooo"; @@ -4223,9 +4763,9 @@ part num_pages = 128; min_write_delay = 4500; max_write_delay = 4500; - readback = 0xff 0xff; - mode = 33; - delay = 6; + readback = 0xff 0x00; + mode = 0x21; + delay = 10; blocksize = 128; readsize = 256; read_lo = "0010.0000--00aa.aaaa--aaaa.aaaa--oooo.oooo"; @@ -4237,24 +4777,28 @@ part memory "lfuse" size = 1; - min_write_delay = 9000; - max_write_delay = 9000; + initval = 0xe1; + min_write_delay = 4500; + max_write_delay = 4500; read = "0101.0000--0000.0000--xxxx.xxxx--oooo.oooo"; write = "1010.1100--1010.0000--xxxx.xxxx--iiii.iiii"; ; memory "hfuse" size = 1; - min_write_delay = 9000; - max_write_delay = 9000; - read = "0101.1000--0000.1000--xxxx.xxxx--oooo.oooo"; + initval = 0x99; + min_write_delay = 4500; + max_write_delay = 4500; + read = "0101.1000--0000.1000--xxxx.xxxx--oooo.oooo"; write = "1010.1100--1010.1000--xxxx.xxxx--iiii.iiii"; ; memory "lock" size = 1; - min_write_delay = 9000; - max_write_delay = 9000; + initval = 0xff; + bitmask = 0x3f; + min_write_delay = 4500; + max_write_delay = 4500; read = "0101.1000--0000.0000--xxxx.xxxx--oooo.oooo"; write = "1010.1100--111x.xxxx--xxxx.xxxx--11ii.iiii"; ; @@ -4277,6 +4821,13 @@ part part parent "m16" desc = "ATmega16A"; id = "m16a"; + variants = + "ATmega16A: N/A, Fmax=16 MHz, T=[N/A, N/A], Vcc=[2.7 V, 5.5 V]", + "ATmega16A-AU: TQFP44, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega16A-AUR: TQFP44, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega16A-MU: MLF44, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega16A-MUR: VQFN44, Fmax=16 MHz, T=[N/A, N/A], Vcc=[2.7 V, 5.5 V]", + "ATmega16A-PU: PDIP40, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]"; mcuid = 50; ; @@ -4287,6 +4838,26 @@ part parent "m16" part desc = "ATmega324P"; id = "m324p"; + variants = + "ATmega324P: N/A, Fmax=20 MHz, T=[N/A, N/A], Vcc=[N/A, N/A]", + "ATmega324P-20AN: TQFP44, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[2.7 V, 5.5 V]", + "ATmega324P-20AQ: TQFP44, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega324P-20AQR: TQFP44, Fmax=20 MHz, T=[N/A, N/A], Vcc=[2.7 V, 5.5 V]", + "ATmega324P-20AU: TQFP44, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega324P-20AUR: TQFP44, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega324P-20MN: VQFN44, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[2.7 V, 5.5 V]", + "ATmega324P-20MQR: VQFN44, Fmax=20 MHz, T=[N/A, N/A], Vcc=[2.7 V, 5.5 V]", + "ATmega324P-20MU: VQFN44, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega324P-20MUR: VQFN44, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega324P-20PN: PDIP40, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[2.7 V, 5.5 V]", + "ATmega324P-20PU: PDIP40, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega324PV-10AN: TQFP44, Fmax=10 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATmega324PV-10AU: TQFP44, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega324PV-10AUR: TQFP44, Fmax=10 MHz, T=[N/A, N/A], Vcc=[1.8 V, 5.5 V]", + "ATmega324PV-10MN: VQFN44, Fmax=10 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATmega324PV-10MU: VQFN44, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega324PV-10PN: PDIP40, Fmax=10 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATmega324PV-10PU: PDIP40, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; prog_modes = PM_SPM | PM_ISP | PM_HVPP | PM_JTAG; mcuid = 111; n_interrupts = 31; @@ -4307,6 +4878,7 @@ part pollvalue = 0x53; predelay = 1; postdelay = 1; + pollmethod = 1; pp_controlstack = 0x0e, 0x1e, 0x0f, 0x1f, 0x2e, 0x3e, 0x2f, 0x3f, 0x4e, 0x5e, 0x4f, 0x5f, 0x6e, 0x7e, 0x6f, 0x7f, @@ -4318,11 +4890,13 @@ part poweroffdelay = 15; resetdelayms = 1; hvleavestabdelay = 15; + resetdelay = 15; chiperasepolltimeout = 10; programfusepolltimeout = 5; programlockpolltimeout = 5; idr = 0x31; spmcr = 0x57; + eecr = 0x3f; ocdrev = 3; chip_erase = "1010.1100--100x.xxxx--xxxx.xxxx--xxxx.xxxx"; pgm_enable = "1010.1100--0101.0011--xxxx.xxxx--xxxx.xxxx"; @@ -4332,10 +4906,9 @@ part page_size = 4; min_write_delay = 9000; max_write_delay = 9000; - readback = 0xff 0xff; - mode = 65; + mode = 0x41; delay = 10; - blocksize = 128; + blocksize = 4; readsize = 256; read = "1010.0000--00xx.xaaa--aaaa.aaaa--oooo.oooo"; write = "1100.0000--00xx.xaaa--aaaa.aaaa--iiii.iiii"; @@ -4350,10 +4923,9 @@ part num_pages = 256; min_write_delay = 4500; max_write_delay = 4500; - readback = 0xff 0xff; - mode = 33; - delay = 6; - blocksize = 256; + mode = 0x41; + delay = 10; + blocksize = 128; readsize = 256; read_lo = "0010.0000--0aaa.aaaa--aaaa.aaaa--oooo.oooo"; read_hi = "0010.1000--0aaa.aaaa--aaaa.aaaa--oooo.oooo"; @@ -4364,6 +4936,7 @@ part memory "lfuse" size = 1; + initval = 0x62; min_write_delay = 9000; max_write_delay = 9000; read = "0101.0000--0000.0000--xxxx.xxxx--oooo.oooo"; @@ -4372,6 +4945,7 @@ part memory "hfuse" size = 1; + initval = 0x99; min_write_delay = 9000; max_write_delay = 9000; read = "0101.1000--0000.1000--xxxx.xxxx--oooo.oooo"; @@ -4380,6 +4954,8 @@ part memory "efuse" size = 1; + initval = 0xff; + bitmask = 0x07; min_write_delay = 9000; max_write_delay = 9000; read = "0101.0000--0000.1000--xxxx.xxxx--oooo.oooo"; @@ -4388,6 +4964,8 @@ part memory "lock" size = 1; + initval = 0xff; + bitmask = 0x3f; min_write_delay = 9000; max_write_delay = 9000; read = "0101.1000--0000.0000--xxxx.xxxx--oooo.oooo"; @@ -4412,12 +4990,34 @@ part part parent "m324p" desc = "ATmega164P"; id = "m164p"; + variants = + "ATmega164P: N/A, Fmax=20 MHz, T=[N/A, N/A], Vcc=[N/A, N/A]", + "ATmega164P-20AN: TQFP44, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[2.7 V, 5.5 V]", + "ATmega164P-20AQ: TQFP44, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega164P-20AU: TQFP44, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega164P-20AUR: TQFP44, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega164P-20MN: VQFN44, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[2.7 V, 5.5 V]", + "ATmega164P-20MQ: VQFN44, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega164P-20MU: VQFN44, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega164P-20MUR: VQFN44, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega164P-20PN: PDIP40, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[2.7 V, 5.5 V]", + "ATmega164P-20PQ: PDIP40, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega164P-20PU: PDIP40, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega164PV-10AN: TQFP44, Fmax=10 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATmega164PV-10AQ: VQFN44, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega164PV-10AU: TQFP44, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega164PV-10AUR: TQFP44, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega164PV-10MU: VQFN44, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega164PV-10MUR: VQFN44, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega164PV-10PN: PDIP40, Fmax=10 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATmega164PV-10PU: PDIP40, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 93; boot_section_size = 256; signature = 0x1e 0x94 0x0a; memory "eeprom" size = 512; + delay = 20; ; memory "flash" @@ -4433,6 +5033,22 @@ part parent "m324p" part parent "m164p" desc = "ATmega164PA"; id = "m164pa"; + variants = + "ATmega164PA: N/A, Fmax=20 MHz, T=[N/A, N/A], Vcc=[1.8 V, 5.5 V]", + "ATmega164PA-AN: TQFP44, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATmega164PA-ANR: TQFP44, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATmega164PA-AU: TQFP44, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega164PA-AUR: TQFP44, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega164PA-CU: VFBGA49, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega164PA-CUR: VFBGA49, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega164PA-MCH: QFN44, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega164PA-MCHR: QFN44, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega164PA-MN: TQFP44, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATmega164PA-MNR: VQFN44, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATmega164PA-MU: VQFN44, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega164PA-MUR: VQFN44, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega164PA-PN: PDIP40, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATmega164PA-PU: PDIP40, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 94; ; @@ -4443,6 +5059,17 @@ part parent "m164p" part parent "m164p" desc = "ATmega164A"; id = "m164a"; + variants = + "ATmega164A: N/A, Fmax=20 MHz, T=[N/A, N/A], Vcc=[1.8 V, 5.5 V]", + "ATmega164A-AU: TQFP44, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega164A-AUR: TQFP44, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega164A-CU: VFBGA49, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega164A-CUR: VFBGA49, Fmax=20 MHz, T=[N/A, N/A], Vcc=[1.8 V, 5.5 V]", + "ATmega164A-MCH: QFN44, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega164A-MCHR: QFN44, Fmax=20 MHz, T=[N/A, N/A], Vcc=[1.8 V, 5.5 V]", + "ATmega164A-MU: QFN44, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega164A-MUR: QFN44, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega164A-PU: PDIP40, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 92; signature = 0x1e 0x94 0x0f; ; @@ -4454,9 +5081,24 @@ part parent "m164p" part parent "m324p" desc = "ATmega324PB"; id = "m324pb"; + variants = + "ATmega324PB-AN: TQFP44, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATmega324PB-ANR: TQFP44, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATmega324PB-AU: TQFP44, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega324PB-AUR: TQFP44, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega324PB-MN: QFN44, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATmega324PB-MNR: QFN44, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATmega324PB-MU: VQFN44, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega324PB-MUR: VQFN44, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 113; n_interrupts = 51; signature = 0x1e 0x95 0x17; + + memory "efuse" + initval = 0x07; + bitmask = 0x0f; + write = "1010.1100--1010.0100--xxxx.xxxx--1111.iiii"; + ; ; #------------------------------------------------------------ @@ -4466,6 +5108,20 @@ part parent "m324p" part parent "m324p" desc = "ATmega324PA"; id = "m324pa"; + variants = + "ATmega324PA: N/A, Fmax=20 MHz, T=[N/A, N/A], Vcc=[1.8 V, 5.5 V]", + "ATmega324PA-AN: TQFP44, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATmega324PA-AU: TQFP44, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega324PA-AUR: TQFP44, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega324PA-CU: VFBGA49, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega324PA-MCH: QFN44, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega324PA-MCHR: VQFN44, Fmax=20 MHz, T=[N/A, N/A], Vcc=[1.8 V, 5.5 V]", + "ATmega324PA-MN: VQFN44, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATmega324PA-MNR: VQFN44, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATmega324PA-MU: VQFN44, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega324PA-MUR: VQFN44, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega324PA-PN: PDIP40, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATmega324PA-PU: PDIP40, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 112; signature = 0x1e 0x95 0x11; ; @@ -4477,6 +5133,15 @@ part parent "m324p" part parent "m324p" desc = "ATmega324A"; id = "m324a"; + variants = + "ATmega324A: N/A, Fmax=20 MHz, T=[N/A, N/A], Vcc=[1.8 V, 5.5 V]", + "ATmega324A-AU: TQFP44, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega324A-AUR: TQFP44, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega324A-CU: VFBGA49, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega324A-MCH: QFN44, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega324A-MU: VQFN44, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega324A-MUR: VQFN44, Fmax=20 MHz, T=[N/A, N/A], Vcc=[1.8 V, 5.5 V]", + "ATmega324A-PU: PDIP40, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 110; signature = 0x1e 0x95 0x15; ; @@ -4488,6 +5153,18 @@ part parent "m324p" part desc = "ATmega644"; id = "m644"; + variants = + "ATmega644: N/A, Fmax=20 MHz, T=[N/A, N/A], Vcc=[N/A, N/A]", + "ATmega644-20AU: TQFP44, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega644-20AUR: TQFP44, Fmax=20 MHz, T=[N/A, N/A], Vcc=[2.7 V, 5.5 V]", + "ATmega644-20MU: MLF44, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega644-20MUR: VQFN44, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega644-20PU: PDIP40, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega644V-10AU: TQFP44, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega644V-10AUR: TQFP44, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega644V-10MU: MLF44, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega644V-10MUR: VQFN44, Fmax=10 MHz, T=[N/A, N/A], Vcc=[1.8 V, 5.5 V]", + "ATmega644V-10PU: PDIP40, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; prog_modes = PM_SPM | PM_ISP | PM_HVPP | PM_JTAG; mcuid = 127; n_interrupts = 28; @@ -4508,6 +5185,7 @@ part pollvalue = 0x53; predelay = 1; postdelay = 1; + pollmethod = 1; pp_controlstack = 0x0e, 0x1e, 0x0f, 0x1f, 0x2e, 0x3e, 0x2f, 0x3f, 0x4e, 0x5e, 0x4f, 0x5f, 0x6e, 0x7e, 0x6f, 0x7f, @@ -4515,12 +5193,17 @@ part 0xbe, 0xfd, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02; hventerstabdelay = 100; latchcycles = 6; + togglevtg = 1; + poweroffdelay = 15; + resetdelayms = 1; hvleavestabdelay = 15; + resetdelay = 15; chiperasepolltimeout = 10; programfusepolltimeout = 5; programlockpolltimeout = 5; idr = 0x31; spmcr = 0x57; + eecr = 0x3f; ocdrev = 3; chip_erase = "1010.1100--100x.xxxx--xxxx.xxxx--xxxx.xxxx"; pgm_enable = "1010.1100--0101.0011--xxxx.xxxx--xxxx.xxxx"; @@ -4530,10 +5213,9 @@ part page_size = 8; min_write_delay = 9000; max_write_delay = 9000; - readback = 0xff 0xff; - mode = 65; + mode = 0x41; delay = 10; - blocksize = 128; + blocksize = 8; readsize = 256; read = "1010.0000--00xx.aaaa--aaaa.aaaa--oooo.oooo"; write = "1100.0000--00xx.aaaa--aaaa.aaaa--iiii.iiii"; @@ -4548,9 +5230,8 @@ part num_pages = 256; min_write_delay = 4500; max_write_delay = 4500; - readback = 0xff 0xff; - mode = 33; - delay = 6; + mode = 0x41; + delay = 10; blocksize = 256; readsize = 256; read_lo = "0010.0000--aaaa.aaaa--aaaa.aaaa--oooo.oooo"; @@ -4562,6 +5243,7 @@ part memory "lfuse" size = 1; + initval = 0x62; min_write_delay = 9000; max_write_delay = 9000; read = "0101.0000--0000.0000--xxxx.xxxx--oooo.oooo"; @@ -4570,6 +5252,7 @@ part memory "hfuse" size = 1; + initval = 0x99; min_write_delay = 9000; max_write_delay = 9000; read = "0101.1000--0000.1000--xxxx.xxxx--oooo.oooo"; @@ -4578,6 +5261,8 @@ part memory "efuse" size = 1; + initval = 0xff; + bitmask = 0x07; min_write_delay = 9000; max_write_delay = 9000; read = "0101.0000--0000.1000--xxxx.xxxx--oooo.oooo"; @@ -4586,6 +5271,8 @@ part memory "lock" size = 1; + initval = 0xff; + bitmask = 0x3f; min_write_delay = 9000; max_write_delay = 9000; read = "0101.1000--0000.0000--xxxx.xxxx--oooo.oooo"; @@ -4610,6 +5297,13 @@ part part parent "m644" desc = "ATmega644A"; id = "m644a"; + variants = + "ATmega644A: N/A, Fmax=20 MHz, T=[N/A, N/A], Vcc=[1.8 V, 5.5 V]", + "ATmega644A-AU: TQFP44, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega644A-AUR: TQFP44, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega644A-MU: VQFN44, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega644A-MUR: VQFN44, Fmax=20 MHz, T=[N/A, N/A], Vcc=[1.8 V, 5.5 V]", + "ATmega644A-PU: PDIP40, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 128; n_interrupts = 31; ; @@ -4621,6 +5315,34 @@ part parent "m644" part parent "m644" desc = "ATmega644P"; id = "m644p"; + variants = + "ATmega644P: N/A, Fmax=20 MHz, T=[N/A, N/A], Vcc=[N/A, N/A]", + "ATmega644P-20AN: TQFP44, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[2.7 V, 5.5 V]", + "ATmega644P-20AQ: TQFP44, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega644P-20AQR: TQFP44, Fmax=20 MHz, T=[N/A, N/A], Vcc=[2.7 V, 5.5 V]", + "ATmega644P-20AU: TQFP44, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega644P-20AUR: TQFP44, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega644P-20MN: VQFN44, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[2.7 V, 5.5 V]", + "ATmega644P-20MQ: VQFN44, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega644P-20MQR: VQFN44, Fmax=20 MHz, T=[N/A, N/A], Vcc=[2.7 V, 5.5 V]", + "ATmega644P-20MU: VQFN44, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega644P-20MUR: VQFN44, Fmax=20 MHz, T=[N/A, N/A], Vcc=[2.7 V, 5.5 V]", + "ATmega644P-20PN: PDIP40, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[2.7 V, 5.5 V]", + "ATmega644P-20PQ: PDIP40, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega644P-20PU: PDIP40, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega644PV-10AN: TQFP44, Fmax=10 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATmega644PV-10AQ: TQFP44, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega644PV-10AQR: TQFP44, Fmax=10 MHz, T=[N/A, N/A], Vcc=[1.8 V, 5.5 V]", + "ATmega644PV-10AU: TQFP44, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega644PV-10AUR: TQFP44, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega644PV-10MN: VQFN44, Fmax=10 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATmega644PV-10MQ: VQFN44, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega644PV-10MQR: VQFN44, Fmax=10 MHz, T=[N/A, N/A], Vcc=[1.8 V, 5.5 V]", + "ATmega644PV-10MU: VQFN44, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega644PV-10MUR: VQFN44, Fmax=10 MHz, T=[N/A, N/A], Vcc=[1.8 V, 5.5 V]", + "ATmega644PV-10PN: PDIP40, Fmax=10 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATmega644PV-10PQ: PDIP40, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega644PV-10PU: PDIP40, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 129; n_interrupts = 31; signature = 0x1e 0x96 0x0a; @@ -4633,6 +5355,17 @@ part parent "m644" part parent "m644" desc = "ATmega644PA"; id = "m644pa"; + variants = + "ATmega644PA-AN: TQFP44, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega644PA-ANR: TQFP44, Fmax=20 MHz, T=[N/A, N/A], Vcc=[1.8 V, 5.5 V]", + "ATmega644PA-AU: TQFP44, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega644PA-AUR: TQFP44, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega644PA-MN: VQFN44, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega644PA-MNR: VQFN44, Fmax=20 MHz, T=[N/A, N/A], Vcc=[1.8 V, 5.5 V]", + "ATmega644PA-MU: QFN44, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega644PA-MUR: VQFN44, Fmax=20 MHz, T=[N/A, N/A], Vcc=[1.8 V, 5.5 V]", + "ATmega644PA-PN: PDIP40, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATmega644PA-PU: PDIP40, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 130; n_interrupts = 31; signature = 0x1e 0x96 0x0a; @@ -4645,6 +5378,12 @@ part parent "m644" part desc = "ATmega1284"; id = "m1284"; + variants = + "ATmega1284-AU: TQFP44, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega1284-AUR: TQFP44, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega1284-MU: MLF44, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega1284-MUR: MLF44, Fmax=20 MHz, T=[N/A, N/A], Vcc=[1.8 V, 5.5 V]", + "ATmega1284-PU: PDIP40, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; prog_modes = PM_SPM | PM_ISP | PM_HVPP | PM_JTAG; mcuid = 140; n_interrupts = 35; @@ -4677,11 +5416,14 @@ part poweroffdelay = 15; resetdelayms = 1; hvleavestabdelay = 15; + resetdelay = 15; chiperasepolltimeout = 10; programfusepolltimeout = 5; programlockpolltimeout = 5; idr = 0x31; + rampz = 0x3b; spmcr = 0x57; + eecr = 0x3f; ocdrev = 3; chip_erase = "1010.1100--100x.xxxx--xxxx.xxxx--xxxx.xxxx"; pgm_enable = "1010.1100--0101.0011--xxxx.xxxx--xxxx.xxxx"; @@ -4691,11 +5433,10 @@ part page_size = 8; min_write_delay = 9000; max_write_delay = 9000; - readback = 0xff 0xff; - mode = 65; + mode = 0x41; delay = 10; - blocksize = 128; - readsize = 256; + blocksize = 8; + readsize = 128; read = "1010.0000--00xx.aaaa--aaaa.aaaa--oooo.oooo"; write = "1100.0000--00xx.aaaa--aaaa.aaaa--iiii.iiii"; loadpage_lo = "1100.0001--0000.0000--0000.0aaa--iiii.iiii"; @@ -4709,11 +5450,10 @@ part num_pages = 512; min_write_delay = 4500; max_write_delay = 4500; - readback = 0xff 0xff; - mode = 65; + mode = 0x41; delay = 10; - blocksize = 256; - readsize = 256; + blocksize = 128; + readsize = 128; read_lo = "0010.0000--aaaa.aaaa--aaaa.aaaa--oooo.oooo"; read_hi = "0010.1000--aaaa.aaaa--aaaa.aaaa--oooo.oooo"; loadpage_lo = "0100.0000--00xx.xxxx--xaaa.aaaa--iiii.iiii"; @@ -4723,6 +5463,7 @@ part memory "lfuse" size = 1; + initval = 0x62; min_write_delay = 9000; max_write_delay = 9000; read = "0101.0000--0000.0000--xxxx.xxxx--oooo.oooo"; @@ -4731,6 +5472,7 @@ part memory "hfuse" size = 1; + initval = 0x99; min_write_delay = 9000; max_write_delay = 9000; read = "0101.1000--0000.1000--xxxx.xxxx--oooo.oooo"; @@ -4739,6 +5481,8 @@ part memory "efuse" size = 1; + initval = 0xff; + bitmask = 0x07; min_write_delay = 9000; max_write_delay = 9000; read = "0101.0000--0000.1000--xxxx.xxxx--oooo.oooo"; @@ -4747,6 +5491,8 @@ part memory "lock" size = 1; + initval = 0xff; + bitmask = 0x3f; min_write_delay = 9000; max_write_delay = 9000; read = "0101.1000--0000.0000--xxxx.xxxx--oooo.oooo"; @@ -4771,6 +5517,15 @@ part part parent "m1284" desc = "ATmega1284P"; id = "m1284p"; + variants = + "ATmega1284P-AN: TQFP44, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega1284P-AU: TQFP44, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega1284P-AUR: TQFP44, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega1284P-MN: QFN44, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega1284P-MU: VQFN44, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega1284P-MUR: VQFN44, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega1284P-PN: PDIP40, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega1284P-PU: PDIP40, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 141; signature = 0x1e 0x97 0x05; ; @@ -4782,6 +5537,42 @@ part parent "m1284" part desc = "ATmega162"; id = "m162"; + variants = + "ATmega162: N/A, Fmax=16 MHz, T=[N/A, N/A], Vcc=[1.8 V, 5.5 V]", + "ATmega162-16AC: TQFP44, Fmax=16 MHz, T=[0 C, 70 C], Vcc=[4.5 V, 5.5 V]", + "ATmega162-16AI: TQFP44, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega162-16AJ: TQFP44, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega162-16AU: TQFP44, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega162-16AUR: TQFP44, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega162-16MC: VFQFN44, Fmax=16 MHz, T=[0 C, 70 C], Vcc=[4.5 V, 5.5 V]", + "ATmega162-16MI: VFQFN44, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega162-16MJ: VFQFN44, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega162-16MU: VFQFN44, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega162-16MUR: VFQFN44, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega162-16PC: DIP40, Fmax=16 MHz, T=[0 C, 70 C], Vcc=[4.5 V, 5.5 V]", + "ATmega162-16PI: DIP40, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega162-16PJ: DIP40, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega162-16PU: DIP40, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega162L-8AC: TQFP44, Fmax=8 MHz, T=[0 C, 70 C], Vcc=[2.7 V, 5.5 V]", + "ATmega162L-8AI: TQFP44, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega162L-8MC: VFQFN44, Fmax=8 MHz, T=[0 C, 70 C], Vcc=[2.7 V, 5.5 V]", + "ATmega162L-8MI: VFQFN44, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega162L-8PC: DIP40, Fmax=8 MHz, T=[0 C, 70 C], Vcc=[2.7 V, 5.5 V]", + "ATmega162L-8PI: DIP40, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega162V-1AC: TQFP44, Fmax=1 MHz, T=[0 C, 70 C], Vcc=[1.8 V, 3.6 V]", + "ATmega162V-1MC: VFQFN44, Fmax=1 MHz, T=[0 C, 70 C], Vcc=[1.8 V, 3.6 V]", + "ATmega162V-1PC: DIP40, Fmax=1 MHz, T=[0 C, 70 C], Vcc=[1.8 V, 3.6 V]", + "ATmega162V-8AI: TQFP44, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega162V-8AJ: TQFP44, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega162V-8AU: TQFP44, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega162V-8AUR: TQFP44, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega162V-8MI: VFQFN44, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega162V-8MJ: VFQFN44, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega162V-8MU: VFQFN44, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega162V-8MUR: VFQFN44, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega162V-8PI: DIP40, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega162V-8PJ: DIP40, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega162V-8PU: DIP40, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; prog_modes = PM_SPM | PM_ISP | PM_HVPP | PM_JTAG | PM_JTAGmkI; mcuid = 90; n_interrupts = 28; @@ -4811,11 +5602,13 @@ part hventerstabdelay = 100; latchcycles = 6; hvleavestabdelay = 15; + resetdelay = 15; chiperasepolltimeout = 10; programfusepolltimeout = 5; programlockpolltimeout = 5; idr = 0x04; spmcr = 0x57; + eecr = 0x3c; ocdrev = 2; chip_erase = "1010.1100--100x.xxxx--xxxx.xxxx--xxxx.xxxx"; pgm_enable = "1010.1100--0101.0011--xxxx.xxxx--xxxx.xxxx"; @@ -4825,8 +5618,7 @@ part page_size = 4; min_write_delay = 9000; max_write_delay = 9000; - readback = 0xff 0xff; - mode = 65; + mode = 0x41; delay = 20; blocksize = 4; readsize = 256; @@ -4843,8 +5635,7 @@ part num_pages = 128; min_write_delay = 4500; max_write_delay = 4500; - readback = 0xff 0xff; - mode = 65; + mode = 0x41; delay = 10; blocksize = 128; readsize = 256; @@ -4857,6 +5648,7 @@ part memory "lfuse" size = 1; + initval = 0x62; min_write_delay = 16000; max_write_delay = 16000; read = "0101.0000--0000.0000--xxxx.xxxx--oooo.oooo"; @@ -4865,6 +5657,7 @@ part memory "hfuse" size = 1; + initval = 0x99; min_write_delay = 16000; max_write_delay = 16000; read = "0101.1000--0000.1000--xxxx.xxxx--oooo.oooo"; @@ -4873,14 +5666,18 @@ part memory "efuse" size = 1; + initval = 0xff; + bitmask = 0x1e; min_write_delay = 16000; max_write_delay = 16000; read = "0101.0000--0000.1000--xxxx.xxxx--oooo.oooo"; - write = "1010.1100--1010.0100--xxxx.xxxx--1111.1iii"; + write = "1010.1100--1010.0100--xxxx.xxxx--111i.iii1"; ; memory "lock" size = 1; + initval = 0xff; + bitmask = 0x3f; min_write_delay = 16000; max_write_delay = 16000; read = "0101.1000--0000.0000--xxxx.xxxx--oooo.oooo"; @@ -4905,6 +5702,15 @@ part part desc = "ATmega163"; id = "m163"; + variants = + "ATmega163-8AC: TQFP44, Fmax=8 MHz, T=[0 C, 70 C], Vcc=[4 V, 5.5 V]", + "ATmega163-8AI: TQFP44, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[4 V, 5.5 V]", + "ATmega163-8PC: DIP40, Fmax=8 MHz, T=[0 C, 70 C], Vcc=[4 V, 5.5 V]", + "ATmega163-8PI: DIP40, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[4 V, 5.5 V]", + "ATmega163L-4AC: TQFP44, Fmax=4 MHz, T=[0 C, 70 C], Vcc=[2.7 V, 5.5 V]", + "ATmega163L-4AI: TQFP44, Fmax=4 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega163L-4PC: DIP40, Fmax=4 MHz, T=[0 C, 70 C], Vcc=[2.7 V, 5.5 V]", + "ATmega163L-4PI: DIP40, Fmax=4 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]"; prog_modes = PM_SPM | PM_ISP | PM_HVPP; mcuid = 91; n_interrupts = 18; @@ -4942,7 +5748,7 @@ part min_write_delay = 4000; max_write_delay = 4000; readback = 0xff 0xff; - mode = 65; + mode = 0x41; delay = 20; blocksize = 4; readsize = 256; @@ -4958,7 +5764,7 @@ part min_write_delay = 16000; max_write_delay = 16000; readback = 0xff 0xff; - mode = 17; + mode = 0x11; delay = 20; blocksize = 128; readsize = 256; @@ -4971,6 +5777,8 @@ part memory "lfuse" size = 1; + initval = 0xdf; + bitmask = 0xef; min_write_delay = 2000; max_write_delay = 2000; read = "0101.0000--0000.0000--xxxx.xxxx--ooxx.oooo"; @@ -4979,6 +5787,8 @@ part memory "hfuse" size = 1; + initval = 0xff; + bitmask = 0x07; min_write_delay = 2000; max_write_delay = 2000; read = "0101.1000--0000.1000--xxxx.xxxx--xxxx.1ooo"; @@ -4987,6 +5797,8 @@ part memory "lock" size = 1; + initval = 0xff; + bitmask = 0x3f; min_write_delay = 2000; max_write_delay = 2000; read = "0101.1000--0000.0000--xxxx.0xxx--oooo.oooo"; @@ -5011,6 +5823,22 @@ part part desc = "ATmega169"; id = "m169"; + variants = + "ATmega169: N/A, Fmax=16 MHz, T=[N/A, N/A], Vcc=[N/A, N/A]", + "ATmega169-16AI: TQFP64, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega169-16AU: TQFP64, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega169-16MI: VFQFN64, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega169-16MU: VFQFN64, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega169L-4AC: TQFP64, Fmax=4 MHz, T=[0 C, 70 C], Vcc=[2.7 V, 5.5 V]", + "ATmega169L-4MC: VFQFN64, Fmax=4 MHz, T=[0 C, 70 C], Vcc=[2.7 V, 5.5 V]", + "ATmega169L-8AI: TQFP64, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega169L-8MI: VFQFN64, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega169V-1AC: TQFP64, Fmax=1 MHz, T=[0 C, 70 C], Vcc=[1.8 V, 5.5 V]", + "ATmega169V-1MC: VFQFN64, Fmax=1 MHz, T=[0 C, 70 C], Vcc=[1.8 V, 5.5 V]", + "ATmega169V-8AI: TQFP64, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega169V-8AU: TQFP64, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega169V-8MI: VFQFN64, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega169V-8MU: VFQFN64, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; prog_modes = PM_SPM | PM_ISP | PM_HVPP | PM_JTAG | PM_JTAGmkI; mcuid = 104; n_interrupts = 23; @@ -5019,6 +5847,8 @@ part stk500_devcode = 0x85; avr910_devcode = 0x78; chip_erase_delay = 9000; + pagel = 0xd7; + bs2 = 0xa0; signature = 0x1e 0x94 0x05; timeout = 200; stabdelay = 100; @@ -5045,6 +5875,7 @@ part programlockpolltimeout = 5; idr = 0x31; spmcr = 0x57; + eecr = 0x3f; ocdrev = 2; chip_erase = "1010.1100--1000.0000--xxxx.xxxx--xxxx.xxxx"; pgm_enable = "1010.1100--0101.0011--xxxx.xxxx--xxxx.xxxx"; @@ -5055,7 +5886,7 @@ part min_write_delay = 9000; max_write_delay = 9000; readback = 0xff 0xff; - mode = 65; + mode = 0x41; delay = 20; blocksize = 4; readsize = 256; @@ -5073,7 +5904,7 @@ part min_write_delay = 4500; max_write_delay = 4500; readback = 0xff 0xff; - mode = 65; + mode = 0x41; delay = 6; blocksize = 128; readsize = 256; @@ -5086,6 +5917,7 @@ part memory "lfuse" size = 1; + initval = 0x62; min_write_delay = 2000; max_write_delay = 2000; read = "0101.0000--0000.0000--xxxx.xxxx--oooo.oooo"; @@ -5094,6 +5926,7 @@ part memory "hfuse" size = 1; + initval = 0x99; min_write_delay = 2000; max_write_delay = 2000; read = "0101.1000--0000.1000--xxxx.xxxx--oooo.oooo"; @@ -5102,6 +5935,8 @@ part memory "efuse" size = 1; + initval = 0xff; + bitmask = 0x0f; min_write_delay = 2000; max_write_delay = 2000; read = "0101.0000--0000.1000--xxxx.xxxx--oooo.oooo"; @@ -5110,6 +5945,8 @@ part memory "lock" size = 1; + initval = 0xff; + bitmask = 0x3f; min_write_delay = 2000; max_write_delay = 2000; read = "0101.1000--0000.0000--xxxx.xxxx--oooo.oooo"; @@ -5134,9 +5971,31 @@ part part parent "m169" desc = "ATmega169A"; id = "m169a"; + variants = + "ATmega169A-AN: TQFP64, Fmax=16 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATmega169A-AU: TQFP64, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega169A-AUR: TQFP64, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega169A-MCH: DRQFN64, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega169A-MN: QFN64, Fmax=16 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATmega169A-MU: QFN64, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega169A-MUR: QFN64, Fmax=16 MHz, T=[N/A, N/A], Vcc=[1.8 V, 5.5 V]"; mcuid = 105; signature = 0x1e 0x94 0x11; reset = io; + latchcycles = 6; + togglevtg = 0; + poweroffdelay = 0; + resetdelayms = 0; + resetdelay = 15; + + memory "eeprom" + readback = 0x00 0x00; + ; + + memory "flash" + readback = 0x00 0x00; + delay = 10; + ; ; #------------------------------------------------------------ @@ -5146,9 +6005,39 @@ part parent "m169" part parent "m169" desc = "ATmega169P"; id = "m169p"; + variants = + "ATmega169P: N/A, Fmax=16 MHz, T=[N/A, N/A], Vcc=[N/A, N/A]", + "ATmega169P-16AU: TQFP64, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega169P-16AUR: TQFP64, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega169P-16MCH: QFN64, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega169P-16MCHR: QFN64, Fmax=16 MHz, T=[N/A, N/A], Vcc=[2.7 V, 5.5 V]", + "ATmega169P-16MCU: VQFN64, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega169P-16MU: QFN64, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega169P-16MUR: QFN64, Fmax=16 MHz, T=[N/A, N/A], Vcc=[2.7 V, 5.5 V]", + "ATmega169PV-8AU: TQFP64, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega169PV-8AUR: TQFP64, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega169PV-8MCH: QFN64, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega169PV-8MCHR: QFN64, Fmax=8 MHz, T=[N/A, N/A], Vcc=[1.8 V, 5.5 V]", + "ATmega169PV-8MCU: VQFN64, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega169PV-8MU: MLF64, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega169PV-8MUR: QFN64, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; prog_modes = PM_SPM | PM_ISP | PM_HVPP | PM_JTAG; mcuid = 106; reset = io; + latchcycles = 6; + togglevtg = 0; + poweroffdelay = 0; + resetdelayms = 0; + resetdelay = 15; + + memory "eeprom" + readback = 0x00 0x00; + ; + + memory "flash" + readback = 0x00 0x00; + delay = 10; + ; ; #------------------------------------------------------------ @@ -5158,9 +6047,34 @@ part parent "m169" part parent "m169" desc = "ATmega169PA"; id = "m169pa"; + variants = + "ATmega169PA-AN: TQFP64, Fmax=16 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATmega169PA-ANR: TQFP64, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega169PA-AU: TQFP64, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega169PA-AUR: TQFP64, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega169PA-MCH: QFN64, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega169PA-MCHR: QFN64, Fmax=N/A, T=[N/A, N/A], Vcc=[N/A, N/A]", + "ATmega169PA-MN: VQFN64, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega169PA-MNR: QFN64, Fmax=N/A, T=[N/A, N/A], Vcc=[N/A, N/A]", + "ATmega169PA-MU: QFN64, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega169PA-MUR: QFN64, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; prog_modes = PM_SPM | PM_ISP | PM_HVPP | PM_JTAG; mcuid = 107; reset = io; + latchcycles = 6; + togglevtg = 0; + poweroffdelay = 0; + resetdelayms = 0; + resetdelay = 15; + + memory "eeprom" + readback = 0x00 0x00; + ; + + memory "flash" + readback = 0x00 0x00; + delay = 10; + ; ; #------------------------------------------------------------ @@ -5170,6 +6084,16 @@ part parent "m169" part desc = "ATmega329"; id = "m329"; + variants = + "ATmega329: N/A, Fmax=16 MHz, T=[N/A, N/A], Vcc=[N/A, N/A]", + "ATmega329-16AU: TQFP64, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[4.5 V, 5.5 V]", + "ATmega329-16AUR: TQFP64, Fmax=16 MHz, T=[N/A, N/A], Vcc=[2.7 V, 5.5 V]", + "ATmega329-16MU: MLF64, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega329-16MUR: VQFN64, Fmax=16 MHz, T=[N/A, N/A], Vcc=[2.7 V, 5.5 V]", + "ATmega329V-8AU: TQFP64, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega329V-8AUR: TQFP64, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega329V-8MU: MLF64, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega329V-8MUR: VQFN64, Fmax=8 MHz, T=[N/A, N/A], Vcc=[1.8 V, 5.5 V]"; prog_modes = PM_SPM | PM_ISP | PM_HVPP | PM_JTAG; mcuid = 121; n_interrupts = 23; @@ -5179,6 +6103,8 @@ part # avr910_devcode = 0x?; # try the ATmega169 one: avr910_devcode = 0x75; chip_erase_delay = 9000; + pagel = 0xd7; + bs2 = 0xa0; signature = 0x1e 0x95 0x03; reset = io; timeout = 200; @@ -5196,16 +6122,15 @@ part 0x66, 0x76, 0x67, 0x77, 0x6a, 0x7a, 0x6b, 0x7b, 0xbe, 0xfd, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00; hventerstabdelay = 100; - latchcycles = 5; - togglevtg = 1; - poweroffdelay = 15; - resetdelayms = 1; + latchcycles = 6; hvleavestabdelay = 15; + resetdelay = 15; chiperasepolltimeout = 10; programfusepolltimeout = 5; programlockpolltimeout = 5; idr = 0x31; spmcr = 0x57; + eecr = 0x3f; ocdrev = 3; chip_erase = "1010.1100--1000.0000--xxxx.xxxx--xxxx.xxxx"; pgm_enable = "1010.1100--0101.0011--xxxx.xxxx--xxxx.xxxx"; @@ -5215,10 +6140,9 @@ part page_size = 4; min_write_delay = 9000; max_write_delay = 9000; - readback = 0xff 0xff; - mode = 65; - delay = 20; - blocksize = 8; + mode = 0x41; + delay = 10; + blocksize = 4; readsize = 256; read = "1010.0000--xxxx.xxaa--aaaa.aaaa--oooo.oooo"; write = "1100.0000--xxxx.xxaa--aaaa.aaaa--iiii.iiii"; @@ -5233,10 +6157,9 @@ part num_pages = 256; min_write_delay = 4500; max_write_delay = 4500; - readback = 0xff 0xff; - mode = 65; - delay = 6; - blocksize = 256; + mode = 0x41; + delay = 10; + blocksize = 128; readsize = 256; read_lo = "0010.0000--xaaa.aaaa--aaaa.aaaa--oooo.oooo"; read_hi = "0010.1000--xaaa.aaaa--aaaa.aaaa--oooo.oooo"; @@ -5247,6 +6170,7 @@ part memory "lfuse" size = 1; + initval = 0x62; min_write_delay = 4500; max_write_delay = 4500; read = "0101.0000--0000.0000--xxxx.xxxx--oooo.oooo"; @@ -5255,6 +6179,7 @@ part memory "hfuse" size = 1; + initval = 0x99; min_write_delay = 4500; max_write_delay = 4500; read = "0101.1000--0000.1000--xxxx.xxxx--oooo.oooo"; @@ -5263,6 +6188,8 @@ part memory "efuse" size = 1; + initval = 0xff; + bitmask = 0x07; min_write_delay = 4500; max_write_delay = 4500; read = "0101.0000--0000.1000--xxxx.xxxx--oooo.oooo"; @@ -5271,6 +6198,8 @@ part memory "lock" size = 1; + initval = 0xff; + bitmask = 0x3f; min_write_delay = 4500; max_write_delay = 4500; read = "0101.1000--0000.0000--xxxx.xxxx--oooo.oooo"; @@ -5295,6 +6224,12 @@ part part parent "m329" desc = "ATmega329A"; id = "m329a"; + variants = + "ATmega329A-AN: TQFP64, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATmega329A-AU: TQFP64, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega329A-AUR: TQFP64, Fmax=N/A, T=[N/A, N/A], Vcc=[N/A, N/A]", + "ATmega329A-MN: QFN64, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATmega329A-MU: VQFN64, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 122; ; @@ -5305,6 +6240,21 @@ part parent "m329" part parent "m329" desc = "ATmega329P"; id = "m329p"; + variants = + "ATmega329P: N/A, Fmax=20 MHz, T=[N/A, N/A], Vcc=[N/A, N/A]", + "ATmega329P-20AN: TQFP64, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATmega329P-20ANR: TQFP64, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[2.7 V, 5.5 V]", + "ATmega329P-20AU: TQFP64, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega329P-20AUR: TQFP64, Fmax=20 MHz, T=[N/A, N/A], Vcc=[2.7 V, 5.5 V]", + "ATmega329P-20MN: VQFN64, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[2.7 V, 5.5 V]", + "ATmega329P-20MNR: VQFN64, Fmax=20 MHz, T=[N/A, N/A], Vcc=[2.7 V, 5.5 V]", + "ATmega329P-20MU: MLF64, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega329P-20MUR: VQFN64, Fmax=20 MHz, T=[N/A, N/A], Vcc=[2.7 V, 5.5 V]", + "ATmega329PV-10AU: TQFP64, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega329PV-10AUR: TQFP64, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega329PV-10MN: VQFN64, Fmax=10 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATmega329PV-10MU: MLF64, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega329PV-10MUR: VQFN64, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 123; signature = 0x1e 0x95 0x0b; ; @@ -5316,6 +6266,13 @@ part parent "m329" part parent "m329" desc = "ATmega329PA"; id = "m329pa"; + variants = + "ATmega329PA-AN: TQFP64, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATmega329PA-AU: TQFP64, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega329PA-AUR: TQFP64, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega329PA-MN: QFN64, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATmega329PA-MU: QFN64, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega329PA-MUR: VQFN64, Fmax=N/A, T=[N/A, N/A], Vcc=[N/A, N/A]"; mcuid = 124; signature = 0x1e 0x95 0x0b; ; @@ -5327,6 +6284,12 @@ part parent "m329" part parent "m329" desc = "ATmega3290"; id = "m3290"; + variants = + "ATmega3290: N/A, Fmax=16 MHz, T=[N/A, N/A], Vcc=[1.8 V, 5.5 V]", + "ATmega3290-16AU: TQFP100, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega3290-16AUR: TQFP100, Fmax=16 MHz, T=[N/A, N/A], Vcc=[2.7 V, 5.5 V]", + "ATmega3290V-8AU: TQFP100, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega3290V-8AUR: TQFP100, Fmax=8 MHz, T=[N/A, N/A], Vcc=[1.8 V, 5.5 V]"; mcuid = 150; n_interrupts = 25; signature = 0x1e 0x95 0x04; @@ -5339,6 +6302,10 @@ part parent "m329" part parent "m329" desc = "ATmega3290A"; id = "m3290a"; + variants = + "ATmega3290A: N/A, Fmax=N/A, T=[N/A, N/A], Vcc=[1.8 V, 5.5 V]", + "ATmega3290A-AU: TQFP100, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega3290A-AUR: TQFP100, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 151; n_interrupts = 25; signature = 0x1e 0x95 0x04; @@ -5351,6 +6318,12 @@ part parent "m329" part parent "m329" desc = "ATmega3290P"; id = "m3290p"; + variants = + "ATmega3290P: TQFP100, Fmax=20 MHz, T=[N/A, N/A], Vcc=[1.8 V, 5.5 V]", + "ATmega3290P-20AU: TQFP100, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega3290P-20AUR: TQFP100, Fmax=20 MHz, T=[N/A, N/A], Vcc=[2.7 V, 5.5 V]", + "ATmega3290PV-10AU: TQFP100, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega3290PV-10AUR: TQFP100, Fmax=10 MHz, T=[N/A, N/A], Vcc=[1.8 V, 5.5 V]"; mcuid = 152; n_interrupts = 25; signature = 0x1e 0x95 0x0c; @@ -5363,6 +6336,10 @@ part parent "m329" part parent "m329" desc = "ATmega3290PA"; id = "m3290pa"; + variants = + "ATmega3290PA: N/A, Fmax=N/A, T=[N/A, N/A], Vcc=[1.8 V, 5.5 V]", + "ATmega3290PA-AU: TQFP100, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega3290PA-AUR: TQFP100, Fmax=N/A, T=[N/A, N/A], Vcc=[N/A, N/A]"; mcuid = 153; n_interrupts = 25; signature = 0x1e 0x95 0x0c; @@ -5375,6 +6352,16 @@ part parent "m329" part desc = "ATmega649"; id = "m649"; + variants = + "ATmega649: N/A, Fmax=16 MHz, T=[N/A, N/A], Vcc=[N/A, N/A]", + "ATmega649-16AU: TQFP64, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[4.5 V, 5.5 V]", + "ATmega649-16AUR: TQFP64, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega649-16MU: MLF64, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega649-16MUR: VQFN64, Fmax=16 MHz, T=[N/A, N/A], Vcc=[2.7 V, 5.5 V]", + "ATmega649V-8AU: TQFP64, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega649V-8AUR: TQFP64, Fmax=8 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATmega649V-8MU: MLF64, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega649V-8MUR: VQFN64, Fmax=8 MHz, T=[N/A, N/A], Vcc=[1.8 V, 5.5 V]"; prog_modes = PM_SPM | PM_ISP | PM_HVPP | PM_JTAG; mcuid = 135; n_interrupts = 23; @@ -5384,6 +6371,8 @@ part # avr910_devcode = 0x?; # try the ATmega169 one: avr910_devcode = 0x75; chip_erase_delay = 9000; + pagel = 0xd7; + bs2 = 0xa0; signature = 0x1e 0x96 0x03; reset = io; timeout = 200; @@ -5406,11 +6395,13 @@ part poweroffdelay = 15; resetdelayms = 1; hvleavestabdelay = 15; + resetdelay = 15; chiperasepolltimeout = 10; programfusepolltimeout = 5; programlockpolltimeout = 5; idr = 0x31; spmcr = 0x57; + eecr = 0x3f; ocdrev = 3; chip_erase = "1010.1100--1000.0000--xxxx.xxxx--xxxx.xxxx"; pgm_enable = "1010.1100--0101.0011--xxxx.xxxx--xxxx.xxxx"; @@ -5420,10 +6411,9 @@ part page_size = 8; min_write_delay = 9000; max_write_delay = 9000; - readback = 0xff 0xff; - mode = 65; - delay = 20; - blocksize = 8; + mode = 0x41; + delay = 10; + blocksize = 4; readsize = 256; read = "1010.0000--xxxx.xaaa--aaaa.aaaa--oooo.oooo"; write = "1100.0000--xxxx.xaaa--aaaa.aaaa--iiii.iiii"; @@ -5438,10 +6428,9 @@ part num_pages = 256; min_write_delay = 4500; max_write_delay = 4500; - readback = 0xff 0xff; - mode = 65; - delay = 6; - blocksize = 256; + mode = 0x41; + delay = 10; + blocksize = 128; readsize = 256; read_lo = "0010.0000--aaaa.aaaa--aaaa.aaaa--oooo.oooo"; read_hi = "0010.1000--aaaa.aaaa--aaaa.aaaa--oooo.oooo"; @@ -5452,6 +6441,7 @@ part memory "lfuse" size = 1; + initval = 0x62; min_write_delay = 4500; max_write_delay = 4500; read = "0101.0000--0000.0000--xxxx.xxxx--oooo.oooo"; @@ -5460,6 +6450,7 @@ part memory "hfuse" size = 1; + initval = 0x99; min_write_delay = 4500; max_write_delay = 4500; read = "0101.1000--0000.1000--xxxx.xxxx--oooo.oooo"; @@ -5468,6 +6459,8 @@ part memory "efuse" size = 1; + initval = 0xff; + bitmask = 0x07; min_write_delay = 4500; max_write_delay = 4500; read = "0101.0000--0000.1000--xxxx.xxxx--oooo.oooo"; @@ -5476,6 +6469,8 @@ part memory "lock" size = 1; + initval = 0xff; + bitmask = 0x3f; min_write_delay = 4500; max_write_delay = 4500; read = "0101.1000--0000.0000--xxxx.xxxx--oooo.oooo"; @@ -5500,6 +6495,11 @@ part part parent "m649" desc = "ATmega649A"; id = "m649a"; + variants = + "ATmega649A-AU: TQFP64, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega649A-AUR: TQFP64, Fmax=16 MHz, T=[N/A, N/A], Vcc=[1.8 V, 5.5 V]", + "ATmega649A-MU: VQFN64, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega649A-MUR: VQFN64, Fmax=16 MHz, T=[N/A, N/A], Vcc=[1.8 V, 5.5 V]"; mcuid = 136; ; @@ -5510,6 +6510,11 @@ part parent "m649" part parent "m649" desc = "ATmega649P"; id = "m649p"; + variants = + "ATmega649P-AU: TQFP64, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega649P-AUR: TQFP64, Fmax=N/A, T=[N/A, N/A], Vcc=[N/A, N/A]", + "ATmega649P-MU: VQFN64, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega649P-MUR: VQFN64, Fmax=N/A, T=[N/A, N/A], Vcc=[N/A, N/A]"; mcuid = 137; signature = 0x1e 0x96 0x0b; ; @@ -5521,6 +6526,12 @@ part parent "m649" part parent "m649" desc = "ATmega6490"; id = "m6490"; + variants = + "ATmega6490: N/A, Fmax=16 MHz, T=[N/A, N/A], Vcc=[1.8 V, 5.5 V]", + "ATmega6490-16AU: TQFP100, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[4.5 V, 5.5 V]", + "ATmega6490-16AUR: TQFP100, Fmax=16 MHz, T=[N/A, N/A], Vcc=[2.7 V, 5.5 V]", + "ATmega6490V-8AU: TQFP100, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega6490V-8AUR: TQFP100, Fmax=8 MHz, T=[N/A, N/A], Vcc=[1.8 V, 5.5 V]"; mcuid = 157; n_interrupts = 25; signature = 0x1e 0x96 0x04; @@ -5533,6 +6544,10 @@ part parent "m649" part parent "m649" desc = "ATmega6490A"; id = "m6490a"; + variants = + "ATmega6490A: N/A, Fmax=N/A, T=[N/A, N/A], Vcc=[1.8 V, 5.5 V]", + "ATmega6490A-AU: TQFP100, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega6490A-AUR: TQFP100, Fmax=20 MHz, T=[N/A, N/A], Vcc=[1.8 V, 5.5 V]"; mcuid = 158; n_interrupts = 25; signature = 0x1e 0x96 0x04; @@ -5545,6 +6560,10 @@ part parent "m649" part parent "m649" desc = "ATmega6490P"; id = "m6490p"; + variants = + "ATmega6490P: N/A, Fmax=N/A, T=[N/A, N/A], Vcc=[1.8 V, 5.5 V]", + "ATmega6490P-AU: TQFP100, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega6490P-AUR: TQFP100, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 159; n_interrupts = 25; signature = 0x1e 0x96 0x0c; @@ -5557,6 +6576,20 @@ part parent "m649" part desc = "ATmega32"; id = "m32"; + variants = + "ATmega32: N/A, Fmax=16 MHz, T=[N/A, N/A], Vcc=[N/A, N/A]", + "ATmega32-16AQ: TQFP44, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[4.5 V, 5.5 V]", + "ATmega32-16AQR: TQFP44, Fmax=16 MHz, T=[N/A, N/A], Vcc=[4.5 V, 5.5 V]", + "ATmega32-16AU: TQFP44, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[4.5 V, 5.5 V]", + "ATmega32-16AUR: TQFP44, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[4.5 V, 5.5 V]", + "ATmega32-16MU: MLF44, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[4.5 V, 5.5 V]", + "ATmega32-16MUR: VQFN44, Fmax=16 MHz, T=[N/A, N/A], Vcc=[4.5 V, 5.5 V]", + "ATmega32-16PU: PDIP40, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[4.5 V, 5.5 V]", + "ATmega32L-8AU: TQFP44, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega32L-8AUR: TQFP44, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega32L-8MU: MLF44, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega32L-8MUR: VQFN44, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega32L-8PU: PDIP40, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]"; prog_modes = PM_SPM | PM_ISP | PM_HVPP | PM_JTAG | PM_JTAGmkI; mcuid = 58; n_interrupts = 21; @@ -5586,11 +6619,13 @@ part hventerstabdelay = 100; latchcycles = 6; hvleavestabdelay = 15; + resetdelay = 15; chiperasepolltimeout = 10; programfusepolltimeout = 5; programlockpolltimeout = 5; idr = 0x31; spmcr = 0x57; + eecr = 0x3c; ocdrev = 2; chip_erase = "1010.1100--1000.0000--xxxx.xxxx--xxxx.xxxx"; pgm_enable = "1010.1100--0101.0011--xxxx.xxxx--xxxx.xxxx"; @@ -5601,8 +6636,8 @@ part min_write_delay = 9000; max_write_delay = 9000; readback = 0xff 0xff; - mode = 4; - delay = 10; + mode = 0x04; + delay = 20; blocksize = 64; readsize = 256; read = "1010.0000--00xx.xxaa--aaaa.aaaa--oooo.oooo"; @@ -5618,9 +6653,9 @@ part num_pages = 256; min_write_delay = 4500; max_write_delay = 4500; - readback = 0xff 0xff; - mode = 33; - delay = 6; + readback = 0xff 0x00; + mode = 0x21; + delay = 10; blocksize = 64; readsize = 256; read_lo = "0010.0000--00aa.aaaa--aaaa.aaaa--oooo.oooo"; @@ -5632,24 +6667,28 @@ part memory "lfuse" size = 1; - min_write_delay = 2000; - max_write_delay = 2000; + initval = 0xe1; + min_write_delay = 4500; + max_write_delay = 4500; read = "0101.0000--0000.0000--xxxx.xxxx--oooo.oooo"; write = "1010.1100--1010.0000--xxxx.xxxx--iiii.iiii"; ; memory "hfuse" size = 1; - min_write_delay = 2000; - max_write_delay = 2000; + initval = 0x99; + min_write_delay = 4500; + max_write_delay = 4500; read = "0101.1000--0000.1000--xxxx.xxxx--oooo.oooo"; write = "1010.1100--1010.1000--xxxx.xxxx--iiii.iiii"; ; memory "lock" size = 1; - min_write_delay = 2000; - max_write_delay = 2000; + initval = 0xff; + bitmask = 0x3f; + min_write_delay = 4500; + max_write_delay = 4500; read = "0101.1000--0000.0000--xxxx.xxxx--oooo.oooo"; write = "1010.1100--111x.xxxx--xxxx.xxxx--11ii.iiii"; ; @@ -5672,6 +6711,15 @@ part part desc = "ATmega161"; id = "m161"; + variants = + "ATmega161-8AC: TQFP44, Fmax=8 MHz, T=[0 C, 70 C], Vcc=[4 V, 5.5 V]", + "ATmega161-8AI: TQFP44, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[4 V, 5.5 V]", + "ATmega161-8PC: DIP40, Fmax=8 MHz, T=[0 C, 70 C], Vcc=[4 V, 5.5 V]", + "ATmega161-8PI: DIP40, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[4 V, 5.5 V]", + "ATmega161L-4AC: TQFP44, Fmax=4 MHz, T=[0 C, 70 C], Vcc=[2.7 V, 5.5 V]", + "ATmega161L-4AI: TQFP44, Fmax=4 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega161L-4PC: DIP40, Fmax=4 MHz, T=[0 C, 70 C], Vcc=[2.7 V, 5.5 V]", + "ATmega161L-4PI: DIP40, Fmax=4 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]"; prog_modes = PM_SPM | PM_ISP | PM_HVPP; mcuid = 89; n_interrupts = 21; @@ -5709,7 +6757,7 @@ part min_write_delay = 3400; max_write_delay = 3400; readback = 0xff 0xff; - mode = 4; + mode = 0x04; delay = 5; blocksize = 128; readsize = 256; @@ -5725,7 +6773,7 @@ part min_write_delay = 14000; max_write_delay = 14000; readback = 0xff 0xff; - mode = 33; + mode = 0x21; delay = 16; blocksize = 128; readsize = 256; @@ -5738,14 +6786,18 @@ part memory "fuse" size = 1; + initval = 0xda; + bitmask = 0x77; min_write_delay = 2000; max_write_delay = 2000; read = "0101.0000--xxxx.xxxx--xxxx.xxxx--xoxo.oooo"; - write = "1010.1100--101x.xxxx--xxxx.xxxx--1i1i.iiii"; + write = "1010.1100--101x.xxxx--xxxx.xxxx--1i1i.1iii"; ; memory "lock" size = 1; + initval = 0xff; + bitmask = 0x3f; min_write_delay = 2000; max_write_delay = 2000; read = "0101.1000--0000.0000--xxxx.xxxx--oooo.oooo"; @@ -5765,6 +6817,17 @@ part part parent "m32" desc = "ATmega32A"; id = "m32a"; + variants = + "ATmega32A-AN: TQFP44, Fmax=16 MHz, T=[-40 C, 105 C], Vcc=[2.7 V, 5.5 V]", + "ATmega32A-ANR: TQFP44, Fmax=16 MHz, T=[N/A, N/A], Vcc=[2.7 V, 5.5 V]", + "ATmega32A-AU: TQFP44, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega32A-AUR: TQFP44, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega32A-MN: VQFN44, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega32A-MNR: VQFN44, Fmax=16 MHz, T=[N/A, N/A], Vcc=[2.7 V, 5.5 V]", + "ATmega32A-MU: MLF44, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega32A-MUR: VQFN44, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega32A-PN: PDIP40, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega32A-PU: PDIP40, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]"; mcuid = 59; ; @@ -5775,6 +6838,24 @@ part parent "m32" part desc = "ATmega8"; id = "m8"; + variants = + "ATmega8: N/A, Fmax=16 MHz, T=[N/A, N/A], Vcc=[N/A, N/A]", + "ATmega8-16AN: TQFP32, Fmax=16 MHz, T=[-40 C, 105 C], Vcc=[4.5 V, 5.5 V]", + "ATmega8-16AU: TQFP32, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[4.5 V, 5.5 V]", + "ATmega8-16AUR: TQFP32, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[4.5 V, 5.5 V]", + "ATmega8-16MN: QFN32, Fmax=16 MHz, T=[-40 C, 105 C], Vcc=[4.5 V, 5.5 V]", + "ATmega8-16MU: MLF32, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[4.5 V, 5.5 V]", + "ATmega8-16MUR: MLF32, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[4.5 V, 5.5 V]", + "ATmega8-16PN: PDIP28, Fmax=16 MHz, T=[-40 C, 105 C], Vcc=[4.5 V, 5.5 V]", + "ATmega8-16PU: PDIP28, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[4.5 V, 5.5 V]", + "ATmega8L-8AN: TQFP32, Fmax=8 MHz, T=[-40 C, 105 C], Vcc=[2.7 V, 5.5 V]", + "ATmega8L-8AU: TQFP32, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega8L-8AUR: TQFP32, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega8L-8MN: QFN32, Fmax=8 MHz, T=[-40 C, 105 C], Vcc=[2.7 V, 5.5 V]", + "ATmega8L-8MU: MLF32, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega8L-8MUR: VQFN32, Fmax=8 MHz, T=[N/A, N/A], Vcc=[2.7 V, 5.5 V]", + "ATmega8L-8PN: PDIP28, Fmax=8 MHz, T=[-40 C, 105 C], Vcc=[2.7 V, 5.5 V]", + "ATmega8L-8PU: PDIP28, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]"; prog_modes = PM_SPM | PM_ISP | PM_HVPP; mcuid = 45; n_interrupts = 19; @@ -5782,7 +6863,7 @@ part boot_section_size = 256; stk500_devcode = 0x70; avr910_devcode = 0x76; - chip_erase_delay = 10000; + chip_erase_delay = 9000; pagel = 0xd7; bs2 = 0xc2; signature = 0x1e 0x93 0x07; @@ -5807,9 +6888,9 @@ part resetdelayms = 2; hvleavestabdelay = 15; resetdelay = 15; - chiperasepolltimeout = 10; - programfusepolltimeout = 5; - programlockpolltimeout = 5; + chiperasepolltimeout = 20; + programfusepolltimeout = 10; + programlockpolltimeout = 10; chip_erase = "1010.1100--100x.xxxx--xxxx.xxxx--xxxx.xxxx"; pgm_enable = "1010.1100--0101.0011--xxxx.xxxx--xxxx.xxxx"; @@ -5819,7 +6900,7 @@ part min_write_delay = 9000; max_write_delay = 9000; readback = 0xff 0xff; - mode = 4; + mode = 0x04; delay = 20; blocksize = 128; readsize = 256; @@ -5835,7 +6916,7 @@ part min_write_delay = 4500; max_write_delay = 4500; readback = 0xff 0x00; - mode = 33; + mode = 0x21; delay = 10; blocksize = 64; readsize = 256; @@ -5848,24 +6929,28 @@ part memory "lfuse" size = 1; - min_write_delay = 2000; - max_write_delay = 2000; + initval = 0xe1; + min_write_delay = 4500; + max_write_delay = 4500; read = "0101.0000--0000.0000--xxxx.xxxx--oooo.oooo"; write = "1010.1100--1010.0000--xxxx.xxxx--iiii.iiii"; ; memory "hfuse" size = 1; - min_write_delay = 2000; - max_write_delay = 2000; + initval = 0xd9; + min_write_delay = 4500; + max_write_delay = 4500; read = "0101.1000--0000.1000--xxxx.xxxx--oooo.oooo"; write = "1010.1100--1010.1000--xxxx.xxxx--iiii.iiii"; ; memory "lock" size = 1; - min_write_delay = 2000; - max_write_delay = 2000; + initval = 0xff; + bitmask = 0x3f; + min_write_delay = 4500; + max_write_delay = 4500; read = "0101.1000--0000.0000--xxxx.xxxx--oooo.oooo"; write = "1010.1100--111x.xxxx--xxxx.xxxx--11ii.iiii"; ; @@ -5888,6 +6973,18 @@ part part parent "m8" desc = "ATmega8A"; id = "m8a"; + variants = + "ATmega8A: N/A, Fmax=16 MHz, T=[N/A, N/A], Vcc=[2.7 V, 5.5 V]", + "ATmega8A-AN: TQFP32, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega8A-ANR: TQFP32, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega8A-AU: TQFP32, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega8A-AUR: TQFP32, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega8A-MN: QFN32, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega8A-MNR: VQFN32, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega8A-MU: VQFN32, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega8A-MUR: QFN32, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega8A-PN: PDIP28, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega8A-PU: PDIP28, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]"; mcuid = 46; ; @@ -5898,6 +6995,22 @@ part parent "m8" part desc = "ATmega8515"; id = "m8515"; + variants = + "ATmega8515: N/A, Fmax=16 MHz, T=[N/A, N/A], Vcc=[2.7 V, 5.5 V]", + "ATmega8515-16AU: TQFP44, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[4.5 V, 5.5 V]", + "ATmega8515-16AUR: TQFP44, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[4.5 V, 5.5 V]", + "ATmega8515-16JU: PLCC44, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[4.5 V, 5.5 V]", + "ATmega8515-16JUR: PLCC44, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[4.5 V, 5.5 V]", + "ATmega8515-16MU: QFN44, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[4.5 V, 5.5 V]", + "ATmega8515-16MUR: VQFN44, Fmax=16 MHz, T=[N/A, N/A], Vcc=[4.5 V, 5.5 V]", + "ATmega8515-16PU: PDIP40, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[4.5 V, 5.5 V]", + "ATmega8515L-8AU: TQFP44, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega8515L-8AUR: TQFP44, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega8515L-8JU: PLCC44, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega8515L-8JUR: PLCC44, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega8515L-8MU: MLF44, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega8515L-8MUR: VQFN44, Fmax=8 MHz, T=[N/A, N/A], Vcc=[2.7 V, 5.5 V]", + "ATmega8515L-8PU: PDIP40, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]"; prog_modes = PM_SPM | PM_ISP | PM_HVPP; mcuid = 160; n_interrupts = 17; @@ -5906,6 +7019,8 @@ part stk500_devcode = 0x63; avr910_devcode = 0x3a; chip_erase_delay = 9000; + pagel = 0xd7; + bs2 = 0xa0; signature = 0x1e 0x93 0x06; timeout = 200; stabdelay = 100; @@ -5923,6 +7038,7 @@ part hventerstabdelay = 100; latchcycles = 6; hvleavestabdelay = 15; + resetdelay = 15; chiperasepolltimeout = 10; programfusepolltimeout = 5; programlockpolltimeout = 5; @@ -5934,7 +7050,7 @@ part min_write_delay = 9000; max_write_delay = 9000; readback = 0xff 0xff; - mode = 4; + mode = 0x04; delay = 20; blocksize = 128; readsize = 256; @@ -5949,9 +7065,9 @@ part num_pages = 128; min_write_delay = 4500; max_write_delay = 4500; - readback = 0xff 0xff; - mode = 33; - delay = 6; + readback = 0xff 0x00; + mode = 0x21; + delay = 10; blocksize = 64; readsize = 256; read_lo = "0010.0000--0000.aaaa--aaaa.aaaa--oooo.oooo"; @@ -5963,6 +7079,7 @@ part memory "lfuse" size = 1; + initval = 0xe1; min_write_delay = 4500; max_write_delay = 4500; read = "0101.0000--0000.0000--xxxx.xxxx--oooo.oooo"; @@ -5971,6 +7088,7 @@ part memory "hfuse" size = 1; + initval = 0xd9; min_write_delay = 4500; max_write_delay = 4500; read = "0101.1000--0000.1000--xxxx.xxxx--oooo.oooo"; @@ -5979,6 +7097,8 @@ part memory "lock" size = 1; + initval = 0xff; + bitmask = 0x3f; min_write_delay = 4500; max_write_delay = 4500; read = "0101.1000--0000.0000--xxxx.xxxx--oooo.oooo"; @@ -6003,6 +7123,22 @@ part part desc = "ATmega8535"; id = "m8535"; + variants = + "ATmega8535: N/A, Fmax=16 MHz, T=[N/A, N/A], Vcc=[2.7 V, 5.5 V]", + "ATmega8535-16AU: TQFP44, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[4.5 V, 5.5 V]", + "ATmega8535-16AUR: TQFP44, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[4.5 V, 5.5 V]", + "ATmega8535-16JU: PLCC44, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[4.5 V, 5.5 V]", + "ATmega8535-16JUR: PLCC44, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[4.5 V, 5.5 V]", + "ATmega8535-16MU: MLF44, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[4.5 V, 5.5 V]", + "ATmega8535-16MUR: VQFN44, Fmax=16 MHz, T=[N/A, N/A], Vcc=[4.5 V, 5.5 V]", + "ATmega8535-16PU: PDIP40, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[4.5 V, 5.5 V]", + "ATmega8535L-8AU: TQFP44, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega8535L-8AUR: TQFP44, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega8535L-8JU: PLCC44, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega8535L-8JUR: PLCC44, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega8535L-8MU: MLF44, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega8535L-8MUR: MLF44, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega8535L-8PU: PDIP40, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]"; prog_modes = PM_SPM | PM_ISP | PM_HVPP; mcuid = 161; n_interrupts = 21; @@ -6030,6 +7166,7 @@ part hventerstabdelay = 100; latchcycles = 6; hvleavestabdelay = 15; + resetdelay = 15; chiperasepolltimeout = 10; programfusepolltimeout = 5; programlockpolltimeout = 5; @@ -6041,7 +7178,7 @@ part min_write_delay = 9000; max_write_delay = 9000; readback = 0xff 0xff; - mode = 4; + mode = 0x04; delay = 20; blocksize = 128; readsize = 256; @@ -6056,9 +7193,9 @@ part num_pages = 128; min_write_delay = 4500; max_write_delay = 4500; - readback = 0xff 0xff; - mode = 33; - delay = 6; + readback = 0xff 0x00; + mode = 0x21; + delay = 10; blocksize = 64; readsize = 256; read_lo = "0010.0000--0000.aaaa--aaaa.aaaa--oooo.oooo"; @@ -6070,6 +7207,7 @@ part memory "lfuse" size = 1; + initval = 0xe1; min_write_delay = 2000; max_write_delay = 2000; read = "0101.0000--0000.0000--xxxx.xxxx--oooo.oooo"; @@ -6078,6 +7216,7 @@ part memory "hfuse" size = 1; + initval = 0xd9; min_write_delay = 2000; max_write_delay = 2000; read = "0101.1000--0000.1000--xxxx.xxxx--oooo.oooo"; @@ -6086,6 +7225,8 @@ part memory "lock" size = 1; + initval = 0xff; + bitmask = 0x3f; min_write_delay = 2000; max_write_delay = 2000; read = "0101.1000--0000.0000--xxxx.xxxx--oooo.oooo"; @@ -6110,6 +7251,18 @@ part part desc = "ATtiny26"; id = "t26"; + variants = + "ATtiny26: N/A, Fmax=16 MHz, T=[N/A, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny26-16MU: MLF32, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[4.5 V, 5.5 V]", + "ATtiny26-16MUR: VQFN32, Fmax=16 MHz, T=[N/A, N/A], Vcc=[4.5 V, 5.5 V]", + "ATtiny26-16PU: PDIP20, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[4.5 V, 5.5 V]", + "ATtiny26-16SU: SOIC20, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[4.5 V, 5.5 V]", + "ATtiny26-16SUR: SOIC20, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[4.5 V, 5.5 V]", + "ATtiny26L-8MU: MLF32, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny26L-8MUR: VQFN32, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny26L-8PU: PDIP20, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny26L-8SU: SOIC20, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny26L-8SUR: SOIC20, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]"; prog_modes = PM_ISP | PM_HVPP; mcuid = 17; n_interrupts = 12; @@ -6138,9 +7291,10 @@ part poweroffdelay = 15; resetdelayms = 2; hvleavestabdelay = 15; - chiperasepolltimeout = 10; - programfusepolltimeout = 5; - programlockpolltimeout = 5; + resetdelay = 15; + chiperasepolltimeout = 20; + programfusepolltimeout = 10; + programlockpolltimeout = 10; chip_erase = "1010.1100--100x.xxxx--xxxx.xxxx--xxxx.xxxx"; pgm_enable = "1010.1100--0101.0011--xxxx.xxxx--xxxx.xxxx"; @@ -6149,8 +7303,8 @@ part min_write_delay = 9000; max_write_delay = 9000; readback = 0xff 0xff; - mode = 4; - delay = 10; + mode = 0x04; + delay = 20; blocksize = 64; readsize = 256; read = "1010.0000--xxxx.xxxx--xaaa.aaaa--oooo.oooo"; @@ -6164,9 +7318,9 @@ part num_pages = 64; min_write_delay = 4500; max_write_delay = 4500; - readback = 0xff 0xff; - mode = 33; - delay = 6; + readback = 0xff 0x00; + mode = 0x21; + delay = 10; blocksize = 16; readsize = 256; read_lo = "0010.0000--xxxx.xxaa--aaaa.aaaa--oooo.oooo"; @@ -6178,6 +7332,7 @@ part memory "lfuse" size = 1; + initval = 0xe1; min_write_delay = 9000; max_write_delay = 9000; read = "0101.0000--0000.0000--xxxx.xxxx--oooo.oooo"; @@ -6186,6 +7341,8 @@ part memory "hfuse" size = 1; + initval = 0xf7; + bitmask = 0x1f; min_write_delay = 9000; max_write_delay = 9000; read = "0101.1000--0000.1000--xxxx.xxxx--oooo.oooo"; @@ -6194,6 +7351,8 @@ part memory "lock" size = 1; + initval = 0xff; + bitmask = 0x03; min_write_delay = 9000; max_write_delay = 9000; read = "0101.1000--xxxx.xxxx--xxxx.xxxx--xxxx.xxoo"; @@ -6218,6 +7377,14 @@ part part desc = "ATtiny261"; id = "t261"; + variants = + "ATtiny261: N/A, Fmax=20 MHz, T=[N/A, 85 C], Vcc=[N/A, N/A]", + "ATtiny261-20MU: MLF32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny261-20PU: PDIP20, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny261-20SU: SOIC20, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny261V-10MU: MLF32, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny261V-10PU: PDIP20, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny261V-10SU: SOIC20, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; prog_modes = PM_SPM | PM_ISP | PM_HVPP | PM_debugWIRE; mcuid = 30; n_interrupts = 19; @@ -6249,11 +7416,13 @@ part latchcycles = 5; togglevtg = 1; poweroffdelay = 15; - resetdelayms = 2; + resetdelayms = 1; hvleavestabdelay = 15; + resetdelay = 15; chiperasepolltimeout = 10; programfusepolltimeout = 5; programlockpolltimeout = 5; + idr = 0x20; spmcr = 0x57; eecr = 0x3c; ocdrev = 1; @@ -6266,8 +7435,7 @@ part num_pages = 32; min_write_delay = 4000; max_write_delay = 4000; - readback = 0xff 0xff; - mode = 65; + mode = 0x41; delay = 10; blocksize = 4; readsize = 256; @@ -6284,9 +7452,8 @@ part num_pages = 64; min_write_delay = 4500; max_write_delay = 4500; - readback = 0xff 0xff; - mode = 65; - delay = 6; + mode = 0x41; + delay = 10; blocksize = 32; readsize = 256; read_lo = "0010.0000--xxxx.xxaa--aaaa.aaaa--oooo.oooo"; @@ -6298,6 +7465,7 @@ part memory "lfuse" size = 1; + initval = 0x62; min_write_delay = 4500; max_write_delay = 4500; read = "0101.0000--0000.0000--xxxx.xxxx--oooo.oooo"; @@ -6306,6 +7474,7 @@ part memory "hfuse" size = 1; + initval = 0xdf; min_write_delay = 4500; max_write_delay = 4500; read = "0101.1000--0000.1000--xxxx.xxxx--oooo.oooo"; @@ -6314,6 +7483,8 @@ part memory "efuse" size = 1; + initval = 0xff; + bitmask = 0x01; min_write_delay = 4500; max_write_delay = 4500; read = "0101.0000--0000.1000--xxxx.xxxx--oooo.oooo"; @@ -6322,6 +7493,8 @@ part memory "lock" size = 1; + initval = 0xff; + bitmask = 0x03; min_write_delay = 4500; max_write_delay = 4500; read = "0101.1000--xxxx.xxxx--xxxx.xxxx--xxxx.xxoo"; @@ -6346,6 +7519,18 @@ part part parent "t261" desc = "ATtiny261A"; id = "t261a"; + variants = + "ATtiny261A: N/A, Fmax=N/A, T=[N/A, N/A], Vcc=[1.8 V, 5.5 V]", + "ATtiny261A-MF: MLF32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny261A-MFR: MLF32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny261A-MN: MLF32, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny261A-MNR: VQFN32, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny261A-MU: QFN32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny261A-PU: PDIP20, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny261A-SU: SOIC20, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny261A-SUR: SOIC20, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny261A-XU: TSSOP20, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny261A-XUR: TSSOP20, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 31; ; @@ -6356,6 +7541,18 @@ part parent "t261" part desc = "ATtiny461"; id = "t461"; + variants = + "ATtiny461: N/A, Fmax=20 MHz, T=[N/A, 85 C], Vcc=[N/A, N/A]", + "ATtiny461-20MU: MLF32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny461-20MUR: VQFN32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny461-20PU: PDIP20, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny461-20SU: SOIC20, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny461-20SUR: SOIC20, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny461V-10MU: MLF32, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny461V-10MUR: VQFN32, Fmax=10 MHz, T=[N/A, N/A], Vcc=[1.8 V, 5.5 V]", + "ATtiny461V-10PU: PDIP20, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny461V-10SU: SOIC20, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny461V-10SUR: SOIC20, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; prog_modes = PM_SPM | PM_ISP | PM_HVPP | PM_debugWIRE; mcuid = 33; n_interrupts = 19; @@ -6387,11 +7584,13 @@ part latchcycles = 5; togglevtg = 1; poweroffdelay = 15; - resetdelayms = 2; + resetdelayms = 1; hvleavestabdelay = 15; + resetdelay = 15; chiperasepolltimeout = 10; programfusepolltimeout = 5; programlockpolltimeout = 5; + idr = 0x20; spmcr = 0x57; eecr = 0x3c; ocdrev = 1; @@ -6404,8 +7603,7 @@ part num_pages = 64; min_write_delay = 4000; max_write_delay = 4000; - readback = 0xff 0xff; - mode = 65; + mode = 0x41; delay = 10; blocksize = 4; readsize = 256; @@ -6422,9 +7620,8 @@ part num_pages = 64; min_write_delay = 4500; max_write_delay = 4500; - readback = 0xff 0xff; - mode = 65; - delay = 6; + mode = 0x41; + delay = 10; blocksize = 64; readsize = 256; read_lo = "0010.0000--xxxx.xaaa--aaaa.aaaa--oooo.oooo"; @@ -6436,6 +7633,7 @@ part memory "lfuse" size = 1; + initval = 0x62; min_write_delay = 4500; max_write_delay = 4500; read = "0101.0000--0000.0000--xxxx.xxxx--oooo.oooo"; @@ -6444,6 +7642,7 @@ part memory "hfuse" size = 1; + initval = 0xdf; min_write_delay = 4500; max_write_delay = 4500; read = "0101.1000--0000.1000--xxxx.xxxx--oooo.oooo"; @@ -6452,6 +7651,8 @@ part memory "efuse" size = 1; + initval = 0xff; + bitmask = 0x01; min_write_delay = 4500; max_write_delay = 4500; read = "0101.0000--0000.1000--xxxx.xxxx--oooo.oooo"; @@ -6460,6 +7661,8 @@ part memory "lock" size = 1; + initval = 0xff; + bitmask = 0x03; min_write_delay = 4500; max_write_delay = 4500; read = "0101.1000--xxxx.xxxx--xxxx.xxxx--xxxx.xxoo"; @@ -6484,6 +7687,14 @@ part part parent "t461" desc = "ATtiny461A"; id = "t461a"; + variants = + "ATtiny461A: N/A, Fmax=N/A, T=[N/A, N/A], Vcc=[1.8 V, 5.5 V]", + "ATtiny461A-MU: QFN32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny461A-PU: PDIP20, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny461A-SU: SOIC20, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny461A-SUR: SOIC20, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny461A-XU: TSSOP20, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny461A-XUR: TSSOP20, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 34; ; @@ -6494,6 +7705,18 @@ part parent "t461" part desc = "ATtiny861"; id = "t861"; + variants = + "ATtiny861: N/A, Fmax=20 MHz, T=[N/A, 85 C], Vcc=[N/A, N/A]", + "ATtiny861-20MU: MLF32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny861-20MUR: VQFN32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny861-20PU: PDIP20, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny861-20SU: SOIC20, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny861-20SUR: SOIC20, Fmax=20 MHz, T=[N/A, N/A], Vcc=[2.7 V, 5.5 V]", + "ATtiny861V-10MU: MLF32, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny861V-10MUR: VQFN32, Fmax=10 MHz, T=[N/A, N/A], Vcc=[1.8 V, 5.5 V]", + "ATtiny861V-10PU: PDIP20, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny861V-10SU: SOIC20, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny861V-10SUR: SOIC20, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; prog_modes = PM_SPM | PM_ISP | PM_HVPP | PM_debugWIRE; mcuid = 38; n_interrupts = 19; @@ -6525,11 +7748,13 @@ part latchcycles = 5; togglevtg = 1; poweroffdelay = 15; - resetdelayms = 2; + resetdelayms = 1; hvleavestabdelay = 15; + resetdelay = 15; chiperasepolltimeout = 10; programfusepolltimeout = 5; programlockpolltimeout = 5; + idr = 0x20; spmcr = 0x57; eecr = 0x3c; ocdrev = 1; @@ -6542,8 +7767,7 @@ part num_pages = 128; min_write_delay = 4000; max_write_delay = 4000; - readback = 0xff 0xff; - mode = 65; + mode = 0x41; delay = 10; blocksize = 4; readsize = 256; @@ -6560,9 +7784,8 @@ part num_pages = 128; min_write_delay = 4500; max_write_delay = 4500; - readback = 0xff 0xff; - mode = 65; - delay = 6; + mode = 0x41; + delay = 10; blocksize = 64; readsize = 256; read_lo = "0010.0000--xxxx.aaaa--aaaa.aaaa--oooo.oooo"; @@ -6574,6 +7797,7 @@ part memory "lfuse" size = 1; + initval = 0x62; min_write_delay = 4500; max_write_delay = 4500; read = "0101.0000--0000.0000--xxxx.xxxx--oooo.oooo"; @@ -6582,6 +7806,7 @@ part memory "hfuse" size = 1; + initval = 0xdf; min_write_delay = 4500; max_write_delay = 4500; read = "0101.1000--0000.1000--xxxx.xxxx--oooo.oooo"; @@ -6590,6 +7815,8 @@ part memory "efuse" size = 1; + initval = 0xff; + bitmask = 0x01; min_write_delay = 4500; max_write_delay = 4500; read = "0101.0000--0000.1000--xxxx.xxxx--oooo.oooo"; @@ -6598,6 +7825,8 @@ part memory "lock" size = 1; + initval = 0xff; + bitmask = 0x03; min_write_delay = 4500; max_write_delay = 4500; read = "0101.1000--xxxx.xxxx--xxxx.xxxx--xxxx.xxoo"; @@ -6622,6 +7851,15 @@ part part parent "t861" desc = "ATtiny861A"; id = "t861a"; + variants = + "ATtiny861A: N/A, Fmax=N/A, T=[N/A, N/A], Vcc=[1.8 V, 5.5 V]", + "ATtiny861A-MU: QFN32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny861A-MUR: VQFN32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny861A-PU: PDIP20, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny861A-SU: SOIC20, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny861A-SUR: SOIC20, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny861A-XU: TSSOP20, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny861A-XUR: TSSOP20, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 39; ; @@ -6634,6 +7872,17 @@ part parent "t861" part desc = "ATtiny28"; id = "t28"; + variants = + "ATtiny28: N/A, Fmax=N/A, T=[N/A, N/A], Vcc=[2.7 V, 5.5 V]", + "ATtiny28L-4AU: TQFP32, Fmax=4 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny28L-4MU: MLF32, Fmax=4 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny28L-4MUR: VQFN32, Fmax=4 MHz, T=[N/A, N/A], Vcc=[2.7 V, 5.5 V]", + "ATtiny28L-4PU: PDIP28, Fmax=4 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny28V-1AU: TQFP32, Fmax=1.2 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny28V-1AUR: TQFP32, Fmax=1 MHz, T=[N/A, N/A], Vcc=[1.8 V, 5.5 V]", + "ATtiny28V-1MU: MLF32, Fmax=1.2 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny28V-1MUR: VQFN32, Fmax=1 MHz, T=[N/A, N/A], Vcc=[1.8 V, 5.5 V]", + "ATtiny28V-1PU: PDIP28, Fmax=1.2 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; prog_modes = PM_HVPP; mcuid = 18; n_interrupts = 6; @@ -6662,10 +7911,14 @@ part memory "fuse" size = 1; + initval = 0x12; + bitmask = 0x1f; ; memory "lock" size = 1; + initval = 0x06; + bitmask = 0x06; ; memory "signature" @@ -6684,6 +7937,23 @@ part part desc = "ATmega48"; id = "m48"; + variants = + "ATmega48: N/A, Fmax=20 MHz, T=[N/A, N/A], Vcc=[N/A, N/A]", + "ATmega48-20AU: TQFP32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega48-20AUR: TQFP32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega48-20MMH: VQFN28, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega48-20MMU: MLF28, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega48-20MU: MLF32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega48-20MUR: MLF32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega48-20PU: PDIP28, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega48V-10AU: TQFP32, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega48V-10AUR: TQFP32, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega48V-10MMH: VQFN28, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega48V-10MMU: QFN28, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega48V-10MMUR: VQFN28, Fmax=10 MHz, T=[N/A, N/A], Vcc=[1.8 V, 5.5 V]", + "ATmega48V-10MU: MLF32, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega48V-10MUR: MLF32, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega48V-10PU: PDIP28, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; prog_modes = PM_SPM | PM_ISP | PM_HVPP | PM_debugWIRE; mcuid = 67; n_interrupts = 26; @@ -6723,6 +7993,7 @@ part chiperasepolltimeout = 10; programfusepolltimeout = 5; programlockpolltimeout = 5; + idr = 0x31; spmcr = 0x57; eecr = 0x3f; ocdrev = 1; @@ -6734,8 +8005,7 @@ part page_size = 4; min_write_delay = 3600; max_write_delay = 3600; - readback = 0xff 0xff; - mode = 65; + mode = 0x41; delay = 20; blocksize = 4; readsize = 256; @@ -6752,8 +8022,8 @@ part num_pages = 64; min_write_delay = 4500; max_write_delay = 4500; - mode = 65; - delay = 6; + mode = 0x41; + delay = 10; blocksize = 64; readsize = 256; read_lo = "0010.0000--0000.0aaa--aaaa.aaaa--oooo.oooo"; @@ -6765,6 +8035,7 @@ part memory "lfuse" size = 1; + initval = 0x62; min_write_delay = 4500; max_write_delay = 4500; read = "0101.0000--0000.0000--xxxx.xxxx--oooo.oooo"; @@ -6773,6 +8044,7 @@ part memory "hfuse" size = 1; + initval = 0xdf; min_write_delay = 4500; max_write_delay = 4500; read = "0101.1000--0000.1000--xxxx.xxxx--oooo.oooo"; @@ -6781,6 +8053,8 @@ part memory "efuse" size = 1; + initval = 0xff; + bitmask = 0x01; min_write_delay = 4500; max_write_delay = 4500; read = "0101.0000--0000.1000--xxxx.xxxx--oooo.oooo"; @@ -6789,6 +8063,8 @@ part memory "lock" size = 1; + initval = 0xff; + bitmask = 0x03; min_write_delay = 4500; max_write_delay = 4500; read = "0101.1000--0000.0000--xxxx.xxxx--oooo.oooo"; @@ -6813,6 +8089,15 @@ part part parent "m48" desc = "ATmega48A"; id = "m48a"; + variants = + "ATmega48A-AU: TQFP32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega48A-AUR: TQFP32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega48A-CCU: UFBGA32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega48A-MMH: VQFN28, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega48A-MMHR: VQFN28, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega48A-MU: QFN32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega48A-MUR: VQFN32, Fmax=N/A, T=[N/A, N/A], Vcc=[1.8 V, 5.5 V]", + "ATmega48A-PU: PDIP28, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 68; ; @@ -6823,6 +8108,21 @@ part parent "m48" part parent "m48" desc = "ATmega48P"; id = "m48p"; + variants = + "ATmega48P-20AU: TQFP32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega48P-20AUR: TQFP32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega48P-20MMU: MLF28, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega48P-20MMUR: VQFN28, Fmax=N/A, T=[N/A, N/A], Vcc=[2.7 V, 5.5 V]", + "ATmega48P-20MU: MLF32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega48P-20MUR: VQFN32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega48P-20PU: PDIP28, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega48PV-10AU: TQFP32, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega48PV-10AUR: TQFP32, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega48PV-10MMU: MLF28, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega48PV-10MMUR: VQFN28, Fmax=N/A, T=[N/A, N/A], Vcc=[1.8 V, 5.5 V]", + "ATmega48PV-10MU: MLF32, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega48PV-10MUR: VQFN32, Fmax=N/A, T=[N/A, N/A], Vcc=[1.8 V, 5.5 V]", + "ATmega48PV-10PU: PDIP28, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 69; signature = 0x1e 0x92 0x0a; ; @@ -6834,6 +8134,23 @@ part parent "m48" part parent "m48" desc = "ATmega48PA"; id = "m48pa"; + variants = + "ATmega48PA: N/A, Fmax=N/A, T=[N/A, N/A], Vcc=[1.8 V, 5.5 V]", + "ATmega48PA-AN: TQFP32, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATmega48PA-ANR: TQFP32, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATmega48PA-AU: TQFP32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega48PA-AUR: QFP32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega48PA-CCU: UFBGA32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega48PA-MMH: QFN28, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega48PA-MMHR: QFN28, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega48PA-MMN: QFN28, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATmega48PA-MMNR: TQFP32, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATmega48PA-MN: QFN32, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATmega48PA-MNR: QFN32, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATmega48PA-MU: QFN32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega48PA-MUR: VQFN32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega48PA-PN: SPDIP28, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATmega48PA-PU: PDIP28, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 70; signature = 0x1e 0x92 0x0a; ; @@ -6845,6 +8162,15 @@ part parent "m48" part parent "m48" desc = "ATmega48PB"; id = "m48pb"; + variants = + "ATmega48PB-AN: TQFP32, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATmega48PB-ANR: TQFP32, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATmega48PB-AU: TQFP32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega48PB-AUR: TQFP32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega48PB-MN: VQFN32, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATmega48PB-MNR: VQFN32, Fmax=N/A, T=[N/A, N/A], Vcc=[N/A, N/A]", + "ATmega48PB-MU: VFQFN32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega48PB-MUR: VQFN32, Fmax=N/A, T=[N/A, N/A], Vcc=[N/A, N/A]"; mcuid = 71; n_interrupts = 27; chip_erase_delay = 10500; @@ -6858,6 +8184,18 @@ part parent "m48" part desc = "ATmega88"; id = "m88"; + variants = + "ATmega88: N/A, Fmax=20 MHz, T=[N/A, N/A], Vcc=[N/A, N/A]", + "ATmega88-20AU: TQFP32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega88-20AUR: TQFP32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega88-20MU: MLF32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega88-20MUR: MLF32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega88-20PU: PDIP28, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega88V-10AU: TQFP32, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega88V-10AUR: TQFP32, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega88V-10MU: MLF32, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega88V-10MUR: VQFN32, Fmax=10 MHz, T=[N/A, N/A], Vcc=[1.8 V, 5.5 V]", + "ATmega88V-10PU: PDIP28, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; prog_modes = PM_SPM | PM_ISP | PM_HVPP | PM_debugWIRE; mcuid = 79; n_interrupts = 26; @@ -6899,6 +8237,7 @@ part chiperasepolltimeout = 10; programfusepolltimeout = 5; programlockpolltimeout = 5; + idr = 0x31; spmcr = 0x57; eecr = 0x3f; ocdrev = 1; @@ -6910,8 +8249,7 @@ part page_size = 4; min_write_delay = 3600; max_write_delay = 3600; - readback = 0xff 0xff; - mode = 65; + mode = 0x41; delay = 20; blocksize = 4; readsize = 256; @@ -6928,9 +8266,8 @@ part num_pages = 128; min_write_delay = 4500; max_write_delay = 4500; - readback = 0xff 0xff; - mode = 65; - delay = 6; + mode = 0x41; + delay = 10; blocksize = 64; readsize = 256; read_lo = "0010.0000--0000.aaaa--aaaa.aaaa--oooo.oooo"; @@ -6942,6 +8279,7 @@ part memory "lfuse" size = 1; + initval = 0x62; min_write_delay = 4500; max_write_delay = 4500; read = "0101.0000--0000.0000--xxxx.xxxx--oooo.oooo"; @@ -6950,6 +8288,7 @@ part memory "hfuse" size = 1; + initval = 0xdf; min_write_delay = 4500; max_write_delay = 4500; read = "0101.1000--0000.1000--xxxx.xxxx--oooo.oooo"; @@ -6958,6 +8297,8 @@ part memory "efuse" size = 1; + initval = 0xf9; + bitmask = 0x07; min_write_delay = 4500; max_write_delay = 4500; read = "0101.0000--0000.1000--xxxx.xxxx--oooo.oooo"; @@ -6966,6 +8307,8 @@ part memory "lock" size = 1; + initval = 0xff; + bitmask = 0x3f; min_write_delay = 4500; max_write_delay = 4500; read = "0101.1000--0000.0000--xxxx.xxxx--oooo.oooo"; @@ -6990,6 +8333,16 @@ part part parent "m88" desc = "ATmega88A"; id = "m88a"; + variants = + "ATmega88A: N/A, Fmax=N/A, T=[N/A, N/A], Vcc=[1.8 V, 5.5 V]", + "ATmega88A-AU: TQFP32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega88A-AUR: TQFP32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega88A-CCU: UFBGA32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega88A-MMH: QFN28, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega88A-MMHR: VQFN28, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega88A-MU: QFN32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega88A-MUR: VQFN32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega88A-PU: PDIP28, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 80; ; @@ -7000,6 +8353,17 @@ part parent "m88" part parent "m88" desc = "ATmega88P"; id = "m88p"; + variants = + "ATmega88P-20AU: TQFP32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega88P-20AUR: TQFP32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega88P-20MU: MLF32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega88P-20MUR: VQFN32, Fmax=20 MHz, T=[N/A, N/A], Vcc=[2.7 V, 5.5 V]", + "ATmega88P-20PU: PDIP28, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega88PV-10AU: TQFP32, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega88PV-10AUR: TQFP32, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega88PV-10MU: MLF32, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega88PV-10MUR: VQFN32, Fmax=10 MHz, T=[N/A, N/A], Vcc=[1.8 V, 5.5 V]", + "ATmega88PV-10PU: PDIP28, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 81; signature = 0x1e 0x93 0x0f; ; @@ -7011,6 +8375,25 @@ part parent "m88" part parent "m88" desc = "ATmega88PA"; id = "m88pa"; + variants = + "ATmega88PA: N/A, Fmax=20 MHz, T=[N/A, N/A], Vcc=[1.8 V, 5.5 V]", + "ATmega88PA-15MZ: TQFP32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega88PA-AN: TQFP32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega88PA-ANR: TQFP32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega88PA-AU: TQFP32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega88PA-AUR: TQFP32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega88PA-CCU: UFBGA32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega88PA-MMH: QFN28, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega88PA-MMHR: VQFN28, Fmax=20 MHz, T=[N/A, N/A], Vcc=[1.8 V, 5.5 V]", + "ATmega88PA-MMN: VQFN28, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega88PA-MMNR: VQFN28, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATmega88PA-MMUR: PDIP28, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATmega88PA-MN: QFN32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega88PA-MNR: QFN32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega88PA-MU: QFN32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega88PA-MUR: VQFN32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega88PA-PN: PDIP28, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega88PA-PU: PDIP28, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 82; signature = 0x1e 0x93 0x0f; ; @@ -7022,6 +8405,15 @@ part parent "m88" part parent "m88" desc = "ATmega88PB"; id = "m88pb"; + variants = + "ATmega88PB-AN: TQFP32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega88PB-ANR: TQFP32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega88PB-AU: TQFP32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega88PB-AUR: TQFP32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega88PB-MN: VQFN32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega88PB-MNR: VQFN32, Fmax=N/A, T=[N/A, N/A], Vcc=[N/A, N/A]", + "ATmega88PB-MU: VFQFN32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega88PB-MUR: VQFN32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 83; n_interrupts = 27; chip_erase_delay = 10500; @@ -7035,6 +8427,23 @@ part parent "m88" part desc = "ATmega168"; id = "m168"; + variants = + "ATmega168: N/A, Fmax=20 MHz, T=[N/A, N/A], Vcc=[N/A, N/A]", + "ATmega168-15AD: TQFP32, Fmax=16 MHz, T=[-40 C, 150 C], Vcc=[2.7 V, 5.5 V]", + "ATmega168-20AU: TQFP32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega168-20AUR: TQFP32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega168-20MQ: MLF32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega168-20MQR: QFN32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega168-20MU: MLF32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega168-20MUR: MLF32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega168-20PU: PDIP28, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega168V-10AU: TQFP32, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega168V-10AUR: TQFP32, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega168V-10MQ: QFN32, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega168V-10MQR: QFN32, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega168V-10MU: MLF32, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega168V-10MUR: MLF32, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega168V-10PU: PDIP28, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; prog_modes = PM_SPM | PM_ISP | PM_HVPP | PM_debugWIRE; mcuid = 99; n_interrupts = 26; @@ -7076,6 +8485,7 @@ part chiperasepolltimeout = 10; programfusepolltimeout = 5; programlockpolltimeout = 5; + idr = 0x31; spmcr = 0x57; eecr = 0x3f; ocdrev = 1; @@ -7087,8 +8497,7 @@ part page_size = 4; min_write_delay = 3600; max_write_delay = 3600; - readback = 0xff 0xff; - mode = 65; + mode = 0x41; delay = 20; blocksize = 4; readsize = 256; @@ -7105,9 +8514,8 @@ part num_pages = 128; min_write_delay = 4500; max_write_delay = 4500; - readback = 0xff 0xff; - mode = 65; - delay = 6; + mode = 0x41; + delay = 10; blocksize = 128; readsize = 256; read_lo = "0010.0000--000a.aaaa--aaaa.aaaa--oooo.oooo"; @@ -7119,6 +8527,7 @@ part memory "lfuse" size = 1; + initval = 0x62; min_write_delay = 4500; max_write_delay = 4500; read = "0101.0000--0000.0000--xxxx.xxxx--oooo.oooo"; @@ -7127,6 +8536,7 @@ part memory "hfuse" size = 1; + initval = 0xdf; min_write_delay = 4500; max_write_delay = 4500; read = "0101.1000--0000.1000--xxxx.xxxx--oooo.oooo"; @@ -7135,6 +8545,8 @@ part memory "efuse" size = 1; + initval = 0xf9; + bitmask = 0x07; min_write_delay = 4500; max_write_delay = 4500; read = "0101.0000--0000.1000--xxxx.xxxx--oooo.oooo"; @@ -7143,6 +8555,8 @@ part memory "lock" size = 1; + initval = 0xff; + bitmask = 0x3f; min_write_delay = 4500; max_write_delay = 4500; read = "0101.1000--0000.0000--xxxx.xxxx--oooo.oooo"; @@ -7167,6 +8581,16 @@ part part parent "m168" desc = "ATmega168A"; id = "m168a"; + variants = + "ATmega168A: N/A, Fmax=20 MHz, T=[N/A, N/A], Vcc=[1.8 V, 5.5 V]", + "ATmega168A-AU: TQFP32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega168A-AUR: TQFP32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega168A-CCU: UFBGA32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega168A-MMH: VQFN28, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega168A-MMHR: VQFN28, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega168A-MU: QFN32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega168A-MUR: QFN32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega168A-PU: PDIP28, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 100; ; @@ -7177,6 +8601,22 @@ part parent "m168" part parent "m168" desc = "ATmega168P"; id = "m168p"; + variants = + "ATmega168P-20AN: TQFP32, Fmax=20 MHz, T=[N/A, N/A], Vcc=[2.7 V, 5.5 V]", + "ATmega168P-20ANR: TQFP32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega168P-20AU: TQFP32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega168P-20AUR: TQFP32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega168P-20MQ: MLF32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega168P-20MQR: QFN32, Fmax=20 MHz, T=[N/A, N/A], Vcc=[2.7 V, 5.5 V]", + "ATmega168P-20MU: MLF32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega168P-20MUR: MLF32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega168P-20PU: PDIP28, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega168PV-10AN: TQFP32, Fmax=10 MHz, T=[N/A, N/A], Vcc=[1.8 V, 5.5 V]", + "ATmega168PV-10AU: TQFP32, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega168PV-10AUR: TQFP32, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega168PV-10MU: MLF32, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega168PV-10MUR: MLF32, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega168PV-10PU: PDIP28, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 101; signature = 0x1e 0x94 0x0b; ; @@ -7188,6 +8628,21 @@ part parent "m168" part parent "m168" desc = "ATmega168PA"; id = "m168pa"; + variants = + "ATmega168PA: N/A, Fmax=20 MHz, T=[N/A, N/A], Vcc=[1.8 V, 5.5 V]", + "ATmega168PA-AN: TQFP32, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATmega168PA-ANR: TQFP32, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATmega168PA-AU: TQFP32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega168PA-AUR: TQFP32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega168PA-CCU: UFBGA32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega168PA-MMH: MLF28, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega168PA-MMHR: QFN32, Fmax=N/A, T=[N/A, N/A], Vcc=[1.8 V, 5.5 V]", + "ATmega168PA-MN: QFN32, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATmega168PA-MNR: QFN32, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATmega168PA-MU: VQFN32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega168PA-MUR: QFN32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega168PA-PN: PDIP28, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATmega168PA-PU: PDIP28, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 102; signature = 0x1e 0x94 0x0b; ; @@ -7199,6 +8654,14 @@ part parent "m168" part parent "m168" desc = "ATmega168PB"; id = "m168pb"; + variants = + "ATmega168PB-AN: TQFP32, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATmega168PB-ANR: TQFP32, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATmega168PB-AU: TQFP32, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATmega168PB-AUR: TQFP32, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATmega168PB-MN: VQFN32, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATmega168PB-MU: VFQFN32, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATmega168PB-MUR: VQFN32, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 103; n_interrupts = 27; chip_erase_delay = 10500; @@ -7212,6 +8675,12 @@ part parent "m168" part desc = "ATtiny828"; id = "t828"; + variants = + "ATtiny828: N/A, Fmax=N/A, T=[N/A, N/A], Vcc=[1.62 V, 5.5 V]", + "ATtiny828-AU: TQFP32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.7 V, 5.5 V]", + "ATtiny828-AUR: TQFP32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.7 V, 5.5 V]", + "ATtiny828-MU: QFN32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.7 V, 5.5 V]", + "ATtiny828-MUR: VQFN32, Fmax=N/A, T=[N/A, N/A], Vcc=[N/A, N/A]"; prog_modes = PM_SPM | PM_ISP | PM_HVPP | PM_debugWIRE; mcuid = 35; n_interrupts = 26; @@ -7253,8 +8722,10 @@ part chiperasepolltimeout = 10; programfusepolltimeout = 5; programlockpolltimeout = 5; + idr = 0x31; spmcr = 0x57; eecr = 0x3f; + ocdrev = 1; chip_erase = "1010.1100--100x.xxxx--xxxx.xxxx--xxxx.xxxx"; pgm_enable = "1010.1100--0101.0011--xxxx.xxxx--xxxx.xxxx"; @@ -7263,9 +8734,8 @@ part page_size = 4; min_write_delay = 3600; max_write_delay = 3600; - readback = 0xff 0xff; - mode = 65; - delay = 5; + mode = 0x41; + delay = 20; blocksize = 4; readsize = 256; read = "1010.0000--000x.xxxa--aaaa.aaaa--oooo.oooo"; @@ -7281,10 +8751,9 @@ part num_pages = 128; min_write_delay = 4500; max_write_delay = 4500; - readback = 0xff 0xff; - mode = 65; - delay = 6; - blocksize = 128; + mode = 0x41; + delay = 10; + blocksize = 64; readsize = 256; read_lo = "0010.0000--0000.aaaa--aaaa.aaaa--oooo.oooo"; read_hi = "0010.1000--0000.aaaa--aaaa.aaaa--oooo.oooo"; @@ -7295,6 +8764,8 @@ part memory "lfuse" size = 1; + initval = 0x6e; + bitmask = 0xf3; min_write_delay = 4500; max_write_delay = 4500; read = "0101.0000--0000.0000--xxxx.xxxx--oooo.oooo"; @@ -7303,6 +8774,7 @@ part memory "hfuse" size = 1; + initval = 0xdf; min_write_delay = 4500; max_write_delay = 4500; read = "0101.1000--0000.1000--xxxx.xxxx--oooo.oooo"; @@ -7311,14 +8783,18 @@ part memory "efuse" size = 1; + initval = 0xff; + bitmask = 0xf7; min_write_delay = 4500; max_write_delay = 4500; read = "0101.0000--0000.1000--xxxx.xxxx--oooo.oooo"; - write = "1010.1100--1010.0100--xxxx.xxxx--111i.iiii"; + write = "1010.1100--1010.0100--xxxx.xxxx--iiii.1iii"; ; memory "lock" size = 1; + initval = 0xff; + bitmask = 0x3f; min_write_delay = 4500; max_write_delay = 4500; read = "0101.1000--0000.0000--xxxx.xxxx--oooo.oooo"; @@ -7343,6 +8819,9 @@ part part parent "t828" desc = "ATtiny828R"; id = "t828r"; + variants = + "ATtiny828R-AU: TQFP32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.7 V, 5.5 V]", + "ATtiny828R-AUR: TQFP32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.7 V, 5.5 V]"; mcuid = 36; ; @@ -7353,6 +8832,14 @@ part parent "t828" part desc = "ATtiny87"; id = "t87"; + variants = + "ATtiny87: N/A, Fmax=N/A, T=[N/A, N/A], Vcc=[1.8 V, 5.5 V]", + "ATtiny87-MU: VQFN32, Fmax=16 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny87-MUR: VQFN32, Fmax=16 MHz, T=[N/A, N/A], Vcc=[1.8 V, 5.5 V]", + "ATtiny87-SU: SOIC20, Fmax=16 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny87-SUR: SOIC20, Fmax=16 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny87-XU: TSSOP20, Fmax=16 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny87-XUR: TSSOP20, Fmax=16 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]"; prog_modes = PM_SPM | PM_ISP | PM_HVPP | PM_debugWIRE; mcuid = 27; n_interrupts = 20; @@ -7361,6 +8848,8 @@ part # Try the AT90S2313 devcode: avr910_devcode = 0x20; chip_erase_delay = 15000; + pagel = 0xb3; + bs2 = 0xb2; signature = 0x1e 0x93 0x87; reset = io; timeout = 200; @@ -7384,14 +8873,17 @@ part hventerstabdelay = 100; latchcycles = 5; togglevtg = 1; - poweroffdelay = 20; + poweroffdelay = 15; resetdelayms = 1; hvleavestabdelay = 15; + resetdelay = 15; chiperasepolltimeout = 10; programfusepolltimeout = 5; programlockpolltimeout = 5; + idr = 0x31; spmcr = 0x57; eecr = 0x3f; + ocdrev = 1; chip_erase = "1010.1100--100x.xxxx--xxxx.xxxx--xxxx.xxxx"; pgm_enable = "1010.1100--0101.0011--xxxx.xxxx--xxxx.xxxx"; @@ -7400,8 +8892,7 @@ part page_size = 4; min_write_delay = 4000; max_write_delay = 4500; - readback = 0xff 0xff; - mode = 65; + mode = 0x41; delay = 10; blocksize = 4; readsize = 256; @@ -7418,8 +8909,7 @@ part num_pages = 64; min_write_delay = 4500; max_write_delay = 4500; - readback = 0xff 0xff; - mode = 65; + mode = 0x41; delay = 10; blocksize = 64; readsize = 256; @@ -7432,6 +8922,7 @@ part memory "lfuse" size = 1; + initval = 0x62; min_write_delay = 9000; max_write_delay = 9000; read = "0101.0000--0000.0000--xxxx.xxxx--oooo.oooo"; @@ -7440,6 +8931,7 @@ part memory "hfuse" size = 1; + initval = 0xdf; min_write_delay = 9000; max_write_delay = 9000; read = "0101.1000--0000.1000--xxxx.xxxx--oooo.oooo"; @@ -7448,6 +8940,8 @@ part memory "efuse" size = 1; + initval = 0xff; + bitmask = 0x01; min_write_delay = 9000; max_write_delay = 9000; read = "0101.0000--0000.1000--xxxx.xxxx--oooo.oooo"; @@ -7456,12 +8950,15 @@ part memory "lock" size = 1; + initval = 0xff; + bitmask = 0x03; min_write_delay = 9000; max_write_delay = 9000; read = "0101.1000--0000.0000--0000.0000--oooo.oooo"; write = "1010.1100--111x.xxxx--xxxx.xxxx--xxxx.xxii"; ; -# ATtiny87 has Signature Bytes: 0x1E 0x93 0x87. + + # ATtiny87 has signature bytes 0x1E 0x93 0x87 memory "signature" size = 3; read = "0011.0000--000x.xxxx--xxxx.xxaa--oooo.oooo"; @@ -7480,6 +8977,17 @@ part part desc = "ATtiny167"; id = "t167"; + variants = + "ATtiny167: N/A, Fmax=N/A, T=[N/A, N/A], Vcc=[1.8 V, 5.5 V]", + "ATtiny167-A15XD: TSSOP20, Fmax=16 MHz, T=[-40 C, 150 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny167-MMU: WQFN20, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny167-MMUR: WQFN20, Fmax=N/A, T=[N/A, N/A], Vcc=[N/A, N/A]", + "ATtiny167-MU: VQFN32, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny167-MUR: VQFN32, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny167-SU: SOIC20, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny167-SUR: SOIC20, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny167-XU: TSSOP20, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny167-XUR: TSSOP20, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; prog_modes = PM_SPM | PM_ISP | PM_HVPP | PM_debugWIRE; mcuid = 29; n_interrupts = 20; @@ -7489,6 +8997,8 @@ part # Try the AT90S2313 devcode: avr910_devcode = 0x20; chip_erase_delay = 15000; + pagel = 0xb3; + bs2 = 0xb2; signature = 0x1e 0x94 0x87; reset = io; timeout = 200; @@ -7512,14 +9022,17 @@ part hventerstabdelay = 100; latchcycles = 5; togglevtg = 1; - poweroffdelay = 20; + poweroffdelay = 15; resetdelayms = 1; hvleavestabdelay = 15; + resetdelay = 15; chiperasepolltimeout = 10; programfusepolltimeout = 5; programlockpolltimeout = 5; + idr = 0x31; spmcr = 0x57; eecr = 0x3f; + ocdrev = 1; chip_erase = "1010.1100--100x.xxxx--xxxx.xxxx--xxxx.xxxx"; pgm_enable = "1010.1100--0101.0011--xxxx.xxxx--xxxx.xxxx"; @@ -7528,8 +9041,7 @@ part page_size = 4; min_write_delay = 4000; max_write_delay = 4500; - readback = 0xff 0xff; - mode = 65; + mode = 0x41; delay = 10; blocksize = 4; readsize = 256; @@ -7546,8 +9058,7 @@ part num_pages = 128; min_write_delay = 4500; max_write_delay = 4500; - readback = 0xff 0xff; - mode = 65; + mode = 0x41; delay = 10; blocksize = 64; readsize = 256; @@ -7560,6 +9071,7 @@ part memory "lfuse" size = 1; + initval = 0x62; min_write_delay = 9000; max_write_delay = 9000; read = "0101.0000--0000.0000--xxxx.xxxx--oooo.oooo"; @@ -7568,6 +9080,7 @@ part memory "hfuse" size = 1; + initval = 0xdf; min_write_delay = 9000; max_write_delay = 9000; read = "0101.1000--0000.1000--xxxx.xxxx--oooo.oooo"; @@ -7576,6 +9089,8 @@ part memory "efuse" size = 1; + initval = 0xff; + bitmask = 0x01; min_write_delay = 9000; max_write_delay = 9000; read = "0101.0000--0000.1000--xxxx.xxxx--oooo.oooo"; @@ -7584,12 +9099,15 @@ part memory "lock" size = 1; + initval = 0xff; + bitmask = 0x03; min_write_delay = 9000; max_write_delay = 9000; read = "0101.1000--0000.0000--0000.0000--oooo.oooo"; write = "1010.1100--111x.xxxx--xxxx.xxxx--xxxx.xxii"; ; -# ATtiny167 has Signature Bytes: 0x1E 0x94 0x87. + + # ATtiny167 has signature bytes 0x1E 0x94 0x87 memory "signature" size = 3; read = "0011.0000--000x.xxxx--xxxx.xxaa--oooo.oooo"; @@ -7608,6 +9126,17 @@ part part desc = "ATtiny48"; id = "t48"; + variants = + "ATtiny48-AU: TQFP32, Fmax=12 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny48-AUR: TQFP32, Fmax=12 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny48-CCU: UFBGA32, Fmax=12 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny48-MMH: VQFN28, Fmax=12 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny48-MMHR: VQFN28, Fmax=12 MHz, T=[N/A, N/A], Vcc=[1.8 V, 5.5 V]", + "ATtiny48-MMU: MLF28, Fmax=12 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny48-MMUR: VQFN28, Fmax=12 MHz, T=[N/A, N/A], Vcc=[1.8 V, 5.5 V]", + "ATtiny48-MU: MLF32, Fmax=12 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny48-MUR: VQFN32, Fmax=12 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny48-PU: PDIP28, Fmax=12 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; prog_modes = PM_SPM | PM_ISP | PM_HVPP | PM_debugWIRE; mcuid = 23; n_interrupts = 20; @@ -7647,6 +9176,7 @@ part chiperasepolltimeout = 10; programfusepolltimeout = 5; programlockpolltimeout = 5; + idr = 0x31; spmcr = 0x57; eecr = 0x3f; ocdrev = 1; @@ -7658,11 +9188,10 @@ part page_size = 4; min_write_delay = 3600; max_write_delay = 3600; - readback = 0xff 0xff; - mode = 65; + mode = 0x41; delay = 20; blocksize = 4; - readsize = 64; + readsize = 256; read = "1010.0000--000x.xxxx--xaaa.aaaa--oooo.oooo"; write = "1100.0000--000x.xxxx--xaaa.aaaa--iiii.iiii"; loadpage_lo = "1100.0001--0000.0000--0000.00aa--iiii.iiii"; @@ -7676,9 +9205,8 @@ part num_pages = 64; min_write_delay = 4500; max_write_delay = 4500; - readback = 0xff 0xff; - mode = 65; - delay = 6; + mode = 0x41; + delay = 10; blocksize = 64; readsize = 256; read_lo = "0010.0000--0000.aaaa--aaaa.aaaa--oooo.oooo"; @@ -7690,6 +9218,7 @@ part memory "lfuse" size = 1; + initval = 0x6e; min_write_delay = 4500; max_write_delay = 4500; read = "0101.0000--0000.0000--xxxx.xxxx--oooo.oooo"; @@ -7698,6 +9227,7 @@ part memory "hfuse" size = 1; + initval = 0xdf; min_write_delay = 4500; max_write_delay = 4500; read = "0101.1000--0000.1000--xxxx.xxxx--oooo.oooo"; @@ -7706,6 +9236,8 @@ part memory "efuse" size = 1; + initval = 0xff; + bitmask = 0x01; min_write_delay = 4500; max_write_delay = 4500; read = "0101.0000--0000.1000--xxxx.xxxx--oooo.oooo"; @@ -7714,6 +9246,8 @@ part memory "lock" size = 1; + initval = 0xff; + bitmask = 0x03; min_write_delay = 4500; max_write_delay = 4500; read = "0101.1000--0000.0000--xxxx.xxxx--oooo.oooo"; @@ -7738,6 +9272,17 @@ part part desc = "ATtiny88"; id = "t88"; + variants = + "ATtiny88-AU: TQFP32, Fmax=16 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny88-AUR: TQFP32, Fmax=12 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny88-CCU: UFBGA32, Fmax=12 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny88-MMH: VQFN28, Fmax=12 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny88-MMHR: VQFN28, Fmax=12 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny88-MMU: QFN28, Fmax=12 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny88-MMUR: QFN28, Fmax=12 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny88-MU: QFN32, Fmax=12 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny88-MUR: VQFN32, Fmax=12 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny88-PU: PDIP28, Fmax=12 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; prog_modes = PM_SPM | PM_ISP | PM_HVPP | PM_debugWIRE; mcuid = 28; n_interrupts = 20; @@ -7777,6 +9322,7 @@ part chiperasepolltimeout = 10; programfusepolltimeout = 5; programlockpolltimeout = 5; + idr = 0x31; spmcr = 0x57; eecr = 0x3f; ocdrev = 1; @@ -7788,11 +9334,10 @@ part page_size = 4; min_write_delay = 3600; max_write_delay = 3600; - readback = 0xff 0xff; - mode = 65; + mode = 0x41; delay = 20; blocksize = 4; - readsize = 64; + readsize = 256; read = "1010.0000--000x.xxxx--xaaa.aaaa--oooo.oooo"; write = "1100.0000--000x.xxxx--xaaa.aaaa--iiii.iiii"; loadpage_lo = "1100.0001--0000.0000--0000.00aa--iiii.iiii"; @@ -7806,9 +9351,8 @@ part num_pages = 128; min_write_delay = 4500; max_write_delay = 4500; - readback = 0xff 0xff; - mode = 65; - delay = 6; + mode = 0x41; + delay = 10; blocksize = 64; readsize = 256; read_lo = "0010.0000--0000.aaaa--aaaa.aaaa--oooo.oooo"; @@ -7820,6 +9364,7 @@ part memory "lfuse" size = 1; + initval = 0x6e; min_write_delay = 4500; max_write_delay = 4500; read = "0101.0000--0000.0000--xxxx.xxxx--oooo.oooo"; @@ -7828,6 +9373,7 @@ part memory "hfuse" size = 1; + initval = 0xdf; min_write_delay = 4500; max_write_delay = 4500; read = "0101.1000--0000.1000--xxxx.xxxx--oooo.oooo"; @@ -7836,6 +9382,8 @@ part memory "efuse" size = 1; + initval = 0xff; + bitmask = 0x01; min_write_delay = 4500; max_write_delay = 4500; read = "0101.0000--0000.1000--xxxx.xxxx--oooo.oooo"; @@ -7844,6 +9392,8 @@ part memory "lock" size = 1; + initval = 0xff; + bitmask = 0x03; min_write_delay = 4500; max_write_delay = 4500; read = "0101.1000--0000.0000--xxxx.xxxx--oooo.oooo"; @@ -7868,6 +9418,14 @@ part part desc = "ATmega328"; id = "m328"; + variants = + "ATmega328-AU: TQFP32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega328-AUR: TQFP32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega328-MMH: MLF28, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega328-MMHR: MLF28, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega328-MU: MLF32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega328-MUR: MLF32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega328-PU: PDIP28, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; prog_modes = PM_SPM | PM_ISP | PM_HVPP | PM_debugWIRE; mcuid = 118; n_interrupts = 26; @@ -7909,6 +9467,1055 @@ part chiperasepolltimeout = 10; programfusepolltimeout = 5; programlockpolltimeout = 5; + idr = 0x31; + spmcr = 0x57; + eecr = 0x3f; + ocdrev = 1; + chip_erase = "1010.1100--100x.xxxx--xxxx.xxxx--xxxx.xxxx"; + pgm_enable = "1010.1100--0101.0011--xxxx.xxxx--xxxx.xxxx"; + + memory "eeprom" + size = 1024; + page_size = 4; + min_write_delay = 3600; + max_write_delay = 3600; + mode = 0x41; + delay = 20; + blocksize = 4; + readsize = 256; + read = "1010.0000--000x.xxaa--aaaa.aaaa--oooo.oooo"; + write = "1100.0000--000x.xxaa--aaaa.aaaa--iiii.iiii"; + loadpage_lo = "1100.0001--0000.0000--0000.00aa--iiii.iiii"; + writepage = "1100.0010--00xx.xxaa--aaaa.aa00--xxxx.xxxx"; + ; + + memory "flash" + paged = yes; + size = 0x8000; + page_size = 128; + num_pages = 256; + min_write_delay = 4500; + max_write_delay = 4500; + mode = 0x41; + delay = 10; + blocksize = 128; + readsize = 256; + read_lo = "0010.0000--00aa.aaaa--aaaa.aaaa--oooo.oooo"; + read_hi = "0010.1000--00aa.aaaa--aaaa.aaaa--oooo.oooo"; + loadpage_lo = "0100.0000--000x.xxxx--xxaa.aaaa--iiii.iiii"; + loadpage_hi = "0100.1000--000x.xxxx--xxaa.aaaa--iiii.iiii"; + writepage = "0100.1100--00aa.aaaa--aaxx.xxxx--xxxx.xxxx"; + ; + + memory "lfuse" + size = 1; + initval = 0x62; + min_write_delay = 4500; + max_write_delay = 4500; + read = "0101.0000--0000.0000--xxxx.xxxx--oooo.oooo"; + write = "1010.1100--1010.0000--xxxx.xxxx--iiii.iiii"; + ; + + memory "hfuse" + size = 1; + initval = 0xd9; + min_write_delay = 4500; + max_write_delay = 4500; + read = "0101.1000--0000.1000--xxxx.xxxx--oooo.oooo"; + write = "1010.1100--1010.1000--xxxx.xxxx--iiii.iiii"; + ; + + memory "efuse" + size = 1; + initval = 0xff; + bitmask = 0x07; + min_write_delay = 4500; + max_write_delay = 4500; + read = "0101.0000--0000.1000--xxxx.xxxx--oooo.oooo"; + write = "1010.1100--1010.0100--xxxx.xxxx--xxxx.xiii"; + ; + + memory "lock" + size = 1; + initval = 0xff; + bitmask = 0x3f; + min_write_delay = 4500; + max_write_delay = 4500; + read = "0101.1000--0000.0000--xxxx.xxxx--oooo.oooo"; + write = "1010.1100--111x.xxxx--xxxx.xxxx--11ii.iiii"; + ; + + memory "signature" + size = 3; + read = "0011.0000--000x.xxxx--xxxx.xxaa--oooo.oooo"; + ; + + memory "calibration" + size = 1; + read = "0011.1000--000x.xxxx--0000.0000--oooo.oooo"; + ; +; + +#------------------------------------------------------------ +# ATmega328P +#------------------------------------------------------------ + +part parent "m328" + desc = "ATmega328P"; + id = "m328p"; + variants = + "ATmega328P: N/A, Fmax=20 MHz, T=[-40 C, N/A], Vcc=[1.8 V, 5.5 V]", + "ATmega328P-15MZ: MLF32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega328P-AN: TQFP32, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATmega328P-ANR: TQFP32, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATmega328P-AU: TQFP32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega328P-AUR: TQFP32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega328P-MMH: MLF28, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega328P-MMHR: MLF28, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega328P-MN: QFN32, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATmega328P-MNR: MLF32, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATmega328P-MU: MLF32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega328P-MUR: MLF32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega328P-PN: PDIP28, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATmega328P-PU: PDIP28, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; + mcuid = 119; + signature = 0x1e 0x95 0x0f; +; + +#------------------------------------------------------------ +# ATmega328PB +#------------------------------------------------------------ + +part parent "m328" + desc = "ATmega328PB"; + id = "m328pb"; + variants = + "ATmega328PB-AN: TQFP32, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATmega328PB-ANR: TQFP32, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATmega328PB-AU: TQFP32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega328PB-AUR: TQFP32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega328PB-MN: QFN32, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATmega328PB-MNR: QFN32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega328PB-MU: QFN32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega328PB-MUR: QFN32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; + mcuid = 120; + n_interrupts = 45; + chip_erase_delay = 10500; + signature = 0x1e 0x95 0x16; + + memory "efuse" + initval = 0xf7; + bitmask = 0x0f; + write = "1010.1100--1010.0100--xxxx.xxxx--xxxx.iiii"; + ; +; + +#------------------------------------------------------------ +# ATmega64M1 +#------------------------------------------------------------ + +part + desc = "ATmega64M1"; + id = "m64m1"; + variants = + "ATmega64M1-15MD: VQFN32, Fmax=16 MHz, T=[N/A, N/A], Vcc=[2.7 V, 5.5 V]", + "ATmega64M1-AU: TQFP32, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega64M1-MU: QFN32, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]"; + prog_modes = PM_SPM | PM_ISP | PM_HVPP | PM_debugWIRE; + mcuid = 76; + n_interrupts = 31; + n_boot_sections = 4; + boot_section_size = 1024; + chip_erase_delay = 9000; + pagel = 0xd7; + bs2 = 0xe2; + signature = 0x1e 0x96 0x84; + reset = io; + timeout = 200; + stabdelay = 100; + cmdexedelay = 25; + synchloops = 32; + pollindex = 3; + pollvalue = 0x53; + predelay = 1; + postdelay = 1; + pollmethod = 1; + pp_controlstack = + 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; + flash_instr = 0xb6, 0x01, 0x11; + eeprom_instr = + 0xbd, 0xf2, 0xbd, 0xe1, 0xbb, 0xcf, 0xb4, 0x00, + 0xbe, 0x01, 0xb6, 0x01, 0xbc, 0x00, 0xbb, 0xbf, + 0x99, 0xf9, 0xbb, 0xaf; + hventerstabdelay = 100; + latchcycles = 5; + togglevtg = 1; + poweroffdelay = 15; + resetdelayms = 1; + hvleavestabdelay = 15; + resetdelay = 15; + chiperasepolltimeout = 10; + programfusepolltimeout = 5; + programlockpolltimeout = 5; + idr = 0x31; + spmcr = 0x57; + eecr = 0x3f; + ocdrev = 1; + chip_erase = "1010.1100--100x.xxxx--xxxx.xxxx--xxxx.xxxx"; + pgm_enable = "1010.1100--0101.0011--xxxx.xxxx--xxxx.xxxx"; + + memory "eeprom" + size = 2048; + page_size = 8; + min_write_delay = 3600; + max_write_delay = 3600; + mode = 0x41; + delay = 10; + blocksize = 8; + readsize = 256; + read = "1010.0000--0000.0aaa--aaaa.aaaa--oooo.oooo"; + write = "1100.0000--0000.0aaa--aaaa.aaaa--iiii.iiii"; + loadpage_lo = "1100.0001--0000.0000--0000.0aaa--iiii.iiii"; + writepage = "1100.0010--0000.0aaa--aaaa.a000--xxxx.xxxx"; + ; + + memory "flash" + paged = yes; + size = 0x10000; + page_size = 256; + num_pages = 256; + min_write_delay = 4500; + max_write_delay = 4500; + mode = 0x41; + delay = 10; + blocksize = 256; + readsize = 256; + read_lo = "0010.0000--0aaa.aaaa--aaaa.aaaa--oooo.oooo"; + read_hi = "0010.1000--0aaa.aaaa--aaaa.aaaa--oooo.oooo"; + loadpage_lo = "0100.0000--0000.0000--0aaa.aaaa--iiii.iiii"; + loadpage_hi = "0100.1000--0000.0000--0aaa.aaaa--iiii.iiii"; + writepage = "0100.1100--0aaa.aaaa--a000.0000--xxxx.xxxx"; + ; + + memory "lfuse" + size = 1; + initval = 0x62; + min_write_delay = 4500; + max_write_delay = 4500; + read = "0101.0000--0000.0000--xxxx.xxxx--oooo.oooo"; + write = "1010.1100--1010.0000--xxxx.xxxx--iiii.iiii"; + ; + + memory "hfuse" + size = 1; + initval = 0xd9; + min_write_delay = 4500; + max_write_delay = 4500; + read = "0101.1000--0000.1000--xxxx.xxxx--oooo.oooo"; + write = "1010.1100--1010.1000--xxxx.xxxx--iiii.iiii"; + ; + + memory "efuse" + size = 1; + initval = 0xff; + bitmask = 0x3f; + min_write_delay = 4500; + max_write_delay = 4500; + read = "0101.0000--0000.1000--xxxx.xxxx--11oo.oooo"; + write = "1010.1100--1010.0100--xxxx.xxxx--11ii.iiii"; + ; + + memory "lock" + size = 1; + initval = 0xff; + bitmask = 0x3f; + min_write_delay = 4500; + max_write_delay = 4500; + read = "0101.1000--0000.0000--xxxx.xxxx--11oo.oooo"; + write = "1010.1100--111x.xxxx--xxxx.xxxx--11ii.iiii"; + ; + + memory "signature" + size = 3; + read = "0011.0000--000x.xxxx--xxxx.xxaa--oooo.oooo"; + ; + + memory "calibration" + size = 1; + read = "0011.0000--000x.xxxx--xxxx.xxaa--oooo.oooo"; + ; +; + +#------------------------------------------------------------ +# ATmega32M1 +#------------------------------------------------------------ + +part parent "m64m1" + desc = "ATmega32M1"; + id = "m32m1"; + variants = + "ATmega32M1: N/A, Fmax=16 MHz, T=[N/A, N/A], Vcc=[2.7 V, 5.5 V]", + "ATmega32M1-AU: TQFP32, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega32M1-AUR: TQFP32, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega32M1-MU: QFN32, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]"; + mcuid = 63; + boot_section_size = 512; + signature = 0x1e 0x95 0x84; + + memory "eeprom" + size = 1024; + page_size = 4; + blocksize = 4; + read = "1010.0000--0000.00aa--aaaa.aaaa--oooo.oooo"; + write = "1100.0000--0000.00aa--aaaa.aaaa--iiii.iiii"; + loadpage_lo = "1100.0001--0000.0000--0000.00aa--iiii.iiii"; + writepage = "1100.0010--0000.00aa--aaaa.aa00--xxxx.xxxx"; + ; + + memory "flash" + size = 0x8000; + page_size = 128; + blocksize = 128; + read_lo = "0010.0000--00aa.aaaa--aaaa.aaaa--oooo.oooo"; + read_hi = "0010.1000--00aa.aaaa--aaaa.aaaa--oooo.oooo"; + loadpage_lo = "0100.0000--0000.0000--00aa.aaaa--iiii.iiii"; + loadpage_hi = "0100.1000--0000.0000--00aa.aaaa--iiii.iiii"; + writepage = "0100.1100--00aa.aaaa--aa00.0000--xxxx.xxxx"; + ; +; + +#------------------------------------------------------------ +# ATmega16M1 +#------------------------------------------------------------ + +part parent "m32m1" + desc = "ATmega16M1"; + id = "m16m1"; + variants = + "ATmega16M1-AU: TQFP32, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega16M1-MU: QFN32, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]"; + mcuid = 54; + signature = 0x1e 0x94 0x84; + + memory "eeprom" + size = 512; + read = "1010.0000--0000.000a--aaaa.aaaa--oooo.oooo"; + write = "1100.0000--0000.000a--aaaa.aaaa--iiii.iiii"; + writepage = "1100.0010--0000.000a--aaaa.aa00--xxxx.xxxx"; + ; + + memory "flash" + size = 0x4000; + num_pages = 128; + read_lo = "0010.0000--000a.aaaa--aaaa.aaaa--oooo.oooo"; + read_hi = "0010.1000--000a.aaaa--aaaa.aaaa--oooo.oooo"; + writepage = "0100.1100--000a.aaaa--aa00.0000--xxxx.xxxx"; + ; +; + +#------------------------------------------------------------ +# ATmega32C1 +#------------------------------------------------------------ + +part parent "m32m1" + desc = "ATmega32C1"; + id = "m32c1"; + variants = + "ATmega32C1-15AD: TQFP32, Fmax=16 MHz, T=[-40 C, 150 C], Vcc=[2.7 V, 5.5 V]", + "ATmega32C1-15AZ: TQFP32, Fmax=16 MHz, T=[-40 C, 125 C], Vcc=[2.7 V, 5.5 V]", + "ATmega32C1-15MD: VQFN32, Fmax=16 MHz, T=[-40 C, 150 C], Vcc=[2.7 V, 5.5 V]", + "ATmega32C1-15MZ: VQFN32, Fmax=16 MHz, T=[-40 C, 125 C], Vcc=[2.7 V, 5.5 V]", + "ATmega32C1-AU: TQFP32, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega32C1-ESAD: TQFP32, Fmax=16 MHz, T=[-40 C, 150 C], Vcc=[2.7 V, 5.5 V]", + "ATmega32C1-ESMD: VQFN32, Fmax=16 MHz, T=[-40 C, 150 C], Vcc=[2.7 V, 5.5 V]", + "ATmega32C1-MU: QFN32, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]"; + mcuid = 62; + signature = 0x1e 0x95 0x86; +; + +#------------------------------------------------------------ +# ATmega64C1 +#------------------------------------------------------------ + +part parent "m64m1" + desc = "ATmega64C1"; + id = "m64c1"; + variants = + "ATmega64C1-15AD: TQFP32, Fmax=16 MHz, T=[-40 C, 150 C], Vcc=[2.7 V, 5.5 V]", + "ATmega64C1-15AZ: TQFP32, Fmax=16 MHz, T=[-40 C, 125 C], Vcc=[2.7 V, 5.5 V]", + "ATmega64C1-15MD: VQFN32, Fmax=16 MHz, T=[-40 C, 150 C], Vcc=[2.7 V, 5.5 V]", + "ATmega64C1-15MZ: VQFN32, Fmax=16 MHz, T=[-40 C, 125 C], Vcc=[2.7 V, 5.5 V]", + "ATmega64C1-AU: TQFP32, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega64C1-ESAZ: TQFP32, Fmax=16 MHz, T=[-40 C, 125 C], Vcc=[2.7 V, 5.5 V]", + "ATmega64C1-ESMZ: VQFN32, Fmax=16 MHz, T=[-40 C, 125 C], Vcc=[2.7 V, 5.5 V]", + "ATmega64C1-MU: QFN32, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]"; + mcuid = 75; + signature = 0x1e 0x96 0x86; +; + +#------------------------------------------------------------ +# ATA5505 +#------------------------------------------------------------ + +part parent "t167" + desc = "ATA5505"; + id = "ata5505"; + variants = + "ATA5505: N/A, Fmax=N/A, T=[N/A, N/A], Vcc=[2.7 V, 5.5 V]", + "ATA5505-P3QW: VFQFN38, Fmax=N/A, T=[-40 C, 105 C], Vcc=[2.7 V, 5.5 V]"; + mcuid = 198; + chip_erase_delay = 4000; + reset = dedicated; + + memory "eeprom" + max_write_delay = 4000; + ; + + memory "lfuse" + min_write_delay = 4500; + max_write_delay = 4500; + ; + + memory "hfuse" + min_write_delay = 4500; + max_write_delay = 4500; + ; + + memory "efuse" + min_write_delay = 4500; + max_write_delay = 4500; + read = "0101.0000--0000.1000--xxxx.xxxx--1111.111o"; + write = "1010.1100--1010.0100--xxxx.xxxx--1111.111i"; + ; + + memory "lock" + min_write_delay = 4500; + max_write_delay = 4500; + read = "0101.1000--0000.0000--xxxx.xxxx--1111.11oo"; + write = "1010.1100--111x.xxxx--xxxx.xxxx--1111.11ii"; + ; + + memory "calibration" + read = "0011.0000--000x.xxxx--xxxx.xxaa--oooo.oooo"; + ; +; + +#------------------------------------------------------------ +# ATA6612C +#------------------------------------------------------------ + +part parent "m88" + desc = "ATA6612C"; + id = "ata6612c"; + variants = + "ATA6612C-PLQW: VFQFN48, Fmax=16 MHz, T=[-40 C, 125 C], Vcc=[2.7 V, 5.5 V]", + "ATA6612C-PLQW-1: VFQFN48, Fmax=16 MHz, T=[-40 C, 125 C], Vcc=[2.7 V, 5.5 V]"; + mcuid = 216; + chip_erase_delay = 4000; + + memory "eeprom" + min_write_delay = 4000; + max_write_delay = 4000; + ; + + memory "efuse" + read = "0101.0000--0000.1000--xxxx.xxxx--1111.1ooo"; + write = "1010.1100--1010.0100--xxxx.xxxx--1111.1iii"; + ; + + memory "lock" + read = "0101.1000--0000.0000--xxxx.xxxx--11oo.oooo"; + ; + + memory "calibration" + read = "0011.0000--000x.xxxx--xxxx.xxaa--oooo.oooo"; + ; +; + +#------------------------------------------------------------ +# ATA6613C +#------------------------------------------------------------ + +part parent "m168" + desc = "ATA6613C"; + id = "ata6613c"; + variants = + "ATA6613C-PLQW: VFQFN48, Fmax=16 MHz, T=[-40 C, 125 C], Vcc=[2.7 V, 5.5 V]", + "ATA6613C-PLQW-1: VFQFN48, Fmax=16 MHz, T=[-40 C, 125 C], Vcc=[2.7 V, 5.5 V]"; + mcuid = 217; + + memory "efuse" + read = "0101.0000--0000.1000--xxxx.xxxx--1111.1ooo"; + write = "1010.1100--1010.0100--xxxx.xxxx--1111.1iii"; + ; + + memory "lock" + read = "0101.1000--0000.0000--xxxx.xxxx--11oo.oooo"; + ; + + memory "calibration" + read = "0011.0000--000x.xxxx--xxxx.xxaa--oooo.oooo"; + ; +; + +#------------------------------------------------------------ +# ATA6614Q +#------------------------------------------------------------ + +part parent "m328" + desc = "ATA6614Q"; + id = "ata6614q"; + variants = + "ATA6614Q-PLQW: VFQFN48, Fmax=16 MHz, T=[-40 C, 125 C], Vcc=[2.7 V, 5.5 V]", + "ATA6614Q-PLQW-1: VFQFN48, Fmax=16 MHz, T=[-40 C, 125 C], Vcc=[2.7 V, 5.5 V]"; + mcuid = 218; + signature = 0x1e 0x95 0x0f; + + memory "efuse" + read = "0101.0000--0000.1000--xxxx.xxxx--1111.1ooo"; + write = "1010.1100--1010.0100--xxxx.xxxx--1111.1iii"; + ; + + memory "lock" + read = "0101.1000--0000.0000--xxxx.xxxx--11oo.oooo"; + ; + + memory "calibration" + read = "0011.0000--000x.xxxx--xxxx.xxaa--oooo.oooo"; + ; +; + +#------------------------------------------------------------ +# ATA6616C +#------------------------------------------------------------ + +part parent "t87" + desc = "ATA6616C"; + id = "ata6616c"; + variants = + "ATA6616C-P3PW: VFQFN38, Fmax=16 MHz, T=[-40 C, 125 C], Vcc=[2.7 V, 5.5 V]", + "ATA6616C-P3QW: VFQFN38, Fmax=16 MHz, T=[-40 C, 125 C], Vcc=[2.7 V, 5.5 V]", + "ATA6616C-P3QW-1: VFQFN38, Fmax=16 MHz, T=[-40 C, 125 C], Vcc=[2.7 V, 5.5 V]"; + mcuid = 219; + chip_erase_delay = 4000; + reset = dedicated; + + memory "eeprom" + max_write_delay = 4000; + ; + + memory "flash" + read_lo = "0010.0000--0000.aaaa--aaaa.aaaa--oooo.oooo"; + read_hi = "0010.1000--0000.aaaa--aaaa.aaaa--oooo.oooo"; + writepage = "0100.1100--0000.aaaa--aa00.0000--xxxx.xxxx"; + ; + + memory "lfuse" + min_write_delay = 4500; + max_write_delay = 4500; + ; + + memory "hfuse" + min_write_delay = 4500; + max_write_delay = 4500; + ; + + memory "efuse" + min_write_delay = 4500; + max_write_delay = 4500; + read = "0101.0000--0000.1000--xxxx.xxxx--1111.111o"; + write = "1010.1100--1010.0100--xxxx.xxxx--1111.111i"; + ; + + memory "lock" + min_write_delay = 4500; + max_write_delay = 4500; + read = "0101.1000--0000.0000--xxxx.xxxx--1111.11oo"; + write = "1010.1100--111x.xxxx--xxxx.xxxx--1111.11ii"; + ; + + memory "calibration" + read = "0011.0000--000x.xxxx--xxxx.xxaa--oooo.oooo"; + ; +; + +#------------------------------------------------------------ +# ATA6617C +#------------------------------------------------------------ + +part parent "t167" + desc = "ATA6617C"; + id = "ata6617c"; + variants = + "ATA6617C-P3QW: VFQFN38, Fmax=16 MHz, T=[-40 C, 125 C], Vcc=[2.7 V, 5.5 V]", + "ATA6617C-P3QW-1: VFQFN38, Fmax=16 MHz, T=[-40 C, 125 C], Vcc=[2.7 V, 5.5 V]"; + mcuid = 220; + chip_erase_delay = 4000; + reset = dedicated; + + memory "eeprom" + max_write_delay = 4000; + ; + + memory "lfuse" + min_write_delay = 4500; + max_write_delay = 4500; + ; + + memory "hfuse" + min_write_delay = 4500; + max_write_delay = 4500; + ; + + memory "efuse" + min_write_delay = 4500; + max_write_delay = 4500; + read = "0101.0000--0000.1000--xxxx.xxxx--1111.111o"; + write = "1010.1100--1010.0100--xxxx.xxxx--1111.111i"; + ; + + memory "lock" + min_write_delay = 4500; + max_write_delay = 4500; + read = "0101.1000--0000.0000--xxxx.xxxx--1111.11oo"; + write = "1010.1100--111x.xxxx--xxxx.xxxx--1111.11ii"; + ; + + memory "calibration" + read = "0011.0000--000x.xxxx--xxxx.xxaa--oooo.oooo"; + ; +; + +#------------------------------------------------------------ +# ATA664251 +#------------------------------------------------------------ + +part parent "t167" + desc = "ATA664251"; + id = "ata664251"; + variants = + "ATA664251: N/A, Fmax=N/A, T=[N/A, N/A], Vcc=[1.8 V, 5.5 V]", + "ATA664251-WGQW: VFQFN48, Fmax=16 MHz, T=[-40 C, 125 C], Vcc=[2.7 V, 5.5 V]", + "ATA664251-WGQW-1: VFQFN48, Fmax=16 MHz, T=[-40 C, 125 C], Vcc=[2.7 V, 5.5 V]"; + mcuid = 225; + chip_erase_delay = 4000; + reset = dedicated; + + memory "eeprom" + max_write_delay = 4000; + ; + + memory "lfuse" + min_write_delay = 4500; + max_write_delay = 4500; + ; + + memory "hfuse" + min_write_delay = 4500; + max_write_delay = 4500; + ; + + memory "efuse" + min_write_delay = 4500; + max_write_delay = 4500; + read = "0101.0000--0000.1000--xxxx.xxxx--1111.111o"; + write = "1010.1100--1010.0100--xxxx.xxxx--1111.111i"; + ; + + memory "lock" + min_write_delay = 4500; + max_write_delay = 4500; + read = "0101.1000--0000.0000--xxxx.xxxx--1111.11oo"; + write = "1010.1100--111x.xxxx--xxxx.xxxx--1111.11ii"; + ; + + memory "calibration" + read = "0011.0000--000x.xxxx--xxxx.xxaa--oooo.oooo"; + ; +; + +#------------------------------------------------------------ +# ATmega16HVA +#------------------------------------------------------------ + +part + desc = "ATmega16HVA"; + id = "m16hva"; + variants = + "ATmega16HVA: N/A, Fmax=N/A, T=[N/A, N/A], Vcc=[1.8 V, 4.5 V]", + "ATmega16HVA-4CKU: WFLGA36, Fmax=4 MHz, T=[-20 C, 85 C], Vcc=[1.8 V, 9 V]", + "ATmega16HVA-4CKUR: WFLGA36, Fmax=4 MHz, T=[-20 C, 85 C], Vcc=[1.8 V, 9 V]", + "ATmega16HVA-4TU: TSSOP28, Fmax=4 MHz, T=[-20 C, 85 C], Vcc=[1.8 V, 9 V]", + "ATmega16HVA-4TUR: TSSOP28, Fmax=4 MHz, T=[-20 C, 85 C], Vcc=[1.8 V, 9 V]"; + prog_modes = PM_SPM | PM_ISP | PM_HVSP | PM_debugWIRE; + mcuid = 51; + n_interrupts = 21; + chip_erase_delay = 4000; + signature = 0x1e 0x94 0x0c; + reset = io; + timeout = 200; + stabdelay = 100; + cmdexedelay = 25; + synchloops = 32; + pollindex = 3; + pollvalue = 0x53; + predelay = 1; + postdelay = 1; + pollmethod = 1; + hvsp_controlstack = + 0x4c, 0x0c, 0x1c, 0x2c, 0x3c, 0x64, 0x74, 0x66, + 0x68, 0x78, 0x68, 0x68, 0x7a, 0x6a, 0x68, 0x78, + 0x78, 0x7d, 0x6d, 0x0c, 0x80, 0x40, 0x20, 0x10, + 0x11, 0x08, 0x04, 0x02, 0x03, 0x08, 0x04, 0x0f; + flash_instr = 0xb6, 0x01, 0x11; + eeprom_instr = + 0xbd, 0xf2, 0xbd, 0xe1, 0xbb, 0xcf, 0xb4, 0x00, + 0xbe, 0x01, 0xb6, 0x01, 0xbc, 0x00, 0xbb, 0xbf, + 0x99, 0xf9, 0xbb, 0xaf; + hventerstabdelay = 100; + latchcycles = 1; + togglevtg = 1; + poweroffdelay = 25; + resetdelayms = 1; + resetdelayus = 70; + hvleavestabdelay = 101; + resetdelay = 26; + chiperasepolltimeout = 40; + chiperasetime = 1; + programfusepolltimeout = 25; + programlockpolltimeout = 25; + synchcycles = 6; + idr = 0x31; + spmcr = 0x57; + eecr = 0x3f; + ocdrev = 1; + chip_erase = "1010.1100--100x.xxxx--xxxx.xxxx--xxxx.xxxx"; + pgm_enable = "1010.1100--0101.0011--xxxx.xxxx--xxxx.xxxx"; + + memory "eeprom" + size = 256; + page_size = 4; + min_write_delay = 4000; + max_write_delay = 4000; + mode = 0x41; + delay = 20; + blocksize = 4; + readsize = 256; + read = "1010.0000--0000.0000--aaaa.aaaa--oooo.oooo"; + write = "1100.0000--0000.0000--aaaa.aaaa--iiii.iiii"; + loadpage_lo = "1100.0001--0000.0000--0000.00aa--iiii.iiii"; + writepage = "1100.0010--0000.0000--aaaa.aa00--xxxx.xxxx"; + ; + + memory "flash" + paged = yes; + size = 0x4000; + page_size = 128; + num_pages = 128; + min_write_delay = 4500; + max_write_delay = 4500; + mode = 0x41; + delay = 10; + blocksize = 128; + readsize = 256; + read_lo = "0010.0000--000a.aaaa--aaaa.aaaa--oooo.oooo"; + read_hi = "0010.1000--000a.aaaa--aaaa.aaaa--oooo.oooo"; + loadpage_lo = "0100.0000--0000.0000--00aa.aaaa--iiii.iiii"; + loadpage_hi = "0100.1000--0000.0000--00aa.aaaa--iiii.iiii"; + writepage = "0100.1100--000a.aaaa--aa00.0000--xxxx.xxxx"; + ; + + memory "fuse" + size = 1; + initval = 0xdf; + min_write_delay = 4500; + max_write_delay = 4500; + read = "0101.0000--0000.0000--xxxx.xxxx--oooo.oooo"; + write = "1010.1100--1010.0000--xxxx.xxxx--iiii.iiii"; + ; + + memory "lock" + size = 1; + initval = 0xff; + bitmask = 0x03; + min_write_delay = 4500; + max_write_delay = 4500; + read = "0101.1000--0000.0000--xxxx.xxxx--1111.11oo"; + write = "1010.1100--111x.xxxx--xxxx.xxxx--1111.11ii"; + ; + + memory "signature" + size = 3; + read = "0011.0000--000x.xxxx--xxxx.xxaa--oooo.oooo"; + ; + + memory "calibration" + size = 1; + read = "0011.0000--000x.xxxx--xxxx.xxaa--oooo.oooo"; + ; +; + +#------------------------------------------------------------ +# ATmega8HVA +#------------------------------------------------------------ + +part parent "m16hva" + desc = "ATmega8HVA"; + id = "m8hva"; + variants = + "ATmega8HVA: N/A, Fmax=N/A, T=[N/A, N/A], Vcc=[1.8 V, 4.5 V]", + "ATmega8HVA-4CKU: WFLGA36, Fmax=4 MHz, T=[-20 C, 85 C], Vcc=[1.8 V, 9 V]", + "ATmega8HVA-4CKUR: WFLGA36, Fmax=4 MHz, T=[-20 C, 85 C], Vcc=[1.8 V, 9 V]", + "ATmega8HVA-4TU: TSSOP28, Fmax=4 MHz, T=[-20 C, 85 C], Vcc=[1.8 V, 9 V]", + "ATmega8HVA-4TUR: TSSOP28, Fmax=4 MHz, T=[-20 C, 85 C], Vcc=[1.8 V, 9 V]"; + mcuid = 47; + signature = 0x1e 0x93 0x10; + + memory "flash" + size = 8192; + num_pages = 64; + read_lo = "0010.0000--0000.aaaa--aaaa.aaaa--oooo.oooo"; + read_hi = "0010.1000--0000.aaaa--aaaa.aaaa--oooo.oooo"; + writepage = "0100.1100--0000.aaaa--aa00.0000--xxxx.xxxx"; + ; +; + +#------------------------------------------------------------ +# ATmega16HVB +#------------------------------------------------------------ + +part + desc = "ATmega16HVB"; + id = "m16hvb"; + variants = + "ATmega16HVB: N/A, Fmax=N/A, T=[N/A, N/A], Vcc=[4 V, 18 V]", + "ATmega16HVB-8X3: TFSOP44, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[4 V, 25 V]", + "ATmega16HVB-8X3R: TFSOP44, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[4 V, 25 V]"; + prog_modes = PM_SPM | PM_ISP | PM_HVPP | PM_debugWIRE; + mcuid = 52; + n_interrupts = 29; + n_boot_sections = 4; + boot_section_size = 512; + chip_erase_delay = 4000; + pagel = 0xa3; + bs2 = 0xa2; + signature = 0x1e 0x94 0x0d; + reset = io; + timeout = 200; + stabdelay = 100; + cmdexedelay = 25; + synchloops = 32; + pollindex = 3; + pollvalue = 0x53; + predelay = 1; + postdelay = 1; + pollmethod = 1; + pp_controlstack = + 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; + flash_instr = 0xb6, 0x01, 0x11; + eeprom_instr = + 0xbd, 0xf2, 0xbd, 0xe1, 0xbb, 0xcf, 0xb4, 0x00, + 0xbe, 0x01, 0xb6, 0x01, 0xbc, 0x00, 0xbb, 0xbf, + 0x99, 0xf9, 0xbb, 0xaf; + hventerstabdelay = 100; + latchcycles = 6; + hvleavestabdelay = 15; + resetdelay = 15; + chiperasepolltimeout = 10; + programfusepolltimeout = 5; + programlockpolltimeout = 5; + idr = 0x31; + spmcr = 0x57; + eecr = 0x3f; + ocdrev = 1; + chip_erase = "1010.1100--100x.xxxx--xxxx.xxxx--xxxx.xxxx"; + pgm_enable = "1010.1100--0101.0011--xxxx.xxxx--xxxx.xxxx"; + + memory "eeprom" + size = 512; + page_size = 4; + min_write_delay = 4000; + max_write_delay = 4000; + mode = 0x41; + delay = 10; + blocksize = 4; + readsize = 256; + read = "1010.0000--0000.000a--aaaa.aaaa--oooo.oooo"; + write = "1100.0000--0000.000a--aaaa.aaaa--iiii.iiii"; + loadpage_lo = "1100.0001--0000.0000--0000.00aa--iiii.iiii"; + writepage = "1100.0010--0000.000a--aaaa.aa00--xxxx.xxxx"; + ; + + memory "flash" + paged = yes; + size = 0x4000; + page_size = 128; + num_pages = 128; + min_write_delay = 4500; + max_write_delay = 4500; + mode = 0x41; + delay = 10; + blocksize = 128; + readsize = 256; + read_lo = "0010.0000--000a.aaaa--aaaa.aaaa--oooo.oooo"; + read_hi = "0010.1000--000a.aaaa--aaaa.aaaa--oooo.oooo"; + loadpage_lo = "0100.0000--0000.0000--00aa.aaaa--iiii.iiii"; + loadpage_hi = "0100.1000--0000.0000--00aa.aaaa--iiii.iiii"; + writepage = "0100.1100--000a.aaaa--aa00.0000--xxxx.xxxx"; + ; + + memory "lfuse" + size = 1; + initval = 0xdd; + min_write_delay = 4500; + max_write_delay = 4500; + read = "0101.0000--0000.0000--xxxx.xxxx--oooo.oooo"; + write = "1010.1100--1010.0000--xxxx.xxxx--iiii.iiii"; + ; + + memory "hfuse" + size = 1; + initval = 0xe9; + bitmask = 0x1f; + min_write_delay = 4500; + max_write_delay = 4500; + read = "0101.1000--0000.1000--xxxx.xxxx--111o.oooo"; + write = "1010.1100--1010.1000--xxxx.xxxx--111i.iiii"; + ; + + memory "lock" + size = 1; + initval = 0xff; + bitmask = 0x3f; + min_write_delay = 4500; + max_write_delay = 4500; + read = "0101.1000--0000.0000--xxxx.xxxx--11oo.oooo"; + write = "1010.1100--111x.xxxx--xxxx.xxxx--11ii.iiii"; + ; + + memory "signature" + size = 3; + read = "0011.0000--000x.xxxx--xxxx.xxaa--oooo.oooo"; + ; + + memory "calibration" + size = 1; + read = "0011.0000--000x.xxxx--xxxx.xxaa--oooo.oooo"; + ; +; + +#------------------------------------------------------------ +# ATmega16HVBrevB +#------------------------------------------------------------ + +part parent "m16hvb" + desc = "ATmega16HVBrevB"; + id = "m16hvbrevb"; + variants = + "ATmega16HVBrevB: N/A, Fmax=N/A, T=[N/A, N/A], Vcc=[3.0 V, 4.5 V]"; + mcuid = 53; +; + +#------------------------------------------------------------ +# ATmega32HVB +#------------------------------------------------------------ + +part parent "m16hvb" + desc = "ATmega32HVB"; + id = "m32hvb"; + variants = + "ATmega32HVB: N/A, Fmax=N/A, T=[N/A, N/A], Vcc=[4 V, 18 V]", + "ATmega32HVB-8X3: TFSOP44, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[4 V, 25 V]", + "ATmega32HVB-8X3R: TFSOP44, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[4 V, 25 V]"; + mcuid = 60; + signature = 0x1e 0x95 0x10; + + memory "eeprom" + size = 1024; + read = "1010.0000--0000.00aa--aaaa.aaaa--oooo.oooo"; + write = "1100.0000--0000.00aa--aaaa.aaaa--iiii.iiii"; + writepage = "1100.0010--0000.00aa--aaaa.aa00--xxxx.xxxx"; + ; + + memory "flash" + size = 0x8000; + num_pages = 256; + read_lo = "0010.0000--00aa.aaaa--aaaa.aaaa--oooo.oooo"; + read_hi = "0010.1000--00aa.aaaa--aaaa.aaaa--oooo.oooo"; + writepage = "0100.1100--00aa.aaaa--aa00.0000--xxxx.xxxx"; + ; +; + +#------------------------------------------------------------ +# ATmega32HVBrevB +#------------------------------------------------------------ + +part parent "m32hvb" + desc = "ATmega32HVBrevB"; + id = "m32hvbrevb"; + variants = + "ATmega32HVBrevB: N/A, Fmax=N/A, T=[N/A, N/A], Vcc=[3.0 V, 4.5 V]"; + mcuid = 61; +; + +#------------------------------------------------------------ +# ATmega64HVE2 +#------------------------------------------------------------ + +part + desc = "ATmega64HVE2"; + id = "m64hve2"; + variants = + "ATmega64HVE2: N/A, Fmax=N/A, T=[N/A, N/A], Vcc=[3.0 V, 3.6 V]", + "ATmega64HVE2-PLPW: VFQFN48, Fmax=15 MHz, T=[-40 C, 125 C], Vcc=[3 V, 3.6 V]", + "ATmega64HVE2-PLQW: VFQFN48, Fmax=15 MHz, T=[-40 C, 125 C], Vcc=[3 V, 3.6 V]"; + prog_modes = PM_SPM | PM_ISP | PM_HVSP | PM_debugWIRE; + mcuid = 77; + n_interrupts = 25; + n_boot_sections = 4; + boot_section_size = 1024; + chip_erase_delay = 4000; + signature = 0x1e 0x96 0x10; + reset = io; + timeout = 200; + stabdelay = 100; + cmdexedelay = 25; + synchloops = 32; + pollindex = 3; + pollvalue = 0x53; + predelay = 1; + postdelay = 1; + pollmethod = 1; + hvsp_controlstack = + 0x4c, 0x0c, 0x1c, 0x2c, 0x3c, 0x64, 0x74, 0x66, + 0x68, 0x78, 0x68, 0x68, 0x7a, 0x6a, 0x68, 0x78, + 0x78, 0x7d, 0x6d, 0x0c, 0x80, 0x40, 0x20, 0x10, + 0x11, 0x08, 0x04, 0x02, 0x03, 0x08, 0x04, 0x0f; + flash_instr = 0xb6, 0x01, 0x11; + eeprom_instr = + 0xbd, 0xf2, 0xbd, 0xe1, 0xbb, 0xcf, 0xb4, 0x00, + 0xbe, 0x01, 0xb6, 0x01, 0xbc, 0x00, 0xbb, 0xbf, + 0x99, 0xf9, 0xbb, 0xaf; + hventerstabdelay = 100; + latchcycles = 1; + togglevtg = 1; + poweroffdelay = 25; + resetdelayms = 1; + resetdelayus = 70; + hvleavestabdelay = 101; + resetdelay = 26; + chiperasepolltimeout = 40; + chiperasetime = 1; + programfusepolltimeout = 25; + programlockpolltimeout = 25; + synchcycles = 6; + idr = 0x31; spmcr = 0x57; eecr = 0x3f; ocdrev = 1; @@ -7918,40 +10525,39 @@ part memory "eeprom" size = 1024; page_size = 4; - min_write_delay = 3600; - max_write_delay = 3600; - readback = 0xff 0xff; - mode = 65; + min_write_delay = 4000; + max_write_delay = 4000; + mode = 0x41; delay = 20; blocksize = 4; readsize = 256; - read = "1010.0000--000x.xxaa--aaaa.aaaa--oooo.oooo"; - write = "1100.0000--000x.xxaa--aaaa.aaaa--iiii.iiii"; + read = "1010.0000--0000.00aa--aaaa.aaaa--oooo.oooo"; + write = "1100.0000--0000.00aa--aaaa.aaaa--iiii.iiii"; loadpage_lo = "1100.0001--0000.0000--0000.00aa--iiii.iiii"; - writepage = "1100.0010--00xx.xxaa--aaaa.aa00--xxxx.xxxx"; + writepage = "1100.0010--0000.00aa--aaaa.aa00--xxxx.xxxx"; ; memory "flash" paged = yes; - size = 0x8000; + size = 0x10000; page_size = 128; - num_pages = 256; + num_pages = 512; min_write_delay = 4500; max_write_delay = 4500; - readback = 0xff 0xff; - mode = 65; - delay = 6; + mode = 0x41; + delay = 10; blocksize = 128; readsize = 256; - read_lo = "0010.0000--00aa.aaaa--aaaa.aaaa--oooo.oooo"; - read_hi = "0010.1000--00aa.aaaa--aaaa.aaaa--oooo.oooo"; - loadpage_lo = "0100.0000--000x.xxxx--xxaa.aaaa--iiii.iiii"; - loadpage_hi = "0100.1000--000x.xxxx--xxaa.aaaa--iiii.iiii"; - writepage = "0100.1100--00aa.aaaa--aaxx.xxxx--xxxx.xxxx"; + read_lo = "0010.0000--0aaa.aaaa--aaaa.aaaa--oooo.oooo"; + read_hi = "0010.1000--0aaa.aaaa--aaaa.aaaa--oooo.oooo"; + loadpage_lo = "0100.0000--0000.0000--00aa.aaaa--iiii.iiii"; + loadpage_hi = "0100.1000--0000.0000--00aa.aaaa--iiii.iiii"; + writepage = "0100.1100--0aaa.aaaa--aa00.0000--xxxx.xxxx"; ; memory "lfuse" size = 1; + initval = 0xd7; min_write_delay = 4500; max_write_delay = 4500; read = "0101.0000--0000.0000--xxxx.xxxx--oooo.oooo"; @@ -7960,25 +10566,21 @@ part memory "hfuse" size = 1; + initval = 0xf9; + bitmask = 0x0f; min_write_delay = 4500; max_write_delay = 4500; - read = "0101.1000--0000.1000--xxxx.xxxx--oooo.oooo"; - write = "1010.1100--1010.1000--xxxx.xxxx--iiii.iiii"; - ; - - memory "efuse" - size = 1; - min_write_delay = 4500; - max_write_delay = 4500; - read = "0101.0000--0000.1000--xxxx.xxxx--oooo.oooo"; - write = "1010.1100--1010.0100--xxxx.xxxx--xxxx.xiii"; + read = "0101.1000--0000.1000--xxxx.xxxx--1111.oooo"; + write = "1010.1100--1010.1000--xxxx.xxxx--1111.iiii"; ; memory "lock" size = 1; + initval = 0xff; + bitmask = 0x3f; min_write_delay = 4500; max_write_delay = 4500; - read = "0101.1000--0000.0000--xxxx.xxxx--oooo.oooo"; + read = "0101.1000--0000.0000--xxxx.xxxx--11oo.oooo"; write = "1010.1100--111x.xxxx--xxxx.xxxx--11ii.iiii"; ; @@ -7989,93 +10591,26 @@ part memory "calibration" size = 1; - read = "0011.1000--000x.xxxx--0000.0000--oooo.oooo"; - ; -; - -#------------------------------------------------------------ -# ATmega328P -#------------------------------------------------------------ - -part parent "m328" - desc = "ATmega328P"; - id = "m328p"; - mcuid = 119; - signature = 0x1e 0x95 0x0f; -; - -#------------------------------------------------------------ -# ATmega328PB -#------------------------------------------------------------ - -part parent "m328" - desc = "ATmega328PB"; - id = "m328pb"; - mcuid = 120; - n_interrupts = 45; - chip_erase_delay = 10500; - signature = 0x1e 0x95 0x16; - - memory "efuse" - write = "1010.1100--1010.0100--xxxx.xxxx--xxxx.iiii"; - ; -; - -#------------------------------------------------------------ -# ATmega32m1 -#------------------------------------------------------------ - -part parent "m328" - desc = "ATmega32M1"; - id = "m32m1"; - mcuid = 63; - n_interrupts = 31; - bs2 = 0xe2; -# stk500_devcode = 0x??; -# avr910_devcode = 0x??; - signature = 0x1e 0x95 0x84; - - memory "efuse" - write = "1010.1100--1010.0100--xxxx.xxxx--xxii.iiii"; + read = "0011.0000--000x.xxxx--xxxx.xxaa--oooo.oooo"; ; ; #------------------------------------------------------------ -# ATmega64m1 +# ATmega32HVE2 #------------------------------------------------------------ -part parent "m328" - desc = "ATmega64M1"; - id = "m64m1"; - mcuid = 76; - n_interrupts = 31; - boot_section_size = 1024; - bs2 = 0xe2; -# stk500_devcode = 0x??; -# avr910_devcode = 0x??; - signature = 0x1e 0x96 0x84; - - memory "eeprom" - size = 2048; - page_size = 8; - read = "1010.0000--000x.xaaa--aaaa.aaaa--oooo.oooo"; - write = "1100.0000--000x.xaaa--aaaa.aaaa--iiii.iiii"; - loadpage_lo = "1100.0001--0000.0000--0000.0aaa--iiii.iiii"; - writepage = "1100.0010--00xx.xaaa--aaaa.a000--xxxx.xxxx"; - ; +part parent "m64hve2" + desc = "ATmega32HVE2"; + id = "m32hve2"; + variants = + "ATmega32HVE2-PLPW: VFQFN48, Fmax=15 MHz, T=[-40 C, 125 C], Vcc=[3 V, 3.6 V]", + "ATmega32HVE2-PLQW: VFQFN48, Fmax=15 MHz, T=[-40 C, 125 C], Vcc=[3 V, 3.6 V]"; + mcuid = 379; + signature = 0x1e 0x95 0x13; memory "flash" - size = 0x10000; - page_size = 256; - read_lo = "0010.0000--aaaa.aaaa--aaaa.aaaa--oooo.oooo"; - read_hi = "0010.1000--aaaa.aaaa--aaaa.aaaa--oooo.oooo"; - loadpage_lo = "0100.0000--000x.xxxx--xaaa.aaaa--iiii.iiii"; - loadpage_hi = "0100.1000--000x.xxxx--xaaa.aaaa--iiii.iiii"; - writepage = "0100.1100--aaaa.aaaa--axxx.xxxx--xxxx.xxxx"; - ; - - memory "efuse" - write = "1010.1100--1010.0100--xxxx.xxxx--xxii.iiii"; + size = 0x8000; + num_pages = 256; ; ; @@ -8086,6 +10621,18 @@ part parent "m328" part desc = "ATtiny2313"; id = "t2313"; + variants = + "ATtiny2313: N/A, Fmax=20 MHz, T=[N/A, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny2313-20MU: MLF20, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny2313-20MUR: MLF20, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny2313-20PU: PDIP20, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny2313-20SU: SOIC20, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny2313-20SUR: SOIC20, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny2313V-10MU: MLF20, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny2313V-10MUR: WQFN20, Fmax=10 MHz, T=[N/A, N/A], Vcc=[1.8 V, 5.5 V]", + "ATtiny2313V-10PU: PDIP20, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny2313V-10SU: SOIC20, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny2313V-10SUR: SOIC20, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; prog_modes = PM_SPM | PM_ISP | PM_HVPP | PM_debugWIRE; mcuid = 42; n_interrupts = 19; @@ -8122,9 +10669,11 @@ part poweroffdelay = 15; resetdelayms = 1; hvleavestabdelay = 15; + resetdelay = 15; chiperasepolltimeout = 10; programfusepolltimeout = 5; programlockpolltimeout = 5; + idr = 0x1f; spmcr = 0x57; eecr = 0x3c; ocdrev = 0; @@ -8136,8 +10685,7 @@ part page_size = 4; min_write_delay = 4000; max_write_delay = 4500; - readback = 0xff 0xff; - mode = 65; + mode = 0x41; delay = 6; blocksize = 4; readsize = 256; @@ -8154,9 +10702,8 @@ part num_pages = 64; min_write_delay = 4500; max_write_delay = 4500; - readback = 0xff 0xff; - mode = 65; - delay = 6; + mode = 0x41; + delay = 10; blocksize = 32; readsize = 256; read_lo = "0010.0000--0000.00aa--aaaa.aaaa--oooo.oooo"; @@ -8171,6 +10718,7 @@ part memory "lfuse" size = 1; + initval = 0x64; min_write_delay = 9000; max_write_delay = 9000; read = "0101.0000--0000.0000--xxxx.xxxx--oooo.oooo"; @@ -8179,6 +10727,7 @@ part memory "hfuse" size = 1; + initval = 0xdf; min_write_delay = 9000; max_write_delay = 9000; read = "0101.1000--0000.1000--xxxx.xxxx--oooo.oooo"; @@ -8187,6 +10736,8 @@ part memory "efuse" size = 1; + initval = 0xff; + bitmask = 0x01; min_write_delay = 9000; max_write_delay = 9000; read = "0101.0000--0000.1000--xxxx.xxxx--oooo.oooo"; @@ -8195,16 +10746,20 @@ part memory "lock" size = 1; + initval = 0xff; + bitmask = 0x03; min_write_delay = 9000; max_write_delay = 9000; read = "0101.1000--0000.0000--xxxx.xxxx--oooo.oooo"; write = "1010.1100--111x.xxxx--xxxx.xxxx--11ii.iiii"; ; -# ATtiny2313 has Signature Bytes: 0x1E 0x91 0x0A. + + # ATtiny2313 has signature bytes 0x1E 0x91 0x0A memory "signature" size = 3; read = "0011.0000--000x.xxxx--xxxx.xxaa--oooo.oooo"; ; + # The Tiny2313 has calibration data for both 4 MHz and 8 MHz. # The information in the data sheet of April/2004 is wrong, this works: @@ -8221,8 +10776,22 @@ part part parent "t2313" desc = "ATtiny2313A"; id = "t2313a"; + variants = + "ATtiny2313A: N/A, Fmax=N/A, T=[N/A, N/A], Vcc=[1.8 V, 5.5 V]", + "ATtiny2313A-MMH: VQFN20, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny2313A-MMHR: VQFN20, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny2313A-MU: QFN20, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny2313A-MUR: WQFN20, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny2313A-PU: PDIP20, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny2313A-SU: SOIC20, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny2313A-SUR: SOIC20, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 43; n_interrupts = 21; + idr = 0x27; + + memory "lfuse" + initval = 0x62; + ; ; #------------------------------------------------------------ @@ -8232,6 +10801,15 @@ part parent "t2313" part desc = "ATtiny4313"; id = "t4313"; + variants = + "ATtiny4313: N/A, Fmax=N/A, T=[N/A, N/A], Vcc=[1.8 V, 5.5 V]", + "ATtiny4313-MMH: VQFN20, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny4313-MMHR: VQFN20, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny4313-MU: MLF20, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny4313-MUR: MLF20, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny4313-PU: PDIP20, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny4313-SU: SOIC20, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny4313-SUR: SOIC20, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]"; prog_modes = PM_SPM | PM_ISP | PM_HVPP | PM_debugWIRE; mcuid = 44; n_interrupts = 21; @@ -8253,105 +10831,252 @@ part postdelay = 1; pollmethod = 1; pp_controlstack = - 0x0e, 0x1e, 0x0e, 0x1e, 0x2e, 0x3e, 0x2e, 0x3e, - 0x4e, 0x5e, 0x4e, 0x5e, 0x6e, 0x7e, 0x6e, 0x7e, - 0x26, 0x36, 0x66, 0x76, 0x2a, 0x3a, 0x6a, 0x7a, - 0x2e, 0xfd, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00; - flash_instr = 0xb2, 0x0f, 0x1f; + 0x0e, 0x1e, 0x0e, 0x1e, 0x2e, 0x3e, 0x2e, 0x3e, + 0x4e, 0x5e, 0x4e, 0x5e, 0x6e, 0x7e, 0x6e, 0x7e, + 0x26, 0x36, 0x66, 0x76, 0x2a, 0x3a, 0x6a, 0x7a, + 0x2e, 0xfd, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00; + flash_instr = 0xb2, 0x0f, 0x1f; + eeprom_instr = + 0xbb, 0xfe, 0xbb, 0xee, 0xbb, 0xcc, 0xb2, 0x0d, + 0xba, 0x0f, 0xb2, 0x0f, 0xba, 0x0d, 0xbb, 0xbc, + 0x99, 0xe1, 0xbb, 0xac; + hventerstabdelay = 100; + latchcycles = 5; + togglevtg = 1; + poweroffdelay = 15; + resetdelayms = 1; + hvleavestabdelay = 15; + resetdelay = 15; + chiperasepolltimeout = 10; + programfusepolltimeout = 5; + programlockpolltimeout = 5; + idr = 0x27; + spmcr = 0x57; + eecr = 0x3c; + ocdrev = 0; + chip_erase = "1010.1100--100x.xxxx--xxxx.xxxx--xxxx.xxxx"; + pgm_enable = "1010.1100--0101.0011--xxxx.xxxx--xxxx.xxxx"; + + memory "eeprom" + size = 256; + page_size = 4; + min_write_delay = 4000; + max_write_delay = 4500; + mode = 0x41; + delay = 6; + blocksize = 4; + readsize = 256; + read = "1010.0000--000x.xxxx--aaaa.aaaa--oooo.oooo"; + write = "1100.0000--000x.xxxx--aaaa.aaaa--iiii.iiii"; + loadpage_lo = "1100.0001--0000.0000--0000.00aa--iiii.iiii"; + writepage = "1100.0010--00xx.xxxx--aaaa.aa00--xxxx.xxxx"; + ; + + memory "flash" + paged = yes; + size = 4096; + page_size = 64; + num_pages = 64; + min_write_delay = 4500; + max_write_delay = 4500; + mode = 0x41; + delay = 10; + blocksize = 32; + readsize = 256; + read_lo = "0010.0000--0000.0aaa--aaaa.aaaa--oooo.oooo"; + read_hi = "0010.1000--0000.0aaa--aaaa.aaaa--oooo.oooo"; + loadpage_lo = "0100.0000--000x.xxxx--xxxa.aaaa--iiii.iiii"; + loadpage_hi = "0100.1000--000x.xxxx--xxxa.aaaa--iiii.iiii"; + writepage = "0100.1100--0000.0aaa--aaax.xxxx--xxxx.xxxx"; + ; + + memory "lfuse" + size = 1; + initval = 0x62; + min_write_delay = 9000; + max_write_delay = 9000; + read = "0101.0000--0000.0000--xxxx.xxxx--oooo.oooo"; + write = "1010.1100--1010.0000--xxxx.xxxx--iiii.iiii"; + ; + + memory "hfuse" + size = 1; + initval = 0xdf; + min_write_delay = 9000; + max_write_delay = 9000; + read = "0101.1000--0000.1000--xxxx.xxxx--oooo.oooo"; + write = "1010.1100--1010.1000--xxxx.xxxx--iiii.iiii"; + ; + + memory "efuse" + size = 1; + initval = 0xff; + bitmask = 0x01; + min_write_delay = 9000; + max_write_delay = 9000; + read = "0101.0000--0000.1000--xxxx.xxxx--oooo.oooo"; + write = "1010.1100--1010.0100--xxxx.xxxx--xxxx.xxxi"; + ; + + memory "lock" + size = 1; + initval = 0xff; + bitmask = 0x03; + min_write_delay = 9000; + max_write_delay = 9000; + read = "0101.1000--0000.0000--xxxx.xxxx--oooo.oooo"; + write = "1010.1100--111x.xxxx--xxxx.xxxx--11ii.iiii"; + ; + + # ATtiny4313 has signature bytes 0x1E 0x92 0x0D + memory "signature" + size = 3; + read = "0011.0000--000x.xxxx--xxxx.xxaa--oooo.oooo"; + ; + + memory "calibration" + size = 2; + read = "0011.1000--000x.xxxx--0000.000a--oooo.oooo"; + ; +; + +#------------------------------------------------------------ +# AT90PWM1 +#------------------------------------------------------------ + +part + desc = "AT90PWM1"; + id = "pwm1"; + variants = + "AT90PWM1: SOIC24, Fmax=16 MHz, T=[N/A, N/A], Vcc=[2.7 V, 5.5 V]", + "AT90PWM1-16MU: QFN32, Fmax=16 MHz, T=[-40 C, 105 C], Vcc=[2.7 V, 5.5 V]", + "AT90PWM1-16MUR: QFN32, Fmax=16 MHz, T=[N/A, N/A], Vcc=[2.7 V, 5.5 V]", + "AT90PWM1-16SU: SOIC24, Fmax=16 MHz, T=[-40 C, 105 C], Vcc=[2.7 V, 5.5 V]"; + prog_modes = PM_SPM | PM_ISP | PM_HVPP | PM_debugWIRE; + mcuid = 166; + n_interrupts = 32; + n_boot_sections = 4; + boot_section_size = 256; + chip_erase_delay = 9000; + pagel = 0xd7; + bs2 = 0xe2; + signature = 0x1e 0x93 0x83; + reset = io; + timeout = 200; + stabdelay = 100; + cmdexedelay = 25; + synchloops = 32; + pollindex = 3; + pollvalue = 0x53; + predelay = 1; + postdelay = 1; + pollmethod = 1; + pp_controlstack = + 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; + flash_instr = 0xb6, 0x01, 0x11; eeprom_instr = - 0xbb, 0xfe, 0xbb, 0xee, 0xbb, 0xcc, 0xb2, 0x0d, - 0xba, 0x0f, 0xb2, 0x0f, 0xba, 0x0d, 0xbb, 0xbc, - 0x99, 0xe1, 0xbb, 0xac; + 0xbd, 0xf2, 0xbd, 0xe1, 0xbb, 0xcf, 0xb4, 0x00, + 0xbe, 0x01, 0xb6, 0x01, 0xbc, 0x00, 0xbb, 0xbf, + 0x99, 0xf9, 0xbb, 0xaf; hventerstabdelay = 100; latchcycles = 5; togglevtg = 1; poweroffdelay = 15; resetdelayms = 1; hvleavestabdelay = 15; + resetdelay = 15; chiperasepolltimeout = 10; programfusepolltimeout = 5; programlockpolltimeout = 5; + idr = 0x31; spmcr = 0x57; - eecr = 0x3c; - ocdrev = 0; + eecr = 0x3f; + ocdrev = 1; chip_erase = "1010.1100--100x.xxxx--xxxx.xxxx--xxxx.xxxx"; pgm_enable = "1010.1100--0101.0011--xxxx.xxxx--xxxx.xxxx"; memory "eeprom" - size = 256; + size = 512; page_size = 4; - min_write_delay = 4000; - max_write_delay = 4500; - readback = 0xff 0xff; - mode = 65; - delay = 6; + min_write_delay = 3600; + max_write_delay = 3600; + mode = 0x41; + delay = 5; blocksize = 4; readsize = 256; - read = "1010.0000--000x.xxxx--aaaa.aaaa--oooo.oooo"; - write = "1100.0000--000x.xxxx--aaaa.aaaa--iiii.iiii"; + read = "1010.0000--0000.000a--aaaa.aaaa--oooo.oooo"; + write = "1100.0000--0000.000a--aaaa.aaaa--iiii.iiii"; loadpage_lo = "1100.0001--0000.0000--0000.00aa--iiii.iiii"; - writepage = "1100.0010--00xx.xxxx--aaaa.aa00--xxxx.xxxx"; + writepage = "1100.0010--0000.000a--aaaa.aa00--xxxx.xxxx"; ; memory "flash" paged = yes; - size = 4096; + size = 8192; page_size = 64; - num_pages = 64; + num_pages = 128; min_write_delay = 4500; max_write_delay = 4500; - readback = 0xff 0xff; - mode = 65; - delay = 6; - blocksize = 32; + mode = 0x41; + delay = 10; + blocksize = 64; readsize = 256; - read_lo = "0010.0000--0000.0aaa--aaaa.aaaa--oooo.oooo"; - read_hi = "0010.1000--0000.0aaa--aaaa.aaaa--oooo.oooo"; - loadpage_lo = "0100.0000--000x.xxxx--xxxa.aaaa--iiii.iiii"; - loadpage_hi = "0100.1000--000x.xxxx--xxxa.aaaa--iiii.iiii"; - writepage = "0100.1100--0000.0aaa--aaax.xxxx--xxxx.xxxx"; + read_lo = "0010.0000--0000.aaaa--aaaa.aaaa--oooo.oooo"; + read_hi = "0010.1000--0000.aaaa--aaaa.aaaa--oooo.oooo"; + loadpage_lo = "0100.0000--0000.0000--000a.aaaa--iiii.iiii"; + loadpage_hi = "0100.1000--0000.0000--000a.aaaa--iiii.iiii"; + writepage = "0100.1100--0000.aaaa--aaa0.0000--xxxx.xxxx"; ; memory "lfuse" size = 1; - min_write_delay = 9000; - max_write_delay = 9000; + initval = 0x62; + min_write_delay = 4500; + max_write_delay = 4500; read = "0101.0000--0000.0000--xxxx.xxxx--oooo.oooo"; write = "1010.1100--1010.0000--xxxx.xxxx--iiii.iiii"; ; memory "hfuse" size = 1; - min_write_delay = 9000; - max_write_delay = 9000; + initval = 0xdf; + min_write_delay = 4500; + max_write_delay = 4500; read = "0101.1000--0000.1000--xxxx.xxxx--oooo.oooo"; write = "1010.1100--1010.1000--xxxx.xxxx--iiii.iiii"; ; memory "efuse" size = 1; - min_write_delay = 9000; - max_write_delay = 9000; - read = "0101.0000--0000.1000--xxxx.xxxx--oooo.oooo"; - write = "1010.1100--1010.0100--xxxx.xxxx--xxxx.xxxi"; + initval = 0xf9; + bitmask = 0xb7; + min_write_delay = 4500; + max_write_delay = 4500; + read = "0101.0000--0000.1000--xxxx.xxxx--o1oo.1ooo"; + write = "1010.1100--1010.0100--xxxx.xxxx--i1ii.1iii"; ; memory "lock" size = 1; - min_write_delay = 9000; - max_write_delay = 9000; - read = "0101.1000--0000.0000--xxxx.xxxx--oooo.oooo"; + initval = 0xff; + bitmask = 0x3f; + min_write_delay = 4500; + max_write_delay = 4500; + read = "0101.1000--0000.0000--xxxx.xxxx--11oo.oooo"; write = "1010.1100--111x.xxxx--xxxx.xxxx--11ii.iiii"; ; -# ATtiny4313 has Signature Bytes: 0x1E 0x92 0x0D. + memory "signature" size = 3; read = "0011.0000--000x.xxxx--xxxx.xxaa--oooo.oooo"; ; memory "calibration" - size = 2; - read = "0011.1000--000x.xxxx--0000.000a--oooo.oooo"; + size = 1; + read = "0011.0000--000x.xxxx--xxxx.xxaa--oooo.oooo"; ; ; @@ -8362,6 +11087,10 @@ part part desc = "AT90PWM2"; id = "pwm2"; + variants = + "AT90PWM2: SOIC24, Fmax=16 MHz, T=[N/A, N/A], Vcc=[2.7 V, 5.5 V]", + "AT90PWM2-16SQ: SOIC24, Fmax=16 MHz, T=[-40 C, 105 C], Vcc=[2.7 V, 5.5 V]", + "AT90PWM2-16SQR: SOIC24, Fmax=N/A, T=[N/A, N/A], Vcc=[2.7 V, 5.5 V]"; prog_modes = PM_SPM | PM_ISP | PM_HVPP | PM_debugWIRE; mcuid = 167; n_interrupts = 32; @@ -8413,7 +11142,7 @@ part min_write_delay = 4000; max_write_delay = 4500; readback = 0xff 0xff; - mode = 65; + mode = 0x41; delay = 6; blocksize = 4; readsize = 256; @@ -8431,7 +11160,7 @@ part min_write_delay = 4500; max_write_delay = 4500; readback = 0xff 0xff; - mode = 65; + mode = 0x41; delay = 6; blocksize = 64; readsize = 256; @@ -8444,6 +11173,7 @@ part memory "lfuse" size = 1; + initval = 0x62; min_write_delay = 9000; max_write_delay = 9000; read = "0101.0000--0000.0000--xxxx.xxxx--oooo.oooo"; @@ -8452,6 +11182,7 @@ part memory "hfuse" size = 1; + initval = 0xdf; min_write_delay = 9000; max_write_delay = 9000; read = "0101.1000--0000.1000--xxxx.xxxx--oooo.oooo"; @@ -8460,6 +11191,8 @@ part memory "efuse" size = 1; + initval = 0xf9; + bitmask = 0xf7; min_write_delay = 9000; max_write_delay = 9000; read = "0101.0000--0000.1000--xxxx.xxxx--oooo.oooo"; @@ -8468,12 +11201,15 @@ part memory "lock" size = 1; + initval = 0xff; + bitmask = 0x3f; min_write_delay = 9000; max_write_delay = 9000; read = "0101.1000--0000.0000--xxxx.xxxx--oooo.oooo"; write = "1010.1100--111x.xxxx--xxxx.xxxx--11ii.iiii"; ; -# AT90PWM2 has Signature Bytes: 0x1E 0x93 0x81. + + # AT90PWM2 has signature bytes 0x1E 0x93 0x81 memory "signature" size = 3; read = "0011.0000--00xx.xxxx--xxxx.xxaa--oooo.oooo"; @@ -8494,7 +11230,24 @@ part part parent "pwm2" desc = "AT90PWM3"; id = "pwm3"; + variants = + "AT90PWM3: N/A, Fmax=16 MHz, T=[N/A, N/A], Vcc=[2.7 V, 5.5 V]", + "AT90PWM3-16MQ: QFN32, Fmax=16 MHz, T=[-40 C, 105 C], Vcc=[2.7 V, 5.5 V]", + "AT90PWM3-16MQT: QFN32, Fmax=16 MHz, T=[-40 C, 105 C], Vcc=[2.7 V, 5.5 V]"; mcuid = 169; + resetdelay = 15; + idr = 0x31; + ocdrev = 1; + + memory "eeprom" + readback = 0x00 0x00; + delay = 5; + ; + + memory "flash" + readback = 0x00 0x00; + delay = 10; + ; ; #------------------------------------------------------------ @@ -8505,9 +11258,25 @@ part parent "pwm2" part parent "pwm2" desc = "AT90PWM2B"; id = "pwm2b"; + variants = + "AT90PWM2B: N/A, Fmax=16 MHz, T=[N/A, N/A], Vcc=[2.7 V, 5.5 V]", + "AT90PWM2B-16SU: SOIC24, Fmax=16 MHz, T=[-40 C, 105 C], Vcc=[2.7 V, 5.5 V]", + "AT90PWM2B-16SUR: SOIC24, Fmax=16 MHz, T=[-40 C, 105 C], Vcc=[2.7 V, 5.5 V]"; mcuid = 168; signature = 0x1e 0x93 0x83; + resetdelay = 15; + idr = 0x31; ocdrev = 1; + + memory "eeprom" + readback = 0x00 0x00; + delay = 5; + ; + + memory "flash" + readback = 0x00 0x00; + delay = 10; + ; ; #------------------------------------------------------------ @@ -8519,9 +11288,181 @@ part parent "pwm2" part parent "pwm2b" desc = "AT90PWM3B"; id = "pwm3b"; + variants = + "AT90PWM3B: N/A, Fmax=16 MHz, T=[N/A, N/A], Vcc=[2.7 V, 5.5 V]", + "AT90PWM3B-16MU: QFN32, Fmax=16 MHz, T=[-40 C, 105 C], Vcc=[2.7 V, 5.5 V]", + "AT90PWM3B-16MUR: QFN32, Fmax=16 MHz, T=[-40 C, 105 C], Vcc=[2.7 V, 5.5 V]"; mcuid = 170; ; +#------------------------------------------------------------ +# AT90PWM161 +#------------------------------------------------------------ + +part + desc = "AT90PWM161"; + id = "pwm161"; + variants = + "AT90PWM161: N/A, Fmax=N/A, T=[N/A, N/A], Vcc=[2.7 V, 5.5 V]", + "AT90PWM161-16MN: QFN32, Fmax=16 MHz, T=[-40 C, 105 C], Vcc=[2.7 V, 5.5 V]", + "AT90PWM161-16MNR: QFN32, Fmax=16 MHz, T=[N/A, N/A], Vcc=[2.7 V, 5.5 V]", + "AT90PWM161-16SN: SOIC20, Fmax=16 MHz, T=[-40 C, 105 C], Vcc=[2.7 V, 5.5 V]", + "AT90PWM161-16SNR: SOIC20, Fmax=16 MHz, T=[N/A, N/A], Vcc=[2.7 V, 5.5 V]"; + prog_modes = PM_SPM | PM_ISP | PM_HVPP | PM_debugWIRE; + mcuid = 177; + n_interrupts = 20; + n_boot_sections = 4; + boot_section_size = 256; + chip_erase_delay = 9000; + pagel = 0xe2; + bs2 = 0xd6; + signature = 0x1e 0x94 0x8b; + reset = io; + timeout = 200; + stabdelay = 100; + cmdexedelay = 25; + synchloops = 32; + pollindex = 3; + pollvalue = 0x53; + predelay = 1; + postdelay = 1; + pollmethod = 1; + pp_controlstack = + 0xc4, 0xe4, 0xc4, 0xe4, 0xcc, 0xec, 0xcc, 0xec, + 0xd4, 0xf4, 0xd4, 0xf4, 0xdc, 0xfc, 0xdc, 0xfc, + 0xc8, 0xe8, 0xd8, 0xf8, 0x4c, 0x6c, 0x5c, 0x7c, + 0xec, 0xbc, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00; + flash_instr = 0xb6, 0x01, 0x11; + eeprom_instr = + 0xbd, 0xf2, 0xbd, 0xe1, 0xbb, 0xcf, 0xb4, 0x00, + 0xbe, 0x01, 0xb6, 0x01, 0xbc, 0x00, 0xbb, 0xbf, + 0x99, 0xf9, 0xbb, 0xaf; + hventerstabdelay = 100; + latchcycles = 5; + togglevtg = 1; + poweroffdelay = 15; + resetdelayms = 1; + hvleavestabdelay = 15; + resetdelay = 15; + chiperasepolltimeout = 10; + programfusepolltimeout = 5; + programlockpolltimeout = 5; + idr = 0x31; + spmcr = 0x57; + eecr = 0x3c; + ocdrev = 1; + chip_erase = "1010.1100--100x.xxxx--xxxx.xxxx--xxxx.xxxx"; + pgm_enable = "1010.1100--0101.0011--xxxx.xxxx--xxxx.xxxx"; + + memory "eeprom" + size = 512; + page_size = 4; + min_write_delay = 3600; + max_write_delay = 3600; + mode = 0x41; + delay = 5; + blocksize = 4; + readsize = 256; + read = "1010.0000--0000.000a--aaaa.aaaa--oooo.oooo"; + write = "1100.0000--0000.000a--aaaa.aaaa--iiii.iiii"; + loadpage_lo = "1100.0001--0000.0000--0000.00aa--iiii.iiii"; + writepage = "1100.0010--0000.000a--aaaa.aa00--xxxx.xxxx"; + ; + + memory "flash" + paged = yes; + size = 0x4000; + page_size = 128; + num_pages = 128; + min_write_delay = 4500; + max_write_delay = 4500; + mode = 0x41; + delay = 10; + blocksize = 64; + readsize = 256; + read_lo = "0010.0000--000a.aaaa--aaaa.aaaa--oooo.oooo"; + read_hi = "0010.1000--000a.aaaa--aaaa.aaaa--oooo.oooo"; + loadpage_lo = "0100.0000--0000.0000--00aa.aaaa--iiii.iiii"; + loadpage_hi = "0100.1000--0000.0000--00aa.aaaa--iiii.iiii"; + writepage = "0100.1100--000a.aaaa--aa00.0000--xxxx.xxxx"; + ; + + memory "lfuse" + size = 1; + initval = 0x62; + min_write_delay = 4500; + max_write_delay = 4500; + read = "0101.0000--0000.0000--xxxx.xxxx--oooo.oooo"; + write = "1010.1100--1010.0000--xxxx.xxxx--iiii.iiii"; + ; + + memory "hfuse" + size = 1; + initval = 0xd9; + min_write_delay = 4500; + max_write_delay = 4500; + read = "0101.1000--0000.1000--xxxx.xxxx--oooo.oooo"; + write = "1010.1100--1010.1000--xxxx.xxxx--iiii.iiii"; + ; + + memory "efuse" + size = 1; + initval = 0xfd; + min_write_delay = 4500; + max_write_delay = 4500; + read = "0101.0000--0000.1000--xxxx.xxxx--oooo.oooo"; + write = "1010.1100--1010.0100--xxxx.xxxx--iiii.iiii"; + ; + + memory "lock" + size = 1; + initval = 0xff; + bitmask = 0x3f; + min_write_delay = 4500; + max_write_delay = 4500; + read = "0101.1000--0000.0000--xxxx.xxxx--11oo.oooo"; + write = "1010.1100--111x.xxxx--xxxx.xxxx--11ii.iiii"; + ; + + memory "signature" + size = 3; + read = "0011.0000--000x.xxxx--xxxx.xxaa--oooo.oooo"; + ; + + memory "calibration" + size = 1; + read = "0011.0000--000x.xxxx--xxxx.xxaa--oooo.oooo"; + ; +; + +#------------------------------------------------------------ +# AT90PWM81 +#------------------------------------------------------------ + +part parent "pwm161" + desc = "AT90PWM81"; + id = "pwm81"; + variants = + "AT90PWM81: N/A, Fmax=16 MHz, T=[N/A, N/A], Vcc=[2.7 V, 5.5 V]", + "AT90PWM81-16MF: QFN32, Fmax=16 MHz, T=[-40 C, 125 C], Vcc=[2.7 V, 5.5 V]", + "AT90PWM81-16MN: QFN32, Fmax=16 MHz, T=[-40 C, 105 C], Vcc=[2.7 V, 5.5 V]", + "AT90PWM81-16SF: SOIC20, Fmax=16 MHz, T=[-40 C, 125 C], Vcc=[2.7 V, 5.5 V]", + "AT90PWM81-16SN: SOIC20, Fmax=16 MHz, T=[-40 C, 105 C], Vcc=[2.7 V, 5.5 V]", + "AT90PWM81EP-16MN: QFN32, Fmax=16 MHz, T=[-40 C, 105 C], Vcc=[2.7 V, 5.5 V]"; + mcuid = 173; + signature = 0x1e 0x93 0x88; + + memory "flash" + size = 8192; + page_size = 64; + read_lo = "0010.0000--0000.aaaa--aaaa.aaaa--oooo.oooo"; + read_hi = "0010.1000--0000.aaaa--aaaa.aaaa--oooo.oooo"; + loadpage_lo = "0100.0000--0000.0000--000a.aaaa--iiii.iiii"; + loadpage_hi = "0100.1000--0000.0000--000a.aaaa--iiii.iiii"; + writepage = "0100.1100--0000.aaaa--aaa0.0000--xxxx.xxxx"; + ; +; + #------------------------------------------------------------ # AT90PWM316 #------------------------------------------------------------ @@ -8531,6 +11472,10 @@ part parent "pwm2b" part parent "pwm3b" desc = "AT90PWM316"; id = "pwm316"; + variants = + "AT90PWM316: N/A, Fmax=16 MHz, T=[N/A, N/A], Vcc=[2.7 V, 5.5 V]", + "AT90PWM316-16MU: QFN32, Fmax=16 MHz, T=[-40 C, 105 C], Vcc=[2.7 V, 5.5 V]", + "AT90PWM316-16MUR: QFN32, Fmax=16 MHz, T=[-40 C, 105 C], Vcc=[2.7 V, 5.5 V]"; mcuid = 180; boot_section_size = 512; signature = 0x1e 0x94 0x83; @@ -8538,8 +11483,6 @@ part parent "pwm3b" memory "flash" size = 0x4000; page_size = 128; - mode = 33; - blocksize = 128; read_lo = "0010.0000--00aa.aaaa--aaaa.aaaa--oooo.oooo"; read_hi = "0010.1000--00aa.aaaa--aaaa.aaaa--oooo.oooo"; loadpage_lo = "0100.0000--00xx.xxxx--xxaa.aaaa--iiii.iiii"; @@ -8556,6 +11499,10 @@ part parent "pwm3b" part parent "pwm316" desc = "AT90PWM216"; id = "pwm216"; + variants = + "AT90PWM216: N/A, Fmax=N/A, T=[N/A, N/A], Vcc=[2.7 V, 5.5 V]", + "AT90PWM216-16SU: SOIC24, Fmax=16 MHz, T=[-40 C, 105 C], Vcc=[2.7 V, 5.5 V]", + "AT90PWM216-16SUR: SOIC24, Fmax=16 MHz, T=[-40 C, 105 C], Vcc=[2.7 V, 5.5 V]"; mcuid = 179; ; @@ -8566,6 +11513,49 @@ part parent "pwm316" part desc = "ATtiny25"; id = "t25"; + variants = + "ATtiny25: N/A, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[N/A, N/A]", + "ATtiny25-15ST: SOIC8, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny25-20MF: MLF20, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny25-20MFR: MLF20, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny25-20MU: MLF20, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny25-20MUR: MLF20, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny25-20PU: PDIP8, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny25-20SN: SOIC8, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny25-20SNR: SOIC8, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny25-20SSH: SOIC8, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny25-20SSHR: SOIC8, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny25-20SSN: SOIC8, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny25-20SSNR: SOIC8, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny25-20SSU: SOIC8N, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny25-20SSUR: SOIC8N, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny25-20SU: SOIC8, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny25-20SUR: SOIC8, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny25V-10MF: MLF20, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny25V-10MFR: MLF20, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny25V-10MU: MLF20, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny25V-10MUR: MLF20, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny25V-10PU: PDIP8, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny25V-10SH: SOIC8, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny25V-10SN: SOIC8, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny25V-10SNR: SOIC8, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny25V-10SSH: SOIC8, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny25V-10SSHR: SOIC8, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny25V-10SSN: SOIC8, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny25V-10SSNR: SOIC8, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny25V-10SSU: SOIC8N, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny25V-10SSUR: SOIC8N, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny25V-10SU: SOIC8, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny25V-10SUR: SOIC8, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny25V-20MF: MLF20, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny25V-20MU: MLF20, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny25V-20PU: PDIP8, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny25V-20SH: SOIC8, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny25V-20SN: SOIC8, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny25V-20SSH: SOIC8, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny25V-20SSN: SOIC8, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny25V-20SSU: SOIC8, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny25V-20SU: SOIC8, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]"; prog_modes = PM_SPM | PM_ISP | PM_HVSP | PM_debugWIRE; mcuid = 16; n_interrupts = 15; @@ -8607,6 +11597,7 @@ part programfusepolltimeout = 25; programlockpolltimeout = 25; synchcycles = 6; + idr = 0x22; spmcr = 0x57; eecr = 0x3c; ocdrev = 1; @@ -8618,9 +11609,8 @@ part page_size = 4; min_write_delay = 4000; max_write_delay = 4500; - readback = 0xff 0xff; - mode = 65; - delay = 6; + mode = 0x41; + delay = 5; blocksize = 4; readsize = 256; read = "1010.0000--000x.xxxx--xaaa.aaaa--oooo.oooo"; @@ -8636,9 +11626,8 @@ part num_pages = 64; min_write_delay = 4500; max_write_delay = 4500; - readback = 0xff 0xff; - mode = 65; - delay = 6; + mode = 0x41; + delay = 10; blocksize = 32; readsize = 256; read_lo = "0010.0000--0000.00aa--aaaa.aaaa--oooo.oooo"; @@ -8650,6 +11639,7 @@ part memory "lfuse" size = 1; + initval = 0x62; min_write_delay = 9000; max_write_delay = 9000; read = "0101.0000--0000.0000--xxxx.xxxx--oooo.oooo"; @@ -8658,6 +11648,7 @@ part memory "hfuse" size = 1; + initval = 0xdf; min_write_delay = 9000; max_write_delay = 9000; read = "0101.1000--0000.1000--xxxx.xxxx--oooo.oooo"; @@ -8666,6 +11657,8 @@ part memory "efuse" size = 1; + initval = 0xff; + bitmask = 0x01; min_write_delay = 9000; max_write_delay = 9000; read = "0101.0000--0000.1000--xxxx.xxxx--oooo.oooo"; @@ -8674,12 +11667,15 @@ part memory "lock" size = 1; + initval = 0xff; + bitmask = 0x03; min_write_delay = 9000; max_write_delay = 9000; read = "0101.1000--0000.0000--0000.0000--oooo.oooo"; write = "1010.1100--111x.xxxx--xxxx.xxxx--11ii.iiii"; ; -# ATtiny25 has Signature Bytes: 0x1E 0x91 0x08. + + # ATtiny25 has signature bytes 0x1E 0x91 0x08 memory "signature" size = 3; read = "0011.0000--000x.xxxx--xxxx.xxaa--oooo.oooo"; @@ -8698,6 +11694,29 @@ part part desc = "ATtiny45"; id = "t45"; + variants = + "ATtiny45: N/A, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[N/A, N/A]", + "ATtiny45-15SZ: SOIC8, Fmax=N/A, T=[-40 C, 85 C], Vcc=[N/A, N/A]", + "ATtiny45-20MU: MLF20, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny45-20MUR: MLF20, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny45-20PU: PDIP8, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny45-20SU: SOIC8, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny45-20SUR: SOIC8, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny45-20XU: TSSOP8, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny45-20XUR: TSSOP8, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny45V-10MU: MLF20, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny45V-10MUR: MLF20, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny45V-10PU: PDIP8, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny45V-10SH: SOIC8, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny45V-10SU: SOIC8, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny45V-10SUR: SOIC8, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny45V-10XU: TSSOP8, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny45V-10XUR: TSSOP8, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny45V-20MU: MLF20, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny45V-20PU: PDIP8, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny45V-20SH: SOIC8, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny45V-20SU: SOIC8, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny45V-20XU: TSSOP8, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]"; prog_modes = PM_SPM | PM_ISP | PM_HVSP | PM_debugWIRE; mcuid = 22; n_interrupts = 15; @@ -8738,6 +11757,7 @@ part programfusepolltimeout = 25; programlockpolltimeout = 25; synchcycles = 6; + idr = 0x22; spmcr = 0x57; eecr = 0x3c; ocdrev = 1; @@ -8749,9 +11769,8 @@ part page_size = 4; min_write_delay = 4000; max_write_delay = 4500; - readback = 0xff 0xff; - mode = 65; - delay = 6; + mode = 0x41; + delay = 5; blocksize = 4; readsize = 256; read = "1010.0000--000x.xxxx--aaaa.aaaa--oooo.oooo"; @@ -8767,10 +11786,9 @@ part num_pages = 64; min_write_delay = 4500; max_write_delay = 4500; - readback = 0xff 0xff; - mode = 65; - delay = 6; - blocksize = 32; + mode = 0x41; + delay = 10; + blocksize = 64; readsize = 256; read_lo = "0010.0000--0000.0aaa--aaaa.aaaa--oooo.oooo"; read_hi = "0010.1000--0000.0aaa--aaaa.aaaa--oooo.oooo"; @@ -8781,6 +11799,7 @@ part memory "lfuse" size = 1; + initval = 0x62; min_write_delay = 9000; max_write_delay = 9000; read = "0101.0000--0000.0000--xxxx.xxxx--oooo.oooo"; @@ -8789,6 +11808,7 @@ part memory "hfuse" size = 1; + initval = 0xdf; min_write_delay = 9000; max_write_delay = 9000; read = "0101.1000--0000.1000--xxxx.xxxx--oooo.oooo"; @@ -8797,6 +11817,8 @@ part memory "efuse" size = 1; + initval = 0xff; + bitmask = 0x01; min_write_delay = 9000; max_write_delay = 9000; read = "0101.0000--0000.1000--xxxx.xxxx--oooo.oooo"; @@ -8805,12 +11827,15 @@ part memory "lock" size = 1; + initval = 0xff; + bitmask = 0x03; min_write_delay = 9000; max_write_delay = 9000; read = "0101.1000--0000.0000--0000.0000--oooo.oooo"; write = "1010.1100--111x.xxxx--xxxx.xxxx--11ii.iiii"; ; -# ATtiny45 has Signature Bytes: 0x1E 0x92 0x08. (Data sheet 2586C-AVR-06/05 (doc2586.pdf) indicates otherwise!) + + # ATtiny45 has signature bytes 0x1E 0x92 0x08 (data sheet 2586C-AVR-06/05 doc2586.pdf indicates otherwise) memory "signature" size = 3; read = "0011.0000--000x.xxxx--xxxx.xxaa--oooo.oooo"; @@ -8829,6 +11854,25 @@ part part desc = "ATtiny85"; id = "t85"; + variants = + "ATtiny85: N/A, Fmax=20 MHz, T=[N/A, 85 C], Vcc=[N/A, N/A]", + "ATtiny85-20MU: MLF20, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny85-20MUR: MLF20, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny85-20PU: PDIP8, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny85-20SF: SOIC8, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny85-20SFR: SOIC8, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny85-20SU: SOIC8, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny85-20SUR: SOIC8, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny85V-10MU: MLF20, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny85V-10MUR: MLF20, Fmax=10 MHz, T=[N/A, N/A], Vcc=[1.8 V, 5.5 V]", + "ATtiny85V-10PU: PDIP8, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny85V-10SH: SOIC8, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny85V-10SU: SOIC8, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny85V-10SUR: SOIC8, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny85V-20MU: MLF20, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny85V-20PU: PDIP8, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny85V-20SH: SOIC8, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny85V-20SU: SOIC8, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]"; prog_modes = PM_SPM | PM_ISP | PM_HVSP | PM_debugWIRE; mcuid = 26; n_interrupts = 15; @@ -8870,6 +11914,7 @@ part programfusepolltimeout = 25; programlockpolltimeout = 25; synchcycles = 6; + idr = 0x22; spmcr = 0x57; eecr = 0x3c; ocdrev = 1; @@ -8881,9 +11926,8 @@ part page_size = 4; min_write_delay = 4000; max_write_delay = 4500; - readback = 0xff 0xff; - mode = 65; - delay = 6; + mode = 0x41; + delay = 5; blocksize = 4; readsize = 256; read = "1010.0000--000x.xxxa--aaaa.aaaa--oooo.oooo"; @@ -8899,10 +11943,9 @@ part num_pages = 128; min_write_delay = 4500; max_write_delay = 4500; - readback = 0xff 0xff; - mode = 65; - delay = 6; - blocksize = 32; + mode = 0x41; + delay = 10; + blocksize = 64; readsize = 256; read_lo = "0010.0000--0000.aaaa--aaaa.aaaa--oooo.oooo"; read_hi = "0010.1000--0000.aaaa--aaaa.aaaa--oooo.oooo"; @@ -8913,6 +11956,7 @@ part memory "lfuse" size = 1; + initval = 0x62; min_write_delay = 9000; max_write_delay = 9000; read = "0101.0000--0000.0000--xxxx.xxxx--oooo.oooo"; @@ -8921,6 +11965,7 @@ part memory "hfuse" size = 1; + initval = 0xdf; min_write_delay = 9000; max_write_delay = 9000; read = "0101.1000--0000.1000--xxxx.xxxx--oooo.oooo"; @@ -8929,6 +11974,8 @@ part memory "efuse" size = 1; + initval = 0xff; + bitmask = 0x01; min_write_delay = 9000; max_write_delay = 9000; read = "0101.0000--0000.1000--xxxx.xxxx--oooo.oooo"; @@ -8937,12 +11984,15 @@ part memory "lock" size = 1; + initval = 0xff; + bitmask = 0x03; min_write_delay = 9000; max_write_delay = 9000; read = "0101.1000--0000.0000--0000.0000--oooo.oooo"; write = "1010.1100--111x.xxxx--xxxx.xxxx--11ii.iiii"; ; -# ATtiny85 has Signature Bytes: 0x1E 0x93 0x08. + + # ATtiny85 has signature bytes 0x1E 0x93 0x08 memory "signature" size = 3; read = "0011.0000--000x.xxxx--xxxx.xxaa--oooo.oooo"; @@ -8962,6 +12012,15 @@ part part desc = "ATmega640"; id = "m640"; + variants = + "ATmega640: N/A, Fmax=16 MHz, T=[N/A, N/A], Vcc=[N/A, N/A]", + "ATmega640-16AU: TQFP100, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega640-16AUR: TQFP100, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega640-16CU: CBGA100, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega640V-8AU: TQFP100, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega640V-8AUR: TQFP100, Fmax=8 MHz, T=[N/A, N/A], Vcc=[1.8 V, 5.5 V]", + "ATmega640V-8CU: CBGA100, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega640V-8CUR: TFBGA100, Fmax=8 MHz, T=[N/A, N/A], Vcc=[1.8 V, 5.5 V]"; prog_modes = PM_SPM | PM_ISP | PM_HVPP | PM_JTAG; mcuid = 126; n_interrupts = 57; @@ -8994,12 +12053,13 @@ part poweroffdelay = 15; resetdelayms = 1; hvleavestabdelay = 15; + resetdelay = 15; chiperasepolltimeout = 10; programfusepolltimeout = 5; programlockpolltimeout = 5; idr = 0x31; - rampz = 0x3b; spmcr = 0x57; + eecr = 0x3f; ocdrev = 3; chip_erase = "1010.1100--1000.0000--xxxx.xxxx--xxxx.xxxx"; pgm_enable = "1010.1100--0101.0011--xxxx.xxxx--xxxx.xxxx"; @@ -9009,7 +12069,7 @@ part page_size = 8; min_write_delay = 9000; max_write_delay = 9000; - mode = 65; + mode = 0x41; delay = 10; blocksize = 8; readsize = 256; @@ -9026,7 +12086,7 @@ part num_pages = 256; min_write_delay = 4500; max_write_delay = 4500; - mode = 65; + mode = 0x41; delay = 10; blocksize = 256; readsize = 256; @@ -9039,6 +12099,7 @@ part memory "lfuse" size = 1; + initval = 0x62; min_write_delay = 9000; max_write_delay = 9000; read = "0101.0000--0000.0000--xxxx.xxxx--oooo.oooo"; @@ -9047,6 +12108,7 @@ part memory "hfuse" size = 1; + initval = 0x99; min_write_delay = 9000; max_write_delay = 9000; read = "0101.1000--0000.1000--xxxx.xxxx--oooo.oooo"; @@ -9055,6 +12117,8 @@ part memory "efuse" size = 1; + initval = 0xff; + bitmask = 0x07; min_write_delay = 9000; max_write_delay = 9000; read = "0101.0000--0000.1000--xxxx.xxxx--oooo.oooo"; @@ -9063,6 +12127,8 @@ part memory "lock" size = 1; + initval = 0xff; + bitmask = 0x3f; min_write_delay = 9000; max_write_delay = 9000; read = "0101.1000--0000.0000--xxxx.xxxx--oooo.oooo"; @@ -9087,6 +12153,14 @@ part part desc = "ATmega1280"; id = "m1280"; + variants = + "ATmega1280: TQFP100, Fmax=16 MHz, T=[N/A, N/A], Vcc=[4.5 V, 5.5 V]", + "ATmega1280-16AU: TQFP100, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega1280-16AUR: TQFP100, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega1280-16CU: CBGA100, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega1280V-8AU: TQFP100, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega1280V-8AUR: TQFP100, Fmax=8 MHz, T=[N/A, N/A], Vcc=[1.8 V, 5.5 V]", + "ATmega1280V-8CU: CBGA100, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; prog_modes = PM_SPM | PM_ISP | PM_HVPP | PM_JTAG; mcuid = 138; n_interrupts = 57; @@ -9119,12 +12193,14 @@ part poweroffdelay = 15; resetdelayms = 1; hvleavestabdelay = 15; + resetdelay = 15; chiperasepolltimeout = 10; programfusepolltimeout = 5; programlockpolltimeout = 5; idr = 0x31; rampz = 0x3b; spmcr = 0x57; + eecr = 0x3f; ocdrev = 3; chip_erase = "1010.1100--1000.0000--xxxx.xxxx--xxxx.xxxx"; pgm_enable = "1010.1100--0101.0011--xxxx.xxxx--xxxx.xxxx"; @@ -9134,7 +12210,7 @@ part page_size = 8; min_write_delay = 9000; max_write_delay = 9000; - mode = 65; + mode = 0x41; delay = 10; blocksize = 8; readsize = 256; @@ -9151,7 +12227,7 @@ part num_pages = 512; min_write_delay = 4500; max_write_delay = 4500; - mode = 65; + mode = 0x41; delay = 10; blocksize = 256; readsize = 256; @@ -9164,6 +12240,7 @@ part memory "lfuse" size = 1; + initval = 0x62; min_write_delay = 9000; max_write_delay = 9000; read = "0101.0000--0000.0000--xxxx.xxxx--oooo.oooo"; @@ -9172,6 +12249,7 @@ part memory "hfuse" size = 1; + initval = 0x99; min_write_delay = 9000; max_write_delay = 9000; read = "0101.1000--0000.1000--xxxx.xxxx--oooo.oooo"; @@ -9180,6 +12258,8 @@ part memory "efuse" size = 1; + initval = 0xff; + bitmask = 0x07; min_write_delay = 9000; max_write_delay = 9000; read = "0101.0000--0000.1000--xxxx.xxxx--oooo.oooo"; @@ -9188,6 +12268,8 @@ part memory "lock" size = 1; + initval = 0xff; + bitmask = 0x3f; min_write_delay = 9000; max_write_delay = 9000; read = "0101.1000--0000.0000--xxxx.xxxx--oooo.oooo"; @@ -9213,6 +12295,16 @@ part part parent "m1280" desc = "ATmega1281"; id = "m1281"; + variants = + "ATmega1281: N/A, Fmax=16 MHz, T=[N/A, N/A], Vcc=[4.5 V, 5.5 V]", + "ATmega1281-16AU: TQFP64, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega1281-16AUR: TQFP64, Fmax=16 MHz, T=[N/A, N/A], Vcc=[2.7 V, 5.5 V]", + "ATmega1281-16MU: QFN64, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega1281-16MUR: QFN64, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega1281V-8AU: TQFP64, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega1281V-8AUR: QFN64, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega1281V-8MU: MLF64, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega1281V-8MUR: MLF64, Fmax=8 MHz, T=[N/A, N/A], Vcc=[1.8 V, 5.5 V]"; mcuid = 139; signature = 0x1e 0x97 0x04; ; @@ -9224,6 +12316,14 @@ part parent "m1280" part desc = "ATmega2560"; id = "m2560"; + variants = + "ATmega2560: TQFP100, Fmax=16 MHz, T=[N/A, N/A], Vcc=[4.5 V, 5.5 V]", + "ATmega2560-16AU: TQFP100, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[4.5 V, 5.5 V]", + "ATmega2560-16AUR: TQFP100, Fmax=16 MHz, T=[N/A, N/A], Vcc=[4.5 V, 5.5 V]", + "ATmega2560-16CU: CBGA100, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[4.5 V, 5.5 V]", + "ATmega2560V-8AU: TQFP100, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega2560V-8AUR: TQFP100, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega2560V-8CU: CBGA100, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; prog_modes = PM_SPM | PM_ISP | PM_HVPP | PM_JTAG; mcuid = 143; n_interrupts = 57; @@ -9251,17 +12351,20 @@ part 0x66, 0x76, 0x67, 0x77, 0x6a, 0x7a, 0x6b, 0x7b, 0xbe, 0xfd, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02; hventerstabdelay = 100; - latchcycles = 5; + latchcycles = 6; togglevtg = 1; poweroffdelay = 15; resetdelayms = 1; hvleavestabdelay = 15; + resetdelay = 15; chiperasepolltimeout = 10; programfusepolltimeout = 5; programlockpolltimeout = 5; idr = 0x31; rampz = 0x3b; spmcr = 0x57; + eecr = 0x3f; + eind = 0x5c; ocdrev = 4; chip_erase = "1010.1100--1000.0000--xxxx.xxxx--xxxx.xxxx"; pgm_enable = "1010.1100--0101.0011--xxxx.xxxx--xxxx.xxxx"; @@ -9271,7 +12374,7 @@ part page_size = 8; min_write_delay = 9000; max_write_delay = 9000; - mode = 65; + mode = 0x41; delay = 10; blocksize = 8; readsize = 256; @@ -9288,7 +12391,7 @@ part num_pages = 1024; min_write_delay = 4500; max_write_delay = 4500; - mode = 65; + mode = 0x41; delay = 10; blocksize = 256; readsize = 256; @@ -9302,6 +12405,7 @@ part memory "lfuse" size = 1; + initval = 0x62; min_write_delay = 9000; max_write_delay = 9000; read = "0101.0000--0000.0000--xxxx.xxxx--oooo.oooo"; @@ -9310,6 +12414,7 @@ part memory "hfuse" size = 1; + initval = 0x99; min_write_delay = 9000; max_write_delay = 9000; read = "0101.1000--0000.1000--xxxx.xxxx--oooo.oooo"; @@ -9318,6 +12423,8 @@ part memory "efuse" size = 1; + initval = 0xff; + bitmask = 0x07; min_write_delay = 9000; max_write_delay = 9000; read = "0101.0000--0000.1000--xxxx.xxxx--oooo.oooo"; @@ -9326,6 +12433,8 @@ part memory "lock" size = 1; + initval = 0xff; + bitmask = 0x3f; min_write_delay = 9000; max_write_delay = 9000; read = "0101.1000--0000.0000--xxxx.xxxx--oooo.oooo"; @@ -9350,6 +12459,16 @@ part part parent "m2560" desc = "ATmega2561"; id = "m2561"; + variants = + "ATmega2561: N/A, Fmax=16 MHz, T=[N/A, N/A], Vcc=[N/A, N/A]", + "ATmega2561-16AU: TQFP64, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[4.5 V, 5.5 V]", + "ATmega2561-16AUR: TQFP64, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[4.5 V, 5.5 V]", + "ATmega2561-16MU: MLF64, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[4.5 V, 5.5 V]", + "ATmega2561-16MUR: VQFN64, Fmax=16 MHz, T=[N/A, N/A], Vcc=[4.5 V, 5.5 V]", + "ATmega2561V-8AU: TQFP64, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega2561V-8AUR: TQFP64, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega2561V-8MU: MLF64, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega2561V-8MUR: VQFN64, Fmax=8 MHz, T=[N/A, N/A], Vcc=[1.8 V, 5.5 V]"; mcuid = 144; signature = 0x1e 0x98 0x02; ; @@ -9362,73 +12481,164 @@ part parent "m2560" part parent "m2561" desc = "ATmega128RFA1"; id = "m128rfa1"; + variants = + "ATmega128RFA1: N/A, Fmax=N/A, T=[N/A, N/A], Vcc=[1.8 V, 3.6 V]", + "ATmega128RFA1-ZF: VFQFN64, Fmax=N/A, T=[-40 C, 125 C], Vcc=[1.8 V, 3.6 V]", + "ATmega128RFA1-ZFR: VFQFN64, Fmax=N/A, T=[-40 C, 125 C], Vcc=[1.8 V, 3.6 V]", + "ATmega128RFA1-ZU: VFQFN64, Fmax=N/A, T=[-40 C, 85 C], Vcc=[1.8 V, 3.6 V]", + "ATmega128RFA1-ZU00: VFQFN64, Fmax=N/A, T=[-40 C, 85 C], Vcc=[1.8 V, 3.6 V]", + "ATmega128RFA1-ZUR: VFQFN64, Fmax=N/A, T=[-40 C, 85 C], Vcc=[1.8 V, 3.6 V]", + "ATmega128RFA1-ZUR-SL514: VFQFN64, Fmax=N/A, T=[-40 C, 85 C], Vcc=[1.8 V, 3.6 V]", + "ATmega128RFA1-ZUR00: VFQFN64, Fmax=N/A, T=[-40 C, 85 C], Vcc=[1.8 V, 3.6 V]"; mcuid = 87; n_interrupts = 72; - chip_erase_delay = 55000; + chip_erase_delay = 18500; bs2 = 0xe2; signature = 0x1e 0xa7 0x01; + pp_controlstack = + 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; + latchcycles = 5; ocdrev = 3; + memory "eeprom" + min_write_delay = 13000; + max_write_delay = 13000; + delay = 50; + ; + memory "flash" size = 0x20000; num_pages = 512; - min_write_delay = 50000; - max_write_delay = 50000; - delay = 20; + delay = 50; load_ext_addr = NULL; ; + + memory "lfuse" + min_write_delay = 4500; + max_write_delay = 4500; + ; + + memory "hfuse" + min_write_delay = 4500; + max_write_delay = 4500; + ; + + memory "efuse" + min_write_delay = 4500; + max_write_delay = 4500; + ; + + memory "lock" + min_write_delay = 4500; + max_write_delay = 4500; + ; ; #------------------------------------------------------------ # ATmega256RFR2 #------------------------------------------------------------ -part parent "m2561" +part parent "m128rfa1" desc = "ATmega256RFR2"; id = "m256rfr2"; + variants = + "ATmega256RFR2-ZF: VFQFN64, Fmax=16 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 3.6 V]", + "ATmega256RFR2-ZFR: VFQFN64, Fmax=16 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 3.6 V]", + "ATmega256RFR2-ZU: VFQFN64, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 3.6 V]", + "ATmega256RFR2-ZUR: VFQFN64, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 3.6 V]"; mcuid = 108; n_interrupts = 77; - chip_erase_delay = 18500; - bs2 = 0xe2; signature = 0x1e 0xa8 0x02; + chiperasepolltimeout = 20; + ocdrev = 4; memory "eeprom" size = 8192; - min_write_delay = 13000; - max_write_delay = 13000; read = "1010.0000--xxxa.aaaa--aaaa.aaaa--oooo.oooo"; write = "1100.0000--xxxa.aaaa--aaaa.aaaa--iiii.iiii"; writepage = "1100.0010--00xa.aaaa--aaaa.a000--xxxx.xxxx"; ; + + memory "flash" + size = 0x40000; + num_pages = 1024; + load_ext_addr = "0100.1101--0000.0000--0000.000a--0000.0000"; + ; + + memory "efuse" + initval = 0xfe; + ; + + ##### + # Three separate flash pages + # - Offset 0x100 in signature row + # - Only programmable with JTAG or HVPP + # - Readable from an application + # - Cannot be read using ISP + # - Not erased by chip erase + # + memory "usersig" + paged = yes; + size = 768; + page_size = 256; + num_pages = 3; + offset = 0x100; + min_write_delay = 4500; + max_write_delay = 4500; + mode = 0x41; + delay = 50; + blocksize = 256; + readsize = 256; + ; ; #------------------------------------------------------------ # ATmega128RFR2 #------------------------------------------------------------ -part parent "m128rfa1" +part parent "m256rfr2" desc = "ATmega128RFR2"; id = "m128rfr2"; + variants = + "ATmega128RFR2-ZF: VFQFN64, Fmax=16 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 3.6 V]", + "ATmega128RFR2-ZFR: VFQFN64, Fmax=16 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 3.6 V]", + "ATmega128RFR2-ZU: VFQFN64, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 3.6 V]", + "ATmega128RFR2-ZUR: VFQFN64, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 3.6 V]"; mcuid = 88; - n_interrupts = 77; signature = 0x1e 0xa7 0x02; + ocdrev = 3; + + memory "eeprom" + size = 4096; + ; + + memory "flash" + size = 0x20000; + num_pages = 512; + load_ext_addr = NULL; + ; ; #------------------------------------------------------------ # ATmega64RFR2 #------------------------------------------------------------ -part parent "m128rfa1" +part parent "m128rfr2" desc = "ATmega64RFR2"; id = "m64rfr2"; + variants = + "ATmega64RFR2-ZF: VFQFN64, Fmax=16 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 3.6 V]", + "ATmega64RFR2-ZFR: VFQFN64, Fmax=16 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 3.6 V]", + "ATmega64RFR2-ZU: VFQFN64, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 3.6 V]", + "ATmega64RFR2-ZUR: VFQFN64, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 3.6 V]"; mcuid = 78; - n_interrupts = 77; signature = 0x1e 0xa6 0x02; memory "eeprom" size = 2048; - min_write_delay = 13000; - max_write_delay = 13000; read = "1010.0000--xxxx.xaaa--aaaa.aaaa--oooo.oooo"; write = "1100.0000--xxxx.xaaa--aaaa.aaaa--iiii.iiii"; writepage = "1100.0010--00xx.xaaa--aaaa.a000--xxxx.xxxx"; @@ -9450,6 +12660,11 @@ part parent "m128rfa1" part parent "m256rfr2" desc = "ATmega2564RFR2"; id = "m2564rfr2"; + variants = + "ATmega2564RFR2-ZF: VFQFN48, Fmax=16 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 3.6 V]", + "ATmega2564RFR2-ZFR: VFQFN48, Fmax=16 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 3.6 V]", + "ATmega2564RFR2-ZU: VFQFN48, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 3.6 V]", + "ATmega2564RFR2-ZUR: VFQFN48, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 3.6 V]"; mcuid = 145; signature = 0x1e 0xa8 0x03; ; @@ -9461,6 +12676,11 @@ part parent "m256rfr2" part parent "m128rfr2" desc = "ATmega1284RFR2"; id = "m1284rfr2"; + variants = + "ATmega1284RFR2-ZF: VFQFN48, Fmax=16 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 3.6 V]", + "ATmega1284RFR2-ZFR: VFQFN48, Fmax=16 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 3.6 V]", + "ATmega1284RFR2-ZU: VFQFN48, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 3.6 V]", + "ATmega1284RFR2-ZUR: VFQFN48, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 3.6 V]"; mcuid = 142; signature = 0x1e 0xa7 0x03; ; @@ -9472,6 +12692,11 @@ part parent "m128rfr2" part parent "m64rfr2" desc = "ATmega644RFR2"; id = "m644rfr2"; + variants = + "ATmega644RFR2-ZF: VFQFN48, Fmax=16 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 3.6 V]", + "ATmega644RFR2-ZFR: VFQFN48, Fmax=16 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 3.6 V]", + "ATmega644RFR2-ZU: VFQFN48, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 3.6 V]", + "ATmega644RFR2-ZUR: VFQFN48, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 3.6 V]"; mcuid = 131; signature = 0x1e 0xa6 0x03; ; @@ -9483,6 +12708,18 @@ part parent "m64rfr2" part desc = "ATtiny24"; id = "t24"; + variants = + "ATtiny24: N/A, Fmax=20 MHz, T=[N/A, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny24-20MU: QFN20, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny24-20MUR: WQFN20, Fmax=20 MHz, T=[N/A, N/A], Vcc=[2.7 V, 5.5 V]", + "ATtiny24-20PU: PDIP14, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny24-20SSU: SOIC14N, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny24-20SSUR: SOIC14N, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny24V-10MU: MLF20, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny24V-10MUR: MLF20, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny24V-10PU: PDIP14, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny24V-10SSU: SOIC14N, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny24V-10SSUR: SOIC14N, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; prog_modes = PM_SPM | PM_ISP | PM_HVSP | PM_debugWIRE; mcuid = 14; n_interrupts = 17; @@ -9516,14 +12753,16 @@ part hventerstabdelay = 100; latchcycles = 1; togglevtg = 1; - poweroffdelay = 25; - resetdelayus = 70; + poweroffdelay = 50; + resetdelayus = 3; hvleavestabdelay = 100; resetdelay = 25; chiperasepolltimeout = 40; programfusepolltimeout = 25; programlockpolltimeout = 25; synchcycles = 6; + hvspcmdexedelay = 50; + idr = 0x27; spmcr = 0x57; eecr = 0x3c; ocdrev = 1; @@ -9535,9 +12774,8 @@ part page_size = 4; min_write_delay = 4000; max_write_delay = 4500; - readback = 0xff 0xff; - mode = 65; - delay = 6; + mode = 0x41; + delay = 10; blocksize = 4; readsize = 256; read = "1010.0000--000x.xxxx--xaaa.aaaa--oooo.oooo"; @@ -9553,9 +12791,8 @@ part num_pages = 64; min_write_delay = 4500; max_write_delay = 4500; - readback = 0xff 0xff; - mode = 65; - delay = 6; + mode = 0x41; + delay = 10; blocksize = 32; readsize = 256; read_lo = "0010.0000--0000.00aa--aaaa.aaaa--oooo.oooo"; @@ -9567,6 +12804,7 @@ part memory "lfuse" size = 1; + initval = 0x62; min_write_delay = 9000; max_write_delay = 9000; read = "0101.0000--0000.0000--xxxx.xxxx--oooo.oooo"; @@ -9575,6 +12813,7 @@ part memory "hfuse" size = 1; + initval = 0xdf; min_write_delay = 9000; max_write_delay = 9000; read = "0101.1000--0000.1000--xxxx.xxxx--oooo.oooo"; @@ -9583,6 +12822,8 @@ part memory "efuse" size = 1; + initval = 0xff; + bitmask = 0x01; min_write_delay = 9000; max_write_delay = 9000; read = "0101.0000--0000.1000--xxxx.xxxx--oooo.oooo"; @@ -9591,12 +12832,15 @@ part memory "lock" size = 1; + initval = 0xff; + bitmask = 0x03; min_write_delay = 9000; max_write_delay = 9000; read = "0101.1000--0000.0000--0000.0000--oooo.oooo"; write = "1010.1100--111x.xxxx--xxxx.xxxx--xxxx.xxii"; ; -# ATtiny24 has Signature Bytes: 0x1E 0x91 0x0B. + + # ATtiny24 has signature bytes 0x1E 0x91 0x0B memory "signature" size = 3; read = "0011.0000--000x.xxxx--xxxx.xxaa--oooo.oooo"; @@ -9615,6 +12859,25 @@ part part parent "t24" desc = "ATtiny24A"; id = "t24a"; + variants = + "ATtiny24A: N/A, Fmax=20 MHz, T=[N/A, N/A], Vcc=[1.8 V, 5.5 V]", + "ATtiny24A-CCU: UFBGA15, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny24A-CCUR: UFBGA15, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny24A-MF: QFN20, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny24A-MFR: QFN20, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny24A-MM8: VQFN20, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny24A-MM8R: VQFN20, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny24A-MMH: VQFN20, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny24A-MMHR: VQFN20, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny24A-MU: QFN20, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny24A-MUR: QFN20, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny24A-PU: PDIP14, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny24A-SSF: SOIC14, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny24A-SSFR: SOIC14, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny24A-SSN: SOIC14, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny24A-SSNR: SOIC14, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny24A-SSU: SOIC14, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny24A-SSUR: SOIC14N, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 15; ; @@ -9625,6 +12888,18 @@ part parent "t24" part desc = "ATtiny44"; id = "t44"; + variants = + "ATtiny44: N/A, Fmax=20 MHz, T=[N/A, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny44-20MU: QFN20, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny44-20MUR: WQFN20, Fmax=20 MHz, T=[N/A, N/A], Vcc=[2.7 V, 5.5 V]", + "ATtiny44-20PU: PDIP14, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny44-20SSU: SOIC14N, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny44-20SSUR: SOIC14N, Fmax=20 MHz, T=[N/A, N/A], Vcc=[2.7 V, 5.5 V]", + "ATtiny44V-10MU: MLF20, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny44V-10MUR: WQFN20, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny44V-10PU: PDIP14, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny44V-10SSU: SOIC14N, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny44V-10SSUR: SOIC14N, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; prog_modes = PM_SPM | PM_ISP | PM_HVSP | PM_debugWIRE; mcuid = 20; n_interrupts = 17; @@ -9658,14 +12933,16 @@ part hventerstabdelay = 100; latchcycles = 1; togglevtg = 1; - poweroffdelay = 25; - resetdelayus = 70; + poweroffdelay = 50; + resetdelayus = 3; hvleavestabdelay = 100; resetdelay = 25; chiperasepolltimeout = 40; programfusepolltimeout = 25; programlockpolltimeout = 25; synchcycles = 6; + hvspcmdexedelay = 50; + idr = 0x27; spmcr = 0x57; eecr = 0x3c; ocdrev = 1; @@ -9677,9 +12954,8 @@ part page_size = 4; min_write_delay = 4000; max_write_delay = 4500; - readback = 0xff 0xff; - mode = 65; - delay = 6; + mode = 0x41; + delay = 10; blocksize = 4; readsize = 256; read = "1010.0000--000x.xxxx--aaaa.aaaa--oooo.oooo"; @@ -9695,10 +12971,9 @@ part num_pages = 64; min_write_delay = 4500; max_write_delay = 4500; - readback = 0xff 0xff; - mode = 65; - delay = 6; - blocksize = 32; + mode = 0x41; + delay = 10; + blocksize = 64; readsize = 256; read_lo = "0010.0000--0000.0aaa--aaaa.aaaa--oooo.oooo"; read_hi = "0010.1000--0000.0aaa--aaaa.aaaa--oooo.oooo"; @@ -9709,6 +12984,7 @@ part memory "lfuse" size = 1; + initval = 0x62; min_write_delay = 9000; max_write_delay = 9000; read = "0101.0000--0000.0000--xxxx.xxxx--oooo.oooo"; @@ -9717,6 +12993,7 @@ part memory "hfuse" size = 1; + initval = 0xdf; min_write_delay = 9000; max_write_delay = 9000; read = "0101.1000--0000.1000--xxxx.xxxx--oooo.oooo"; @@ -9725,6 +13002,8 @@ part memory "efuse" size = 1; + initval = 0xff; + bitmask = 0x01; min_write_delay = 9000; max_write_delay = 9000; read = "0101.0000--0000.1000--xxxx.xxxx--oooo.oooo"; @@ -9733,12 +13012,15 @@ part memory "lock" size = 1; + initval = 0xff; + bitmask = 0x03; min_write_delay = 9000; max_write_delay = 9000; read = "0101.1000--0000.0000--0000.0000--oooo.oooo"; write = "1010.1100--111x.xxxx--xxxx.xxxx--xxxx.xxii"; ; -# ATtiny44 has Signature Bytes: 0x1E 0x92 0x07. + + # ATtiny44 has signature bytes 0x1E 0x92 0x07 memory "signature" size = 3; read = "0011.0000--000x.xxxx--xxxx.xxaa--oooo.oooo"; @@ -9757,7 +13039,24 @@ part part parent "t44" desc = "ATtiny44A"; id = "t44a"; - mcuid = 21; + variants = + "ATtiny44A: N/A, Fmax=20 MHz, T=[-40 C, N/A], Vcc=[1.8 V, 5.5 V]", + "ATtiny44A-CCU: UFBGA15, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny44A-CCUR: UFBGA15, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny44A-MF: QFN20, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny44A-MFR: QFN20, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny44A-MMH: VQFN20, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny44A-MMHR: VQFN20, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny44A-MU: QFN20, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny44A-MUR: QFN20, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny44A-PU: PDIP14, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny44A-SSF: SOIC14, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny44A-SSFR: SOIC14, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny44A-SSN: SOIC14, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny44A-SSNR: SOIC14, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny44A-SSU: SOIC14, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny44A-SSUR: SOIC14N, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; + mcuid = XVII + IV; # 21; ; #------------------------------------------------------------ @@ -9767,6 +13066,19 @@ part parent "t44" part desc = "ATtiny84"; id = "t84"; + variants = + "ATtiny84: N/A, Fmax=20 MHz, T=[N/A, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny84-15MZ: MLF20, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny84-20MU: MLF20, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny84-20MUR: WQFN20, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny84-20PU: PDIP14, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny84-20SSU: SOIC14, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny84-20SSUR: SOIC14N, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny84V-10MU: MLF20, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny84V-10MUR: WQFN20, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny84V-10PU: PDIP14, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny84V-10SSU: SOIC14, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny84V-10SSUR: SOIC14, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; prog_modes = PM_SPM | PM_ISP | PM_HVSP | PM_debugWIRE; mcuid = 24; n_interrupts = 17; @@ -9800,14 +13112,16 @@ part hventerstabdelay = 100; latchcycles = 1; togglevtg = 1; - poweroffdelay = 25; - resetdelayus = 70; + poweroffdelay = 50; + resetdelayus = 3; hvleavestabdelay = 100; resetdelay = 25; chiperasepolltimeout = 40; programfusepolltimeout = 25; programlockpolltimeout = 25; synchcycles = 6; + hvspcmdexedelay = 50; + idr = 0x27; spmcr = 0x57; eecr = 0x3c; ocdrev = 1; @@ -9819,9 +13133,8 @@ part page_size = 4; min_write_delay = 4000; max_write_delay = 4500; - readback = 0xff 0xff; - mode = 65; - delay = 6; + mode = 0x41; + delay = 10; blocksize = 4; readsize = 256; read = "1010.0000--000x.xxxa--aaaa.aaaa--oooo.oooo"; @@ -9837,10 +13150,9 @@ part num_pages = 128; min_write_delay = 4500; max_write_delay = 4500; - readback = 0xff 0xff; - mode = 65; - delay = 6; - blocksize = 32; + mode = 0x41; + delay = 10; + blocksize = 64; readsize = 256; read_lo = "0010.0000--0000.aaaa--aaaa.aaaa--oooo.oooo"; read_hi = "0010.1000--0000.aaaa--aaaa.aaaa--oooo.oooo"; @@ -9851,6 +13163,7 @@ part memory "lfuse" size = 1; + initval = 0x62; min_write_delay = 9000; max_write_delay = 9000; read = "0101.0000--0000.0000--xxxx.xxxx--oooo.oooo"; @@ -9859,6 +13172,7 @@ part memory "hfuse" size = 1; + initval = 0xdf; min_write_delay = 9000; max_write_delay = 9000; read = "0101.1000--0000.1000--xxxx.xxxx--oooo.oooo"; @@ -9867,6 +13181,8 @@ part memory "efuse" size = 1; + initval = 0xff; + bitmask = 0x01; min_write_delay = 9000; max_write_delay = 9000; read = "0101.0000--0000.1000--xxxx.xxxx--oooo.oooo"; @@ -9875,12 +13191,15 @@ part memory "lock" size = 1; + initval = 0xff; + bitmask = 0x03; min_write_delay = 9000; max_write_delay = 9000; read = "0101.1000--0000.0000--0000.0000--oooo.oooo"; write = "1010.1100--111x.xxxx--xxxx.xxxx--xxxx.xxii"; ; -# ATtiny84 has Signature Bytes: 0x1E 0x93 0x0C. + + # ATtiny84 has signature bytes 0x1E 0x93 0x0C memory "signature" size = 3; read = "0011.0000--000x.xxxx--xxxx.xxaa--oooo.oooo"; @@ -9899,6 +13218,20 @@ part part parent "t84" desc = "ATtiny84A"; id = "t84a"; + variants = + "ATtiny84A-CCU: UFBGA15, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny84A-CCUR: UFBGA15, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny84A-MF: WQFN20, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny84A-MFR: WQFN20, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny84A-MMH: VQFN20, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny84A-MMHR: VQFN20, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny84A-MU: QFN20, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny84A-MUR: QFN20, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny84A-PU: PDIP14, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny84A-SSF: SOIC14, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny84A-SSFR: SOIC14, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny84A-SSU: SOIC14, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny84A-SSUR: SOIC14, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 25; ; @@ -9909,10 +13242,21 @@ part parent "t84" part parent "t44" desc = "ATtiny441"; id = "t441"; + variants = + "ATtiny441-MMH: VQFN20, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[1.7 V, 5.5 V]", + "ATtiny441-MMHR: VQFN20, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[1.7 V, 5.5 V]", + "ATtiny441-MU: QFN20, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[1.7 V, 5.5 V]", + "ATtiny441-MUR: QFN20, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[1.7 V, 5.5 V]", + "ATtiny441-SSU: SOIC14, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[1.7 V, 5.5 V]", + "ATtiny441-SSUR: SOIC14, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[1.7 V, 5.5 V]"; mcuid = 32; n_interrupts = 30; n_page_erase = 4; signature = 0x1e 0x92 0x15; + poweroffdelay = 25; + resetdelayms = 1; + resetdelayus = 0; + hvspcmdexedelay = 0; memory "flash" page_size = 16; @@ -9923,7 +13267,12 @@ part parent "t44" writepage = "0100.1100--0000.0aaa--aaaa.axxx--xxxx.xxxx"; ; + memory "lfuse" + bitmask = 0xdf; + ; + memory "efuse" + bitmask = 0xff; write = "1010.1100--1010.0100--xxxx.xxxx--iiii.iiii"; ; ; @@ -9935,10 +13284,21 @@ part parent "t44" part parent "t84" desc = "ATtiny841"; id = "t841"; + variants = + "ATtiny841-MMH: VQFN20, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[1.7 V, 5.5 V]", + "ATtiny841-MMHR: VQFN20, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[1.7 V, 5.5 V]", + "ATtiny841-MU: QFN20, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[1.7 V, 5.5 V]", + "ATtiny841-MUR: QFN20, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[1.7 V, 5.5 V]", + "ATtiny841-SSU: SOIC14, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[1.7 V, 5.5 V]", + "ATtiny841-SSUR: SOIC14, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[1.7 V, 5.5 V]"; mcuid = 37; n_interrupts = 30; n_page_erase = 4; signature = 0x1e 0x93 0x15; + poweroffdelay = 25; + resetdelayms = 1; + resetdelayus = 0; + hvspcmdexedelay = 0; memory "flash" page_size = 16; @@ -9949,7 +13309,12 @@ part parent "t84" writepage = "0100.1100--0000.aaaa--aaaa.axxx--xxxx.xxxx"; ; + memory "lfuse" + bitmask = 0xdf; + ; + memory "efuse" + bitmask = 0xff; write = "1010.1100--1010.0100--xxxx.xxxx--iiii.iiii"; ; ; @@ -9961,6 +13326,12 @@ part parent "t84" part desc = "ATtiny43U"; id = "t43u"; + variants = + "ATtiny43U: N/A, Fmax=N/A, T=[N/A, N/A], Vcc=[0.7 V, 5.5 V]", + "ATtiny43U-MU: QFN20, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny43U-MUR: WQFN20, Fmax=8 MHz, T=[N/A, N/A], Vcc=[2.7 V, 5.5 V]", + "ATtiny43U-SU: SOIC20, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny43U-SUR: SOIC20, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; prog_modes = PM_SPM | PM_ISP | PM_HVPP | PM_debugWIRE; mcuid = 19; n_interrupts = 16; @@ -9969,6 +13340,8 @@ part # Try the AT90S2313 devcode: avr910_devcode = 0x20; chip_erase_delay = 1000; + pagel = 0xa3; + bs2 = 0xa2; signature = 0x1e 0x92 0x0c; reset = io; timeout = 200; @@ -9979,7 +13352,6 @@ part pollvalue = 0x53; predelay = 1; postdelay = 1; - pollmethod = 1; pp_controlstack = 0x0e, 0x1e, 0x0e, 0x1e, 0x2e, 0x3e, 0x2e, 0x3e, 0x4e, 0x5e, 0x4e, 0x5e, 0x6e, 0x7e, 0x6e, 0x7e, @@ -10000,8 +13372,10 @@ part chiperasepolltimeout = 10; programfusepolltimeout = 5; programlockpolltimeout = 5; + idr = 0x27; spmcr = 0x57; eecr = 0x3c; + ocdrev = 1; chip_erase = "1010.1100--100x.xxxx--xxxx.xxxx--xxxx.xxxx"; pgm_enable = "1010.1100--0101.0011--xxxx.xxxx--xxxx.xxxx"; @@ -10012,9 +13386,8 @@ part num_pages = 16; min_write_delay = 4000; max_write_delay = 4500; - readback = 0xff 0xff; - mode = 65; - delay = 5; + mode = 0x41; + delay = 10; blocksize = 4; readsize = 256; read = "1010.0000--000x.xxxx--00aa.aaaa--oooo.oooo"; @@ -10030,8 +13403,7 @@ part num_pages = 64; min_write_delay = 4500; max_write_delay = 4500; - readback = 0xff 0xff; - mode = 65; + mode = 0x41; delay = 10; blocksize = 64; readsize = 256; @@ -10044,6 +13416,7 @@ part memory "lfuse" size = 1; + initval = 0x62; min_write_delay = 4500; max_write_delay = 4500; read = "0101.0000--0000.0000--xxxx.xxxx--oooo.oooo"; @@ -10052,6 +13425,7 @@ part memory "hfuse" size = 1; + initval = 0xdf; min_write_delay = 4500; max_write_delay = 4500; read = "0101.1000--0000.1000--xxxx.xxxx--oooo.oooo"; @@ -10060,6 +13434,8 @@ part memory "efuse" size = 1; + initval = 0xff; + bitmask = 0x01; min_write_delay = 4500; max_write_delay = 4500; read = "0101.0000--0000.1000--xxxx.xxxx--oooo.oooo"; @@ -10068,6 +13444,8 @@ part memory "lock" size = 1; + initval = 0xff; + bitmask = 0x03; min_write_delay = 4500; max_write_delay = 4500; read = "0101.1000--0000.0000--xxxx.xxxx--oooo.oooo"; @@ -10092,6 +13470,13 @@ part part desc = "ATmega16U4"; id = "m16u4"; + variants = + "ATmega16U4-AU: TQFP44, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega16U4-AUR: TQFP44, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega16U4-MU: QFN44, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega16U4-MUR: VQFN44, Fmax=16 MHz, T=[N/A, N/A], Vcc=[2.7 V, 5.5 V]", + "ATmega16U4RC-AU: TQFP44, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega16U4RC-MU: QFN44, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]"; prog_modes = PM_SPM | PM_ISP | PM_HVPP | PM_JTAG; mcuid = 57; n_interrupts = 43; @@ -10121,16 +13506,16 @@ part 0xbe, 0xfd, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00; hventerstabdelay = 100; latchcycles = 5; - togglevtg = 1; poweroffdelay = 15; resetdelayms = 1; hvleavestabdelay = 15; + resetdelay = 15; chiperasepolltimeout = 10; programfusepolltimeout = 5; programlockpolltimeout = 5; idr = 0x31; - rampz = 0x3b; spmcr = 0x57; + eecr = 0x3f; ocdrev = 3; chip_erase = "1010.1100--1000.0000--xxxx.xxxx--xxxx.xxxx"; pgm_enable = "1010.1100--0101.0011--xxxx.xxxx--xxxx.xxxx"; @@ -10140,7 +13525,7 @@ part page_size = 4; min_write_delay = 9000; max_write_delay = 9000; - mode = 65; + mode = 0x41; delay = 20; blocksize = 4; readsize = 256; @@ -10157,7 +13542,7 @@ part num_pages = 128; min_write_delay = 4500; max_write_delay = 4500; - mode = 65; + mode = 0x41; delay = 6; blocksize = 128; readsize = 256; @@ -10170,6 +13555,7 @@ part memory "lfuse" size = 1; + initval = 0x52; min_write_delay = 9000; max_write_delay = 9000; read = "0101.0000--0000.0000--xxxx.xxxx--oooo.oooo"; @@ -10178,6 +13564,7 @@ part memory "hfuse" size = 1; + initval = 0x99; min_write_delay = 9000; max_write_delay = 9000; read = "0101.1000--0000.1000--xxxx.xxxx--oooo.oooo"; @@ -10186,6 +13573,8 @@ part memory "efuse" size = 1; + initval = 0xfb; + bitmask = 0x0f; min_write_delay = 9000; max_write_delay = 9000; read = "0101.0000--0000.1000--xxxx.xxxx--oooo.oooo"; @@ -10194,6 +13583,8 @@ part memory "lock" size = 1; + initval = 0xff; + bitmask = 0x3f; min_write_delay = 9000; max_write_delay = 9000; read = "0101.1000--0000.0000--xxxx.xxxx--00oo.oooo"; @@ -10218,6 +13609,15 @@ part part desc = "ATmega32U4"; id = "m32u4"; + variants = + "ATmega32U4-AU: TQFP44, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega32U4-AUR: TQFP44, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega32U4-MU: QFN44, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega32U4-MUR: QFN44, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega32U4RC-AU: TQFP44, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega32U4RC-AUR: QFP44, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega32U4RC-MU: QFN44, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega32U4RC-MUR: QFN44, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]"; prog_modes = PM_SPM | PM_ISP | PM_HVPP | PM_JTAG; mcuid = 65; n_interrupts = 43; @@ -10247,16 +13647,16 @@ part 0xbe, 0xfd, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00; hventerstabdelay = 100; latchcycles = 5; - togglevtg = 1; poweroffdelay = 15; resetdelayms = 1; hvleavestabdelay = 15; + resetdelay = 15; chiperasepolltimeout = 10; programfusepolltimeout = 5; programlockpolltimeout = 5; idr = 0x31; - rampz = 0x3b; spmcr = 0x57; + eecr = 0x3f; ocdrev = 3; chip_erase = "1010.1100--1000.0000--xxxx.xxxx--xxxx.xxxx"; pgm_enable = "1010.1100--0101.0011--xxxx.xxxx--xxxx.xxxx"; @@ -10266,7 +13666,7 @@ part page_size = 4; min_write_delay = 9000; max_write_delay = 9000; - mode = 65; + mode = 0x41; delay = 20; blocksize = 4; readsize = 256; @@ -10283,7 +13683,7 @@ part num_pages = 256; min_write_delay = 4500; max_write_delay = 4500; - mode = 65; + mode = 0x41; delay = 6; blocksize = 128; readsize = 256; @@ -10296,6 +13696,7 @@ part memory "lfuse" size = 1; + initval = 0x52; min_write_delay = 9000; max_write_delay = 9000; read = "0101.0000--0000.0000--xxxx.xxxx--oooo.oooo"; @@ -10304,6 +13705,7 @@ part memory "hfuse" size = 1; + initval = 0x99; min_write_delay = 9000; max_write_delay = 9000; read = "0101.1000--0000.1000--xxxx.xxxx--oooo.oooo"; @@ -10312,6 +13714,8 @@ part memory "efuse" size = 1; + initval = 0xfb; + bitmask = 0x0f; min_write_delay = 9000; max_write_delay = 9000; read = "0101.0000--0000.1000--xxxx.xxxx--oooo.oooo"; @@ -10320,6 +13724,8 @@ part memory "lock" size = 1; + initval = 0xff; + bitmask = 0x3f; min_write_delay = 9000; max_write_delay = 9000; read = "0101.1000--0000.0000--xxxx.xxxx--oooo.oooo"; @@ -10344,6 +13750,12 @@ part part desc = "AT90USB646"; id = "usb646"; + variants = + "AT90USB646: QFN64, Fmax=16 MHz, T=[N/A, N/A], Vcc=[2.7 V, 5.5 V]", + "AT90USB646-AU: TQFP64, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "AT90USB646-AUR: TQFP64, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "AT90USB646-MU: QFN64, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "AT90USB646-MUR: QFN64, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]"; prog_modes = PM_SPM | PM_ISP | PM_HVPP | PM_JTAG; mcuid = 181; n_interrupts = 38; @@ -10377,12 +13789,13 @@ part poweroffdelay = 15; resetdelayms = 1; hvleavestabdelay = 15; + resetdelay = 15; chiperasepolltimeout = 10; programfusepolltimeout = 5; programlockpolltimeout = 5; idr = 0x31; - rampz = 0x3b; spmcr = 0x57; + eecr = 0x3f; ocdrev = 3; chip_erase = "1010.1100--1000.0000--xxxx.xxxx--xxxx.xxxx"; pgm_enable = "1010.1100--0101.0011--xxxx.xxxx--xxxx.xxxx"; @@ -10392,7 +13805,7 @@ part page_size = 8; min_write_delay = 9000; max_write_delay = 9000; - mode = 65; + mode = 0x41; delay = 10; blocksize = 8; readsize = 256; @@ -10409,7 +13822,7 @@ part num_pages = 256; min_write_delay = 4500; max_write_delay = 4500; - mode = 65; + mode = 0x41; delay = 6; blocksize = 256; readsize = 256; @@ -10422,6 +13835,7 @@ part memory "lfuse" size = 1; + initval = 0x5e; min_write_delay = 9000; max_write_delay = 9000; read = "0101.0000--0000.0000--xxxx.xxxx--oooo.oooo"; @@ -10430,6 +13844,7 @@ part memory "hfuse" size = 1; + initval = 0x9b; min_write_delay = 9000; max_write_delay = 9000; read = "0101.1000--0000.1000--xxxx.xxxx--oooo.oooo"; @@ -10438,6 +13853,8 @@ part memory "efuse" size = 1; + initval = 0xf3; + bitmask = 0x0f; min_write_delay = 9000; max_write_delay = 9000; read = "0101.0000--0000.1000--xxxx.xxxx--oooo.oooo"; @@ -10446,6 +13863,8 @@ part memory "lock" size = 1; + initval = 0xff; + bitmask = 0x3f; min_write_delay = 9000; max_write_delay = 9000; read = "0101.1000--0000.0000--xxxx.xxxx--oooo.oooo"; @@ -10471,6 +13890,12 @@ part part parent "usb646" desc = "AT90USB647"; id = "usb647"; + variants = + "AT90USB647: N/A, Fmax=16 MHz, T=[N/A, N/A], Vcc=[2.7 V, 5.5 V]", + "AT90USB647-AU: TQFP64, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "AT90USB647-AUR: TQFP64, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "AT90USB647-MU: QFN64, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "AT90USB647-MUR: QFN64, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]"; mcuid = 182; ; @@ -10481,6 +13906,12 @@ part parent "usb646" part desc = "AT90USB1286"; id = "usb1286"; + variants = + "AT90USB1286: QFN64, Fmax=16 MHz, T=[N/A, N/A], Vcc=[2.7 V, 5.5 V]", + "AT90USB1286-AU: TQFP64, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "AT90USB1286-AUR: TQFP64, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "AT90USB1286-MU: QFN64, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "AT90USB1286-MUR: QFN64, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]"; prog_modes = PM_SPM | PM_ISP | PM_HVPP | PM_JTAG; mcuid = 184; n_interrupts = 38; @@ -10514,12 +13945,14 @@ part poweroffdelay = 15; resetdelayms = 1; hvleavestabdelay = 15; + resetdelay = 15; chiperasepolltimeout = 10; programfusepolltimeout = 5; programlockpolltimeout = 5; idr = 0x31; rampz = 0x3b; spmcr = 0x57; + eecr = 0x3f; ocdrev = 3; chip_erase = "1010.1100--1000.0000--xxxx.xxxx--xxxx.xxxx"; pgm_enable = "1010.1100--0101.0011--xxxx.xxxx--xxxx.xxxx"; @@ -10529,7 +13962,7 @@ part page_size = 8; min_write_delay = 9000; max_write_delay = 9000; - mode = 65; + mode = 0x41; delay = 10; blocksize = 8; readsize = 256; @@ -10546,7 +13979,7 @@ part num_pages = 512; min_write_delay = 4500; max_write_delay = 4500; - mode = 65; + mode = 0x41; delay = 6; blocksize = 256; readsize = 256; @@ -10559,6 +13992,7 @@ part memory "lfuse" size = 1; + initval = 0x5e; min_write_delay = 9000; max_write_delay = 9000; read = "0101.0000--0000.0000--xxxx.xxxx--oooo.oooo"; @@ -10567,6 +14001,7 @@ part memory "hfuse" size = 1; + initval = 0x99; min_write_delay = 9000; max_write_delay = 9000; read = "0101.1000--0000.1000--xxxx.xxxx--oooo.oooo"; @@ -10575,6 +14010,8 @@ part memory "efuse" size = 1; + initval = 0xf3; + bitmask = 0x0f; min_write_delay = 9000; max_write_delay = 9000; read = "0101.0000--0000.1000--xxxx.xxxx--oooo.oooo"; @@ -10583,6 +14020,8 @@ part memory "lock" size = 1; + initval = 0xff; + bitmask = 0x3f; min_write_delay = 9000; max_write_delay = 9000; read = "0101.1000--0000.0000--xxxx.xxxx--oooo.oooo"; @@ -10608,6 +14047,12 @@ part part parent "usb1286" desc = "AT90USB1287"; id = "usb1287"; + variants = + "AT90USB1287: N/A, Fmax=16 MHz, T=[N/A, N/A], Vcc=[2.7 V, 5.5 V]", + "AT90USB1287-AU: TQFP64, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "AT90USB1287-AUR: TQFP64, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "AT90USB1287-MU: QFN64, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "AT90USB1287-MUR: VQFN64, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]"; mcuid = 185; ; @@ -10618,6 +14063,12 @@ part parent "usb1286" part desc = "AT90USB162"; id = "usb162"; + variants = + "AT90USB162: N/A, Fmax=16 MHz, T=[N/A, N/A], Vcc=[2.7 V, 5.5 V]", + "AT90USB162-16AU: TQFP32, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "AT90USB162-16AUR: TQFP32, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "AT90USB162-16MU: QFN32, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "AT90USB162-16MUR: QFN32, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]"; prog_modes = PM_SPM | PM_ISP | PM_HVPP | PM_debugWIRE; mcuid = 178; n_interrupts = 29; @@ -10643,18 +14094,24 @@ part 0x4e, 0x5e, 0x4f, 0x5f, 0x6e, 0x7e, 0x6f, 0x7f, 0x66, 0x76, 0x67, 0x77, 0x6a, 0x7a, 0x6b, 0x7b, 0xbe, 0xfd, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00; + flash_instr = 0xb6, 0x01, 0x11; + eeprom_instr = + 0xbd, 0xf2, 0xbd, 0xe1, 0xbb, 0xcf, 0xb4, 0x00, + 0xbe, 0x01, 0xb6, 0x01, 0xbc, 0x00, 0xbb, 0xbf, + 0x99, 0xf9, 0xbb, 0xaf; hventerstabdelay = 100; latchcycles = 5; togglevtg = 1; poweroffdelay = 15; resetdelayms = 1; hvleavestabdelay = 15; + resetdelay = 15; chiperasepolltimeout = 10; programfusepolltimeout = 5; programlockpolltimeout = 5; + idr = 0x31; spmcr = 0x57; eecr = 0x3f; - eind = 0x5c; ocdrev = 1; chip_erase = "1010.1100--100x.xxxx--xxxx.xxxx--xxxx.xxxx"; pgm_enable = "1010.1100--0101.0011--xxxx.xxxx--xxxx.xxxx"; @@ -10665,7 +14122,7 @@ part num_pages = 128; min_write_delay = 9000; max_write_delay = 9000; - mode = 65; + mode = 0x41; delay = 20; blocksize = 4; readsize = 256; @@ -10682,7 +14139,7 @@ part num_pages = 128; min_write_delay = 4500; max_write_delay = 4500; - mode = 65; + mode = 0x41; delay = 6; blocksize = 128; readsize = 256; @@ -10695,6 +14152,7 @@ part memory "lfuse" size = 1; + initval = 0x5e; min_write_delay = 9000; max_write_delay = 9000; read = "0101.0000--0000.0000--xxxx.xxxx--oooo.oooo"; @@ -10703,6 +14161,7 @@ part memory "hfuse" size = 1; + initval = 0xd9; min_write_delay = 9000; max_write_delay = 9000; read = "0101.1000--0000.1000--xxxx.xxxx--oooo.oooo"; @@ -10711,6 +14170,8 @@ part memory "efuse" size = 1; + initval = 0xf4; + bitmask = 0x0f; min_write_delay = 9000; max_write_delay = 9000; read = "0101.0000--0000.1000--xxxx.xxxx--oooo.oooo"; @@ -10719,6 +14180,8 @@ part memory "lock" size = 1; + initval = 0xff; + bitmask = 0x3f; min_write_delay = 9000; max_write_delay = 9000; read = "0101.1000--0000.0000--xxxx.xxxx--oooo.oooo"; @@ -10743,6 +14206,10 @@ part part desc = "AT90USB82"; id = "usb82"; + variants = + "AT90USB82: QFN32, Fmax=16 MHz, T=[N/A, N/A], Vcc=[2.7 V, 5.5 V]", + "AT90USB82-16MU: QFN32, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "AT90USB82-16MUR: QFN32, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]"; prog_modes = PM_SPM | PM_ISP | PM_HVPP | PM_debugWIRE; mcuid = 174; n_interrupts = 29; @@ -10768,18 +14235,24 @@ part 0x4e, 0x5e, 0x4f, 0x5f, 0x6e, 0x7e, 0x6f, 0x7f, 0x66, 0x76, 0x67, 0x77, 0x6a, 0x7a, 0x6b, 0x7b, 0xbe, 0xfd, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00; + flash_instr = 0xb6, 0x01, 0x11; + eeprom_instr = + 0xbd, 0xf2, 0xbd, 0xe1, 0xbb, 0xcf, 0xb4, 0x00, + 0xbe, 0x01, 0xb6, 0x01, 0xbc, 0x00, 0xbb, 0xbf, + 0x99, 0xf9, 0xbb, 0xaf; hventerstabdelay = 100; latchcycles = 5; togglevtg = 1; poweroffdelay = 15; resetdelayms = 1; hvleavestabdelay = 15; + resetdelay = 15; chiperasepolltimeout = 10; programfusepolltimeout = 5; programlockpolltimeout = 5; + idr = 0x31; spmcr = 0x57; eecr = 0x3f; - eind = 0x5c; ocdrev = 1; chip_erase = "1010.1100--100x.xxxx--xxxx.xxxx--xxxx.xxxx"; pgm_enable = "1010.1100--0101.0011--xxxx.xxxx--xxxx.xxxx"; @@ -10790,7 +14263,7 @@ part num_pages = 128; min_write_delay = 9000; max_write_delay = 9000; - mode = 65; + mode = 0x41; delay = 20; blocksize = 4; readsize = 256; @@ -10807,7 +14280,7 @@ part num_pages = 64; min_write_delay = 4500; max_write_delay = 4500; - mode = 65; + mode = 0x41; delay = 6; blocksize = 128; readsize = 256; @@ -10820,6 +14293,7 @@ part memory "lfuse" size = 1; + initval = 0x5e; min_write_delay = 9000; max_write_delay = 9000; read = "0101.0000--0000.0000--xxxx.xxxx--oooo.oooo"; @@ -10828,6 +14302,7 @@ part memory "hfuse" size = 1; + initval = 0xd9; min_write_delay = 9000; max_write_delay = 9000; read = "0101.1000--0000.1000--xxxx.xxxx--oooo.oooo"; @@ -10836,6 +14311,8 @@ part memory "efuse" size = 1; + initval = 0xf4; + bitmask = 0x0f; min_write_delay = 9000; max_write_delay = 9000; read = "0101.0000--0000.1000--xxxx.xxxx--oooo.oooo"; @@ -10844,6 +14321,8 @@ part memory "lock" size = 1; + initval = 0xff; + bitmask = 0x3f; min_write_delay = 9000; max_write_delay = 9000; read = "0101.1000--0000.0000--xxxx.xxxx--oooo.oooo"; @@ -10868,6 +14347,11 @@ part part desc = "ATmega32U2"; id = "m32u2"; + variants = + "ATmega32U2-AU: TQFP32, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega32U2-AUR: TQFP32, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega32U2-MU: QFN32, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega32U2-MUR: VQFN32, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]"; prog_modes = PM_SPM | PM_ISP | PM_HVPP | PM_debugWIRE; mcuid = 64; n_interrupts = 29; @@ -10893,18 +14377,24 @@ part 0x4e, 0x5e, 0x4f, 0x5f, 0x6e, 0x7e, 0x6f, 0x7f, 0x66, 0x76, 0x67, 0x77, 0x6a, 0x7a, 0x6b, 0x7b, 0xbe, 0xfd, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00; + flash_instr = 0xb6, 0x01, 0x11; + eeprom_instr = + 0xbd, 0xf2, 0xbd, 0xe1, 0xbb, 0xcf, 0xb4, 0x00, + 0xbe, 0x01, 0xb6, 0x01, 0xbc, 0x00, 0xbb, 0xbf, + 0x99, 0xf9, 0xbb, 0xaf; hventerstabdelay = 100; latchcycles = 5; togglevtg = 1; poweroffdelay = 15; resetdelayms = 1; hvleavestabdelay = 15; + resetdelay = 15; chiperasepolltimeout = 10; programfusepolltimeout = 5; programlockpolltimeout = 5; + idr = 0x31; spmcr = 0x57; eecr = 0x3f; - eind = 0x5c; ocdrev = 1; chip_erase = "1010.1100--100x.xxxx--xxxx.xxxx--xxxx.xxxx"; pgm_enable = "1010.1100--0101.0011--xxxx.xxxx--xxxx.xxxx"; @@ -10915,7 +14405,7 @@ part num_pages = 256; min_write_delay = 9000; max_write_delay = 9000; - mode = 65; + mode = 0x41; delay = 20; blocksize = 4; readsize = 256; @@ -10932,7 +14422,7 @@ part num_pages = 256; min_write_delay = 4500; max_write_delay = 4500; - mode = 65; + mode = 0x41; delay = 6; blocksize = 128; readsize = 256; @@ -10945,6 +14435,7 @@ part memory "lfuse" size = 1; + initval = 0x5e; min_write_delay = 9000; max_write_delay = 9000; read = "0101.0000--0000.0000--xxxx.xxxx--oooo.oooo"; @@ -10953,6 +14444,7 @@ part memory "hfuse" size = 1; + initval = 0xd9; min_write_delay = 9000; max_write_delay = 9000; read = "0101.1000--0000.1000--xxxx.xxxx--oooo.oooo"; @@ -10961,6 +14453,8 @@ part memory "efuse" size = 1; + initval = 0xf4; + bitmask = 0x0f; min_write_delay = 9000; max_write_delay = 9000; read = "0101.0000--0000.1000--xxxx.xxxx--oooo.oooo"; @@ -10969,6 +14463,8 @@ part memory "lock" size = 1; + initval = 0xff; + bitmask = 0x3f; min_write_delay = 9000; max_write_delay = 9000; read = "0101.1000--0000.0000--xxxx.xxxx--oooo.oooo"; @@ -10993,6 +14489,11 @@ part part desc = "ATmega16U2"; id = "m16u2"; + variants = + "ATmega16U2-AU: TQFP32, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega16U2-AUR: TQFP32, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega16U2-MU: QFN32, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega16U2-MUR: QFN32, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]"; prog_modes = PM_SPM | PM_ISP | PM_HVPP | PM_debugWIRE; mcuid = 56; n_interrupts = 29; @@ -11018,18 +14519,24 @@ part 0x4e, 0x5e, 0x4f, 0x5f, 0x6e, 0x7e, 0x6f, 0x7f, 0x66, 0x76, 0x67, 0x77, 0x6a, 0x7a, 0x6b, 0x7b, 0xbe, 0xfd, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00; + flash_instr = 0xb6, 0x01, 0x11; + eeprom_instr = + 0xbd, 0xf2, 0xbd, 0xe1, 0xbb, 0xcf, 0xb4, 0x00, + 0xbe, 0x01, 0xb6, 0x01, 0xbc, 0x00, 0xbb, 0xbf, + 0x99, 0xf9, 0xbb, 0xaf; hventerstabdelay = 100; latchcycles = 5; togglevtg = 1; poweroffdelay = 15; resetdelayms = 1; hvleavestabdelay = 15; + resetdelay = 15; chiperasepolltimeout = 10; programfusepolltimeout = 5; programlockpolltimeout = 5; + idr = 0x31; spmcr = 0x57; eecr = 0x3f; - eind = 0x5c; ocdrev = 1; chip_erase = "1010.1100--100x.xxxx--xxxx.xxxx--xxxx.xxxx"; pgm_enable = "1010.1100--0101.0011--xxxx.xxxx--xxxx.xxxx"; @@ -11040,7 +14547,7 @@ part num_pages = 128; min_write_delay = 9000; max_write_delay = 9000; - mode = 65; + mode = 0x41; delay = 20; blocksize = 4; readsize = 256; @@ -11057,7 +14564,7 @@ part num_pages = 128; min_write_delay = 4500; max_write_delay = 4500; - mode = 65; + mode = 0x41; delay = 6; blocksize = 128; readsize = 256; @@ -11070,6 +14577,7 @@ part memory "lfuse" size = 1; + initval = 0x5e; min_write_delay = 9000; max_write_delay = 9000; read = "0101.0000--0000.0000--xxxx.xxxx--oooo.oooo"; @@ -11078,6 +14586,7 @@ part memory "hfuse" size = 1; + initval = 0xd9; min_write_delay = 9000; max_write_delay = 9000; read = "0101.1000--0000.1000--xxxx.xxxx--oooo.oooo"; @@ -11086,6 +14595,8 @@ part memory "efuse" size = 1; + initval = 0xf4; + bitmask = 0x0f; min_write_delay = 9000; max_write_delay = 9000; read = "0101.0000--0000.1000--xxxx.xxxx--oooo.oooo"; @@ -11094,6 +14605,8 @@ part memory "lock" size = 1; + initval = 0xff; + bitmask = 0x3f; min_write_delay = 9000; max_write_delay = 9000; read = "0101.1000--0000.0000--xxxx.xxxx--oooo.oooo"; @@ -11118,6 +14631,11 @@ part part desc = "ATmega8U2"; id = "m8u2"; + variants = + "ATmega8U2-AU: LQFP32, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega8U2-AUR: TQFP32, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega8U2-MU: QFN32, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega8U2-MUR: VQFN32, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]"; prog_modes = PM_SPM | PM_ISP | PM_HVPP | PM_debugWIRE; mcuid = 48; n_interrupts = 29; @@ -11143,18 +14661,24 @@ part 0x4e, 0x5e, 0x4f, 0x5f, 0x6e, 0x7e, 0x6f, 0x7f, 0x66, 0x76, 0x67, 0x77, 0x6a, 0x7a, 0x6b, 0x7b, 0xbe, 0xfd, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00; + flash_instr = 0xb6, 0x01, 0x11; + eeprom_instr = + 0xbd, 0xf2, 0xbd, 0xe1, 0xbb, 0xcf, 0xb4, 0x00, + 0xbe, 0x01, 0xb6, 0x01, 0xbc, 0x00, 0xbb, 0xbf, + 0x99, 0xf9, 0xbb, 0xaf; hventerstabdelay = 100; latchcycles = 5; togglevtg = 1; poweroffdelay = 15; resetdelayms = 1; hvleavestabdelay = 15; + resetdelay = 15; chiperasepolltimeout = 10; programfusepolltimeout = 5; programlockpolltimeout = 5; + idr = 0x31; spmcr = 0x57; eecr = 0x3f; - eind = 0x5c; ocdrev = 1; chip_erase = "1010.1100--100x.xxxx--xxxx.xxxx--xxxx.xxxx"; pgm_enable = "1010.1100--0101.0011--xxxx.xxxx--xxxx.xxxx"; @@ -11165,7 +14689,7 @@ part num_pages = 128; min_write_delay = 9000; max_write_delay = 9000; - mode = 65; + mode = 0x41; delay = 20; blocksize = 4; readsize = 256; @@ -11182,7 +14706,7 @@ part num_pages = 64; min_write_delay = 4500; max_write_delay = 4500; - mode = 65; + mode = 0x41; delay = 6; blocksize = 128; readsize = 256; @@ -11195,6 +14719,7 @@ part memory "lfuse" size = 1; + initval = 0x5e; min_write_delay = 9000; max_write_delay = 9000; read = "0101.0000--0000.0000--xxxx.xxxx--oooo.oooo"; @@ -11203,6 +14728,7 @@ part memory "hfuse" size = 1; + initval = 0xd9; min_write_delay = 9000; max_write_delay = 9000; read = "0101.1000--0000.1000--xxxx.xxxx--oooo.oooo"; @@ -11211,6 +14737,8 @@ part memory "efuse" size = 1; + initval = 0xf4; + bitmask = 0x0f; min_write_delay = 9000; max_write_delay = 9000; read = "0101.0000--0000.1000--xxxx.xxxx--oooo.oooo"; @@ -11219,6 +14747,8 @@ part memory "lock" size = 1; + initval = 0xff; + bitmask = 0x3f; min_write_delay = 9000; max_write_delay = 9000; read = "0101.1000--0000.0000--xxxx.xxxx--oooo.oooo"; @@ -11237,14 +14767,30 @@ part ; #------------------------------------------------------------ -# ATmega165 +# ATmega165P #------------------------------------------------------------ part - desc = "ATmega165"; - id = "m165"; + desc = "ATmega165P"; + id = "m165p"; + variants = + "ATmega165P: N/A, Fmax=16 MHz, T=[N/A, N/A], Vcc=[1.8 V, 5.5 V]", + "ATmega165P-16AN: TQFP64, Fmax=16 MHz, T=[-40 C, 105 C], Vcc=[2.7 V, 5.5 V]", + "ATmega165P-16ANR: TQFP64, Fmax=16 MHz, T=[N/A, N/A], Vcc=[2.7 V, 5.5 V]", + "ATmega165P-16AU: TQFP64, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega165P-16AUR: TQFP64, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega165P-16MN: VQFN64, Fmax=16 MHz, T=[N/A, N/A], Vcc=[2.7 V, 5.5 V]", + "ATmega165P-16MNR: VQFN64, Fmax=16 MHz, T=[N/A, N/A], Vcc=[2.7 V, 5.5 V]", + "ATmega165P-16MU: QFN64, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega165P-16MUR: VQFN64, Fmax=16 MHz, T=[N/A, N/A], Vcc=[2.7 V, 5.5 V]", + "ATmega165PV-8AN: TQFP64, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega165PV-8ANR: TQFP64, Fmax=8 MHz, T=[N/A, N/A], Vcc=[1.8 V, 5.5 V]", + "ATmega165PV-8AU: TQFP64, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega165PV-8AUR: TQFP64, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega165PV-8MU: MLF64, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega165PV-8MUR: QFN64, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; prog_modes = PM_SPM | PM_ISP | PM_HVPP | PM_JTAG; - mcuid = 95; + mcuid = 97; n_interrupts = 22; n_boot_sections = 4; boot_section_size = 256; @@ -11253,7 +14799,7 @@ part chip_erase_delay = 9000; pagel = 0xd7; bs2 = 0xa0; - signature = 0x1e 0x94 0x10; + signature = 0x1e 0x94 0x07; reset = io; timeout = 200; stabdelay = 100; @@ -11289,7 +14835,7 @@ part num_pages = 128; min_write_delay = 3600; max_write_delay = 3600; - mode = 65; + mode = 0x41; delay = 20; blocksize = 4; readsize = 256; @@ -11306,7 +14852,7 @@ part num_pages = 128; min_write_delay = 4500; max_write_delay = 4500; - mode = 65; + mode = 0x41; delay = 10; blocksize = 128; readsize = 256; @@ -11319,6 +14865,7 @@ part memory "lfuse" size = 1; + initval = 0x62; min_write_delay = 4500; max_write_delay = 4500; read = "0101.0000--0000.0000--xxxx.xxxx--oooo.oooo"; @@ -11327,6 +14874,7 @@ part memory "hfuse" size = 1; + initval = 0x99; min_write_delay = 4500; max_write_delay = 4500; read = "0101.1000--0000.1000--xxxx.xxxx--oooo.oooo"; @@ -11335,6 +14883,8 @@ part memory "efuse" size = 1; + initval = 0xff; + bitmask = 0x0f; min_write_delay = 4500; max_write_delay = 4500; read = "0101.0000--0000.1000--xxxx.xxxx--oooo.oooo"; @@ -11343,6 +14893,8 @@ part memory "lock" size = 1; + initval = 0xff; + bitmask = 0x3f; min_write_delay = 4500; max_write_delay = 4500; read = "0101.1000--0000.0000--xxxx.xxxx--oooo.oooo"; @@ -11364,32 +14916,59 @@ part # ATmega165A #------------------------------------------------------------ -part parent "m165" +part parent "m165p" desc = "ATmega165A"; id = "m165a"; + variants = + "ATmega165A: N/A, Fmax=N/A, T=[N/A, N/A], Vcc=[1.8 V, 5.5 V]", + "ATmega165A-AU: TQFP64, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega165A-AUR: TQFP64, Fmax=N/A, T=[N/A, N/A], Vcc=[N/A, N/A]", + "ATmega165A-MU: MLF64, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega165A-MUR: TQFP64, Fmax=N/A, T=[N/A, N/A], Vcc=[N/A, N/A]"; mcuid = 96; + signature = 0x1e 0x94 0x10; ; #------------------------------------------------------------ -# ATmega165P +# ATmega165 #------------------------------------------------------------ -part parent "m165" - desc = "ATmega165P"; - id = "m165p"; - mcuid = 97; - signature = 0x1e 0x94 0x07; +part parent "m165p" + desc = "ATmega165"; + id = "m165"; + variants = + "ATmega165: N/A, Fmax=16 MHz, T=[N/A, N/A], Vcc=[N/A, N/A]", + "ATmega165-16AI: TQFP64, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega165-16AU: TQFP64, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega165-16MI: VFQFN64, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega165-16MU: VFQFN64, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega165V-8AI: TQFP64, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega165V-8AU: TQFP64, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega165V-8MI: VFQFN64, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega165V-8MU: VFQFN64, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; + mcuid = 95; + + memory "eeprom" + min_write_delay = 9000; + max_write_delay = 9000; + ; ; #------------------------------------------------------------ # ATmega165PA #------------------------------------------------------------ -part parent "m165" +part parent "m165p" desc = "ATmega165PA"; id = "m165pa"; + variants = + "ATmega165PA: N/A, Fmax=16 MHz, T=[N/A, N/A], Vcc=[1.8 V, 5.5 V]", + "ATmega165PA-AU: TQFP64, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega165PA-AUR: TQFP64, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega165PA-MN: TQFP64, Fmax=16 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATmega165PA-MNR: VQFN64, Fmax=16 MHz, T=[N/A, N/A], Vcc=[1.8 V, 5.5 V]", + "ATmega165PA-MUR: VQFN64, Fmax=16 MHz, T=[N/A, N/A], Vcc=[1.8 V, 5.5 V]"; mcuid = 98; - signature = 0x1e 0x94 0x07; ; #------------------------------------------------------------ @@ -11399,6 +14978,16 @@ part parent "m165" part desc = "ATmega325"; id = "m325"; + variants = + "ATmega325: N/A, Fmax=16 MHz, T=[N/A, N/A], Vcc=[1.8 V, 5.5 V]", + "ATmega325-16AU: TQFP64, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega325-16AUR: TQFP64, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega325-16MU: QFN64, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega325-16MUR: VQFN64, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega325V-8AU: TQFP64, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega325V-8AUR: TQFP64, Fmax=8 MHz, T=[N/A, N/A], Vcc=[1.8 V, 5.5 V]", + "ATmega325V-8MU: MLF64, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega325V-8MUR: VQFN64, Fmax=8 MHz, T=[N/A, N/A], Vcc=[1.8 V, 5.5 V]"; prog_modes = PM_SPM | PM_ISP | PM_HVPP | PM_JTAG; mcuid = 114; n_interrupts = 22; @@ -11427,16 +15016,15 @@ part 0x66, 0x76, 0x67, 0x77, 0x6a, 0x7a, 0x6b, 0x7b, 0xbe, 0xfd, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00; hventerstabdelay = 100; - latchcycles = 5; - togglevtg = 1; - poweroffdelay = 15; - resetdelayms = 1; + latchcycles = 6; hvleavestabdelay = 15; + resetdelay = 15; chiperasepolltimeout = 10; programfusepolltimeout = 5; programlockpolltimeout = 5; idr = 0x31; spmcr = 0x57; + eecr = 0x3f; ocdrev = 3; chip_erase = "1010.1100--1000.0000--0000.0000--0000.0000"; pgm_enable = "1010.1100--0101.0011--0000.0000--0000.0000"; @@ -11446,8 +15034,7 @@ part page_size = 4; min_write_delay = 9000; max_write_delay = 9000; - readback = 0xff 0xff; - mode = 65; + mode = 0x41; delay = 10; blocksize = 4; readsize = 256; @@ -11464,8 +15051,7 @@ part num_pages = 256; min_write_delay = 4500; max_write_delay = 4500; - readback = 0xff 0xff; - mode = 65; + mode = 0x41; delay = 10; blocksize = 128; readsize = 256; @@ -11478,6 +15064,7 @@ part memory "lfuse" size = 1; + initval = 0x62; min_write_delay = 9000; max_write_delay = 9000; read = "0101.0000--0000.0000--0000.0000--oooo.oooo"; @@ -11486,6 +15073,7 @@ part memory "hfuse" size = 1; + initval = 0x99; min_write_delay = 9000; max_write_delay = 9000; read = "0101.1000--0000.1000--0000.0000--oooo.oooo"; @@ -11494,6 +15082,8 @@ part memory "efuse" size = 1; + initval = 0xff; + bitmask = 0x07; min_write_delay = 9000; max_write_delay = 9000; read = "0101.0000--0000.1000--0000.0000--oooo.oooo"; @@ -11502,6 +15092,8 @@ part memory "lock" size = 1; + initval = 0xff; + bitmask = 0x3f; min_write_delay = 9000; max_write_delay = 9000; read = "0101.1000--0000.0000--xxxx.xxxx--oooo.oooo"; @@ -11526,6 +15118,16 @@ part part parent "m325" desc = "ATmega325A"; id = "m325a"; + variants = + "ATmega325A: N/A, Fmax=N/A, T=[N/A, N/A], Vcc=[1.8 V, 5.5 V]", + "ATmega325A-AN: TQFP64, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATmega325A-ANR: TQFP64, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATmega325A-AU: TQFP64, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega325A-AUR: TQFP64, Fmax=20 MHz, T=[N/A, N/A], Vcc=[1.8 V, 5.5 V]", + "ATmega325A-MN: VQFN64, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATmega325A-MNR: VQFN64, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATmega325A-MU: QFN64, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega325A-MUR: VQFN64, Fmax=20 MHz, T=[N/A, N/A], Vcc=[1.8 V, 5.5 V]"; mcuid = 115; ; @@ -11536,6 +15138,15 @@ part parent "m325" part parent "m325" desc = "ATmega325P"; id = "m325p"; + variants = + "ATmega325P: N/A, Fmax=20 MHz, T=[N/A, N/A], Vcc=[1.8 V, 5.5 V]", + "ATmega325P-20AU: TQFP64, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega325P-20AUR: TQFP64, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega325P-20MU: MLF64, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega325PV-10AU: TQFP64, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega325PV-10AUR: TQFP64, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega325PV-10MU: MLF64, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega325PV-10MUR: VQFN64, Fmax=10 MHz, T=[N/A, N/A], Vcc=[1.8 V, 5.5 V]"; mcuid = 116; signature = 0x1e 0x95 0x0d; ; @@ -11547,6 +15158,12 @@ part parent "m325" part parent "m325" desc = "ATmega325PA"; id = "m325pa"; + variants = + "ATmega325PA: N/A, Fmax=20 MHz, T=[N/A, N/A], Vcc=[1.8 V, 5.5 V]", + "ATmega325PA-AU: TQFP64, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega325PA-AUR: TQFP64, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega325PA-MU: VQFN64, Fmax=20 MHz, T=[N/A, N/A], Vcc=[1.8 V, 5.5 V]", + "ATmega325PA-MUR: VQFN64, Fmax=20 MHz, T=[N/A, N/A], Vcc=[1.8 V, 5.5 V]"; mcuid = 117; signature = 0x1e 0x95 0x0d; ; @@ -11558,6 +15175,16 @@ part parent "m325" part desc = "ATmega645"; id = "m645"; + variants = + "ATmega645: N/A, Fmax=16 MHz, T=[N/A, N/A], Vcc=[1.8 V, 5.5 V]", + "ATmega645-16AU: TQFP64, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega645-16AUR: TQFP64, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega645-16MU: MLF64, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega645-16MUR: VQFN64, Fmax=16 MHz, T=[N/A, N/A], Vcc=[2.7 V, 5.5 V]", + "ATmega645V-8AU: TQFP64, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega645V-8AUR: TQFP64, Fmax=8 MHz, T=[N/A, N/A], Vcc=[1.8 V, 5.5 V]", + "ATmega645V-8MU: MLF64, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega645V-8MUR: VQFN64, Fmax=8 MHz, T=[N/A, N/A], Vcc=[1.8 V, 5.5 V]"; prog_modes = PM_SPM | PM_ISP | PM_HVPP | PM_JTAG; mcuid = 132; n_interrupts = 22; @@ -11591,11 +15218,13 @@ part poweroffdelay = 15; resetdelayms = 1; hvleavestabdelay = 15; + resetdelay = 15; chiperasepolltimeout = 10; programfusepolltimeout = 5; programlockpolltimeout = 5; idr = 0x31; spmcr = 0x57; + eecr = 0x3f; ocdrev = 3; chip_erase = "1010.1100--1000.0000--0000.0000--0000.0000"; pgm_enable = "1010.1100--0101.0011--0000.0000--0000.0000"; @@ -11605,10 +15234,9 @@ part page_size = 8; min_write_delay = 9000; max_write_delay = 9000; - readback = 0xff 0xff; - mode = 65; + mode = 0x41; delay = 10; - blocksize = 8; + blocksize = 4; readsize = 256; read = "1010.0000--0000.0aaa--aaaa.aaaa--oooo.oooo"; write = "1100.0000--0000.0aaa--aaaa.aaaa--iiii.iiii"; @@ -11623,8 +15251,7 @@ part num_pages = 256; min_write_delay = 4500; max_write_delay = 4500; - readback = 0xff 0xff; - mode = 65; + mode = 0x41; delay = 10; blocksize = 128; readsize = 256; @@ -11637,6 +15264,7 @@ part memory "lfuse" size = 1; + initval = 0x62; min_write_delay = 9000; max_write_delay = 9000; read = "0101.0000--0000.0000--0000.0000--oooo.oooo"; @@ -11645,6 +15273,7 @@ part memory "hfuse" size = 1; + initval = 0x99; min_write_delay = 9000; max_write_delay = 9000; read = "0101.1000--0000.1000--0000.0000--oooo.oooo"; @@ -11653,6 +15282,8 @@ part memory "efuse" size = 1; + initval = 0xff; + bitmask = 0x07; min_write_delay = 9000; max_write_delay = 9000; read = "0101.0000--0000.1000--0000.0000--oooo.oooo"; @@ -11661,6 +15292,8 @@ part memory "lock" size = 1; + initval = 0xff; + bitmask = 0x3f; min_write_delay = 9000; max_write_delay = 9000; read = "0101.1000--0000.0000--xxxx.xxxx--oooo.oooo"; @@ -11685,6 +15318,12 @@ part part parent "m645" desc = "ATmega645A"; id = "m645a"; + variants = + "ATmega645A: N/A, Fmax=16 MHz, T=[N/A, N/A], Vcc=[1.8 V, 5.5 V]", + "ATmega645A-AU: TQFP64, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega645A-AUR: TQFP64, Fmax=16 MHz, T=[N/A, N/A], Vcc=[1.8 V, 5.5 V]", + "ATmega645A-MU: VQFN64, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega645A-MUR: VQFN64, Fmax=16 MHz, T=[N/A, N/A], Vcc=[1.8 V, 5.5 V]"; mcuid = 133; ; @@ -11695,6 +15334,12 @@ part parent "m645" part parent "m645" desc = "ATmega645P"; id = "m645p"; + variants = + "ATmega645P: N/A, Fmax=N/A, T=[N/A, N/A], Vcc=[1.8 V, 5.5 V]", + "ATmega645P-AU: TQFP64, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega645P-AUR: TQFP64, Fmax=16 MHz, T=[N/A, N/A], Vcc=[1.8 V, 5.5 V]", + "ATmega645P-MU: QFN64, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega645P-MUR: VQFN64, Fmax=16 MHz, T=[N/A, N/A], Vcc=[1.8 V, 5.5 V]"; mcuid = 134; signature = 0x1e 0x96 0x0d; ; @@ -11706,6 +15351,12 @@ part parent "m645" part parent "m325" desc = "ATmega3250"; id = "m3250"; + variants = + "ATmega3250: N/A, Fmax=16 MHz, T=[N/A, N/A], Vcc=[2.7 V, 5.5 V]", + "ATmega3250-16AU: TQFP100, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega3250-16AUR: TQFP100, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega3250V-8AU: TQFP100, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega3250V-8AUR: TQFP100, Fmax=8 MHz, T=[N/A, N/A], Vcc=[1.8 V, 5.5 V]"; mcuid = 146; n_interrupts = 25; signature = 0x1e 0x95 0x06; @@ -11718,6 +15369,10 @@ part parent "m325" part parent "m325" desc = "ATmega3250A"; id = "m3250a"; + variants = + "ATmega3250A: N/A, Fmax=N/A, T=[N/A, N/A], Vcc=[1.8 V, 5.5 V]", + "ATmega3250A-AU: TQFP100, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega3250A-AUR: TQFP100, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 147; n_interrupts = 25; signature = 0x1e 0x95 0x06; @@ -11730,6 +15385,12 @@ part parent "m325" part parent "m325" desc = "ATmega3250P"; id = "m3250p"; + variants = + "ATmega3250P: TQFP100, Fmax=20 MHz, T=[N/A, N/A], Vcc=[1.8 V, 5.5 V]", + "ATmega3250P-20AU: TQFP100, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega3250P-20AUR: TQFP100, Fmax=20 MHz, T=[N/A, N/A], Vcc=[2.7 V, 5.5 V]", + "ATmega3250PV-10AU: TQFP100, Fmax=10 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega3250PV-10AUR: TQFP100, Fmax=10 MHz, T=[N/A, N/A], Vcc=[1.8 V, 5.5 V]"; mcuid = 148; n_interrupts = 25; signature = 0x1e 0x95 0x0e; @@ -11742,6 +15403,10 @@ part parent "m325" part parent "m325" desc = "ATmega3250PA"; id = "m3250pa"; + variants = + "ATmega3250PA: N/A, Fmax=N/A, T=[N/A, N/A], Vcc=[1.8 V, 5.5 V]", + "ATmega3250PA-AU: TQFP100, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega3250PA-AUR: TQFP100, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 149; n_interrupts = 25; signature = 0x1e 0x95 0x0e; @@ -11754,6 +15419,12 @@ part parent "m325" part parent "m645" desc = "ATmega6450"; id = "m6450"; + variants = + "ATmega6450: N/A, Fmax=16 MHz, T=[N/A, N/A], Vcc=[1.8 V, 5.5 V]", + "ATmega6450-16AU: TQFP100, Fmax=16 MHz, T=[-40 C, 85 C], Vcc=[2.7 V, 5.5 V]", + "ATmega6450-16AUR: TQFP100, Fmax=16 MHz, T=[N/A, N/A], Vcc=[2.7 V, 5.5 V]", + "ATmega6450V-8AU: TQFP100, Fmax=8 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega6450V-8AUR: TQFP100, Fmax=8 MHz, T=[N/A, N/A], Vcc=[1.8 V, 5.5 V]"; mcuid = 154; n_interrupts = 25; signature = 0x1e 0x96 0x06; @@ -11766,6 +15437,10 @@ part parent "m645" part parent "m645" desc = "ATmega6450A"; id = "m6450a"; + variants = + "ATmega6450A: N/A, Fmax=N/A, T=[N/A, N/A], Vcc=[1.8 V, 5.5 V]", + "ATmega6450A-AU: TQFP100, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega6450A-AUR: TQFP100, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 155; n_interrupts = 25; signature = 0x1e 0x96 0x06; @@ -11778,6 +15453,10 @@ part parent "m645" part parent "m645" desc = "ATmega6450P"; id = "m6450p"; + variants = + "ATmega6450P: N/A, Fmax=N/A, T=[N/A, N/A], Vcc=[1.8 V, 5.5 V]", + "ATmega6450P-AU: TQFP100, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega6450P-AUR: TQFP100, Fmax=20 MHz, T=[N/A, N/A], Vcc=[1.8 V, 5.5 V]"; mcuid = 156; n_interrupts = 25; signature = 0x1e 0x96 0x0e; @@ -11798,26 +15477,34 @@ part memory "fuse1" size = 1; + initval = 0x00; offset = 0x8f0021; ; memory "fuse2" size = 1; + initval = 0xff; + bitmask = 0x63; offset = 0x8f0022; ; memory "fuse4" size = 1; + initval = 0xff; + bitmask = 0x1e; offset = 0x8f0024; ; memory "fuse5" size = 1; + initval = 0xff; + bitmask = 0x3f; offset = 0x8f0025; ; memory "lock" size = 1; + initval = 0xff; offset = 0x8f0027; ; @@ -11840,12 +15527,60 @@ part ; #------------------------------------------------------------ -# ATxmega16A4U +# AVR XMEGA-E family common values +#------------------------------------------------------------ + +# Fuse for fault detection action on Px0..5 (unique to XMEGA-E) + +part parent ".xmega" + desc = "AVR XMEGA-E family common values"; + id = ".xmega-e"; + + memory "fuse6" + size = 1; + initval = 0xff; + offset = 0x8f0026; + ; +; + #------------------------------------------------------------ +# AVR XMEGA-A family common values +#------------------------------------------------------------ + +# JTAG user ID (unique to XMEGA-A and XMEGA-B) part parent ".xmega" + desc = "AVR XMEGA-A family common values"; + id = ".xmega-a"; + + memory "fuse0" + size = 1; + initval = 0xff; + offset = 0x8f0020; + ; + + memory "fuse4" + bitmask = 0x1f; + ; +; + +#------------------------------------------------------------ +# ATxmega16A4U +#------------------------------------------------------------ + +part parent ".xmega-a" desc = "ATxmega16A4U"; id = "x16a4u"; + variants = + "ATxmega16A4U-AN: TQFP44, Fmax=32 MHz, T=[0 C, 105 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega16A4U-ANR: N/A, Fmax=N/A, T=[N/A, N/A], Vcc=[N/A, N/A]", + "ATxmega16A4U-AU: TQFP44, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega16A4U-AUR: TQFP44, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega16A4U-CU: BGA49, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega16A4U-CUR: VFBGA49, Fmax=N/A, T=[N/A, N/A], Vcc=[1.6 V, 3.6 V]", + "ATxmega16A4U-M7: VQFN44, Fmax=32 MHz, T=[-40 C, 105 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega16A4U-MH: QFN44, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega16A4U-MHR: VQFN44, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]"; mcuid = 232; n_interrupts = 127; boot_section_size = 4096; @@ -11887,6 +15622,10 @@ part parent ".xmega" readsize = 256; ; + memory "fuse4" + initval = 0xfe; + ; + memory "usersig" size = 256; page_size = 256; @@ -11902,8 +15641,24 @@ part parent ".xmega" part parent "x16a4u" desc = "ATxmega16C4"; id = "x16c4"; + variants = + "ATxmega16C4-AN: TQFP44, Fmax=32 MHz, T=[-40 C, 105 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega16C4-AU: TQFP44, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega16C4-AUR: TQFP44, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega16C4-CU: VFBGA49, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega16C4-CUR: VFBGA49, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega16C4-M7: VFBGA49, Fmax=32 MHz, T=[-40 C, 105 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega16C4-MH: VQFN44, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega16C4-MHR: VQFN44, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]"; mcuid = 233; signature = 0x1e 0x94 0x43; + + memory "fuse0" = NULL; + + memory "fuse4" + initval = 0xff; + bitmask = 0x1e; + ; ; #------------------------------------------------------------ @@ -11913,9 +15668,26 @@ part parent "x16a4u" part parent "x16a4u" desc = "ATxmega16D4"; id = "x16d4"; + variants = + "ATxmega16D4: N/A, Fmax=N/A, T=[N/A, N/A], Vcc=[1.6 V, 3.6 V]", + "ATxmega16D4-AN: TQFP44, Fmax=32 MHz, T=[-40 C, 105 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega16D4-AU: TQFP44, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega16D4-AUR: TQFN44, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega16D4-CU: BGA49, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega16D4-CUR: VFBGA49, Fmax=N/A, T=[N/A, N/A], Vcc=[1.6 V, 3.6 V]", + "ATxmega16D4-M7: VFBGA49, Fmax=32 MHz, T=[-40 C, 105 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega16D4-MH: VQFN44, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega16D4-MHR: VQFN44, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]"; mcuid = 234; n_interrupts = 91; signature = 0x1e 0x94 0x42; + + memory "fuse0" = NULL; + + memory "fuse4" + initval = 0xff; + bitmask = 0x1e; + ; ; #------------------------------------------------------------ @@ -11925,12 +15697,20 @@ part parent "x16a4u" part parent "x16a4u" desc = "ATxmega16A4"; id = "x16a4"; + variants = + "ATxmega16A4: N/A, Fmax=N/A, T=[N/A, N/A], Vcc=[1.6 V, 3.6 V]", + "ATxmega16A4-AU: TQFP44, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega16A4-AUR: TQFP44, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega16A4-CU: BGA49, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega16A4-CUR: BGA49, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega16A4-MH: QFN44, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega16A4-MHR: QFN44, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega16A4-MU: VQFN44, Fmax=32 MHz, T=[N/A, N/A], Vcc=[1.6 V, 3.6 V]"; mcuid = 231; n_interrupts = 94; - memory "fuse0" - size = 1; - offset = 0x8f0020; + memory "fuse2" + bitmask = 0x43; ; ; @@ -11938,9 +15718,19 @@ part parent "x16a4u" # ATxmega32A4U #------------------------------------------------------------ -part parent ".xmega" +part parent ".xmega-a" desc = "ATxmega32A4U"; id = "x32a4u"; + variants = + "ATxmega32A4U-AN: TQFP44, Fmax=32 MHz, T=[0 C, 105 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega32A4U-ANR: TQFP44, Fmax=32 MHz, T=[0 C, 105 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega32A4U-AU: TQFP44, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega32A4U-AUR: TQFP44, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega32A4U-CU: BGA49, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega32A4U-CUR: VFBGA49, Fmax=N/A, T=[N/A, N/A], Vcc=[N/A, N/A]", + "ATxmega32A4U-M7: VQFN44, Fmax=32 MHz, T=[-40 C, 105 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega32A4U-MH: QFN44, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega32A4U-MHR: VQFN44, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]"; mcuid = 239; n_interrupts = 127; boot_section_size = 4096; @@ -11982,6 +15772,10 @@ part parent ".xmega" readsize = 256; ; + memory "fuse4" + initval = 0xfe; + ; + memory "usersig" size = 256; page_size = 256; @@ -11997,8 +15791,24 @@ part parent ".xmega" part parent "x32a4u" desc = "ATxmega32C4"; id = "x32c4"; + variants = + "ATxmega32C4-AN: TQFP44, Fmax=32 MHz, T=[-40 C, 105 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega32C4-AU: TQFP44, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega32C4-AUR: TQFP44, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega32C4-CU: VFBGA49, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega32C4-CUR: VFBGA49, Fmax=N/A, T=[N/A, N/A], Vcc=[N/A, N/A]", + "ATxmega32C4-M7: VFBGA49, Fmax=32 MHz, T=[-40 C, 105 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega32C4-MH: VQFN44, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega32C4-MHR: VQFN44, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]"; mcuid = 240; signature = 0x1e 0x95 0x44; + + memory "fuse0" = NULL; + + memory "fuse4" + initval = 0xff; + bitmask = 0x1e; + ; ; #------------------------------------------------------------ @@ -12008,9 +15818,27 @@ part parent "x32a4u" part parent "x32a4u" desc = "ATxmega32D4"; id = "x32d4"; + variants = + "ATxmega32D4: N/A, Fmax=N/A, T=[N/A, N/A], Vcc=[1.6 V, 3.6 V]", + "ATxmega32D4-AN: TQFP44, Fmax=32 MHz, T=[-40 C, 105 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega32D4-ANR: N/A, Fmax=N/A, T=[N/A, N/A], Vcc=[N/A, N/A]", + "ATxmega32D4-AU: TQFP44, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega32D4-AUR: TQFP44, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega32D4-CU: VFBGA49, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega32D4-CUR: VFBGA49, Fmax=N/A, T=[N/A, N/A], Vcc=[1.6 V, 3.6 V]", + "ATxmega32D4-M7: VFBGA49, Fmax=32 MHz, T=[-40 C, 105 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega32D4-MH: VQFN44, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega32D4-MHR: VQFN44, Fmax=N/A, T=[N/A, N/A], Vcc=[1.6 V, 3.6 V]"; mcuid = 241; n_interrupts = 91; signature = 0x1e 0x95 0x42; + + memory "fuse0" = NULL; + + memory "fuse4" + initval = 0xff; + bitmask = 0x1e; + ; ; #------------------------------------------------------------ @@ -12020,12 +15848,20 @@ part parent "x32a4u" part parent "x32a4u" desc = "ATxmega32A4"; id = "x32a4"; + variants = + "ATxmega32A4: N/A, Fmax=N/A, T=[N/A, N/A], Vcc=[1.6 V, 3.6 V]", + "ATxmega32A4-AU: TQFP44, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega32A4-AUR: TQFP44, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega32A4-CU: BGA49, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega32A4-CUR: BGA49, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega32A4-MH: QFN44, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega32A4-MHR: QFN44, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega32A4-MU: VQFN44, Fmax=32 MHz, T=[N/A, N/A], Vcc=[1.6 V, 3.6 V]"; mcuid = 238; n_interrupts = 94; - memory "fuse0" - size = 1; - offset = 0x8f0020; + memory "fuse2" + bitmask = 0x43; ; ; @@ -12033,9 +15869,18 @@ part parent "x32a4u" # ATxmega64A4U #------------------------------------------------------------ -part parent ".xmega" +part parent ".xmega-a" desc = "ATxmega64A4U"; id = "x64a4u"; + variants = + "ATxmega64A4U-AN: TQFP44, Fmax=32 MHz, T=[-40 C, 105 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega64A4U-AU: TQFP44, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega64A4U-AUR: TQFP44, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega64A4U-CU: VFBGA49, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega64A4U-CUR: VFBGA49, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega64A4U-M7: VQFN44PW, Fmax=32 MHz, T=[-40 C, 105 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega64A4U-MH: VQFN44, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega64A4U-MHR: VQFN44, Fmax=N/A, T=[N/A, N/A], Vcc=[N/A, N/A]"; mcuid = 252; n_interrupts = 127; boot_section_size = 4096; @@ -12077,6 +15922,10 @@ part parent ".xmega" readsize = 256; ; + memory "fuse4" + initval = 0xfe; + ; + memory "usersig" size = 256; page_size = 256; @@ -12085,6 +15934,59 @@ part parent ".xmega" ; ; +#------------------------------------------------------------ +# ATxmega32C3 +#------------------------------------------------------------ + +part parent "x32a4u" + desc = "ATxmega32C3"; + id = "x32c3"; + variants = + "ATxmega32C3-AN: TQFP64, Fmax=32 MHz, T=[-40 C, 105 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega32C3-ANR: N/A, Fmax=N/A, T=[N/A, N/A], Vcc=[N/A, N/A]", + "ATxmega32C3-AU: TQFP64, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega32C3-AUR: TQFP64, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega32C3-M7: QFN64, Fmax=32 MHz, T=[-40 C, 105 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega32C3-MH: VQFN64, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega32C3-MHR: VQFN64, Fmax=N/A, T=[N/A, N/A], Vcc=[N/A, N/A]"; + mcuid = 236; + signature = 0x1e 0x95 0x49; + + memory "fuse0" = NULL; + + memory "fuse4" + initval = 0xff; + bitmask = 0x1e; + ; +; + +#------------------------------------------------------------ +# ATxmega32D3 +#------------------------------------------------------------ + +part parent "x32a4u" + desc = "ATxmega32D3"; + id = "x32d3"; + variants = + "ATxmega32D3-AN: TQFP64, Fmax=32 MHz, T=[-40 C, 105 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega32D3-ANR: N/A, Fmax=N/A, T=[N/A, N/A], Vcc=[N/A, N/A]", + "ATxmega32D3-AU: TQFP64, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega32D3-AUR: TQFP64, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega32D3-MH: QFN64, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega32D3-MHR: VQFN64, Fmax=N/A, T=[N/A, N/A], Vcc=[N/A, N/A]", + "ATxmega32D3-MN: QFN64, Fmax=32 MHz, T=[-40 C, 105 C], Vcc=[1.6 V, 3.6 V]"; + mcuid = 237; + n_interrupts = 114; + signature = 0x1e 0x95 0x4a; + + memory "fuse0" = NULL; + + memory "fuse4" + initval = 0xff; + bitmask = 0x1e; + ; +; + #------------------------------------------------------------ # ATxmega64C3 #------------------------------------------------------------ @@ -12092,9 +15994,24 @@ part parent ".xmega" part parent "x64a4u" desc = "ATxmega64C3"; id = "x64c3"; + variants = + "ATxmega64C3-AN: TQFP64, Fmax=32 MHz, T=[-40 C, 105 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega64C3-ANR: N/A, Fmax=N/A, T=[N/A, N/A], Vcc=[N/A, N/A]", + "ATxmega64C3-AU: TQFP64, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega64C3-AUR: TQFP64, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega64C3-M7: QFN64, Fmax=32 MHz, T=[-40 C, 105 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega64C3-MH: VQFN64, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega64C3-MHR: VQFN64, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]"; mcuid = 249; signature = 0x1e 0x96 0x49; usbpid = 0x2fd6; + + memory "fuse0" = NULL; + + memory "fuse4" + initval = 0xff; + bitmask = 0x1e; + ; ; #------------------------------------------------------------ @@ -12104,9 +16021,25 @@ part parent "x64a4u" part parent "x64a4u" desc = "ATxmega64D3"; id = "x64d3"; + variants = + "ATxmega64D3: N/A, Fmax=N/A, T=[N/A, N/A], Vcc=[1.6 V, 3.6 V]", + "ATxmega64D3-AN: TQFP64, Fmax=32 MHz, T=[-40 C, 105 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega64D3-ANR: N/A, Fmax=N/A, T=[N/A, N/A], Vcc=[N/A, N/A]", + "ATxmega64D3-AU: TQFP64, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega64D3-AUR: TQFP64, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega64D3-MH: QFN64, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega64D3-MHR: VQFN64, Fmax=N/A, T=[N/A, N/A], Vcc=[1.6 V, 3.6 V]", + "ATxmega64D3-MN: QFN64, Fmax=32 MHz, T=[-40 C, 105 C], Vcc=[1.6 V, 3.6 V]"; mcuid = 250; n_interrupts = 114; signature = 0x1e 0x96 0x4a; + + memory "fuse0" = NULL; + + memory "fuse4" + initval = 0xff; + bitmask = 0x1e; + ; ; #------------------------------------------------------------ @@ -12116,9 +16049,25 @@ part parent "x64a4u" part parent "x64a4u" desc = "ATxmega64D4"; id = "x64d4"; + variants = + "ATxmega64D4-AN: TQFP44, Fmax=32 MHz, T=[-40 C, 105 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega64D4-AU: QFP44, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega64D4-AUR: TQFP44, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega64D4-CU: VFBGA49, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega64D4-CUR: VFBGA49, Fmax=N/A, T=[N/A, N/A], Vcc=[1.6 V, 3.6 V]", + "ATxmega64D4-M7: VFBGA49, Fmax=32 MHz, T=[-40 C, 105 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega64D4-MH: VQFN44, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega64D4-MHR: VQFN44, Fmax=N/A, T=[N/A, N/A], Vcc=[1.6 V, 3.6 V]"; mcuid = 253; n_interrupts = 91; signature = 0x1e 0x96 0x47; + + memory "fuse0" = NULL; + + memory "fuse4" + initval = 0xff; + bitmask = 0x1e; + ; ; #------------------------------------------------------------ @@ -12128,14 +16077,21 @@ part parent "x64a4u" part parent "x64a4u" desc = "ATxmega64A1"; id = "x64a1"; + variants = + "ATxmega64A1: N/A, Fmax=N/A, T=[N/A, N/A], Vcc=[1.6 V, 3.6 V]", + "ATxmega64A1-AU: TQFP100, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega64A1-AUR: TQFP100, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega64A1-C7U: VFBGA100, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega64A1-C7UR: VFBGA100, Fmax=N/A, T=[N/A, N/A], Vcc=[1.6 V, 3.6 V]", + "ATxmega64A1-CU: CBGA100, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega64A1-CUR: BGA100, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]"; prog_modes = PM_SPM | PM_PDI | PM_XMEGAJTAG; mcuid = 243; n_interrupts = 125; signature = 0x1e 0x96 0x4e; - memory "fuse0" - size = 1; - offset = 0x8f0020; + memory "fuse2" + bitmask = 0x43; ; ; @@ -12146,9 +16102,21 @@ part parent "x64a4u" part parent "x64a1" desc = "ATxmega64A1U"; id = "x64a1u"; + variants = + "ATxmega64A1U-AN: TQFP100, Fmax=32 MHz, T=[-40 C, 105 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega64A1U-AU: TQFP100, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega64A1U-AUR: TQFP100, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega64A1U-C7U: VFBGA100, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega64A1U-C7UR: VFBGA100, Fmax=N/A, T=[N/A, N/A], Vcc=[N/A, N/A]", + "ATxmega64A1U-CU: CBGA100, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega64A1U-CUR: TFBGA100, Fmax=N/A, T=[N/A, N/A], Vcc=[N/A, N/A]"; mcuid = 244; n_interrupts = 127; usbpid = 0x2fe8; + + memory "fuse2" + bitmask = 0x63; + ; ; #------------------------------------------------------------ @@ -12158,6 +16126,13 @@ part parent "x64a1" part parent "x64a1" desc = "ATxmega64A3"; id = "x64a3"; + variants = + "ATxmega64A3: N/A, Fmax=N/A, T=[N/A, N/A], Vcc=[1.6 V, 3.6 V]", + "ATxmega64A3-AU: TQFP64, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega64A3-AUR: TQFP64, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega64A3-MH: QFN64, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega64A3-MHR: QFN64, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega64A3-MU: QFN64, Fmax=32 MHz, T=[N/A, N/A], Vcc=[1.6 V, 3.6 V]"; mcuid = 246; n_interrupts = 122; signature = 0x1e 0x96 0x42; @@ -12170,9 +16145,20 @@ part parent "x64a1" part parent "x64a1" desc = "ATxmega64A3U"; id = "x64a3u"; + variants = + "ATxmega64A3U-AN: TQFP64, Fmax=32 MHz, T=[-40 C, 105 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega64A3U-AU: TQFP64, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega64A3U-AUR: TQFP64, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega64A3U-MH: QFN64, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega64A3U-MHR: VQFN64, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega64A3U-MN: QFN64, Fmax=32 MHz, T=[-40 C, 105 C], Vcc=[1.6 V, 3.6 V]"; mcuid = 247; n_interrupts = 127; signature = 0x1e 0x96 0x42; + + memory "fuse2" + bitmask = 0x63; + ; ; #------------------------------------------------------------ @@ -12182,8 +16168,37 @@ part parent "x64a1" part parent "x64a1" desc = "ATxmega64A4"; id = "x64a4"; + variants = + "ATxmega64A4: N/A, Fmax=N/A, T=[N/A, N/A], Vcc=[1.6 V, 3.6 V]"; mcuid = 251; signature = 0x1e 0x96 0x46; + + memory "fuse0" + initval = -1; + ; + + memory "fuse1" + initval = -1; + ; + + memory "fuse2" + initval = -1; + bitmask = -1; + ; + + memory "fuse4" + initval = -1; + bitmask = -1; + ; + + memory "fuse5" + initval = -1; + bitmask = -1; + ; + + memory "lock" + initval = -1; + ; ; #------------------------------------------------------------ @@ -12193,10 +16208,23 @@ part parent "x64a1" part parent "x64a1" desc = "ATxmega64B1"; id = "x64b1"; + variants = + "ATxmega64B1-AU: TQFP100, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega64B1-AUR: TQFP100, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega64B1-CU: VFBGA100, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega64B1-CUR: TQFP100, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]"; mcuid = 245; n_interrupts = 81; signature = 0x1e 0x96 0x52; usbpid = 0x2fe1; + + memory "fuse2" + bitmask = 0x63; + ; + + memory "fuse4" + initval = 0xff; + ; ; #------------------------------------------------------------ @@ -12206,10 +16234,22 @@ part parent "x64a1" part parent "x64a1" desc = "ATxmega64B3"; id = "x64b3"; + variants = + "ATxmega64B3-AU: TQFP64, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega64B3-AUR: TQFP100, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega64B3-MH: QFN64, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]"; mcuid = 248; n_interrupts = 54; signature = 0x1e 0x96 0x51; usbpid = 0x2fdf; + + memory "fuse2" + bitmask = 0x63; + ; + + memory "fuse4" + initval = 0xff; + ; ; #------------------------------------------------------------ @@ -12219,6 +16259,13 @@ part parent "x64a1" part parent ".xmega" desc = "ATxmega128C3"; id = "x128c3"; + variants = + "ATxmega128C3-AN: TQFP64, Fmax=32 MHz, T=[-40 C, 105 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega128C3-AU: TQFP64, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega128C3-AUR: TQFP64, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega128C3-M7: QFN64, Fmax=32 MHz, T=[-40 C, 105 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega128C3-MH: QFN64, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega128C3-MHR: QFN64, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]"; mcuid = 261; n_interrupts = 127; boot_section_size = 8192; @@ -12275,6 +16322,14 @@ part parent ".xmega" part parent "x128c3" desc = "ATxmega128D3"; id = "x128d3"; + variants = + "ATxmega128D3: N/A, Fmax=N/A, T=[N/A, N/A], Vcc=[1.6 V, 3.6 V]", + "ATxmega128D3-AN: TQFP64, Fmax=32 MHz, T=[-40 C, 105 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega128D3-AU: TQFP64, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega128D3-AUR: TQFP64, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega128D3-MH: QFN64, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega128D3-MHR: VQFN64, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega128D3-MN: QFN64, Fmax=32 MHz, T=[-40 C, 105 C], Vcc=[1.6 V, 3.6 V]"; mcuid = 262; n_interrupts = 114; signature = 0x1e 0x97 0x48; @@ -12287,6 +16342,15 @@ part parent "x128c3" part parent "x128c3" desc = "ATxmega128D4"; id = "x128d4"; + variants = + "ATxmega128D4-AN: TQFP44, Fmax=32 MHz, T=[-40 C, 105 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega128D4-AU: TQFP44, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega128D4-AUR: TQFP44, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega128D4-CU: VFBGA49, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega128D4-CUR: VFBGA49, Fmax=N/A, T=[N/A, N/A], Vcc=[N/A, N/A]", + "ATxmega128D4-M7: VFBGA49, Fmax=32 MHz, T=[-40 C, 105 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega128D4-MH: QFN44, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega128D4-MHR: VQFN44, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]"; mcuid = 265; n_interrupts = 91; signature = 0x1e 0x97 0x47; @@ -12303,6 +16367,14 @@ part parent "x128c3" part parent "x128c3" desc = "ATxmega128A1"; id = "x128a1"; + variants = + "ATxmega128A1: N/A, Fmax=N/A, T=[N/A, N/A], Vcc=[1.6 V, 3.6 V]", + "ATxmega128A1-AU: TQFP100, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega128A1-AUR: TQFP100, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega128A1-C7U: VFBGA100, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega128A1-C7UR: VFBGA100, Fmax=N/A, T=[N/A, N/A], Vcc=[1.6 V, 3.6 V]", + "ATxmega128A1-CU: CBGA100, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega128A1-CUR: BGA100, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]"; prog_modes = PM_SPM | PM_PDI | PM_XMEGAJTAG; mcuid = 254; n_interrupts = 125; @@ -12310,8 +16382,18 @@ part parent "x128c3" memory "fuse0" size = 1; + initval = 0xff; offset = 0x8f0020; ; + + memory "fuse2" + bitmask = 0x43; + ; + + memory "fuse4" + initval = 0xfe; + bitmask = 0x1f; + ; ; #------------------------------------------------------------ @@ -12332,9 +16414,22 @@ part parent "x128a1" part parent "x128a1" desc = "ATxmega128A1U"; id = "x128a1u"; + variants = + "ATxmega128A1U-AN: TQFP100, Fmax=32 MHz, T=[-40 C, 105 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega128A1U-ANR: N/A, Fmax=N/A, T=[N/A, N/A], Vcc=[N/A, N/A]", + "ATxmega128A1U-AU: TQFP100, Fmax=32 MHz, T=[-40 C, 105 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega128A1U-AUR: N/A, Fmax=32 MHz, T=[-40 C, 105 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega128A1U-C7U: VFBGA100, Fmax=32 MHz, T=[-40 C, 105 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega128A1U-C7UR: VFBGA100, Fmax=N/A, T=[N/A, N/A], Vcc=[N/A, N/A]", + "ATxmega128A1U-CU: CBGA100, Fmax=32 MHz, T=[-40 C, 105 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega128A1U-CUR: CBGA100, Fmax=32 MHz, T=[-40 C, 105 C], Vcc=[1.6 V, 3.6 V]"; mcuid = 256; n_interrupts = 127; usbpid = 0x2fed; + + memory "fuse2" + bitmask = 0x63; + ; ; #------------------------------------------------------------ @@ -12344,6 +16439,13 @@ part parent "x128a1" part parent "x128a1" desc = "ATxmega128A3"; id = "x128a3"; + variants = + "ATxmega128A3: N/A, Fmax=N/A, T=[N/A, N/A], Vcc=[1.6 V, 3.6 V]", + "ATxmega128A3-AU: TQFP64, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega128A3-AUR: TQFP64, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega128A3-MH: QFN64, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega128A3-MHR: QFN64, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega128A3-MU: QFN64, Fmax=32 MHz, T=[N/A, N/A], Vcc=[1.6 V, 3.6 V]"; mcuid = 258; n_interrupts = 122; signature = 0x1e 0x97 0x42; @@ -12356,10 +16458,21 @@ part parent "x128a1" part parent "x128a1" desc = "ATxmega128A3U"; id = "x128a3u"; + variants = + "ATxmega128A3U-AN: TQFP64, Fmax=32 MHz, T=[-40 C, 105 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega128A3U-AU: TQFP64, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega128A3U-AUR: TQFP64, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega128A3U-MH: QFN64, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega128A3U-MHR: QFN64, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega128A3U-MN: QFN64, Fmax=32 MHz, T=[-40 C, 105 C], Vcc=[1.6 V, 3.6 V]"; mcuid = 259; n_interrupts = 127; signature = 0x1e 0x97 0x42; usbpid = 0x2fe6; + + memory "fuse2" + bitmask = 0x63; + ; ; #------------------------------------------------------------ @@ -12369,6 +16482,8 @@ part parent "x128a1" part parent ".xmega" desc = "ATxmega128A4"; id = "x128a4"; + variants = + "ATxmega128A4: N/A, Fmax=N/A, T=[N/A, N/A], Vcc=[1.6 V, 3.6 V]"; prog_modes = PM_SPM | PM_PDI | PM_XMEGAJTAG; mcuid = 263; signature = 0x1e 0x97 0x46; @@ -12413,6 +16528,29 @@ part parent ".xmega" offset = 0x8f0020; ; + memory "fuse1" + initval = -1; + ; + + memory "fuse2" + initval = -1; + bitmask = -1; + ; + + memory "fuse4" + initval = -1; + bitmask = -1; + ; + + memory "fuse5" + initval = -1; + bitmask = -1; + ; + + memory "lock" + initval = -1; + ; + memory "usersig" size = 512; page_size = 512; @@ -12425,9 +16563,17 @@ part parent ".xmega" # ATxmega128A4U #------------------------------------------------------------ -part parent ".xmega" +part parent ".xmega-a" desc = "ATxmega128A4U"; id = "x128a4u"; + variants = + "ATxmega128A4U-AN: TQFP44, Fmax=32 MHz, T=[-40 C, 105 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega128A4U-AU: TQFP44, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega128A4U-AUR: TQFP44, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega128A4U-CU: BGA49, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega128A4U-M7: VQFN44PW, Fmax=32 MHz, T=[-40 C, 105 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega128A4U-MH: VQFN44, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega128A4U-MHR: VQFN44, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]"; mcuid = 264; n_interrupts = 127; boot_section_size = 8192; @@ -12469,6 +16615,10 @@ part parent ".xmega" readsize = 256; ; + memory "fuse4" + initval = 0xfe; + ; + memory "usersig" size = 256; page_size = 256; @@ -12484,6 +16634,12 @@ part parent ".xmega" part parent ".xmega" desc = "ATxmega128B1"; id = "x128b1"; + variants = + "ATxmega128B1-AN: TQFP100, Fmax=32 MHz, T=[-40 C, 105 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega128B1-AU: TQFP100, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega128B1-AUR: TQFP100, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega128B1-CU: VFBGA100, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega128B1-CUR: TFBGA100, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]"; prog_modes = PM_SPM | PM_PDI | PM_XMEGAJTAG; mcuid = 257; n_interrupts = 81; @@ -12528,9 +16684,14 @@ part parent ".xmega" memory "fuse0" size = 1; + initval = 0xff; offset = 0x8f0020; ; + memory "fuse4" + bitmask = 0x1f; + ; + memory "usersig" size = 256; page_size = 256; @@ -12546,6 +16707,13 @@ part parent ".xmega" part parent "x128b1" desc = "ATxmega128B3"; id = "x128b3"; + variants = + "ATxmega128B3-AU: TQFP64, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega128B3-AUR: TQFP64, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega128B3-MCU: VQFN64, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega128B3-MCUR: VQFN64, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega128B3-MH: QFN64, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega128B3-MHR: QFN64, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]"; mcuid = 260; n_interrupts = 54; signature = 0x1e 0x97 0x4b; @@ -12559,10 +16727,16 @@ part parent "x128b1" part parent ".xmega" desc = "ATxmega192C3"; id = "x192c3"; + variants = + "ATxmega192C3-AU: TQFP64, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega192C3-AUR: TQFP64, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega192C3-MH: VQFN64, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega192C3-MHR: QFN64, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]"; mcuid = 269; n_interrupts = 127; boot_section_size = 8192; signature = 0x1e 0x97 0x51; + # usbpid = 0x2f??; memory "eeprom" @@ -12615,6 +16789,14 @@ part parent ".xmega" part parent "x192c3" desc = "ATxmega192D3"; id = "x192d3"; + variants = + "ATxmega192D3: N/A, Fmax=N/A, T=[N/A, N/A], Vcc=[1.6 V, 3.6 V]", + "ATxmega192D3-AN: TQFP64, Fmax=32 MHz, T=[-40 C, 105 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega192D3-AU: TQFP64, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega192D3-AUR: TQFP64, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega192D3-MH: QFN64, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega192D3-MHR: VQFN64, Fmax=N/A, T=[N/A, N/A], Vcc=[1.6 V, 3.6 V]", + "ATxmega192D3-MN: QFN64, Fmax=32 MHz, T=[-40 C, 105 C], Vcc=[1.6 V, 3.6 V]"; mcuid = 270; n_interrupts = 114; signature = 0x1e 0x97 0x49; @@ -12627,6 +16809,9 @@ part parent "x192c3" part parent "x192c3" desc = "ATxmega192A1"; id = "x192a1"; + variants = + "ATxmega192A1-AU: TQFP100, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega192A1-CU: CBGA100, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]"; prog_modes = PM_SPM | PM_PDI | PM_XMEGAJTAG; mcuid = 266; signature = 0x1e 0x97 0x4e; @@ -12635,18 +16820,64 @@ part parent "x192c3" size = 1; offset = 0x8f0020; ; + + memory "fuse1" + initval = -1; + ; + + memory "fuse2" + initval = -1; + bitmask = -1; + ; + + memory "fuse4" + initval = -1; + bitmask = -1; + ; + + memory "fuse5" + initval = -1; + bitmask = -1; + ; + + memory "lock" + initval = -1; + ; ; #------------------------------------------------------------ # ATxmega192A3 #------------------------------------------------------------ -part parent "x192a1" +part parent "x192c3" desc = "ATxmega192A3"; id = "x192a3"; + variants = + "ATxmega192A3: N/A, Fmax=N/A, T=[N/A, N/A], Vcc=[1.6 V, 3.6 V]", + "ATxmega192A3-AU: TQFP64, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega192A3-AUR: TQFP64, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega192A3-MH: QFN64, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega192A3-MHR: QFN64, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega192A3-MU: QFN64, Fmax=32 MHz, T=[N/A, N/A], Vcc=[1.6 V, 3.6 V]"; + prog_modes = PM_SPM | PM_PDI | PM_XMEGAJTAG; mcuid = 267; n_interrupts = 122; signature = 0x1e 0x97 0x44; + + memory "fuse0" + size = 1; + initval = 0xff; + offset = 0x8f0020; + ; + + memory "fuse2" + bitmask = 0x43; + ; + + memory "fuse4" + initval = 0xfe; + bitmask = 0x1f; + ; ; #------------------------------------------------------------ @@ -12656,9 +16887,44 @@ part parent "x192a1" part parent "x192a1" desc = "ATxmega192A3U"; id = "x192a3u"; + variants = + "ATxmega192A3U-AN: TQFP64, Fmax=32 MHz, T=[-40 C, 105 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega192A3U-ANR: TQFP64, Fmax=32 MHz, T=[-40 C, 105 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega192A3U-AU: TQFP64, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega192A3U-AUR: TQFP64, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega192A3U-MH: QFN64, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega192A3U-MHR: VQFN64, Fmax=N/A, T=[N/A, N/A], Vcc=[N/A, N/A]", + "ATxmega192A3U-MN: QFN64, Fmax=32 MHz, T=[-40 C, 105 C], Vcc=[1.6 V, 3.6 V]"; mcuid = 268; signature = 0x1e 0x97 0x44; usbpid = 0x2fe7; + + memory "fuse0" + initval = 0xff; + ; + + memory "fuse1" + initval = 0x00; + ; + + memory "fuse2" + initval = 0xff; + bitmask = 0x63; + ; + + memory "fuse4" + initval = 0xfe; + bitmask = 0x1f; + ; + + memory "fuse5" + initval = 0xff; + bitmask = 0x3f; + ; + + memory "lock" + initval = 0xff; + ; ; #------------------------------------------------------------ @@ -12668,6 +16934,13 @@ part parent "x192a1" part parent ".xmega" desc = "ATxmega256C3"; id = "x256c3"; + variants = + "ATxmega256C3-AN: TQFP64, Fmax=32 MHz, T=[-40 C, 105 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega256C3-AU: TQFP64, Fmax=32 MHz, T=[-40 C, 105 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega256C3-AUR: TQFP64, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega256C3-M7: QFN64, Fmax=32 MHz, T=[-40 C, 105 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega256C3-MH: VQFN64, Fmax=32 MHz, T=[-40 C, 105 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega256C3-MHR: QFN64, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]"; mcuid = 276; n_interrupts = 127; boot_section_size = 8192; @@ -12724,6 +16997,14 @@ part parent ".xmega" part parent "x256c3" desc = "ATxmega256D3"; id = "x256d3"; + variants = + "ATxmega256D3: N/A, Fmax=N/A, T=[N/A, N/A], Vcc=[1.6 V, 3.6 V]", + "ATxmega256D3-AN: TQFP64, Fmax=32 MHz, T=[-40 C, 105 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega256D3-AU: TQFP64, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega256D3-AUR: TQFP64, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega256D3-MH: QFN64, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega256D3-MHR: VQFN64, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega256D3-MN: QFN64, Fmax=32 MHz, T=[-40 C, 105 C], Vcc=[1.6 V, 3.6 V]"; mcuid = 277; n_interrupts = 114; signature = 0x1e 0x98 0x44; @@ -12736,6 +17017,9 @@ part parent "x256c3" part parent "x256c3" desc = "ATxmega256A1"; id = "x256a1"; + variants = + "ATxmega256A1-AU: TQFP100, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega256A1-CU: CBGA100, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]"; prog_modes = PM_SPM | PM_PDI | PM_XMEGAJTAG; mcuid = 271; @@ -12743,6 +17027,29 @@ part parent "x256c3" size = 1; offset = 0x8f0020; ; + + memory "fuse1" + initval = -1; + ; + + memory "fuse2" + initval = -1; + bitmask = -1; + ; + + memory "fuse4" + initval = -1; + bitmask = -1; + ; + + memory "fuse5" + initval = -1; + bitmask = -1; + ; + + memory "lock" + initval = -1; + ; ; #------------------------------------------------------------ @@ -12752,9 +17059,43 @@ part parent "x256c3" part parent "x256a1" desc = "ATxmega256A3"; id = "x256a3"; + variants = + "ATxmega256A3: N/A, Fmax=N/A, T=[N/A, N/A], Vcc=[1.6 V, 3.6 V]", + "ATxmega256A3-AU: TQFP64, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega256A3-AUR: TQFP64, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega256A3-MH: QFN64, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega256A3-MHR: QFN64, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega256A3-MU: QFN64, Fmax=32 MHz, T=[N/A, N/A], Vcc=[1.6 V, 3.6 V]"; mcuid = 272; n_interrupts = 122; signature = 0x1e 0x98 0x42; + + memory "fuse0" + initval = 0xff; + ; + + memory "fuse1" + initval = 0x00; + ; + + memory "fuse2" + initval = 0xff; + bitmask = 0x43; + ; + + memory "fuse4" + initval = 0xfe; + bitmask = 0x1f; + ; + + memory "fuse5" + initval = 0xff; + bitmask = 0x3f; + ; + + memory "lock" + initval = 0xff; + ; ; #------------------------------------------------------------ @@ -12764,21 +17105,89 @@ part parent "x256a1" part parent "x256a1" desc = "ATxmega256A3U"; id = "x256a3u"; + variants = + "ATxmega256A3U-AN: TQFP64, Fmax=32 MHz, T=[-40 C, 105 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega256A3U-ANR: N/A, Fmax=N/A, T=[N/A, N/A], Vcc=[N/A, N/A]", + "ATxmega256A3U-AU: TQFP64, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega256A3U-AUR: TQFP64, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega256A3U-MH: QFN64, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega256A3U-MHR: QFN64, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega256A3U-MN: QFN64, Fmax=32 MHz, T=[-40 C, 105 C], Vcc=[1.6 V, 3.6 V]"; mcuid = 275; signature = 0x1e 0x98 0x42; usbpid = 0x2fec; + + memory "fuse0" + initval = 0xff; + ; + + memory "fuse1" + initval = 0x00; + ; + + memory "fuse2" + initval = 0xff; + bitmask = 0x63; + ; + + memory "fuse4" + initval = 0xfe; + bitmask = 0x1f; + ; + + memory "fuse5" + initval = 0xff; + bitmask = 0x3f; + ; + + memory "lock" + initval = 0xff; + ; ; #------------------------------------------------------------ # ATxmega256A3B #------------------------------------------------------------ -part parent "x256a1" - desc = "ATxmega256A3B"; - id = "x256a3b"; - mcuid = 273; - n_interrupts = 122; - signature = 0x1e 0x98 0x43; +part parent "x256a1" + desc = "ATxmega256A3B"; + id = "x256a3b"; + variants = + "ATxmega256A3B: N/A, Fmax=N/A, T=[N/A, N/A], Vcc=[1.6 V, 3.6 V]", + "ATxmega256A3B-AU: TQFP64, Fmax=32 MHz, T=[N/A, N/A], Vcc=[1.6 V, 3.6 V]", + "ATxmega256A3B-MH: QFN64, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega256A3B-MHR: QFN64, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega256A3B-MU: QFN64, Fmax=32 MHz, T=[N/A, N/A], Vcc=[1.6 V, 3.6 V]"; + mcuid = 273; + n_interrupts = 122; + signature = 0x1e 0x98 0x43; + + memory "fuse0" + initval = 0xff; + ; + + memory "fuse1" + initval = 0x00; + ; + + memory "fuse2" + initval = 0xff; + bitmask = 0x43; + ; + + memory "fuse4" + initval = 0xfe; + bitmask = 0x1f; + ; + + memory "fuse5" + initval = 0xff; + bitmask = 0x3f; + ; + + memory "lock" + initval = 0xff; + ; ; #------------------------------------------------------------ @@ -12788,9 +17197,41 @@ part parent "x256a1" part parent "x256a1" desc = "ATxmega256A3BU"; id = "x256a3bu"; + variants = + "ATxmega256A3BU-AU: TQFP64, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega256A3BU-AUR: TQFP64, Fmax=N/A, T=[N/A, N/A], Vcc=[N/A, N/A]", + "ATxmega256A3BU-MH: QFN64, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega256A3BU-MHR: VQFN64, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]"; mcuid = 274; signature = 0x1e 0x98 0x43; usbpid = 0x2fe2; + + memory "fuse0" + initval = 0xff; + ; + + memory "fuse1" + initval = 0x00; + ; + + memory "fuse2" + initval = 0xff; + bitmask = 0x63; + ; + + memory "fuse4" + initval = 0xfe; + bitmask = 0x1f; + ; + + memory "fuse5" + initval = 0xff; + bitmask = 0x3f; + ; + + memory "lock" + initval = 0xff; + ; ; #------------------------------------------------------------ @@ -12800,6 +17241,13 @@ part parent "x256a1" part parent ".xmega" desc = "ATxmega384C3"; id = "x384c3"; + variants = + "ATxmega384C3-AN: TQFP64, Fmax=32 MHz, T=[-40 C, 105 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega384C3-AU: TQFP64, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega384C3-AUR: TQFP64, Fmax=N/A, T=[N/A, N/A], Vcc=[N/A, N/A]", + "ATxmega384C3-M7: QFN64, Fmax=32 MHz, T=[-40 C, 105 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega384C3-MH: QFN64, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega384C3-MHR: VQFN64, Fmax=N/A, T=[N/A, N/A], Vcc=[N/A, N/A]"; mcuid = 278; n_interrupts = 127; boot_section_size = 8192; @@ -12856,6 +17304,12 @@ part parent ".xmega" part parent "x384c3" desc = "ATxmega384D3"; id = "x384d3"; + variants = + "ATxmega384D3-AN: TQFP64, Fmax=32 MHz, T=[-40 C, 105 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega384D3-AU: TQFP64, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega384D3-MH: VQFN64, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega384D3-MHR: QFN64, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega384D3-MN: QFN64, Fmax=32 MHz, T=[-40 C, 105 C], Vcc=[1.6 V, 3.6 V]"; mcuid = 279; n_interrupts = 114; signature = 0x1e 0x98 0x47; @@ -12865,9 +17319,21 @@ part parent "x384c3" # ATxmega8E5 #------------------------------------------------------------ -part parent ".xmega" +part parent ".xmega-e" desc = "ATxmega8E5"; id = "x8e5"; + variants = + "ATxmega8E5-AN: TQFP32, Fmax=32 MHz, T=[-40 C, 105 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega8E5-ANR: N/A, Fmax=N/A, T=[N/A, N/A], Vcc=[N/A, N/A]", + "ATxmega8E5-AU: TQFP32, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega8E5-AUR: TQFP32, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega8E5-M4N: UQFN32, Fmax=32 MHz, T=[-40 C, 105 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega8E5-M4U: UQFN32, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega8E5-M4UR: UQFN32, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega8E5-MN: VQFN32, Fmax=32 MHz, T=[-40 C, 105 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega8E5-MNR: N/A, Fmax=N/A, T=[N/A, N/A], Vcc=[N/A, N/A]", + "ATxmega8E5-MU: VQFN32, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega8E5-MUR: VQFN32, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]"; mcuid = 230; n_interrupts = 43; boot_section_size = 2048; @@ -12908,6 +17374,10 @@ part parent ".xmega" readsize = 256; ; + memory "fuse2" + bitmask = 0x43; + ; + memory "usersig" size = 128; page_size = 128; @@ -12920,9 +17390,21 @@ part parent ".xmega" # ATxmega16E5 #------------------------------------------------------------ -part parent ".xmega" +part parent ".xmega-e" desc = "ATxmega16E5"; id = "x16e5"; + variants = + "ATxmega16E5-AN: TQFP32, Fmax=32 MHz, T=[-40 C, 105 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega16E5-ANR: TQFP32, Fmax=32 MHz, T=[-40 C, 105 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega16E5-AU: TQFP32, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega16E5-AUR: TQFP32, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega16E5-M4N: UQFN32, Fmax=32 MHz, T=[-40 C, 105 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega16E5-M4U: UQFN32, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega16E5-M4UR: UQFN32, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega16E5-MN: VQFN32, Fmax=32 MHz, T=[-40 C, 105 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega16E5-MNR: N/A, Fmax=N/A, T=[N/A, N/A], Vcc=[N/A, N/A]", + "ATxmega16E5-MU: VQFN32, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega16E5-MUR: VQFN32, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]"; mcuid = 235; n_interrupts = 43; boot_section_size = 4096; @@ -12963,6 +17445,10 @@ part parent ".xmega" readsize = 256; ; + memory "fuse2" + bitmask = 0x43; + ; + memory "usersig" size = 128; page_size = 128; @@ -12975,9 +17461,21 @@ part parent ".xmega" # ATxmega32E5 #------------------------------------------------------------ -part parent ".xmega" +part parent ".xmega-e" desc = "ATxmega32E5"; id = "x32e5"; + variants = + "ATxmega32E5-AN: TQFP32, Fmax=32 MHz, T=[-40 C, 105 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega32E5-ANR: N/A, Fmax=N/A, T=[N/A, N/A], Vcc=[N/A, N/A]", + "ATxmega32E5-AU: TQFP32, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega32E5-AUR: TQFP32, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega32E5-M4N: UQFN32, Fmax=32 MHz, T=[-40 C, 105 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega32E5-M4U: UQFN32, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega32E5-M4UR: UQFN32, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega32E5-MN: VQFN32, Fmax=32 MHz, T=[-40 C, 105 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega32E5-MNR: N/A, Fmax=N/A, T=[N/A, N/A], Vcc=[N/A, N/A]", + "ATxmega32E5-MU: VQFN32, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]", + "ATxmega32E5-MUR: VQFN32, Fmax=32 MHz, T=[-40 C, 85 C], Vcc=[1.6 V, 3.6 V]"; mcuid = 242; n_interrupts = 43; boot_section_size = 4096; @@ -13018,6 +17516,10 @@ part parent ".xmega" readsize = 256; ; + memory "fuse2" + bitmask = 0x43; + ; + memory "usersig" size = 128; page_size = 128; @@ -13033,6 +17535,17 @@ part parent ".xmega" part desc = "AT32UC3A0512"; id = "uc3a0512"; + variants = + "AT32UC3A0512-ALTR: LQFP144, Fmax=66 MHz, T=[-40 C, 85 C], Vcc=[1.65 V, 3.6 V]", + "AT32UC3A0512-ALTRA: LQFP144, Fmax=66 MHz, T=[-40 C, 85 C], Vcc=[1.65 V, 3.6 V]", + "AT32UC3A0512-ALTT: LQFP144, Fmax=66 MHz, T=[-40 C, 85 C], Vcc=[1.65 V, 3.6 V]", + "AT32UC3A0512-ALTTA: LQFP144, Fmax=66 MHz, T=[-40 C, 85 C], Vcc=[1.65 V, 3.6 V]", + "AT32UC3A0512-ALUR: LQFP144, Fmax=66 MHz, T=[-40 C, 85 C], Vcc=[1.65 V, 3.6 V]", + "AT32UC3A0512-ALUT: LQFP144, Fmax=66 MHz, T=[-40 C, 85 C], Vcc=[1.65 V, 3.6 V]", + "AT32UC3A0512-CTUR: TFBGA144, Fmax=66 MHz, T=[-40 C, 85 C], Vcc=[1.65 V, 3.6 V]", + "AT32UC3A0512-CTUT: TFBGA144, Fmax=66 MHz, T=[-40 C, 85 C], Vcc=[1.65 V, 3.6 V]", + "AT32UC3A0512AU-ALTRA: LQFP144, Fmax=66 MHz, T=[-40 C, 85 C], Vcc=[1.65 V, 3.6 V]", + "AT32UC3A0512AU-ALUT: LQFP144, Fmax=66 MHz, T=[-40 C, 85 C], Vcc=[1.65 V, 3.6 V]"; prog_modes = PM_AVR32JTAG | PM_aWire; signature = 0xed 0xc0 0x3f; @@ -13062,6 +17575,14 @@ part parent "uc3a0512" part desc = "ATtiny1634"; id = "t1634"; + variants = + "ATtiny1634: N/A, Fmax=N/A, T=[N/A, N/A], Vcc=[1.8 V, 5.5 V]", + "ATtiny1634-MN: WQFN20, Fmax=12 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny1634-MNR: WQFN20, Fmax=12 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny1634-MU: QFN20, Fmax=12 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny1634-MUR: QFN20, Fmax=12 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny1634-SU: SOIC20, Fmax=12 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny1634-SUR: SOIC20, Fmax=12 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; prog_modes = PM_SPM | PM_ISP | PM_HVPP | PM_debugWIRE; mcuid = 40; n_interrupts = 28; @@ -13083,16 +17604,17 @@ part postdelay = 1; pollmethod = 1; pp_controlstack = - 0x0e, 0x1e, 0x0e, 0x1e, 0x2e, 0x3e, 0x2e, 0x3e, - 0x4e, 0x5e, 0x4e, 0x5e, 0x6e, 0x7e, 0x6e, 0x7e, - 0x26, 0x36, 0x66, 0x76, 0x2a, 0x3a, 0x6a, 0x7a, - 0x2e, 0xfd, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00; + 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; flash_instr = 0xb6, 0x01, 0x11; eeprom_instr = 0xbd, 0xf2, 0xbd, 0xe1, 0xbb, 0xcf, 0xb4, 0x00, 0xbe, 0x01, 0xb6, 0x01, 0xbc, 0x00, 0xbb, 0xbf, 0x99, 0xf9, 0xbb, 0xaf; hventerstabdelay = 100; + latchcycles = 5; togglevtg = 1; poweroffdelay = 15; resetdelayms = 1; @@ -13101,8 +17623,10 @@ part chiperasepolltimeout = 10; programfusepolltimeout = 5; programlockpolltimeout = 5; + idr = 0x2e; spmcr = 0x57; eecr = 0x3c; + ocdrev = 1; chip_erase = "1010.1100--100x.xxxx--xxxx.xxxx--xxxx.xxxx"; pgm_enable = "1010.1100--0101.0011--xxxx.xxxx--xxxx.xxxx"; @@ -13111,9 +17635,8 @@ part page_size = 4; min_write_delay = 3600; max_write_delay = 3600; - readback = 0xff 0xff; - mode = 65; - delay = 5; + mode = 0x41; + delay = 20; blocksize = 4; readsize = 256; read = "1010.0000--000x.xxxa--aaaa.aaaa--oooo.oooo"; @@ -13129,10 +17652,9 @@ part num_pages = 512; min_write_delay = 4500; max_write_delay = 4500; - readback = 0xff 0xff; - mode = 65; - delay = 6; - blocksize = 128; + mode = 0x41; + delay = 10; + blocksize = 32; readsize = 256; read_lo = "0010.0000--00aa.aaaa--aaaa.aaaa--oooo.oooo"; read_hi = "0010.1000--00aa.aaaa--aaaa.aaaa--oooo.oooo"; @@ -13143,6 +17665,8 @@ part memory "lfuse" size = 1; + initval = 0x62; + bitmask = 0xdf; min_write_delay = 4500; max_write_delay = 4500; read = "0101.0000--0000.0000--xxxx.xxxx--oooo.oooo"; @@ -13151,6 +17675,7 @@ part memory "hfuse" size = 1; + initval = 0xdf; min_write_delay = 4500; max_write_delay = 4500; read = "0101.1000--0000.1000--xxxx.xxxx--oooo.oooo"; @@ -13159,6 +17684,8 @@ part memory "efuse" size = 1; + initval = 0xff; + bitmask = 0x1f; min_write_delay = 4500; max_write_delay = 4500; read = "0101.0000--0000.1000--xxxx.xxxx--oooo.oooo"; @@ -13167,6 +17694,8 @@ part memory "lock" size = 1; + initval = 0xff; + bitmask = 0x03; min_write_delay = 4500; max_write_delay = 4500; read = "0101.1000--0000.0000--xxxx.xxxx--oooo.oooo"; @@ -13191,6 +17720,11 @@ part part parent "t1634" desc = "ATtiny1634R"; id = "t1634r"; + variants = + "ATtiny1634R-MU: QFN20, Fmax=12 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny1634R-MUR: WQFN20, Fmax=12 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny1634R-SU: SOIC20, Fmax=12 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny1634R-SUR: SOIC20, Fmax=12 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 41; ; @@ -13206,6 +17740,8 @@ part memory "fuse" size = 1; page_size = 16; + initval = 0xff; + bitmask = 0x07; offset = 0x3f40; blocksize = 4; ; @@ -13213,6 +17749,8 @@ part memory "lockbits" size = 1; page_size = 16; + initval = 0xff; + bitmask = 0x03; offset = 0x3f00; ; @@ -13236,6 +17774,10 @@ part part parent ".reduced_core_tiny" desc = "ATtiny4"; id = "t4"; + variants = + "ATtiny4-MAHR: UDFN8, Fmax=12 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny4-TS8R: SOT23-6, Fmax=10 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny4-TSHR: SOT23-6, Fmax=12 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 0; n_interrupts = 10; signature = 0x1e 0x8f 0x0a; @@ -13255,6 +17797,10 @@ part parent ".reduced_core_tiny" part parent "t4" desc = "ATtiny5"; id = "t5"; + variants = + "ATtiny5-MAHR: USON8, Fmax=12 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny5-TS8R: SOT23-6, Fmax=10 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny5-TSHR: SOT23-6, Fmax=12 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 1; n_interrupts = 11; signature = 0x1e 0x8f 0x09; @@ -13267,6 +17813,10 @@ part parent "t4" part parent ".reduced_core_tiny" desc = "ATtiny9"; id = "t9"; + variants = + "ATtiny9-MAHR: DFN8, Fmax=12 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny9-TS8R: SOT23-6, Fmax=10 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny9-TSHR: SOT23-6, Fmax=12 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 2; n_interrupts = 10; signature = 0x1e 0x90 0x08; @@ -13286,6 +17836,10 @@ part parent ".reduced_core_tiny" part parent "t9" desc = "ATtiny10"; id = "t10"; + variants = + "ATtiny10-MAHR: UDFN8, Fmax=12 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny10-TS8R: SOT23-6, Fmax=10 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny10-TSHR: SOT23-6, Fmax=12 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 3; n_interrupts = 11; signature = 0x1e 0x90 0x03; @@ -13298,6 +17852,16 @@ part parent "t9" part parent ".reduced_core_tiny" desc = "ATtiny20"; id = "t20"; + variants = + "ATtiny20-CCU: UFBGA15, Fmax=12 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny20-CCUR: UFBGA15, Fmax=12 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny20-MMH: VQFN20, Fmax=12 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny20-MMHR: VQFN20, Fmax=12 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny20-SSU: SOIC14, Fmax=12 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny20-SSUR: SOIC14, Fmax=12 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny20-UUR: WLCSP12, Fmax=12 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny20-XU: TSSOP14, Fmax=12 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny20-XUR: TSSOP14, Fmax=12 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 4; n_interrupts = 17; signature = 0x1e 0x91 0x0f; @@ -13311,6 +17875,7 @@ part parent ".reduced_core_tiny" ; memory "fuse" + bitmask = 0x77; n_word_writes = 2; ; ; @@ -13322,6 +17887,13 @@ part parent ".reduced_core_tiny" part parent ".reduced_core_tiny" desc = "ATtiny40"; id = "t40"; + variants = + "ATtiny40-MMH: VQFN20, Fmax=12 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny40-MMHR: VQFN20, Fmax=12 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny40-SU: SOIC20, Fmax=12 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny40-SUR: SOIC20, Fmax=12 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny40-XU: TSSOP20, Fmax=12 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny40-XUR: TSSOP20, Fmax=12 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 5; n_interrupts = 18; signature = 0x1e 0x92 0x0e; @@ -13335,6 +17907,7 @@ part parent ".reduced_core_tiny" ; memory "fuse" + bitmask = 0x77; n_word_writes = 4; ; ; @@ -13346,6 +17919,15 @@ part parent ".reduced_core_tiny" part parent ".reduced_core_tiny" desc = "ATtiny102"; id = "t102"; + variants = + "ATtiny102-M7R: UDFN8, Fmax=12 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny102-M8R: UDFN8, Fmax=12 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny102-SSFR: SOIC8, Fmax=12 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny102-SSNR: SOIC8, Fmax=12 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny102F-M7R: UDFN8, Fmax=12 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny102F-M8R: UDFN8, Fmax=12 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny102F-SSFR: SOIC8, Fmax=12 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny102F-SSNR: SOIC8, Fmax=12 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 6; n_interrupts = 16; signature = 0x1e 0x90 0x0c; @@ -13357,6 +17939,10 @@ part parent ".reduced_core_tiny" blocksize = 128; ; + memory "fuse" + bitmask = 0x0f; + ; + memory "sigrow" size = 16; page_size = 16; @@ -13371,6 +17957,11 @@ part parent ".reduced_core_tiny" part parent ".reduced_core_tiny" desc = "ATtiny104"; id = "t104"; + variants = + "ATtiny104-SSFR: SOIC14, Fmax=12 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny104-SSNR: SOIC14, Fmax=12 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny104F-SSFR: SOIC14, Fmax=12 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny104F-SSNR: SOIC14, Fmax=12 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 7; n_interrupts = 16; signature = 0x1e 0x90 0x0b; @@ -13382,6 +17973,10 @@ part parent ".reduced_core_tiny" blocksize = 128; ; + memory "fuse" + bitmask = 0x0f; + ; + memory "sigrow" size = 16; page_size = 16; @@ -13396,6 +17991,9 @@ part parent ".reduced_core_tiny" part desc = "ATmega406"; id = "m406"; + variants = + "ATmega406: N/A, Fmax=1 MHz, T=[N/A, N/A], Vcc=[3.3 V, 3.3 V]", + "ATmega406-1AAU: LQFP48, Fmax=1 MHz, T=[-30 C, 85 C], Vcc=[4 V, 25 V]"; prog_modes = PM_SPM | PM_HVPP | PM_JTAG; mcuid = 125; n_interrupts = 23; @@ -13413,9 +18011,17 @@ part 0x4e, 0x5e, 0x4f, 0x5f, 0x6e, 0x7e, 0x6f, 0x7f, 0x66, 0x76, 0x67, 0x77, 0x6a, 0x7a, 0x6b, 0x7b, 0xbe, 0xfd, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00; - idr = 0x51; + hventerstabdelay = 100; + latchcycles = 6; + hvleavestabdelay = 15; + resetdelay = 15; + chiperasepolltimeout = 10; + programfusepolltimeout = 5; + programlockpolltimeout = 5; + idr = 0x31; spmcr = 0x57; eecr = 0x3f; + ocdrev = 3; memory "eeprom" size = 512; @@ -13436,14 +18042,19 @@ part memory "lfuse" size = 1; + initval = 0xcd; ; memory "hfuse" size = 1; + initval = 0xfe; + bitmask = 0x03; ; memory "lockbits" size = 1; + initval = 0xff; + bitmask = 0x3f; ; memory "signature" @@ -13460,11 +18071,13 @@ part id = ".avr8x"; prog_modes = PM_SPM | PM_UPDI; n_boot_sections = 1; + boot_section_size = 256; nvm_base = 0x1000; ocd_base = 0x0f80; memory "fuse0" size = 1; + initval = 0x00; offset = 0x1280; readsize = 1; ; @@ -13475,6 +18088,7 @@ part memory "fuse1" size = 1; + initval = 0x00; offset = 0x1281; readsize = 1; ; @@ -13485,6 +18099,8 @@ part memory "fuse2" size = 1; + initval = 0x7e; + bitmask = 0x83; offset = 0x1282; readsize = 1; ; @@ -13493,18 +18109,10 @@ part alias "fuse2"; ; - memory "fuse4" - size = 1; - offset = 0x1284; - readsize = 1; - ; - - memory "tcd0cfg" - alias "fuse4"; - ; - memory "fuse5" size = 1; + initval = 0xf6; + bitmask = 0xcd; offset = 0x1285; readsize = 1; ; @@ -13515,6 +18123,8 @@ part memory "fuse6" size = 1; + initval = 0xff; + bitmask = 0x07; offset = 0x1286; readsize = 1; ; @@ -13525,6 +18135,7 @@ part memory "fuse7" size = 1; + initval = 0x00; offset = 0x1287; readsize = 1; ; @@ -13539,6 +18150,7 @@ part memory "fuse8" size = 1; + initval = 0x00; offset = 0x1288; readsize = 1; ; @@ -13653,6 +18265,10 @@ part parent ".avr8x" # Dedicated UPDI pin, no HV hvupdi_variant = 1; + memory "fuse5" + bitmask = 0xc9; + ; + memory "userrow" size = 64; page_size = 64; @@ -13672,6 +18288,11 @@ part parent ".avr8x" part parent ".avr8x_tiny" desc = "ATtiny202"; id = "t202"; + variants = + "ATtiny202-SSF: SOIC8, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny202-SSFR: SOIC8, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny202-SSN: SOIC8, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny202-SSNR: SOIC8, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 280; n_interrupts = 26; signature = 0x1e 0x91 0x23; @@ -13689,6 +18310,21 @@ part parent ".avr8x_tiny" offset = 0x8000; readsize = 256; ; + + memory "fuse4" + size = 1; + initval = 0x00; + offset = 0x1284; + readsize = 1; + ; + + memory "tcd0cfg" + alias "fuse4"; + ; + + memory "lock" + initval = 0xc5; + ; ; #------------------------------------------------------------ @@ -13698,6 +18334,11 @@ part parent ".avr8x_tiny" part parent ".avr8x_tiny" desc = "ATtiny204"; id = "t204"; + variants = + "ATtiny204-SSF: SOIC14, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny204-SSFR: SOIC14, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny204-SSN: SOIC14, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny204-SSNR: SOIC14, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 281; n_interrupts = 26; signature = 0x1e 0x91 0x22; @@ -13715,6 +18356,21 @@ part parent ".avr8x_tiny" offset = 0x8000; readsize = 256; ; + + memory "fuse4" + size = 1; + initval = 0x00; + offset = 0x1284; + readsize = 1; + ; + + memory "tcd0cfg" + alias "fuse4"; + ; + + memory "lock" + initval = 0xc5; + ; ; #------------------------------------------------------------ @@ -13724,6 +18380,11 @@ part parent ".avr8x_tiny" part parent ".avr8x_tiny" desc = "ATtiny402"; id = "t402"; + variants = + "ATtiny402-SSF: SOIC8, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny402-SSFR: SOIC8, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny402-SSN: SOIC8, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny402-SSNR: SOIC8, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 284; n_interrupts = 26; signature = 0x1e 0x92 0x27; @@ -13741,6 +18402,21 @@ part parent ".avr8x_tiny" offset = 0x8000; readsize = 256; ; + + memory "fuse4" + size = 1; + initval = 0x00; + offset = 0x1284; + readsize = 1; + ; + + memory "tcd0cfg" + alias "fuse4"; + ; + + memory "lock" + initval = 0xc5; + ; ; #------------------------------------------------------------ @@ -13750,6 +18426,11 @@ part parent ".avr8x_tiny" part parent ".avr8x_tiny" desc = "ATtiny404"; id = "t404"; + variants = + "ATtiny404-SSF: SOIC14, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny404-SSFR: SOIC14, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny404-SSN: SOIC14, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny404-SSNR: SOIC14, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 285; n_interrupts = 26; signature = 0x1e 0x92 0x26; @@ -13767,6 +18448,21 @@ part parent ".avr8x_tiny" offset = 0x8000; readsize = 256; ; + + memory "fuse4" + size = 1; + initval = 0x00; + offset = 0x1284; + readsize = 1; + ; + + memory "tcd0cfg" + alias "fuse4"; + ; + + memory "lock" + initval = 0xc5; + ; ; #------------------------------------------------------------ @@ -13776,6 +18472,13 @@ part parent ".avr8x_tiny" part parent ".avr8x_tiny" desc = "ATtiny406"; id = "t406"; + variants = + "ATtiny406-MFR: VQFN20, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny406-MNR: VQFN20, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny406-SF: SOIC20, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny406-SFR: SOIC20, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny406-SN: SOIC20, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny406-SNR: SOIC20, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 286; n_interrupts = 26; signature = 0x1e 0x92 0x25; @@ -13793,6 +18496,21 @@ part parent ".avr8x_tiny" offset = 0x8000; readsize = 256; ; + + memory "fuse4" + size = 1; + initval = 0x00; + offset = 0x1284; + readsize = 1; + ; + + memory "tcd0cfg" + alias "fuse4"; + ; + + memory "lock" + initval = 0xc5; + ; ; #------------------------------------------------------------ @@ -13802,6 +18520,11 @@ part parent ".avr8x_tiny" part parent ".avr8x_tiny" desc = "ATtiny804"; id = "t804"; + variants = + "ATtiny804-SSF: SOIC14, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny804-SSFR: SOIC14, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny804-SSN: SOIC14, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny804-SSNR: SOIC14, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 295; n_interrupts = 31; signature = 0x1e 0x93 0x25; @@ -13819,6 +18542,10 @@ part parent ".avr8x_tiny" offset = 0x8000; readsize = 256; ; + + memory "lock" + initval = 0xc5; + ; ; #------------------------------------------------------------ @@ -13828,6 +18555,15 @@ part parent ".avr8x_tiny" part parent ".avr8x_tiny" desc = "ATtiny806"; id = "t806"; + variants = + "ATtiny806-MF: VQFN20, Fmax=16 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny806-MFR: QFN20, Fmax=16 MHz, T=[-40 C, 125 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny806-MN: VQFN20, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny806-MNR: QFN20, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny806-SF: SOIC20, Fmax=16 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny806-SFR: SOIC300-20, Fmax=16 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny806-SN: SOIC20, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny806-SNR: SOIC300-20, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 296; n_interrupts = 31; signature = 0x1e 0x93 0x24; @@ -13845,6 +18581,10 @@ part parent ".avr8x_tiny" offset = 0x8000; readsize = 256; ; + + memory "lock" + initval = 0xc5; + ; ; #------------------------------------------------------------ @@ -13854,6 +18594,12 @@ part parent ".avr8x_tiny" part parent ".avr8x_tiny" desc = "ATtiny807"; id = "t807"; + variants = + "ATtiny807-MF: VQFN24, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny807-MFR: VQFN24, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny807-MN: VQFN24, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny807-MNR: VQFN24, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny807-MRF: VQFN24, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 297; n_interrupts = 31; signature = 0x1e 0x93 0x23; @@ -13871,6 +18617,10 @@ part parent ".avr8x_tiny" offset = 0x8000; readsize = 256; ; + + memory "lock" + initval = 0xc5; + ; ; #------------------------------------------------------------ @@ -13880,6 +18630,11 @@ part parent ".avr8x_tiny" part parent ".avr8x_tiny" desc = "ATtiny1604"; id = "t1604"; + variants = + "ATtiny1604-SSF: SOIC14, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny1604-SSFR: SOIC14, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny1604-SSN: SOIC14, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny1604-SSNR: SOIC14, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 304; n_interrupts = 31; signature = 0x1e 0x94 0x25; @@ -13897,6 +18652,10 @@ part parent ".avr8x_tiny" offset = 0x8000; readsize = 256; ; + + memory "lock" + initval = 0xc5; + ; ; #------------------------------------------------------------ @@ -13906,6 +18665,15 @@ part parent ".avr8x_tiny" part parent ".avr8x_tiny" desc = "ATtiny1606"; id = "t1606"; + variants = + "ATtiny1606-MF: VQFN20, Fmax=16 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny1606-MFR: VQFN20, Fmax=16 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny1606-MN: VQFN20, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny1606-MNR: VQFN20, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny1606-SF: SOIC20, Fmax=16 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny1606-SFR: SOIC300-20, Fmax=16 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny1606-SN: SOIC20, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny1606-SNR: SOIC300-20, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 305; n_interrupts = 31; signature = 0x1e 0x94 0x24; @@ -13923,6 +18691,10 @@ part parent ".avr8x_tiny" offset = 0x8000; readsize = 256; ; + + memory "lock" + initval = 0xc5; + ; ; #------------------------------------------------------------ @@ -13932,6 +18704,12 @@ part parent ".avr8x_tiny" part parent ".avr8x_tiny" desc = "ATtiny1607"; id = "t1607"; + variants = + "ATtiny1607-MF: VQFN24, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny1607-MFR: VQFN24, Fmax=16 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny1607-MN: VQFN24, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny1607-MNR: VQFN24, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny1607-MRF: VQFN24, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 306; n_interrupts = 31; signature = 0x1e 0x94 0x23; @@ -13949,6 +18727,10 @@ part parent ".avr8x_tiny" offset = 0x8000; readsize = 256; ; + + memory "lock" + initval = 0xc5; + ; ; #------------------------------------------------------------ @@ -13958,6 +18740,11 @@ part parent ".avr8x_tiny" part parent ".avr8x_tiny" desc = "ATtiny212"; id = "t212"; + variants = + "ATtiny212-SSF: SOIC8, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny212-SSFR: SOIC8, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny212-SSN: SOIC8, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny212-SSNR: SOIC8, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 282; n_interrupts = 26; signature = 0x1e 0x91 0x21; @@ -13975,6 +18762,21 @@ part parent ".avr8x_tiny" offset = 0x8000; readsize = 256; ; + + memory "fuse4" + size = 1; + initval = 0x00; + offset = 0x1284; + readsize = 1; + ; + + memory "tcd0cfg" + alias "fuse4"; + ; + + memory "lock" + initval = 0xc5; + ; ; #------------------------------------------------------------ @@ -13984,6 +18786,11 @@ part parent ".avr8x_tiny" part parent ".avr8x_tiny" desc = "ATtiny214"; id = "t214"; + variants = + "ATtiny214-SSF: SOIC14, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny214-SSFR: SOIC14, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny214-SSN: SOIC14, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny214-SSNR: SOIC14, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 283; n_interrupts = 26; signature = 0x1e 0x91 0x20; @@ -14001,6 +18808,21 @@ part parent ".avr8x_tiny" offset = 0x8000; readsize = 256; ; + + memory "fuse4" + size = 1; + initval = 0x00; + offset = 0x1284; + readsize = 1; + ; + + memory "tcd0cfg" + alias "fuse4"; + ; + + memory "lock" + initval = 0xc5; + ; ; #------------------------------------------------------------ @@ -14010,6 +18832,11 @@ part parent ".avr8x_tiny" part parent ".avr8x_tiny" desc = "ATtiny412"; id = "t412"; + variants = + "ATtiny412-SSF: SOIC8, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny412-SSFR: SOIC8, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny412-SSN: SOIC8, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny412-SSNR: SOIC8, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 287; n_interrupts = 26; signature = 0x1e 0x92 0x23; @@ -14027,6 +18854,21 @@ part parent ".avr8x_tiny" offset = 0x8000; readsize = 256; ; + + memory "fuse4" + size = 1; + initval = 0x00; + offset = 0x1284; + readsize = 1; + ; + + memory "tcd0cfg" + alias "fuse4"; + ; + + memory "lock" + initval = 0xc5; + ; ; #------------------------------------------------------------ @@ -14036,6 +18878,11 @@ part parent ".avr8x_tiny" part parent ".avr8x_tiny" desc = "ATtiny414"; id = "t414"; + variants = + "ATtiny414-SSF: SOIC14, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny414-SSFR: SOIC14, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny414-SSN: SOIC14, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny414-SSNR: SOIC14, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 288; n_interrupts = 26; signature = 0x1e 0x92 0x22; @@ -14053,6 +18900,21 @@ part parent ".avr8x_tiny" offset = 0x8000; readsize = 256; ; + + memory "fuse4" + size = 1; + initval = 0x00; + offset = 0x1284; + readsize = 1; + ; + + memory "tcd0cfg" + alias "fuse4"; + ; + + memory "lock" + initval = 0xc5; + ; ; #------------------------------------------------------------ @@ -14062,6 +18924,13 @@ part parent ".avr8x_tiny" part parent ".avr8x_tiny" desc = "ATtiny416"; id = "t416"; + variants = + "ATtiny416-MFR: VQFN20, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny416-MNR: VQFN20, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny416-SF: SOIC20, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny416-SFR: SOIC20, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny416-SN: SOIC20, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny416-SNR: SOIC20, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 289; n_interrupts = 26; signature = 0x1e 0x92 0x21; @@ -14079,6 +18948,39 @@ part parent ".avr8x_tiny" offset = 0x8000; readsize = 256; ; + + memory "fuse4" + size = 1; + initval = 0x00; + offset = 0x1284; + readsize = 1; + ; + + memory "tcd0cfg" + alias "fuse4"; + ; + + memory "lock" + initval = 0xc5; + ; +; + +#------------------------------------------------------------ +# ATtiny416auto +#------------------------------------------------------------ + +part parent "t416" + desc = "ATtiny416auto"; + id = "t416auto"; + variants = + "ATtiny416-MBT: VQFN20, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny416-MZT: VQFN20, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[2.7 V, 5.5 V]"; + mcuid = 290; + signature = 0x1e 0x92 0x28; + + memory "fuse2" + initval = 0x7d; + ; ; #------------------------------------------------------------ @@ -14088,6 +18990,11 @@ part parent ".avr8x_tiny" part parent ".avr8x_tiny" desc = "ATtiny417"; id = "t417"; + variants = + "ATtiny417-MF: VQFN24, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny417-MFR: QFN24, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny417-MN: VQFN24, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny417-MNR: QFN24, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 291; n_interrupts = 26; signature = 0x1e 0x92 0x20; @@ -14099,11 +19006,26 @@ part parent ".avr8x_tiny" readsize = 256; ; - memory "flash" - size = 4096; - page_size = 64; - offset = 0x8000; - readsize = 256; + memory "flash" + size = 4096; + page_size = 64; + offset = 0x8000; + readsize = 256; + ; + + memory "fuse4" + size = 1; + initval = 0x00; + offset = 0x1284; + readsize = 1; + ; + + memory "tcd0cfg" + alias "fuse4"; + ; + + memory "lock" + initval = 0xc5; ; ; @@ -14114,6 +19036,12 @@ part parent ".avr8x_tiny" part parent ".avr8x_tiny" desc = "ATtiny814"; id = "t814"; + variants = + "ATtiny814-SSF: SOIC14, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny814-SSFR: SOIC14, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny814-SSN: SOIC14, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny814-SSNR: SOIC14, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny814-SSNRES: SOIC14, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 298; n_interrupts = 26; signature = 0x1e 0x93 0x22; @@ -14131,6 +19059,21 @@ part parent ".avr8x_tiny" offset = 0x8000; readsize = 256; ; + + memory "fuse4" + size = 1; + initval = 0x00; + offset = 0x1284; + readsize = 1; + ; + + memory "tcd0cfg" + alias "fuse4"; + ; + + memory "lock" + initval = 0xc5; + ; ; #------------------------------------------------------------ @@ -14140,6 +19083,16 @@ part parent ".avr8x_tiny" part parent ".avr8x_tiny" desc = "ATtiny816"; id = "t816"; + variants = + "ATtiny816-MF: VQFN20, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny816-MFR: VQFN20, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny816-MN: VQFN20, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny816-MNR: VQFN20, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny816-MNRES: VQFN20, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny816-SF: SOIC20, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny816-SFR: SOIC20, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny816-SN: SOIC20, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny816-SNR: SOIC20, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 299; n_interrupts = 26; signature = 0x1e 0x93 0x21; @@ -14157,6 +19110,21 @@ part parent ".avr8x_tiny" offset = 0x8000; readsize = 256; ; + + memory "fuse4" + size = 1; + initval = 0x00; + offset = 0x1284; + readsize = 1; + ; + + memory "tcd0cfg" + alias "fuse4"; + ; + + memory "lock" + initval = 0xc5; + ; ; #------------------------------------------------------------ @@ -14166,6 +19134,12 @@ part parent ".avr8x_tiny" part parent ".avr8x_tiny" desc = "ATtiny817"; id = "t817"; + variants = + "ATtiny817-MF: VQFN24, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny817-MFR: VQFN24, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny817-MN: VQFN24, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny817-MNR: VQFN24, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny817-MNRES: VQFN24, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 300; n_interrupts = 26; signature = 0x1e 0x93 0x20; @@ -14183,6 +19157,21 @@ part parent ".avr8x_tiny" offset = 0x8000; readsize = 256; ; + + memory "fuse4" + size = 1; + initval = 0x00; + offset = 0x1284; + readsize = 1; + ; + + memory "tcd0cfg" + alias "fuse4"; + ; + + memory "lock" + initval = 0xc5; + ; ; #------------------------------------------------------------ @@ -14192,6 +19181,11 @@ part parent ".avr8x_tiny" part parent ".avr8x_tiny" desc = "ATtiny1614"; id = "t1614"; + variants = + "ATtiny1614-SSF: SOIC14, Fmax=16 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny1614-SSFR: SOIC14, Fmax=16 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny1614-SSN: SOIC14, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny1614-SSNR: SOIC14, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 307; n_interrupts = 31; signature = 0x1e 0x94 0x22; @@ -14209,6 +19203,21 @@ part parent ".avr8x_tiny" offset = 0x8000; readsize = 256; ; + + memory "fuse4" + size = 1; + initval = 0x00; + offset = 0x1284; + readsize = 1; + ; + + memory "tcd0cfg" + alias "fuse4"; + ; + + memory "lock" + initval = 0xc5; + ; ; #------------------------------------------------------------ @@ -14218,6 +19227,13 @@ part parent ".avr8x_tiny" part parent ".avr8x_tiny" desc = "ATtiny1616"; id = "t1616"; + variants = + "ATtiny1616-MFR: QFN20, Fmax=16 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny1616-MNR: QFN20, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny1616-SF: SOIC20, Fmax=16 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny1616-SFR: SOIC20, Fmax=16 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny1616-SN: SOIC20, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny1616-SNR: SOIC20, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 308; n_interrupts = 31; signature = 0x1e 0x94 0x21; @@ -14235,6 +19251,21 @@ part parent ".avr8x_tiny" offset = 0x8000; readsize = 256; ; + + memory "fuse4" + size = 1; + initval = 0x00; + offset = 0x1284; + readsize = 1; + ; + + memory "tcd0cfg" + alias "fuse4"; + ; + + memory "lock" + initval = 0xc5; + ; ; #------------------------------------------------------------ @@ -14244,6 +19275,11 @@ part parent ".avr8x_tiny" part parent ".avr8x_tiny" desc = "ATtiny1617"; id = "t1617"; + variants = + "ATtiny1617-MF: VQFN24, Fmax=16 MHz, T=[-40 C, 125 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny1617-MFR: VQFN24, Fmax=16 MHz, T=[-40 C, 125 C], Vcc=[2.7 V, 5.5 V]", + "ATtiny1617-MN: QFN24, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny1617-MNR: QFN24, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 309; n_interrupts = 31; signature = 0x1e 0x94 0x20; @@ -14261,6 +19297,21 @@ part parent ".avr8x_tiny" offset = 0x8000; readsize = 256; ; + + memory "fuse4" + size = 1; + initval = 0x00; + offset = 0x1284; + readsize = 1; + ; + + memory "tcd0cfg" + alias "fuse4"; + ; + + memory "lock" + initval = 0xc5; + ; ; #------------------------------------------------------------ @@ -14270,6 +19321,11 @@ part parent ".avr8x_tiny" part parent ".avr8x_tiny" desc = "ATtiny3216"; id = "t3216"; + variants = + "ATtiny3216-SF: SOIC20, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny3216-SFR: SOIC20, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny3216-SN: SOIC20, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny3216-SNR: SOIC20, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 314; n_interrupts = 31; signature = 0x1e 0x95 0x21; @@ -14288,14 +19344,25 @@ part parent ".avr8x_tiny" readsize = 256; ; + memory "fuse4" + size = 1; + initval = 0x00; + offset = 0x1284; + readsize = 1; + ; + + memory "tcd0cfg" + alias "fuse4"; + ; + + memory "lock" + initval = 0xc5; + ; + memory "userrow" size = 64; page_size = 64; ; - - memory "usersig" - alias "userrow"; - ; ; #------------------------------------------------------------ @@ -14305,6 +19372,11 @@ part parent ".avr8x_tiny" part parent "t3216" desc = "ATtiny3217"; id = "t3217"; + variants = + "ATtiny3217-MF: VQFN24, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny3217-MFR: VQFN24, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny3217-MN: VQFN24, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny3217-MNR: VQFN24, Fmax=20 MHz, T=[-40 C, 105 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 315; signature = 0x1e 0x95 0x22; ; @@ -14316,6 +19388,16 @@ part parent "t3216" part parent ".avr8x_tiny" desc = "ATtiny424"; id = "t424"; + variants = + "ATtiny424: SOIC14, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny424-SSF: SOIC14, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny424-SSFR: SOIC14, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny424-SSU: SOIC14, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny424-SSUR: SOIC14, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny424-XF: TSSOP14, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny424-XFR: TSSOP14, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny424-XU: TSSOP14, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny424-XUR: TSSOP14, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 292; n_interrupts = 30; signature = 0x1e 0x92 0x2c; @@ -14333,6 +19415,14 @@ part parent ".avr8x_tiny" offset = 0x8000; readsize = 256; ; + + memory "fuse5" + bitmask = 0xdd; + ; + + memory "lock" + initval = 0xc5; + ; ; #------------------------------------------------------------ @@ -14342,6 +19432,20 @@ part parent ".avr8x_tiny" part parent ".avr8x_tiny" desc = "ATtiny426"; id = "t426"; + variants = + "ATtiny426: VQFN20, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny426-MF: VQFN20, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny426-MFR: VQFN20, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny426-MU: VQFN20, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny426-MUR: VQFN20, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny426-SF: SOIC20, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny426-SFR: SOIC20, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny426-SU: SOIC20, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny426-SUR: SOIC20, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny426-XF: SSOP20, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny426-XFR: SSOP20, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny426-XU: SSOP20, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny426-XUR: SSOP20, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 293; n_interrupts = 30; signature = 0x1e 0x92 0x2b; @@ -14359,6 +19463,14 @@ part parent ".avr8x_tiny" offset = 0x8000; readsize = 256; ; + + memory "fuse5" + bitmask = 0xdd; + ; + + memory "lock" + initval = 0xc5; + ; ; #------------------------------------------------------------ @@ -14368,6 +19480,12 @@ part parent ".avr8x_tiny" part parent ".avr8x_tiny" desc = "ATtiny427"; id = "t427"; + variants = + "ATtiny427: VQFN24, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny427-MF: VQFN24, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny427-MFR: VQFN24, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny427-MU: VQFN24, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny427-MUR: VQFN24, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 294; n_interrupts = 30; signature = 0x1e 0x92 0x2a; @@ -14385,6 +19503,14 @@ part parent ".avr8x_tiny" offset = 0x8000; readsize = 256; ; + + memory "fuse5" + bitmask = 0xdd; + ; + + memory "lock" + initval = 0xc5; + ; ; #------------------------------------------------------------ @@ -14394,6 +19520,16 @@ part parent ".avr8x_tiny" part parent ".avr8x_tiny" desc = "ATtiny824"; id = "t824"; + variants = + "ATtiny824: SOIC14, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny824-SSF: SOIC14, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny824-SSFR: SOIC14, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny824-SSU: SOIC14, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny824-SSUR: SOIC14, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny824-XF: TSSOP14, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny824-XFR: TSSOP14, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny824-XU: TSSOP14, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny824-XUR: TSSOP14, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 301; n_interrupts = 30; signature = 0x1e 0x93 0x29; @@ -14411,6 +19547,14 @@ part parent ".avr8x_tiny" offset = 0x8000; readsize = 256; ; + + memory "fuse5" + bitmask = 0xdd; + ; + + memory "lock" + initval = 0xc5; + ; ; #------------------------------------------------------------ @@ -14420,6 +19564,20 @@ part parent ".avr8x_tiny" part parent ".avr8x_tiny" desc = "ATtiny826"; id = "t826"; + variants = + "ATtiny826: VQFN20, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny826-MF: VQFN20, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny826-MFR: VQFN20, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny826-MU: VQFN20, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny826-MUR: VQFN20, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny826-SF: SOIC20, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny826-SFR: SOIC20, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny826-SU: SOIC20, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny826-SUR: SOIC20, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny826-XF: SSOP20, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny826-XFR: SSOP20, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny826-XU: SSOP20, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny826-XUR: SSOP20, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 302; n_interrupts = 30; signature = 0x1e 0x93 0x28; @@ -14437,6 +19595,14 @@ part parent ".avr8x_tiny" offset = 0x8000; readsize = 256; ; + + memory "fuse5" + bitmask = 0xdd; + ; + + memory "lock" + initval = 0xc5; + ; ; #------------------------------------------------------------ @@ -14446,6 +19612,12 @@ part parent ".avr8x_tiny" part parent ".avr8x_tiny" desc = "ATtiny827"; id = "t827"; + variants = + "ATtiny827: VQFN24, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny827-MF: VQFN24, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny827-MFR: VQFN24, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny827-MU: VQFN24, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny827-MUR: VQFN24, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 303; n_interrupts = 30; signature = 0x1e 0x93 0x27; @@ -14463,6 +19635,14 @@ part parent ".avr8x_tiny" offset = 0x8000; readsize = 256; ; + + memory "fuse5" + bitmask = 0xdd; + ; + + memory "lock" + initval = 0xc5; + ; ; #------------------------------------------------------------ @@ -14472,6 +19652,16 @@ part parent ".avr8x_tiny" part parent ".avr8x_tiny" desc = "ATtiny1624"; id = "t1624"; + variants = + "ATtiny1624: SOIC14, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny1624-SSF: SOIC14, Fmax=20 MHz, T=[-40 C, N/A], Vcc=[1.8 V, 5.5 V]", + "ATtiny1624-SSFR: SOIC14, Fmax=20 MHz, T=[-40 C, N/A], Vcc=[1.8 V, 5.5 V]", + "ATtiny1624-SSU: SOIC14, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny1624-SSUR: SOIC14, Fmax=20 MHz, T=[-40 C, N/A], Vcc=[1.8 V, 5.5 V]", + "ATtiny1624-XF: TSSOP14, Fmax=20 MHz, T=[-40 C, N/A], Vcc=[1.8 V, 5.5 V]", + "ATtiny1624-XFR: TSSOP14, Fmax=20 MHz, T=[-40 C, N/A], Vcc=[1.8 V, 5.5 V]", + "ATtiny1624-XU: TSSOP14, Fmax=20 MHz, T=[-40 C, N/A], Vcc=[1.8 V, 5.5 V]", + "ATtiny1624-XUR: TSSOP14, Fmax=20 MHz, T=[-40 C, N/A], Vcc=[1.8 V, 5.5 V]"; mcuid = 310; n_interrupts = 30; signature = 0x1e 0x94 0x2a; @@ -14489,6 +19679,14 @@ part parent ".avr8x_tiny" offset = 0x8000; readsize = 256; ; + + memory "fuse5" + bitmask = 0xdd; + ; + + memory "lock" + initval = 0xc5; + ; ; #------------------------------------------------------------ @@ -14498,6 +19696,20 @@ part parent ".avr8x_tiny" part parent ".avr8x_tiny" desc = "ATtiny1626"; id = "t1626"; + variants = + "ATtiny1626: VQFN20, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny1626-MF: VQFN20, Fmax=20 MHz, T=[-40 C, N/A], Vcc=[1.8 V, 5.5 V]", + "ATtiny1626-MFR: VQFN20, Fmax=20 MHz, T=[-40 C, N/A], Vcc=[1.8 V, 5.5 V]", + "ATtiny1626-MU: VQFN20, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny1626-MUR: VQFN20, Fmax=20 MHz, T=[-40 C, N/A], Vcc=[1.8 V, 5.5 V]", + "ATtiny1626-SF: SOIC20, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny1626-SFR: SOIC20, Fmax=20 MHz, T=[-40 C, N/A], Vcc=[1.8 V, 5.5 V]", + "ATtiny1626-SU: SOIC20, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny1626-SUR: SOIC20, Fmax=20 MHz, T=[-40 C, N/A], Vcc=[1.8 V, 5.5 V]", + "ATtiny1626-XF: SSOP20, Fmax=20 MHz, T=[-40 C, N/A], Vcc=[1.8 V, 5.5 V]", + "ATtiny1626-XFR: SSOP20, Fmax=20 MHz, T=[-40 C, N/A], Vcc=[1.8 V, 5.5 V]", + "ATtiny1626-XU: SSOP20, Fmax=20 MHz, T=[-40 C, N/A], Vcc=[1.8 V, 5.5 V]", + "ATtiny1626-XUR: SSOP20, Fmax=20 MHz, T=[-40 C, N/A], Vcc=[1.8 V, 5.5 V]"; mcuid = 311; n_interrupts = 30; signature = 0x1e 0x94 0x29; @@ -14515,6 +19727,14 @@ part parent ".avr8x_tiny" offset = 0x8000; readsize = 256; ; + + memory "fuse5" + bitmask = 0xdd; + ; + + memory "lock" + initval = 0xc5; + ; ; #------------------------------------------------------------ @@ -14524,6 +19744,12 @@ part parent ".avr8x_tiny" part parent ".avr8x_tiny" desc = "ATtiny1627"; id = "t1627"; + variants = + "ATtiny1627: VQFN24, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny1627-MF: VQFN24, Fmax=20 MHz, T=[-40 C, N/A], Vcc=[1.8 V, 5.5 V]", + "ATtiny1627-MFR: VQFN24, Fmax=20 MHz, T=[-40 C, N/A], Vcc=[1.8 V, 5.5 V]", + "ATtiny1627-MU: VQFN24, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny1627-MUR: VQFN24, Fmax=20 MHz, T=[-40 C, N/A], Vcc=[1.8 V, 5.5 V]"; mcuid = 312; n_interrupts = 30; signature = 0x1e 0x94 0x28; @@ -14541,6 +19767,14 @@ part parent ".avr8x_tiny" offset = 0x8000; readsize = 256; ; + + memory "fuse5" + bitmask = 0xdd; + ; + + memory "lock" + initval = 0xc5; + ; ; #------------------------------------------------------------ @@ -14550,6 +19784,16 @@ part parent ".avr8x_tiny" part parent ".avr8x_tiny" desc = "ATtiny3224"; id = "t3224"; + variants = + "ATtiny3224: SOIC14, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny3224-SSF: SOIC14, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny3224-SSFR: SOIC14, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny3224-SSU: SOIC14, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny3224-SSUR: SOIC14, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny3224-XF: TSSOP14, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny3224-XFR: TSSOP14, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny3224-XU: TSSOP14, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny3224-XUR: TSSOP14, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 316; n_interrupts = 30; signature = 0x1e 0x95 0x28; @@ -14567,6 +19811,14 @@ part parent ".avr8x_tiny" offset = 0x8000; readsize = 256; ; + + memory "fuse5" + bitmask = 0xdd; + ; + + memory "lock" + initval = 0xc5; + ; ; #------------------------------------------------------------ @@ -14576,6 +19828,20 @@ part parent ".avr8x_tiny" part parent ".avr8x_tiny" desc = "ATtiny3226"; id = "t3226"; + variants = + "ATtiny3226: VQFN20, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny3226-MF: VQFN20, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny3226-MFR: VQFN20, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny3226-MU: VQFN20, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny3226-MUR: VQFN20, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny3226-SF: SOIC20, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny3226-SFR: SOIC20, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny3226-SU: SOIC20, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny3226-SUR: SOIC20, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny3226-XF: SSOP20, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny3226-XFR: SSOP20, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny3226-XU: SSOP20, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny3226-XUR: SSOP20, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 317; n_interrupts = 30; signature = 0x1e 0x95 0x27; @@ -14593,6 +19859,14 @@ part parent ".avr8x_tiny" offset = 0x8000; readsize = 256; ; + + memory "fuse5" + bitmask = 0xdd; + ; + + memory "lock" + initval = 0xc5; + ; ; #------------------------------------------------------------ @@ -14602,6 +19876,12 @@ part parent ".avr8x_tiny" part parent ".avr8x_tiny" desc = "ATtiny3227"; id = "t3227"; + variants = + "ATtiny3227: VQFN24, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny3227-MF: VQFN24, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny3227-MFR: VQFN24, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny3227-MU: VQFN24, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATtiny3227-MUR: VQFN24, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 318; n_interrupts = 30; signature = 0x1e 0x95 0x26; @@ -14619,6 +19899,14 @@ part parent ".avr8x_tiny" offset = 0x8000; readsize = 256; ; + + memory "fuse5" + bitmask = 0xdd; + ; + + memory "lock" + initval = 0xc5; + ; ; #------------------------------------------------------------ @@ -14628,6 +19916,19 @@ part parent ".avr8x_tiny" part parent ".avr8x_tiny" desc = "ATmega808"; id = "m808"; + variants = + "ATmega808-AF: TQFP32, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATmega808-AFR: TQFN32, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATmega808-AU: TQFP32, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATmega808-AUR: TQFP32, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATmega808-MF: VQFN32, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATmega808-MFR: QFN32, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATmega808-MU: VQFN32, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATmega808-MUR: VQFN32, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATmega808-XF: SSOP28, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATmega808-XFR: SSOP28, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATmega808-XU: SSOP28, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATmega808-XUR: SSOP28, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 319; n_interrupts = 36; signature = 0x1e 0x93 0x26; @@ -14645,6 +19946,14 @@ part parent ".avr8x_tiny" offset = 0x4000; readsize = 256; ; + + memory "fuse5" + bitmask = 0xc9; + ; + + memory "lock" + initval = 0xc5; + ; ; #------------------------------------------------------------ @@ -14654,6 +19963,15 @@ part parent ".avr8x_tiny" part parent ".avr8x_tiny" desc = "ATmega809"; id = "m809"; + variants = + "ATmega809-AF: TQFP48, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATmega809-AFR: TQFP48, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATmega809-AU: TQFP48, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATmega809-AUR: TQFP48, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATmega809-MF: VQFN48, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATmega809-MFR: QFN48, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATmega809-MU: VQFN48, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATmega809-MUR: VQFN48, Fmax=N/A, T=[N/A, N/A], Vcc=[N/A, N/A]"; mcuid = 320; n_interrupts = 40; signature = 0x1e 0x93 0x2a; @@ -14671,6 +19989,14 @@ part parent ".avr8x_tiny" offset = 0x4000; readsize = 256; ; + + memory "fuse5" + bitmask = 0xc9; + ; + + memory "lock" + initval = 0xc5; + ; ; #------------------------------------------------------------ @@ -14680,6 +20006,19 @@ part parent ".avr8x_tiny" part parent ".avr8x_tiny" desc = "ATmega1608"; id = "m1608"; + variants = + "ATmega1608-AF: TQFP32, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATmega1608-AFR: TQFP32, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATmega1608-AU: TQFP32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega1608-AUR: TQFP32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega1608-MF: VQFN32, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATmega1608-MFR: VQFN32, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATmega1608-MU: VQFN32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega1608-MUR: VQFN32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega1608-XF: SSOP28, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATmega1608-XFR: SSOP28, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATmega1608-XU: SSOP28, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega1608-XUR: SSOP28, Fmax=N/A, T=[N/A, N/A], Vcc=[N/A, N/A]"; mcuid = 321; n_interrupts = 36; signature = 0x1e 0x94 0x27; @@ -14697,6 +20036,14 @@ part parent ".avr8x_tiny" offset = 0x4000; readsize = 256; ; + + memory "fuse5" + bitmask = 0xc9; + ; + + memory "lock" + initval = 0xc5; + ; ; #------------------------------------------------------------ @@ -14706,6 +20053,15 @@ part parent ".avr8x_tiny" part parent ".avr8x_tiny" desc = "ATmega1609"; id = "m1609"; + variants = + "ATmega1609-AF: TQFP48, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATmega1609-AFR: TQFP48, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATmega1609-AU: TQFP48, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega1609-AUR: TQFP48, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega1609-MF: VQFN48, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATmega1609-MFR: VQFN48, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATmega1609-MU: VQFN48, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATmega1609-MUR: VQFN48, Fmax=N/A, T=[N/A, N/A], Vcc=[N/A, N/A]"; mcuid = 322; n_interrupts = 40; signature = 0x1e 0x94 0x26; @@ -14723,6 +20079,14 @@ part parent ".avr8x_tiny" offset = 0x4000; readsize = 256; ; + + memory "fuse5" + bitmask = 0xc9; + ; + + memory "lock" + initval = 0xc5; + ; ; #------------------------------------------------------------ @@ -14732,6 +20096,19 @@ part parent ".avr8x_tiny" part parent ".avr8x_mega" desc = "ATmega3208"; id = "m3208"; + variants = + "ATmega3208-AF: TQFP32, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATmega3208-AFR: TQFP32, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATmega3208-AU: TQFP32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega3208-AUR: TQFP32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega3208-MF: VQFN32, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATmega3208-MFR: VQFN32, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATmega3208-MU: VQFN32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega3208-MUR: VQFN32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega3208-XF: SSOP28, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATmega3208-XFR: SSOP32, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATmega3208-XU: SSOP28, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega3208-XUR: SSOP28, Fmax=N/A, T=[N/A, N/A], Vcc=[N/A, N/A]"; mcuid = 323; n_interrupts = 36; signature = 0x1e 0x95 0x30; @@ -14749,6 +20126,10 @@ part parent ".avr8x_mega" offset = 0x4000; readsize = 256; ; + + memory "lock" + initval = 0xc5; + ; ; #------------------------------------------------------------ @@ -14758,6 +20139,15 @@ part parent ".avr8x_mega" part parent ".avr8x_mega" desc = "ATmega3209"; id = "m3209"; + variants = + "ATmega3209-AF: TQFP48, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATmega3209-AFR: TQFP48, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATmega3209-AU: TQFP48, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega3209-AUR: TQFP48, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega3209-MF: VQFN48, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATmega3209-MFR: VQFN48, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATmega3209-MU: VQFN48, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega3209-MUR: VQFN48, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 324; n_interrupts = 40; signature = 0x1e 0x95 0x31; @@ -14775,6 +20165,10 @@ part parent ".avr8x_mega" offset = 0x4000; readsize = 256; ; + + memory "lock" + initval = 0xc5; + ; ; #------------------------------------------------------------ @@ -14784,6 +20178,19 @@ part parent ".avr8x_mega" part parent ".avr8x_mega" desc = "ATmega4808"; id = "m4808"; + variants = + "ATmega4808-AF: TQFP32, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATmega4808-AFR: TQFP32, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATmega4808-AU: TQFP32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega4808-AUR: TQFP32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega4808-MF: VQFN32, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATmega4808-MFR: VQFN32, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATmega4808-MU: VQFN32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega4808-MUR: VQFN32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega4808-XF: SSOP28, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATmega4808-XFR: SSOP28, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATmega4808-XU: SSOP28, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega4808-XUR: SSOP28, Fmax=N/A, T=[N/A, N/A], Vcc=[N/A, N/A]"; mcuid = 325; n_interrupts = 36; signature = 0x1e 0x96 0x50; @@ -14801,6 +20208,10 @@ part parent ".avr8x_mega" offset = 0x4000; readsize = 256; ; + + memory "lock" + initval = 0xc5; + ; ; #------------------------------------------------------------ @@ -14810,6 +20221,16 @@ part parent ".avr8x_mega" part parent ".avr8x_mega" desc = "ATmega4809"; id = "m4809"; + variants = + "ATmega4809-AF: TQFP48, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATmega4809-AFR: TQFP48, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATmega4809-AU: TQFP48, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega4809-AUR: TQFP48, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega4809-MF: VQFN48, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATmega4809-MFR: VQFN48, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "ATmega4809-MU: VQFN48, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega4809-MUR: VQFN48, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "ATmega4809-PF: PDIP40, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 326; n_interrupts = 40; signature = 0x1e 0x96 0x51; @@ -14827,6 +20248,10 @@ part parent ".avr8x_mega" offset = 0x4000; readsize = 256; ; + + memory "lock" + initval = 0xc5; + ; ; #------------------------------------------------------------ @@ -14839,6 +20264,7 @@ part family_id = "AVR "; prog_modes = PM_SPM | PM_UPDI; n_boot_sections = 1; + boot_section_size = 512; # Dedicated UPDI pin, no HV hvupdi_variant = 1; nvm_base = 0x1000; @@ -14846,6 +20272,7 @@ part memory "fuse0" size = 1; + initval = 0x00; offset = 0x1050; readsize = 1; ; @@ -14856,6 +20283,7 @@ part memory "fuse1" size = 1; + initval = 0x00; offset = 0x1051; readsize = 1; ; @@ -14866,6 +20294,8 @@ part memory "fuse2" size = 1; + initval = 0x00; + bitmask = 0x07; offset = 0x1052; readsize = 1; ; @@ -14874,18 +20304,10 @@ part alias "fuse2"; ; - memory "fuse4" - size = 1; - offset = 0x1054; - readsize = 1; - ; - - memory "tcd0cfg" - alias "fuse4"; - ; - memory "fuse5" size = 1; + initval = 0xc0; + bitmask = 0xed; offset = 0x1055; readsize = 1; ; @@ -14896,6 +20318,8 @@ part memory "fuse6" size = 1; + initval = 0x08; + bitmask = 0x1f; offset = 0x1056; readsize = 1; ; @@ -14906,6 +20330,7 @@ part memory "fuse7" size = 1; + initval = 0x00; offset = 0x1057; readsize = 1; ; @@ -14920,6 +20345,7 @@ part memory "fuse8" size = 1; + initval = 0x00; offset = 0x1058; readsize = 1; ; @@ -14994,6 +20420,18 @@ part part parent ".avrdx" desc = "AVR32DA28"; id = "avr32da28"; + variants = + "AVR32DA28: SOIC28, Fmax=24 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR32DA28-E/SO: SOIC28, Fmax=24 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR32DA28-E/SP: SPDIP28, Fmax=24 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR32DA28-E/SS: SSOP28, Fmax=24 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR32DA28-I/SO: SOIC28, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "AVR32DA28-I/SP: SPDIP28, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "AVR32DA28-I/SS: SSOP28, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "AVR32DA28T-E/SO: SOIC28, Fmax=24 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR32DA28T-E/SS: SSOP28, Fmax=24 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR32DA28T-I/SO: SOIC28, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "AVR32DA28T-I/SS: SSOP28, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; family_id = " AVR"; mcuid = 338; n_interrupts = 41; @@ -15011,6 +20449,15 @@ part parent ".avrdx" offset = 0x800000; readsize = 256; ; + + memory "fuse6" + initval = 0x00; + bitmask = 0x07; + ; + + memory "lock" + initval = 0x5cc5c55c; + ; ; #------------------------------------------------------------ @@ -15020,6 +20467,16 @@ part parent ".avrdx" part parent ".avrdx" desc = "AVR32DA32"; id = "avr32da32"; + variants = + "AVR32DA32: QFN32, Fmax=24 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR32DA32-E/PT: TQFP32, Fmax=24 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR32DA32-E/RXB: VQFN32, Fmax=24 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR32DA32-I/PT: TQFP32, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "AVR32DA32-I/RXB: VQFN32, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "AVR32DA32T-E/PT: TQFP32, Fmax=24 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR32DA32T-E/RXB: VQFN32, Fmax=24 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR32DA32T-I/PT: TQFP32, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "AVR32DA32T-I/RXB: VQFN32, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; family_id = " AVR"; mcuid = 342; n_interrupts = 44; @@ -15037,6 +20494,15 @@ part parent ".avrdx" offset = 0x800000; readsize = 256; ; + + memory "fuse6" + initval = 0x00; + bitmask = 0x07; + ; + + memory "lock" + initval = 0x5cc5c55c; + ; ; #------------------------------------------------------------ @@ -15046,6 +20512,16 @@ part parent ".avrdx" part parent ".avrdx" desc = "AVR32DA48"; id = "avr32da48"; + variants = + "AVR32DA48: QFN48, Fmax=24 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR32DA48-E/6LX: VQFN48, Fmax=24 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR32DA48-E/PT: TQFP48, Fmax=24 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR32DA48-I/6LX: VQFN48, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "AVR32DA48-I/PT: TQFP48, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "AVR32DA48T-E/6LX: VQFN48, Fmax=24 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR32DA48T-E/PT: TQFP48, Fmax=24 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR32DA48T-I/6LX: VQFN48, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "AVR32DA48T-I/PT: TQFP48, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; family_id = " AVR"; mcuid = 346; n_interrupts = 58; @@ -15063,6 +20539,15 @@ part parent ".avrdx" offset = 0x800000; readsize = 256; ; + + memory "fuse6" + initval = 0x00; + bitmask = 0x07; + ; + + memory "lock" + initval = 0x5cc5c55c; + ; ; #------------------------------------------------------------ @@ -15072,6 +20557,18 @@ part parent ".avrdx" part parent ".avrdx" desc = "AVR64DA28"; id = "avr64da28"; + variants = + "AVR64DA28: SOIC28, Fmax=24 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR64DA28-E/SO: SOIC28, Fmax=24 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR64DA28-E/SP: SPDIP28, Fmax=N/A, T=[N/A, N/A], Vcc=[N/A, N/A]", + "AVR64DA28-E/SS: SSOP28, Fmax=24 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR64DA28-I/SO: SOIC28, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "AVR64DA28-I/SP: SPDIP28, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "AVR64DA28-I/SS: SSOP28, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "AVR64DA28T-E/SO: SOIC28, Fmax=24 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR64DA28T-E/SS: SSOP28, Fmax=24 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR64DA28T-I/SO: SOIC28, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "AVR64DA28T-I/SS: SSOP28, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; family_id = " AVR"; mcuid = 351; n_interrupts = 41; @@ -15089,6 +20586,15 @@ part parent ".avrdx" offset = 0x800000; readsize = 256; ; + + memory "fuse6" + initval = 0x00; + bitmask = 0x07; + ; + + memory "lock" + initval = 0x5cc5c55c; + ; ; #------------------------------------------------------------ @@ -15098,6 +20604,16 @@ part parent ".avrdx" part parent ".avrdx" desc = "AVR64DA32"; id = "avr64da32"; + variants = + "AVR64DA32: QFN32, Fmax=24 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR64DA32-E/PT: TQFP32, Fmax=24 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR64DA32-E/RXB: VQFN32, Fmax=24 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR64DA32-I/PT: TQFP32, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "AVR64DA32-I/RXB: VQFN32, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "AVR64DA32T-E/PT: TQFP32, Fmax=24 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR64DA32T-E/RXB: VQFN32, Fmax=24 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR64DA32T-I/PT: TQFP32, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "AVR64DA32T-I/RXB: VQFN32, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; family_id = " AVR"; mcuid = 355; n_interrupts = 44; @@ -15115,6 +20631,15 @@ part parent ".avrdx" offset = 0x800000; readsize = 256; ; + + memory "fuse6" + initval = 0x00; + bitmask = 0x07; + ; + + memory "lock" + initval = 0x5cc5c55c; + ; ; #------------------------------------------------------------ @@ -15124,6 +20649,16 @@ part parent ".avrdx" part parent ".avrdx" desc = "AVR64DA48"; id = "avr64da48"; + variants = + "AVR64DA48: QFN48, Fmax=24 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR64DA48-E/6LX: VQFN48, Fmax=24 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR64DA48-E/PT: TQFP48, Fmax=24 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR64DA48-I/6LX: VQFN48, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "AVR64DA48-I/PT: TQFP48, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "AVR64DA48T-E/6LX: VQFN48, Fmax=24 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR64DA48T-E/PT: TQFP48, Fmax=24 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR64DA48T-I/6LX: VQFN48, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "AVR64DA48T-I/PT: TQFP48, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; family_id = " AVR"; mcuid = 359; n_interrupts = 58; @@ -15141,6 +20676,15 @@ part parent ".avrdx" offset = 0x800000; readsize = 256; ; + + memory "fuse6" + initval = 0x00; + bitmask = 0x07; + ; + + memory "lock" + initval = 0x5cc5c55c; + ; ; #------------------------------------------------------------ @@ -15150,6 +20694,16 @@ part parent ".avrdx" part parent ".avrdx" desc = "AVR64DA64"; id = "avr64da64"; + variants = + "AVR64DA64: QFN64, Fmax=24 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR64DA64-E/MR: QFN64, Fmax=24 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR64DA64-E/PT: TQFP64, Fmax=24 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR64DA64-I/MR: QFN64, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "AVR64DA64-I/PT: TQFP64, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "AVR64DA64T-E/MR: QFN64, Fmax=24 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR64DA64T-E/PT: TQFP64, Fmax=24 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR64DA64T-I/MR: QFN64, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "AVR64DA64T-I/PT: TQFP64, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; family_id = " AVR"; mcuid = 362; n_interrupts = 64; @@ -15167,6 +20721,15 @@ part parent ".avrdx" offset = 0x800000; readsize = 256; ; + + memory "fuse6" + initval = 0x00; + bitmask = 0x07; + ; + + memory "lock" + initval = 0x5cc5c55c; + ; ; #------------------------------------------------------------ @@ -15176,6 +20739,18 @@ part parent ".avrdx" part parent ".avrdx" desc = "AVR128DA28"; id = "avr128da28"; + variants = + "AVR128DA28: SOIC28, Fmax=24 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR128DA28-E/SO: SOIC28, Fmax=24 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR128DA28-E/SP: SPDIP28, Fmax=24 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR128DA28-E/SS: SSOP28, Fmax=24 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR128DA28-I/SO: SOIC28, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "AVR128DA28-I/SP: SPDIP28, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "AVR128DA28-I/SS: SSOP28, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "AVR128DA28T-E/SO: SOIC28, Fmax=24 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR128DA28T-E/SS: SSOP28, Fmax=24 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR128DA28T-I/SO: SOIC28, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "AVR128DA28T-I/SS: SSOP28, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; family_id = " AVR"; mcuid = 364; n_interrupts = 41; @@ -15193,6 +20768,15 @@ part parent ".avrdx" offset = 0x800000; readsize = 256; ; + + memory "fuse6" + initval = 0x00; + bitmask = 0x07; + ; + + memory "lock" + initval = 0x5cc5c55c; + ; ; #------------------------------------------------------------ @@ -15202,6 +20786,16 @@ part parent ".avrdx" part parent ".avrdx" desc = "AVR128DA32"; id = "avr128da32"; + variants = + "AVR128DA32: QFN32, Fmax=24 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR128DA32-E/PT: TQFP32, Fmax=24 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR128DA32-E/RXB: VQFN32, Fmax=24 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR128DA32-I/PT: TQFP32, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "AVR128DA32-I/RXB: VQFN32, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "AVR128DA32T-E/PT: TQFP32, Fmax=24 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR128DA32T-E/RXB: VQFN32, Fmax=24 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR128DA32T-I/PT: TQFP32, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "AVR128DA32T-I/RXB: VQFN32, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; family_id = " AVR"; mcuid = 366; n_interrupts = 44; @@ -15219,6 +20813,15 @@ part parent ".avrdx" offset = 0x800000; readsize = 256; ; + + memory "fuse6" + initval = 0x00; + bitmask = 0x07; + ; + + memory "lock" + initval = 0x5cc5c55c; + ; ; #------------------------------------------------------------ @@ -15228,6 +20831,16 @@ part parent ".avrdx" part parent ".avrdx" desc = "AVR128DA48"; id = "avr128da48"; + variants = + "AVR128DA48: QFN48, Fmax=24 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR128DA48-E/6LX: VQFN48, Fmax=24 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR128DA48-E/PT: TQFP48, Fmax=24 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR128DA48-I/6LX: VQFN48, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "AVR128DA48-I/PT: TQFP48, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "AVR128DA48T-E/6LX: VQFN48, Fmax=24 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR128DA48T-E/PT: TQFP48, Fmax=24 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR128DA48T-I/6LX: VQFN48, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "AVR128DA48T-I/PT: TQFP48, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; family_id = " AVR"; mcuid = 368; n_interrupts = 58; @@ -15245,6 +20858,15 @@ part parent ".avrdx" offset = 0x800000; readsize = 256; ; + + memory "fuse6" + initval = 0x00; + bitmask = 0x07; + ; + + memory "lock" + initval = 0x5cc5c55c; + ; ; #------------------------------------------------------------ @@ -15254,6 +20876,16 @@ part parent ".avrdx" part parent ".avrdx" desc = "AVR128DA64"; id = "avr128da64"; + variants = + "AVR128DA64: QFN64, Fmax=24 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR128DA64-E/MR: QFN64, Fmax=24 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR128DA64-E/PT: TQFP64, Fmax=24 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR128DA64-I/MR: QFN64, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "AVR128DA64-I/PT: TQFP64, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "AVR128DA64T-E/MR: QFN64, Fmax=24 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR128DA64T-E/PT: TQFP64, Fmax=24 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR128DA64T-I/MR: QFN64, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "AVR128DA64T-I/PT: TQFP64, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; family_id = " AVR"; mcuid = 370; n_interrupts = 64; @@ -15271,6 +20903,15 @@ part parent ".avrdx" offset = 0x800000; readsize = 256; ; + + memory "fuse6" + initval = 0x00; + bitmask = 0x07; + ; + + memory "lock" + initval = 0x5cc5c55c; + ; ; #------------------------------------------------------------ @@ -15280,6 +20921,18 @@ part parent ".avrdx" part parent ".avrdx" desc = "AVR32DB28"; id = "avr32db28"; + variants = + "AVR32DB28: SOIC28, Fmax=32 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR32DB28-E/SO: SOIC28, Fmax=24 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR32DB28-E/SP: SPDIP28, Fmax=24 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR32DB28-E/SS: SSOP28, Fmax=24 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR32DB28-I/SO: SOIC28, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "AVR32DB28-I/SP: SPDIP28, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "AVR32DB28-I/SS: SSOP28, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "AVR32DB28T-E/SO: SOIC28, Fmax=24 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR32DB28T-E/SS: SSOP28, Fmax=24 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR32DB28T-I/SO: SOIC28, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "AVR32DB28T-I/SS: SSOP28, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 339; n_interrupts = 42; signature = 0x1e 0x95 0x37; @@ -15296,6 +20949,10 @@ part parent ".avrdx" offset = 0x800000; readsize = 256; ; + + memory "lock" + initval = 0x5cc5c55c; + ; ; #------------------------------------------------------------ @@ -15305,6 +20962,16 @@ part parent ".avrdx" part parent ".avrdx" desc = "AVR32DB32"; id = "avr32db32"; + variants = + "AVR32DB32: QFN32, Fmax=32 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR32DB32-E/PT: TQFP32, Fmax=24 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR32DB32-E/RXB: VQFN32, Fmax=24 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR32DB32-I/PT: TQFP32, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "AVR32DB32-I/RXB: VQFN32, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "AVR32DB32T-E/PT: TQFP32, Fmax=24 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR32DB32T-E/RXB: VQFN32, Fmax=24 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR32DB32T-I/PT: TQFP32, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "AVR32DB32T-I/RXB: VQFN32, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 343; n_interrupts = 44; signature = 0x1e 0x95 0x36; @@ -15321,6 +20988,10 @@ part parent ".avrdx" offset = 0x800000; readsize = 256; ; + + memory "lock" + initval = 0x5cc5c55c; + ; ; #------------------------------------------------------------ @@ -15330,6 +21001,16 @@ part parent ".avrdx" part parent ".avrdx" desc = "AVR32DB48"; id = "avr32db48"; + variants = + "AVR32DB48: QFN48, Fmax=32 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR32DB48-E/6LX: VQFN48, Fmax=24 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR32DB48-E/PT: TQFP48, Fmax=24 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR32DB48-I/6LX: VQFN48, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "AVR32DB48-I/PT: TQFP48, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "AVR32DB48T-E/6LX: VQFN48, Fmax=24 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR32DB48T-E/PT: TQFP48, Fmax=24 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR32DB48T-I/6LX: VQFN48, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "AVR32DB48T-I/PT: TQFP48, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 347; n_interrupts = 61; signature = 0x1e 0x95 0x35; @@ -15346,6 +21027,10 @@ part parent ".avrdx" offset = 0x800000; readsize = 256; ; + + memory "lock" + initval = 0x5cc5c55c; + ; ; #------------------------------------------------------------ @@ -15355,6 +21040,18 @@ part parent ".avrdx" part parent ".avrdx" desc = "AVR64DB28"; id = "avr64db28"; + variants = + "AVR64DB28: SOIC28, Fmax=32 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR64DB28-E/SO: SOIC28, Fmax=24 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR64DB28-E/SP: SPDIP28, Fmax=24 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR64DB28-E/SS: SSOP28, Fmax=24 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR64DB28-I/SO: SOIC28, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "AVR64DB28-I/SP: SPDIP28, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "AVR64DB28-I/SS: SSOP28, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "AVR64DB28T-E/SO: SOIC28, Fmax=24 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR64DB28T-E/SS: SSOP28, Fmax=24 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR64DB28T-I/SO: SOIC28, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "AVR64DB28T-I/SS: SSOP28, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 352; n_interrupts = 42; signature = 0x1e 0x96 0x19; @@ -15371,6 +21068,10 @@ part parent ".avrdx" offset = 0x800000; readsize = 256; ; + + memory "lock" + initval = 0x5cc5c55c; + ; ; #------------------------------------------------------------ @@ -15380,6 +21081,16 @@ part parent ".avrdx" part parent ".avrdx" desc = "AVR64DB32"; id = "avr64db32"; + variants = + "AVR64DB32: QFN32, Fmax=32 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR64DB32-E/PT: TQFP32, Fmax=24 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR64DB32-E/RXB: VQFN32, Fmax=24 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR64DB32-I/PT: TQFP32, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "AVR64DB32-I/RXB: VQFN32, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "AVR64DB32T-E/PT: TQFP32, Fmax=24 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR64DB32T-E/RXB: VQFN32, Fmax=24 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR64DB32T-I/PT: TQFP32, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "AVR64DB32T-I/RXB: VQFN32, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 356; n_interrupts = 44; signature = 0x1e 0x96 0x18; @@ -15396,6 +21107,10 @@ part parent ".avrdx" offset = 0x800000; readsize = 256; ; + + memory "lock" + initval = 0x5cc5c55c; + ; ; #------------------------------------------------------------ @@ -15405,6 +21120,16 @@ part parent ".avrdx" part parent ".avrdx" desc = "AVR64DB48"; id = "avr64db48"; + variants = + "AVR64DB48: QFN48, Fmax=32 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR64DB48-E/6LX: VQFN48, Fmax=24 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR64DB48-E/PT: TQFP48, Fmax=24 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR64DB48-I/6LX: VQFN48, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "AVR64DB48-I/PT: TQFP48, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "AVR64DB48T-E/6LX: VQFN48, Fmax=24 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR64DB48T-E/PT: TQFP48, Fmax=24 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR64DB48T-I/6LX: VQFN48, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "AVR64DB48T-I/PT: TQFP48, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 360; n_interrupts = 61; signature = 0x1e 0x96 0x17; @@ -15421,6 +21146,10 @@ part parent ".avrdx" offset = 0x800000; readsize = 256; ; + + memory "lock" + initval = 0x5cc5c55c; + ; ; #------------------------------------------------------------ @@ -15430,6 +21159,16 @@ part parent ".avrdx" part parent ".avrdx" desc = "AVR64DB64"; id = "avr64db64"; + variants = + "AVR64DB64: QFN64, Fmax=32 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR64DB64-E/MR: QFN64, Fmax=24 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR64DB64-E/PT: TQFP64, Fmax=24 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR64DB64-I/MR: QFN64, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "AVR64DB64-I/PT: TQFP64, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "AVR64DB64T-E/MR: QFN64, Fmax=24 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR64DB64T-E/PT: TQFP64, Fmax=24 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR64DB64T-I/MR: QFN64, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "AVR64DB64T-I/PT: TQFP64, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 363; n_interrupts = 65; signature = 0x1e 0x96 0x16; @@ -15446,6 +21185,10 @@ part parent ".avrdx" offset = 0x800000; readsize = 256; ; + + memory "lock" + initval = 0x5cc5c55c; + ; ; #------------------------------------------------------------ @@ -15455,6 +21198,18 @@ part parent ".avrdx" part parent ".avrdx" desc = "AVR128DB28"; id = "avr128db28"; + variants = + "AVR128DB28: SOIC28, Fmax=32 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR128DB28-E/SO: SOIC28, Fmax=24 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR128DB28-E/SP: SPDIP28, Fmax=24 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR128DB28-E/SS: SSOP28, Fmax=24 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR128DB28-I/SO: SOIC28, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "AVR128DB28-I/SP: SPDIP28, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "AVR128DB28-I/SS: SSOP28, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "AVR128DB28T-E/SO: SOIC28, Fmax=24 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR128DB28T-E/SS: SSOP28, Fmax=24 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR128DB28T-I/SO: SOIC28, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "AVR128DB28T-I/SS: SSOP28, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 365; n_interrupts = 42; signature = 0x1e 0x97 0x0e; @@ -15471,6 +21226,10 @@ part parent ".avrdx" offset = 0x800000; readsize = 256; ; + + memory "lock" + initval = 0x5cc5c55c; + ; ; #------------------------------------------------------------ @@ -15480,6 +21239,16 @@ part parent ".avrdx" part parent ".avrdx" desc = "AVR128DB32"; id = "avr128db32"; + variants = + "AVR128DB32: QFN32, Fmax=32 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR128DB32-E/PT: TQFP32, Fmax=24 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR128DB32-E/RXB: VQFN32, Fmax=24 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR128DB32-I/PT: TQFP32, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "AVR128DB32-I/RXB: VQFN32, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "AVR128DB32T-E/PT: TQFP32, Fmax=24 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR128DB32T-E/RXB: VQFN32, Fmax=24 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR128DB32T-I/PT: TQFP32, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "AVR128DB32T-I/RXB: VQFN32, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 367; n_interrupts = 44; signature = 0x1e 0x97 0x0d; @@ -15496,6 +21265,10 @@ part parent ".avrdx" offset = 0x800000; readsize = 256; ; + + memory "lock" + initval = 0x5cc5c55c; + ; ; #------------------------------------------------------------ @@ -15505,6 +21278,16 @@ part parent ".avrdx" part parent ".avrdx" desc = "AVR128DB48"; id = "avr128db48"; + variants = + "AVR128DB48: QFN48, Fmax=32 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR128DB48-E/6LX: VQFN48, Fmax=24 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR128DB48-E/PT: TQFP48, Fmax=24 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR128DB48-I/6LX: VQFN48, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "AVR128DB48-I/PT: TQFP48, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "AVR128DB48T-E/6LX: VQFN48, Fmax=24 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR128DB48T-E/PT: TQFP48, Fmax=24 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR128DB48T-I/6LX: VQFN48, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "AVR128DB48T-I/PT: TQFP48, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 369; n_interrupts = 61; signature = 0x1e 0x97 0x0c; @@ -15521,6 +21304,10 @@ part parent ".avrdx" offset = 0x800000; readsize = 256; ; + + memory "lock" + initval = 0x5cc5c55c; + ; ; #------------------------------------------------------------ @@ -15530,6 +21317,16 @@ part parent ".avrdx" part parent ".avrdx" desc = "AVR128DB64"; id = "avr128db64"; + variants = + "AVR128DB64: QFN64, Fmax=32 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR128DB64-E/MR: QFN64, Fmax=24 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR128DB64-E/PT: TQFP64, Fmax=24 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR128DB64-I/MR: QFN64, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "AVR128DB64-I/PT: TQFP64, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "AVR128DB64T-E/MR: QFN64, Fmax=24 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR128DB64T-E/PT: TQFP64, Fmax=24 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR128DB64T-I/MR: QFN64, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "AVR128DB64T-I/PT: TQFP64, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 371; n_interrupts = 65; signature = 0x1e 0x97 0x0b; @@ -15546,6 +21343,10 @@ part parent ".avrdx" offset = 0x800000; readsize = 256; ; + + memory "lock" + initval = 0x5cc5c55c; + ; ; #------------------------------------------------------------ @@ -15555,6 +21356,9 @@ part parent ".avrdx" part parent ".avrdx" desc = "AVR16DD14"; id = "avr16dd14"; + variants = + "AVR16DD14: SOIC14, Fmax=32 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR16DD14-I/SL: SOIC14, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 329; n_interrupts = 36; hvupdi_variant = 2; @@ -15572,6 +21376,15 @@ part parent ".avrdx" offset = 0x800000; readsize = 256; ; + + memory "fuse5" + initval = 0xd0; + bitmask = 0xf9; + ; + + memory "lock" + initval = 0x5cc5c55c; + ; ; #------------------------------------------------------------ @@ -15581,6 +21394,10 @@ part parent ".avrdx" part parent ".avrdx" desc = "AVR16DD20"; id = "avr16dd20"; + variants = + "AVR16DD20: QFN20, Fmax=32 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR16DD20-I/REB: VQFN20, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "AVR16DD20-I/SO: SOIC20, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 330; n_interrupts = 36; hvupdi_variant = 2; @@ -15598,6 +21415,15 @@ part parent ".avrdx" offset = 0x800000; readsize = 256; ; + + memory "fuse5" + initval = 0xd0; + bitmask = 0xf9; + ; + + memory "lock" + initval = 0x5cc5c55c; + ; ; #------------------------------------------------------------ @@ -15607,6 +21433,12 @@ part parent ".avrdx" part parent ".avrdx" desc = "AVR16DD28"; id = "avr16dd28"; + variants = + "AVR16DD28: SOIC28, Fmax=32 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR16DD28-I/SO: SOIC28, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "AVR16DD28-I/SP: SPDIP28, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "AVR16DD28-I/SS: SSOP28, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "AVR16DD28-I/STX: N/A, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 331; n_interrupts = 36; hvupdi_variant = 2; @@ -15624,6 +21456,15 @@ part parent ".avrdx" offset = 0x800000; readsize = 256; ; + + memory "fuse5" + initval = 0xd0; + bitmask = 0xf9; + ; + + memory "lock" + initval = 0x5cc5c55c; + ; ; #------------------------------------------------------------ @@ -15633,6 +21474,10 @@ part parent ".avrdx" part parent ".avrdx" desc = "AVR16DD32"; id = "avr16dd32"; + variants = + "AVR16DD32: QFN32, Fmax=32 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR16DD32-I/PT: TQFP32, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "AVR16DD32-I/RXB: VQFN32, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 333; n_interrupts = 36; hvupdi_variant = 2; @@ -15650,6 +21495,15 @@ part parent ".avrdx" offset = 0x800000; readsize = 256; ; + + memory "fuse5" + initval = 0xd0; + bitmask = 0xf9; + ; + + memory "lock" + initval = 0x5cc5c55c; + ; ; #------------------------------------------------------------ @@ -15659,6 +21513,9 @@ part parent ".avrdx" part parent ".avrdx" desc = "AVR32DD14"; id = "avr32dd14"; + variants = + "AVR32DD14: SOIC14, Fmax=32 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR32DD14-I/SL: SOIC14, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 336; n_interrupts = 36; hvupdi_variant = 2; @@ -15676,6 +21533,15 @@ part parent ".avrdx" offset = 0x800000; readsize = 256; ; + + memory "fuse5" + initval = 0xd0; + bitmask = 0xf9; + ; + + memory "lock" + initval = 0x5cc5c55c; + ; ; #------------------------------------------------------------ @@ -15685,6 +21551,10 @@ part parent ".avrdx" part parent ".avrdx" desc = "AVR32DD20"; id = "avr32dd20"; + variants = + "AVR32DD20: QFN20, Fmax=32 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR32DD20-I/REB: VQFN20, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "AVR32DD20-I/SO: SOIC20, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 337; n_interrupts = 36; hvupdi_variant = 2; @@ -15702,6 +21572,15 @@ part parent ".avrdx" offset = 0x800000; readsize = 256; ; + + memory "fuse5" + initval = 0xd0; + bitmask = 0xf9; + ; + + memory "lock" + initval = 0x5cc5c55c; + ; ; #------------------------------------------------------------ @@ -15711,6 +21590,12 @@ part parent ".avrdx" part parent ".avrdx" desc = "AVR32DD28"; id = "avr32dd28"; + variants = + "AVR32DD28: SOIC28, Fmax=32 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR32DD28-I/SO: SOIC28, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "AVR32DD28-I/SP: SPDIP28, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "AVR32DD28-I/SS: SSOP28, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "AVR32DD28-I/STX: N/A, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 340; n_interrupts = 36; hvupdi_variant = 2; @@ -15728,6 +21613,15 @@ part parent ".avrdx" offset = 0x800000; readsize = 256; ; + + memory "fuse5" + initval = 0xd0; + bitmask = 0xf9; + ; + + memory "lock" + initval = 0x5cc5c55c; + ; ; #------------------------------------------------------------ @@ -15737,6 +21631,10 @@ part parent ".avrdx" part parent ".avrdx" desc = "AVR32DD32"; id = "avr32dd32"; + variants = + "AVR32DD32: QFN32, Fmax=32 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR32DD32-I/PT: TQFP32, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "AVR32DD32-I/RXB: VQFN32, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 344; n_interrupts = 36; hvupdi_variant = 2; @@ -15754,6 +21652,15 @@ part parent ".avrdx" offset = 0x800000; readsize = 256; ; + + memory "fuse5" + initval = 0xd0; + bitmask = 0xf9; + ; + + memory "lock" + initval = 0x5cc5c55c; + ; ; #------------------------------------------------------------ @@ -15763,6 +21670,9 @@ part parent ".avrdx" part parent ".avrdx" desc = "AVR64DD14"; id = "avr64dd14"; + variants = + "AVR64DD14: SOIC14, Fmax=32 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR64DD14-I/SL: SOIC14, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 349; n_interrupts = 36; hvupdi_variant = 2; @@ -15780,6 +21690,15 @@ part parent ".avrdx" offset = 0x800000; readsize = 256; ; + + memory "fuse5" + initval = 0xd0; + bitmask = 0xf9; + ; + + memory "lock" + initval = 0x5cc5c55c; + ; ; #------------------------------------------------------------ @@ -15789,6 +21708,9 @@ part parent ".avrdx" part parent ".avrdx" desc = "AVR64DD20"; id = "avr64dd20"; + variants = + "AVR64DD20: QFN20, Fmax=32 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR64DD20-I/SO: SOIC20, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 350; n_interrupts = 36; hvupdi_variant = 2; @@ -15806,6 +21728,15 @@ part parent ".avrdx" offset = 0x800000; readsize = 256; ; + + memory "fuse5" + initval = 0xd0; + bitmask = 0xf9; + ; + + memory "lock" + initval = 0x5cc5c55c; + ; ; #------------------------------------------------------------ @@ -15815,6 +21746,12 @@ part parent ".avrdx" part parent ".avrdx" desc = "AVR64DD28"; id = "avr64dd28"; + variants = + "AVR64DD28: SOIC28, Fmax=32 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR64DD28-I/SO: SOIC28, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "AVR64DD28-I/SP: SPDIP28, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "AVR64DD28-I/SS: SSOP28, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "AVR64DD28-I/STX: VQFN28, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 353; n_interrupts = 36; hvupdi_variant = 2; @@ -15832,6 +21769,15 @@ part parent ".avrdx" offset = 0x800000; readsize = 256; ; + + memory "fuse5" + initval = 0xd0; + bitmask = 0xf9; + ; + + memory "lock" + initval = 0x5cc5c55c; + ; ; #------------------------------------------------------------ @@ -15841,6 +21787,10 @@ part parent ".avrdx" part parent ".avrdx" desc = "AVR64DD32"; id = "avr64dd32"; + variants = + "AVR64DD32: QFN32, Fmax=32 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR64DD32-I/PT: TQFP32, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "AVR64DD32-I/RXB: VQFN32, Fmax=24 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 357; n_interrupts = 36; hvupdi_variant = 2; @@ -15858,6 +21808,15 @@ part parent ".avrdx" offset = 0x800000; readsize = 256; ; + + memory "fuse5" + initval = 0xd0; + bitmask = 0xf9; + ; + + memory "lock" + initval = 0x5cc5c55c; + ; ; #------------------------------------------------------------ @@ -15870,15 +21829,25 @@ part parent ".avrdx" # Shared UPDI pin, HV on _RESET hvupdi_variant = 2; + memory "fuse2" + bitmask = 0x08; + ; + + memory "fuse5" + initval = 0xd0; + bitmask = 0xf9; + ; + + memory "fuse6" + initval = 0x07; + bitmask = 0x07; + ; + memory "userrow" size = 64; page_size = 64; readsize = 64; ; - - memory "usersig" - alias "userrow"; - ; ; #------------------------------------------------------------ @@ -15904,6 +21873,37 @@ part parent ".avrex" offset = 0x800000; readsize = 256; ; + + memory "fuse0" + initval = -1; + ; + + memory "fuse1" + initval = -1; + ; + + memory "fuse2" + initval = -1; + bitmask = -1; + ; + + memory "fuse5" + initval = -1; + bitmask = -1; + ; + + memory "fuse6" + initval = -1; + bitmask = -1; + ; + + memory "fuse7" + initval = -1; + ; + + memory "fuse8" + initval = -1; + ; ; #------------------------------------------------------------ @@ -15929,6 +21929,37 @@ part parent ".avrex" offset = 0x800000; readsize = 256; ; + + memory "fuse0" + initval = -1; + ; + + memory "fuse1" + initval = -1; + ; + + memory "fuse2" + initval = -1; + bitmask = -1; + ; + + memory "fuse5" + initval = -1; + bitmask = -1; + ; + + memory "fuse6" + initval = -1; + bitmask = -1; + ; + + memory "fuse7" + initval = -1; + ; + + memory "fuse8" + initval = -1; + ; ; #------------------------------------------------------------ @@ -15938,6 +21969,8 @@ part parent ".avrex" part parent ".avrex" desc = "AVR16EA28"; id = "avr16ea28"; + variants = + "AVR16EA28: SOIC28, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 332; signature = 0x1e 0x94 0x37; @@ -15954,6 +21987,10 @@ part parent ".avrex" offset = 0x800000; readsize = 256; ; + + memory "lock" + initval = 0x5cc5c55c; + ; ; #------------------------------------------------------------ @@ -15963,6 +22000,8 @@ part parent ".avrex" part parent ".avrex" desc = "AVR16EA32"; id = "avr16ea32"; + variants = + "AVR16EA32: VQFN32, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 334; signature = 0x1e 0x94 0x36; @@ -15979,6 +22018,10 @@ part parent ".avrex" offset = 0x800000; readsize = 256; ; + + memory "lock" + initval = 0x5cc5c55c; + ; ; #------------------------------------------------------------ @@ -15988,6 +22031,8 @@ part parent ".avrex" part parent ".avrex" desc = "AVR16EA48"; id = "avr16ea48"; + variants = + "AVR16EA48: VQFN48, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 335; signature = 0x1e 0x94 0x35; @@ -16004,6 +22049,10 @@ part parent ".avrex" offset = 0x800000; readsize = 256; ; + + memory "lock" + initval = 0x5cc5c55c; + ; ; #------------------------------------------------------------ @@ -16013,6 +22062,8 @@ part parent ".avrex" part parent ".avrex" desc = "AVR32EA28"; id = "avr32ea28"; + variants = + "AVR32EA28: SOIC28, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 341; signature = 0x1e 0x95 0x3e; @@ -16029,6 +22080,10 @@ part parent ".avrex" offset = 0x800000; readsize = 256; ; + + memory "lock" + initval = 0x5cc5c55c; + ; ; #------------------------------------------------------------ @@ -16038,6 +22093,8 @@ part parent ".avrex" part parent ".avrex" desc = "AVR32EA32"; id = "avr32ea32"; + variants = + "AVR32EA32: VQFN32, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 345; signature = 0x1e 0x95 0x3d; @@ -16054,6 +22111,10 @@ part parent ".avrex" offset = 0x800000; readsize = 256; ; + + memory "lock" + initval = 0x5cc5c55c; + ; ; #------------------------------------------------------------ @@ -16063,6 +22124,8 @@ part parent ".avrex" part parent ".avrex" desc = "AVR32EA48"; id = "avr32ea48"; + variants = + "AVR32EA48: VQFN48, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 348; signature = 0x1e 0x95 0x3c; @@ -16079,6 +22142,10 @@ part parent ".avrex" offset = 0x800000; readsize = 256; ; + + memory "lock" + initval = 0x5cc5c55c; + ; ; #------------------------------------------------------------ @@ -16088,6 +22155,10 @@ part parent ".avrex" part parent ".avrex" desc = "AVR64EA28"; id = "avr64ea28"; + variants = + "AVR64EA28: SOIC28, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR64EA28-I/SP: SPDIP28, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "AVR64EA28-I/SS: SSOP28, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 354; n_interrupts = 37; signature = 0x1e 0x96 0x20; @@ -16105,6 +22176,10 @@ part parent ".avrex" offset = 0x800000; readsize = 256; ; + + memory "lock" + initval = 0x5cc5c55c; + ; ; #------------------------------------------------------------ @@ -16114,6 +22189,10 @@ part parent ".avrex" part parent ".avrex" desc = "AVR64EA32"; id = "avr64ea32"; + variants = + "AVR64EA32: VQFN32, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR64EA32-I/PT: TQFP32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "AVR64EA32-I/RXB: VQFN32, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 358; n_interrupts = 37; signature = 0x1e 0x96 0x1f; @@ -16131,6 +22210,10 @@ part parent ".avrex" offset = 0x800000; readsize = 256; ; + + memory "lock" + initval = 0x5cc5c55c; + ; ; #------------------------------------------------------------ @@ -16140,6 +22223,10 @@ part parent ".avrex" part parent ".avrex" desc = "AVR64EA48"; id = "avr64ea48"; + variants = + "AVR64EA48: VQFN48, Fmax=20 MHz, T=[-40 C, 125 C], Vcc=[1.8 V, 5.5 V]", + "AVR64EA48-I/6LX: VQFN48, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]", + "AVR64EA48-I/PT: TQFP48, Fmax=20 MHz, T=[-40 C, 85 C], Vcc=[1.8 V, 5.5 V]"; mcuid = 361; n_interrupts = 45; signature = 0x1e 0x96 0x1e; @@ -16157,6 +22244,10 @@ part parent ".avrex" offset = 0x800000; readsize = 256; ; + + memory "lock" + initval = 0x5cc5c55c; + ; ; #------------------------------------------------------------ @@ -16169,6 +22260,24 @@ part parent "m88" mcuid = 227; signature = 0x1e 0x93 0x0f; autobaud_sync = 0x1c; + + memory "lfuse" + initval = -1; + ; + + memory "hfuse" + initval = -1; + ; + + memory "efuse" + initval = -1; + bitmask = -1; + ; + + memory "lock" + initval = -1; + bitmask = -1; + ; ; #------------------------------------------------------------ @@ -16181,6 +22290,24 @@ part parent "m168" mcuid = 228; signature = 0x1e 0x94 0x0b; autobaud_sync = 0x1c; + + memory "lfuse" + initval = -1; + ; + + memory "hfuse" + initval = -1; + ; + + memory "efuse" + initval = -1; + bitmask = -1; + ; + + memory "lock" + initval = -1; + bitmask = -1; + ; ; #------------------------------------------------------------ @@ -16193,4 +22320,22 @@ part parent "m328" mcuid = 229; signature = 0x1e 0x95 0x0f; autobaud_sync = 0x1c; + + memory "lfuse" + initval = -1; + ; + + memory "hfuse" + initval = -1; + ; + + memory "efuse" + initval = -1; + bitmask = -1; + ; + + memory "lock" + initval = -1; + bitmask = -1; + ; ;