From 20ae770f8f488d822fb3fd552307f5e957e84fcb Mon Sep 17 00:00:00 2001 From: Vincent DEFERT <20.100@defert.com> Date: Mon, 29 May 2023 09:15:07 +0200 Subject: [PATCH] Added support for all STC8 and STC32 series --- stcgal/frontend.py | 105 +- stcgal/ihex.py | 15 +- stcgal/models.py | 2260 ++++++++++++++++++++++--------------------- stcgal/options.py | 2 +- stcgal/protocols.py | 593 ++++++++---- 5 files changed, 1650 insertions(+), 1325 deletions(-) diff --git a/stcgal/frontend.py b/stcgal/frontend.py index 31a0978..f1b3d45 100644 --- a/stcgal/frontend.py +++ b/stcgal/frontend.py @@ -33,6 +33,8 @@ from stcgal.protocols import Stc15Protocol from stcgal.protocols import Stc15AProtocol from stcgal.protocols import StcUsb15Protocol from stcgal.protocols import Stc8Protocol +from stcgal.protocols import Stc8dProtocol +from stcgal.protocols import Stc8gProtocol from stcgal.protocols import StcAutoProtocol from stcgal.protocols import StcProtocolException from stcgal.protocols import StcFramingException @@ -43,6 +45,8 @@ class StcGal: def __init__(self, opts): self.opts = opts + self.hexFileType = 8 + self.linearBaseAddress = 0 self.initialize_protocol(opts) def initialize_protocol(self, opts): @@ -56,14 +60,19 @@ class StcGal: elif opts.protocol == "stc12": self.protocol = Stc12Protocol(opts.port, opts.handshake, opts.baud) elif opts.protocol == "stc15a": - self.protocol = Stc15AProtocol(opts.port, opts.handshake, opts.baud, - round(opts.trim * 1000)) + self.protocol = Stc15AProtocol(opts.port, opts.handshake, opts.baud, round(opts.trim * 1000)) elif opts.protocol == "stc15": - self.protocol = Stc15Protocol(opts.port, opts.handshake, opts.baud, - round(opts.trim * 1000)) + self.protocol = Stc15Protocol(opts.port, opts.handshake, opts.baud, round(opts.trim * 1000)) elif opts.protocol == "stc8": - self.protocol = Stc8Protocol(opts.port, opts.handshake, opts.baud, - round(opts.trim * 1000)) + self.protocol = Stc8Protocol(opts.port, opts.handshake, opts.baud, round(opts.trim * 1000)) + elif opts.protocol == "stc8d": + self.protocol = Stc8dProtocol(opts.port, opts.handshake, opts.baud, round(opts.trim * 1000)) + elif opts.protocol == "stc8g": + """FIXME Ugly hack, but works until I fully implement the STC8G protocol""" + if opts.trim < 27360: + self.protocol = Stc8dProtocol(opts.port, opts.handshake, opts.baud, round(opts.trim * 1000)) + else: + self.protocol = Stc8gProtocol(opts.port, opts.handshake, opts.baud, round(opts.trim * 1000)) elif opts.protocol == "usb15": self.protocol = StcUsb15Protocol() else: @@ -90,6 +99,8 @@ class StcGal: fname.endswith(".ihex")): try: hexfile = IHex.read(fileobj) + self.hexFileType = hexfile.get_mode() + self.linearBaseAddress = hexfile.get_linearBaseAddress() binary = hexfile.extract_data() print("%d bytes (Intel HEX)" %len(binary)) return binary @@ -103,45 +114,57 @@ class StcGal: def program_mcu(self): """Execute the standard programming flow.""" - code_size = self.protocol.model.code - ee_size = self.protocol.model.eeprom + if self.opts.option: self.emit_options(self.opts.option) + + if self.protocol.split_code and self.protocol.model.iap: + code_size = self.protocol.split_code + ee_size = self.protocol.split_eeprom + else: + code_size = self.protocol.model.code + ee_size = self.protocol.model.eeprom print("Loading flash: ", end="") sys.stdout.flush() bindata = self.load_file_auto(self.opts.code_image) + + if self.protocol.model.mcs251 and self.hexFileType != 32: + print("Invalid input file. MCU is an MCS-251, input file MUST specify a linear", file=sys.stderr) + print("base address, i.e. contain a type 04 record. More information at:", file=sys.stderr) + print("https://en.wikipedia.org/wiki/Intel_HEX", file=sys.stderr) + else: + self.protocol.linearBaseAddress = self.linearBaseAddress - # warn if it overflows - if len(bindata) > code_size: - print("WARNING: code_image overflows into eeprom segment!", file=sys.stderr) - if len(bindata) > (code_size + ee_size): - print("WARNING: code_image truncated!", file=sys.stderr) - bindata = bindata[0:code_size + ee_size] + # warn if it overflows + if len(bindata) > code_size: + print("WARNING: code_image overflows into eeprom segment!", file=sys.stderr) + if len(bindata) > (code_size + ee_size): + print("WARNING: code_image truncated!", file=sys.stderr) + bindata = bindata[0:code_size + ee_size] - # add eeprom data if supplied - if self.opts.eeprom_image: - print("Loading EEPROM: ", end="") - sys.stdout.flush() - eedata = self.load_file_auto(self.opts.eeprom_image) - if len(eedata) > ee_size: - print("WARNING: eeprom_image truncated!", file=sys.stderr) - eedata = eedata[0:ee_size] - if len(bindata) < code_size: - bindata += bytes([0xff] * (code_size - len(bindata))) - elif len(bindata) > code_size: - print("WARNING: eeprom_image overlaps code_image!", file=sys.stderr) - bindata = bindata[0:code_size] - bindata += eedata + # add eeprom data if supplied + if self.opts.eeprom_image: + print("Loading EEPROM: ", end="") + sys.stdout.flush() + eedata = self.load_file_auto(self.opts.eeprom_image) + if len(eedata) > ee_size: + print("WARNING: eeprom_image truncated!", file=sys.stderr) + eedata = eedata[0:ee_size] + if len(bindata) < code_size: + bindata += bytes([0xff] * (code_size - len(bindata))) + elif len(bindata) > code_size: + print("WARNING: eeprom_image overlaps code_image!", file=sys.stderr) + bindata = bindata[0:code_size] + bindata += eedata - # pad to 512 byte boundary - if len(bindata) % 512: - bindata += b'\xff' * (512 - len(bindata) % 512) + # pad to 512 byte boundary + if len(bindata) % 512: + bindata += b'\xff' * (512 - len(bindata) % 512) - if self.opts.option: self.emit_options(self.opts.option) - - self.protocol.handshake() - self.protocol.erase_flash(len(bindata), code_size) - self.protocol.program_flash(bindata) - self.protocol.program_options() + self.protocol.handshake() + self.protocol.erase_flash(len(bindata), code_size) + self.protocol.program_flash(bindata) + self.protocol.program_options() + self.protocol.disconnect() def erase_mcu(self): @@ -161,7 +184,7 @@ class StcGal: return 0 try: - self.protocol.connect(autoreset=self.opts.autoreset, resetcmd=self.opts.resetcmd) + self.protocol.connect(autoreset=self.opts.autoreset, resetcmd=self.opts.resetcmd, resetpin=self.opts.resetpin) if isinstance(self.protocol, StcAutoProtocol): if not self.protocol.protocol_name: raise StcProtocolException("cannot detect protocol") @@ -240,11 +263,13 @@ def cli(): parser.add_argument("eeprom_image", help="eeprom segment file to flash (BIN/HEX)", type=argparse.FileType("rb"), nargs='?') exclusives.add_argument("-e", "--erase", help="only erase flash memory", action="store_true") parser.add_argument("-a", "--autoreset", help="cycle power automatically by asserting DTR", action="store_true") + parser.add_argument("-A", "--resetpin", help="pin to hold down when using --autoreset (default: DTR)", + choices=["dtr", "rts"], default="dtr") parser.add_argument("-r", "--resetcmd", help="shell command for board power-cycling (instead of DTR assertion)", action="store") parser.add_argument("-P", "--protocol", help="protocol version (default: auto)", - choices=["stc89", "stc12a", "stc12b", "stc12", "stc15a", "stc15", "stc8", "usb15", "auto"], default="auto") + choices=["stc89", "stc12a", "stc12b", "stc12", "stc15a", "stc15", "stc8", "stc8d", "stc8g", "usb15", "auto"], default="auto") parser.add_argument("-p", "--port", help="serial port device", default="/dev/ttyUSB0") - parser.add_argument("-b", "--baud", help="transfer baud rate (default: 19200)", type=BaudType(), default=19200) + parser.add_argument("-b", "--baud", help="transfer baud rate (default: 19200)", type=BaudType(), default=115200) parser.add_argument("-l", "--handshake", help="handshake baud rate (default: 2400)", type=BaudType(), default=2400) parser.add_argument("-o", "--option", help="set option (can be used multiple times, see documentation)", action="append") parser.add_argument("-t", "--trim", help="RC oscillator frequency in kHz (STC15+ series only)", type=float, default=0.0) diff --git a/stcgal/ihex.py b/stcgal/ihex.py index 48ea0f9..b25c962 100644 --- a/stcgal/ihex.py +++ b/stcgal/ihex.py @@ -14,7 +14,6 @@ class IHex: """Read Intel HEX data from string or lines""" ihex = cls() - segbase = 0 for line in lines: line = line.strip() if not line: @@ -22,14 +21,14 @@ class IHex: t, a, d = ihex.parse_line(line) if t == 0x00: - ihex.insert_data(segbase + a, d) + ihex.insert_data(a, d) elif t == 0x01: break # Should we check for garbage after this? elif t == 0x02: ihex.set_mode(16) - segbase = struct.unpack(">H", d[0:2])[0] << 4 + ihex.linearBaseAddress = struct.unpack(">H", d[0:2])[0] << 4 elif t == 0x03: ihex.set_mode(16) @@ -39,7 +38,7 @@ class IHex: elif t == 0x04: ihex.set_mode(32) - segbase = struct.unpack(">H", d[0:2])[0] << 16 + ihex.linearBaseAddress = struct.unpack(">H", d[0:2])[0] << 16 elif t == 0x05: ihex.set_mode(32) @@ -63,6 +62,7 @@ class IHex: self.start = None self.mode = 8 self.row_bytes = 16 + self.linearBaseAddress = 0 def set_row_bytes(self, row_bytes): """Set output hex file row width (bytes represented per row).""" @@ -105,6 +105,12 @@ class IHex: def set_mode(self, mode): self.mode = mode + def get_mode(self): + return self.mode + + def get_linearBaseAddress(self): + return self.linearBaseAddress + def get_area(self, addr): for start, data in self.areas.items(): end = start + len(data) @@ -193,6 +199,7 @@ class IHex: output += self.make_line( 0x04, 0, struct.pack(">H", newsegbase)) segbase = newsegbase + segbase = newsegbase output += self.make_line(0x00, addr, chunk) diff --git a/stcgal/models.py b/stcgal/models.py index 8507409..feba5ad 100644 --- a/stcgal/models.py +++ b/stcgal/models.py @@ -29,1131 +29,1155 @@ class MCUModelDatabase: name, identification code and flash memory sizes. """ - MCUModel = collections.namedtuple("MCUModel", ["name", "magic", "total", "code", "eeprom"]) + MCUModel = collections.namedtuple("MCUModel", ["name", "magic", "total", "code", "eeprom", "iap", "calibrate", "mcs251"]) - models = ( - MCUModel(name='STC12H1K04', magic=0xf7b0, total=36864, code=4096, eeprom=24576), - MCUModel(name='STC12H1K08', magic=0xf7b1, total=36864, code=8192, eeprom=20480), - MCUModel(name='STC12H1K12', magic=0xf7b2, total=36864, code=12288, eeprom=16384), - MCUModel(name='STC12H1K16', magic=0xf7b3, total=36864, code=16384, eeprom=12288), - MCUModel(name='STC12H1K20', magic=0xf7b4, total=36864, code=20480, eeprom=8192), - MCUModel(name='STC12H1K24', magic=0xf7b5, total=36864, code=24576, eeprom=4096), - MCUModel(name='STC12H1K28', magic=0xf7b6, total=36864, code=28672, eeprom=0), - MCUModel(name='STC12H1K33', magic=0xf7b7, total=36864, code=33792, eeprom=0), - MCUModel(name='STC8H2K16T', magic=0xf7c1, total=65536, code=16384, eeprom=49152), - MCUModel(name='STC8H2K32T', magic=0xf7c2, total=65536, code=32768, eeprom=32768), - MCUModel(name='STC8H2K60T', magic=0xf7c3, total=65536, code=61440, eeprom=4096), - MCUModel(name='STC8H2K64T', magic=0xf7c4, total=65536, code=65024, eeprom=512), - MCUModel(name='STC8H3K16S4', magic=0xf741, total=65536, code=16384, eeprom=49152), - MCUModel(name='STC8H3K32S4', magic=0xf742, total=65536, code=32768, eeprom=32768), - MCUModel(name='STC8H3K60S4', magic=0xf743, total=65536, code=61440, eeprom=4096), - MCUModel(name='STC8H3K64S4', magic=0xf744, total=65536, code=65024, eeprom=512), - MCUModel(name='STC8H3K16S2', magic=0xf749, total=65536, code=16384, eeprom=49152), - MCUModel(name='STC8H3K32S2', magic=0xf74a, total=65536, code=32768, eeprom=32768), - MCUModel(name='STC8H3K60S2', magic=0xf74b, total=65536, code=61440, eeprom=4096), - MCUModel(name='STC8H3K64S2', magic=0xf74c, total=65536, code=65024, eeprom=512), - MCUModel(name='STC8H8K16U', magic=0xf781, total=65536, code=16384, eeprom=49152), - MCUModel(name='STC8H8K32U', magic=0xf782, total=65536, code=32768, eeprom=32768), - MCUModel(name='STC8H8K60U', magic=0xf783, total=65536, code=61440, eeprom=4096), - MCUModel(name='STC8H8K64U', magic=0xf784, total=65536, code=65024, eeprom=512), - MCUModel(name='STC8H1K16', magic=0xf721, total=36864, code=16384, eeprom=12288), - MCUModel(name='STC8H1K20', magic=0xf722, total=36864, code=20480, eeprom=8192), - MCUModel(name='STC8H1K24', magic=0xf723, total=36864, code=24576, eeprom=4096), - MCUModel(name='STC8H1K28', magic=0xf724, total=36864, code=28672, eeprom=0), - MCUModel(name='STC8H1K33', magic=0xf725, total=36864, code=33792, eeprom=0), - MCUModel(name='STC8H1K02', magic=0xf731, total=20480, code=2048, eeprom=10240), - MCUModel(name='STC8H1K04', magic=0xf732, total=20480, code=4096, eeprom=8192), - MCUModel(name='STC8H1K06', magic=0xf733, total=20480, code=6144, eeprom=6144), - MCUModel(name='STC8H1K08', magic=0xf734, total=20480, code=8192, eeprom=4096), - MCUModel(name='STC8H1K10', magic=0xf735, total=20480, code=10240, eeprom=2048), - MCUModel(name='STC8H1K12', magic=0xf736, total=20480, code=12288, eeprom=0), - MCUModel(name='STC8H1K17', magic=0xf737, total=20480, code=17408, eeprom=0), - MCUModel(name='STC8G2K16S4', magic=0xf761, total=65536, code=16384, eeprom=49152), - MCUModel(name='STC8G2K32S4', magic=0xf762, total=65536, code=32768, eeprom=32768), - MCUModel(name='STC8G2K60S4', magic=0xf763, total=65536, code=61440, eeprom=4096), - MCUModel(name='STC8G2K64S4', magic=0xf764, total=65536, code=65024, eeprom=512), - MCUModel(name='STC8G2K16S2', magic=0xf769, total=65536, code=16384, eeprom=49152), - MCUModel(name='STC8G2K32S2', magic=0xf76a, total=65536, code=32768, eeprom=32768), - MCUModel(name='STC8G2K60S2', magic=0xf76b, total=65536, code=61440, eeprom=4096), - MCUModel(name='STC8G2K64S2', magic=0xf76c, total=65536, code=65024, eeprom=512), - MCUModel(name='STC8G1K02T', magic=0xf771, total=20480, code=2048, eeprom=10240), - MCUModel(name='STC8G1K04T', magic=0xf772, total=20480, code=4096, eeprom=8192), - MCUModel(name='STC8G1K06T', magic=0xf773, total=20480, code=6144, eeprom=6144), - MCUModel(name='STC8G1K08T', magic=0xf774, total=20480, code=8192, eeprom=4096), - MCUModel(name='STC8G1K10T', magic=0xf775, total=20480, code=10240, eeprom=2048), - MCUModel(name='STC8G1K12T', magic=0xf776, total=20480, code=12288, eeprom=0), - MCUModel(name='STC8G1K17T', magic=0xf777, total=20480, code=17408, eeprom=0), - MCUModel(name='STC8G1K02A-8PIN', magic=0xf791, total=20480, code=2048, eeprom=10240), - MCUModel(name='STC8G1K04A-8PIN', magic=0xf792, total=20480, code=4096, eeprom=8192), - MCUModel(name='STC8G1K06A-8PIN', magic=0xf793, total=20480, code=6144, eeprom=6144), - MCUModel(name='STC8G1K08A-8PIN', magic=0xf794, total=20480, code=8192, eeprom=4096), - MCUModel(name='STC8G1K10A-8PIN', magic=0xf795, total=20480, code=10240, eeprom=2048), - MCUModel(name='STC8G1K12A-8PIN', magic=0xf796, total=20480, code=12288, eeprom=0), - MCUModel(name='STC8G1K17A-8PIN', magic=0xf797, total=20480, code=17408, eeprom=0), - MCUModel(name='STC8G1K02-8PIN', magic=0xf7a1, total=20480, code=2048, eeprom=10240), - MCUModel(name='STC8G1K04-8PIN', magic=0xf7a2, total=20480, code=4096, eeprom=8192), - MCUModel(name='STC8G1K06-8PIN', magic=0xf7a3, total=20480, code=6144, eeprom=6144), - MCUModel(name='STC8G1K08-8PIN', magic=0xf7a4, total=20480, code=8192, eeprom=4096), - MCUModel(name='STC8G1K10-8PIN', magic=0xf7a5, total=20480, code=10240, eeprom=2048), - MCUModel(name='STC8G1K12-8PIN', magic=0xf7a6, total=20480, code=12288, eeprom=0), - MCUModel(name='STC8G1K17-8PIN', magic=0xf7a7, total=20480, code=17408, eeprom=0), - MCUModel(name='STC8G1K02-20/16P', magic=0xf751, total=20480, code=2048, eeprom=10240), - MCUModel(name='STC8G1K04-20/16P', magic=0xf752, total=20480, code=4096, eeprom=8192), - MCUModel(name='STC8G1K06-20/16P', magic=0xf753, total=20480, code=6144, eeprom=6144), - MCUModel(name='STC8G1K08-20/16P', magic=0xf754, total=20480, code=8192, eeprom=4096), - MCUModel(name='STC8G1K10-20/16P', magic=0xf755, total=20480, code=10240, eeprom=2048), - MCUModel(name='STC8G1K12-20/16P', magic=0xf756, total=20480, code=12288, eeprom=0), - MCUModel(name='STC8G1K17-20/16P', magic=0xf757, total=20480, code=17408, eeprom=0), - MCUModel(name='STC8C2K16S4', magic=0xf7d1, total=65536, code=16384, eeprom=49152), - MCUModel(name='STC8C2K32S4', magic=0xf7d2, total=65536, code=32768, eeprom=32768), - MCUModel(name='STC8C2K60S4', magic=0xf7d3, total=65536, code=61440, eeprom=4096), - MCUModel(name='STC8C2K64S4', magic=0xf7d4, total=65536, code=65024, eeprom=512), - MCUModel(name='STC8C1K02', magic=0xf701, total=20480, code=2048, eeprom=10240), - MCUModel(name='STC8C1K04', magic=0xf702, total=20480, code=4096, eeprom=8192), - MCUModel(name='STC8C1K06', magic=0xf703, total=20480, code=6144, eeprom=6144), - MCUModel(name='STC8C1K08', magic=0xf704, total=20480, code=8192, eeprom=4096), - MCUModel(name='STC8C1K10', magic=0xf705, total=20480, code=10240, eeprom=2048), - MCUModel(name='STC8C1K12', magic=0xf706, total=20480, code=12288, eeprom=0), - MCUModel(name='GX8S003', magic=0xf714, total=20480, code=8192, eeprom=4096), - MCUModel(name='GX8S012', magic=0xf716, total=20480, code=12288, eeprom=0), - MCUModel(name='STC8F1K02', magic=0xf671, total=20480, code=2048, eeprom=10240), - MCUModel(name='STC8F1K04', magic=0xf672, total=20480, code=4096, eeprom=8192), - MCUModel(name='STC8F1K06', magic=0xf673, total=20480, code=6144, eeprom=6144), - MCUModel(name='STC8F1K08', magic=0xf674, total=20480, code=8192, eeprom=4096), - MCUModel(name='STC8F1K10', magic=0xf675, total=20480, code=10240, eeprom=2048), - MCUModel(name='STC8F1K12', magic=0xf676, total=20480, code=12288, eeprom=0), - MCUModel(name='STC8F1K17', magic=0xf677, total=20480, code=17408, eeprom=0), - MCUModel(name='STC8F1K02S2', magic=0xf661, total=20480, code=2048, eeprom=10240), - MCUModel(name='STC8F1K04S2', magic=0xf662, total=20480, code=4096, eeprom=8192), - MCUModel(name='STC8F1K06S2', magic=0xf663, total=20480, code=6144, eeprom=6144), - MCUModel(name='STC8F1K08S2', magic=0xf664, total=20480, code=8192, eeprom=4096), - MCUModel(name='STC8F1K10S2', magic=0xf665, total=20480, code=10240, eeprom=2048), - MCUModel(name='STC8F1K12S2', magic=0xf666, total=20480, code=12288, eeprom=0), - MCUModel(name='STC8F1K17S2', magic=0xf667, total=20480, code=17408, eeprom=0), - MCUModel(name='STC8F2K08S2', magic=0xf641, total=65536, code=8192, eeprom=57344), - MCUModel(name='STC8F2K16S2', magic=0xf642, total=65536, code=16384, eeprom=49152), - MCUModel(name='STC8F2K24S2', magic=0xf643, total=65536, code=24576, eeprom=40960), - MCUModel(name='STC8F2K32S2', magic=0xf644, total=65536, code=32768, eeprom=32768), - MCUModel(name='STC8F2K40S2', magic=0xf645, total=65536, code=40960, eeprom=24576), - MCUModel(name='STC8F2K48S2', magic=0xf646, total=65536, code=49152, eeprom=16384), - MCUModel(name='STC8F2K56S2', magic=0xf647, total=65536, code=57344, eeprom=8192), - MCUModel(name='STC8F2K60S2', magic=0xf649, total=65536, code=61440, eeprom=4096), - MCUModel(name='STC8F2K64S2', magic=0xf648, total=65536, code=65024, eeprom=512), - MCUModel(name='STC8F2K08S4', magic=0xf631, total=65536, code=8192, eeprom=57344), - MCUModel(name='STC8F2K16S4', magic=0xf632, total=65536, code=16384, eeprom=49152), - MCUModel(name='STC8F2K24S4', magic=0xf633, total=65536, code=24576, eeprom=40960), - MCUModel(name='STC8F2K32S4', magic=0xf634, total=65536, code=32768, eeprom=32768), - MCUModel(name='STC8F2K40S4', magic=0xf635, total=65536, code=40960, eeprom=24576), - MCUModel(name='STC8F2K48S4', magic=0xf636, total=65536, code=49152, eeprom=16384), - MCUModel(name='STC8F2K56S4', magic=0xf637, total=65536, code=57344, eeprom=8192), - MCUModel(name='STC8F2K60S4', magic=0xf639, total=65536, code=61440, eeprom=4096), - MCUModel(name='STC8F2K64S4', magic=0xf638, total=65536, code=65024, eeprom=512), - MCUModel(name='STC8F8K08S4A12', magic=0xf611, total=65536, code=8192, eeprom=57344), - MCUModel(name='STC8F8K16S4A12', magic=0xf612, total=65536, code=16384, eeprom=49152), - MCUModel(name='STC8F8K24S4A12', magic=0xf613, total=65536, code=24576, eeprom=40960), - MCUModel(name='STC8F8K32S4A12', magic=0xf614, total=65536, code=32768, eeprom=32768), - MCUModel(name='STC8F8K40S4A12', magic=0xf615, total=65536, code=40960, eeprom=24576), - MCUModel(name='STC8F8K48S4A12', magic=0xf616, total=65536, code=49152, eeprom=16384), - MCUModel(name='STC8F8K56S4A12', magic=0xf617, total=65536, code=57344, eeprom=8192), - MCUModel(name='STC8F8K60S4A12', magic=0xf619, total=65536, code=61440, eeprom=4096), - MCUModel(name='STC8F8K64S4A12', magic=0xf618, total=65536, code=65024, eeprom=512), - MCUModel(name='STC8A4K08S2A12', magic=0xf651, total=65536, code=8192, eeprom=57344), - MCUModel(name='STC8A4K16S2A12', magic=0xf652, total=65536, code=16384, eeprom=49152), - MCUModel(name='STC8A4K24S2A12', magic=0xf653, total=65536, code=24576, eeprom=40960), - MCUModel(name='STC8A4K32S2A12', magic=0xf654, total=65536, code=32768, eeprom=32768), - MCUModel(name='STC8A4K40S2A12', magic=0xf655, total=65536, code=40960, eeprom=24576), - MCUModel(name='STC8A4K48S2A12', magic=0xf656, total=65536, code=49152, eeprom=16384), - MCUModel(name='STC8A4K56S2A12', magic=0xf657, total=65536, code=57344, eeprom=8192), - MCUModel(name='STC8A4K60S2A12', magic=0xf659, total=65536, code=61440, eeprom=4096), - MCUModel(name='STC8A4K64S2A12', magic=0xf658, total=65536, code=65024, eeprom=512), - MCUModel(name='STC8A8K08S4A12', magic=0xf621, total=65536, code=8192, eeprom=57344), - MCUModel(name='STC8A8K16S4A12', magic=0xf622, total=65536, code=16384, eeprom=49152), - MCUModel(name='STC8A8K24S4A12', magic=0xf623, total=65536, code=24576, eeprom=40960), - MCUModel(name='STC8A8K32S4A12', magic=0xf624, total=65536, code=32768, eeprom=32768), - MCUModel(name='STC8A8K40S4A12', magic=0xf625, total=65536, code=40960, eeprom=24576), - MCUModel(name='STC8A8K48S4A12', magic=0xf626, total=65536, code=49152, eeprom=16384), - MCUModel(name='STC8A8K56S4A12', magic=0xf627, total=65536, code=57344, eeprom=8192), - MCUModel(name='STC8A8K60S4A12', magic=0xf629, total=65536, code=61440, eeprom=4096), - MCUModel(name='STC8A8K64S4A12', magic=0xf628, total=65536, code=65024, eeprom=512), - MCUModel(name='STC15H4K08S4', magic=0xf601, total=65536, code=8192, eeprom=57344), - MCUModel(name='STC15H4K16S4', magic=0xf602, total=65536, code=16384, eeprom=49152), - MCUModel(name='STC15H4K24S4', magic=0xf603, total=65536, code=24576, eeprom=40960), - MCUModel(name='STC15H4K32S4', magic=0xf604, total=65536, code=32768, eeprom=32768), - MCUModel(name='STC15H4K40S4', magic=0xf605, total=65536, code=40960, eeprom=24576), - MCUModel(name='STC15H4K48S4', magic=0xf606, total=65536, code=49152, eeprom=16384), - MCUModel(name='STC15H4K56S4', magic=0xf607, total=65536, code=57344, eeprom=8192), - MCUModel(name='STC15H4K64S4', magic=0xf608, total=65536, code=65024, eeprom=512), - MCUModel(name='STC15U4K16S4', magic=0xf580, total=65536, code=16384, eeprom=44032), - MCUModel(name='STC15U4K24S4', magic=0xf581, total=65536, code=24576, eeprom=35840), - MCUModel(name='STC15U4K32S4', magic=0xf582, total=65536, code=32768, eeprom=27648), - MCUModel(name='STC15U4K40S4', magic=0xf583, total=65536, code=40960, eeprom=19456), - MCUModel(name='STC15U4K48S4', magic=0xf584, total=65536, code=49152, eeprom=11264), - MCUModel(name='STC15U4K56S4', magic=0xf585, total=65536, code=57344, eeprom=3072), - MCUModel(name='STC15F2K08S2', magic=0xf401, total=65536, code=8192, eeprom=54272), - MCUModel(name='STC15F2K16S2', magic=0xf402, total=65536, code=16384, eeprom=46080), - MCUModel(name='STC15F2K24S2', magic=0xf403, total=65536, code=24576, eeprom=37888), - MCUModel(name='STC15F2K32S2', magic=0xf404, total=65536, code=32768, eeprom=29696), - MCUModel(name='STC15F2K40S2', magic=0xf405, total=65536, code=40960, eeprom=21504), - MCUModel(name='STC15F2K48S2', magic=0xf406, total=65536, code=49152, eeprom=13312), - MCUModel(name='STC15F2K56S2', magic=0xf407, total=65536, code=57344, eeprom=5120), - MCUModel(name='STC15F2K60S2', magic=0xf408, total=65536, code=61440, eeprom=1024), - MCUModel(name='IAP15F2K61S2', magic=0xf449, total=65536, code=62464, eeprom=0), - MCUModel(name='IRC15F2K63S2', magic=0xf44a, total=65536, code=65024, eeprom=0), - MCUModel(name='STC15L2K08S2', magic=0xf481, total=65536, code=8192, eeprom=54272), - MCUModel(name='STC15L2K16S2', magic=0xf482, total=65536, code=16384, eeprom=46080), - MCUModel(name='STC15L2K24S2', magic=0xf483, total=65536, code=24576, eeprom=37888), - MCUModel(name='STC15L2K32S2', magic=0xf484, total=65536, code=32768, eeprom=29696), - MCUModel(name='STC15L2K40S2', magic=0xf485, total=65536, code=40960, eeprom=21504), - MCUModel(name='STC15L2K48S2', magic=0xf486, total=65536, code=49152, eeprom=13312), - MCUModel(name='STC15L2K56S2', magic=0xf487, total=65536, code=57344, eeprom=5120), - MCUModel(name='STC15L2K60S2', magic=0xf488, total=65536, code=61440, eeprom=1024), - MCUModel(name='IAP15L2K61S2', magic=0xf4c9, total=65536, code=62464, eeprom=0), - MCUModel(name='IRC15L2K63S2', magic=0xf4ca, total=65536, code=65024, eeprom=0), - MCUModel(name='STC15F2K08AS', magic=0xf411, total=65536, code=8192, eeprom=54272), - MCUModel(name='STC15F2K16AS', magic=0xf412, total=65536, code=16384, eeprom=46080), - MCUModel(name='STC15F2K24AS', magic=0xf413, total=65536, code=24576, eeprom=37888), - MCUModel(name='STC15F2K32AS', magic=0xf414, total=65536, code=32768, eeprom=29696), - MCUModel(name='STC15F2K40AS', magic=0xf415, total=65536, code=40960, eeprom=21504), - MCUModel(name='STC15F2K48AS', magic=0xf416, total=65536, code=49152, eeprom=13312), - MCUModel(name='STC15F2K56AS', magic=0xf417, total=65536, code=57344, eeprom=5120), - MCUModel(name='STC15F2K60AS', magic=0xf418, total=65536, code=61440, eeprom=1024), - MCUModel(name='IAP15F2K61AS', magic=0xf459, total=65536, code=62464, eeprom=0), - MCUModel(name='IRC15F2K63AS', magic=0xf45a, total=65536, code=65024, eeprom=0), - MCUModel(name='STC15L2K08AS', magic=0xf491, total=65536, code=8192, eeprom=54272), - MCUModel(name='STC15L2K16AS', magic=0xf492, total=65536, code=16384, eeprom=46080), - MCUModel(name='STC15L2K24AS', magic=0xf493, total=65536, code=24576, eeprom=37888), - MCUModel(name='STC15L2K32AS', magic=0xf494, total=65536, code=32768, eeprom=29696), - MCUModel(name='STC15L2K40AS', magic=0xf495, total=65536, code=40960, eeprom=21504), - MCUModel(name='STC15L2K48AS', magic=0xf496, total=65536, code=49152, eeprom=13312), - MCUModel(name='STC15L2K56AS', magic=0xf497, total=65536, code=57344, eeprom=5120), - MCUModel(name='STC15L2K60AS', magic=0xf498, total=65536, code=61440, eeprom=1024), - MCUModel(name='IAP15L2K61AS', magic=0xf4d9, total=65536, code=62464, eeprom=0), - MCUModel(name='IRC15L2K63AS', magic=0xf4da, total=65536, code=65024, eeprom=0), - MCUModel(name='STC15F2K08S', magic=0xf421, total=65536, code=8192, eeprom=54272), - MCUModel(name='STC15F2K16S', magic=0xf422, total=65536, code=16384, eeprom=46080), - MCUModel(name='STC15F2K24S', magic=0xf423, total=65536, code=24576, eeprom=37888), - MCUModel(name='STC15F2K32S', magic=0xf424, total=65536, code=32768, eeprom=29696), - MCUModel(name='STC15F2K40S', magic=0xf425, total=65536, code=40960, eeprom=21504), - MCUModel(name='STC15F2K48S', magic=0xf426, total=65536, code=49152, eeprom=13312), - MCUModel(name='STC15F2K56S', magic=0xf427, total=65536, code=57344, eeprom=5120), - MCUModel(name='STC15F2K60S', magic=0xf428, total=65536, code=61440, eeprom=1024), - MCUModel(name='IAP15F2K61S', magic=0xf469, total=65536, code=62464, eeprom=0), - MCUModel(name='IRC15F2K63S', magic=0xf46a, total=65536, code=65024, eeprom=0), - MCUModel(name='STC15L2K08S', magic=0xf4a1, total=65536, code=8192, eeprom=54272), - MCUModel(name='STC15L2K16S', magic=0xf4a2, total=65536, code=16384, eeprom=46080), - MCUModel(name='STC15L2K24S', magic=0xf4a3, total=65536, code=24576, eeprom=37888), - MCUModel(name='STC15L2K32S', magic=0xf4a4, total=65536, code=32768, eeprom=29696), - MCUModel(name='STC15L2K40S', magic=0xf4a5, total=65536, code=40960, eeprom=21504), - MCUModel(name='STC15L2K48S', magic=0xf4a6, total=65536, code=49152, eeprom=13312), - MCUModel(name='STC15L2K56S', magic=0xf4a7, total=65536, code=57344, eeprom=5120), - MCUModel(name='STC15L2K60S', magic=0xf4a8, total=65536, code=61440, eeprom=1024), - MCUModel(name='IAP15L2K61S', magic=0xf4e9, total=65536, code=62464, eeprom=0), - MCUModel(name='IRC15L2K63S', magic=0xf4ea, total=65536, code=65024, eeprom=0), - MCUModel(name='U7-5V', magic=0xf44b, total=65536, code=62464, eeprom=0), - MCUModel(name='U7-3V', magic=0xf4cb, total=65536, code=62464, eeprom=0), - MCUModel(name='U8-5V', magic=0xf44c, total=65536, code=62464, eeprom=0), - MCUModel(name='U8-3V', magic=0xf4cc, total=65536, code=62464, eeprom=0), - MCUModel(name='STC15F1K08S2', magic=0xf441, total=65536, code=8192, eeprom=54272), - MCUModel(name='STC15F1K16S2', magic=0xf442, total=65536, code=16384, eeprom=46080), - MCUModel(name='STC15F1K24S2', magic=0xf443, total=65536, code=24576, eeprom=37888), - MCUModel(name='STC15F1K32S2', magic=0xf444, total=65536, code=32768, eeprom=29696), - MCUModel(name='STC15F1K40S2', magic=0xf445, total=65536, code=40960, eeprom=21504), - MCUModel(name='STC15F1K48S2', magic=0xf446, total=65536, code=49152, eeprom=13312), - MCUModel(name='STC15F1K56S2', magic=0xf447, total=65536, code=57344, eeprom=5120), - MCUModel(name='STC15F1K60S2', magic=0xf448, total=65536, code=61440, eeprom=1024), - MCUModel(name='IAP15F1K61S2', magic=0xf409, total=65536, code=62464, eeprom=0), - MCUModel(name='IRC15F1K63S2', magic=0xf400, total=65536, code=65024, eeprom=0), - MCUModel(name='STC15L1K08S2', magic=0xf4c1, total=65536, code=8192, eeprom=54272), - MCUModel(name='STC15L1K16S2', magic=0xf4c2, total=65536, code=16384, eeprom=46080), - MCUModel(name='STC15L1K24S2', magic=0xf4c3, total=65536, code=24576, eeprom=37888), - MCUModel(name='STC15L1K32S2', magic=0xf4c4, total=65536, code=32768, eeprom=29696), - MCUModel(name='STC15L1K40S2', magic=0xf4c5, total=65536, code=40960, eeprom=21504), - MCUModel(name='STC15L1K48S2', magic=0xf4c6, total=65536, code=49152, eeprom=13312), - MCUModel(name='STC15L1K56S2', magic=0xf4c7, total=65536, code=57344, eeprom=5120), - MCUModel(name='STC15L1K60S2', magic=0xf4c8, total=65536, code=61440, eeprom=1024), - MCUModel(name='IAP15L1K61S2', magic=0xf489, total=65536, code=62464, eeprom=0), - MCUModel(name='IRC15L1K63S2', magic=0xf480, total=65536, code=65024, eeprom=0), - MCUModel(name='STC15F1K08AS', magic=0xf451, total=65536, code=8192, eeprom=54272), - MCUModel(name='STC15F1K16AS', magic=0xf452, total=65536, code=16384, eeprom=46080), - MCUModel(name='STC15F1K24AS', magic=0xf453, total=65536, code=24576, eeprom=37888), - MCUModel(name='STC15F1K32AS', magic=0xf454, total=65536, code=32768, eeprom=29696), - MCUModel(name='STC15F1K40AS', magic=0xf455, total=65536, code=40960, eeprom=21504), - MCUModel(name='STC15F1K48AS', magic=0xf456, total=65536, code=49152, eeprom=13312), - MCUModel(name='STC15F1K56AS', magic=0xf457, total=65536, code=57344, eeprom=5120), - MCUModel(name='STC15F1K60AS', magic=0xf458, total=65536, code=61440, eeprom=1024), - MCUModel(name='IAP15F1K61AS', magic=0xf419, total=65536, code=62464, eeprom=0), - MCUModel(name='IRC15F1K63AS', magic=0xf410, total=65536, code=65024, eeprom=0), - MCUModel(name='STC15L1K08AS', magic=0xf4d1, total=65536, code=8192, eeprom=54272), - MCUModel(name='STC15L1K16AS', magic=0xf4d2, total=65536, code=16384, eeprom=46080), - MCUModel(name='STC15L1K24AS', magic=0xf4d3, total=65536, code=24576, eeprom=37888), - MCUModel(name='STC15L1K32AS', magic=0xf4d4, total=65536, code=32768, eeprom=29696), - MCUModel(name='STC15L1K40AS', magic=0xf4d5, total=65536, code=40960, eeprom=21504), - MCUModel(name='STC15L1K48AS', magic=0xf4d6, total=65536, code=49152, eeprom=13312), - MCUModel(name='STC15L1K56AS', magic=0xf4d7, total=65536, code=57344, eeprom=5120), - MCUModel(name='STC15L1K60AS', magic=0xf4d8, total=65536, code=61440, eeprom=1024), - MCUModel(name='IAP15L1K61AS', magic=0xf499, total=65536, code=62464, eeprom=0), - MCUModel(name='IRC15L1K63AS', magic=0xf490, total=65536, code=65024, eeprom=0), - MCUModel(name='STC15F1K08S', magic=0xf461, total=65536, code=8192, eeprom=54272), - MCUModel(name='STC15F1K16S', magic=0xf462, total=65536, code=16384, eeprom=46080), - MCUModel(name='STC15F1K24S', magic=0xf463, total=65536, code=24576, eeprom=37888), - MCUModel(name='STC15F1K32S', magic=0xf464, total=65536, code=32768, eeprom=29696), - MCUModel(name='STC15F1K40S', magic=0xf465, total=65536, code=40960, eeprom=21504), - MCUModel(name='STC15F1K48S', magic=0xf466, total=65536, code=49152, eeprom=13312), - MCUModel(name='STC15F1K56S', magic=0xf467, total=65536, code=57344, eeprom=5120), - MCUModel(name='STC15F1K60S', magic=0xf468, total=65536, code=61440, eeprom=1024), - MCUModel(name='IAP15F1K61S', magic=0xf429, total=65536, code=62464, eeprom=0), - MCUModel(name='IRC15F1K63S', magic=0xf420, total=65536, code=65024, eeprom=0), - MCUModel(name='STC15L1K08S', magic=0xf4e1, total=65536, code=8192, eeprom=54272), - MCUModel(name='STC15L1K16S', magic=0xf4e2, total=65536, code=16384, eeprom=46080), - MCUModel(name='STC15L1K24S', magic=0xf4e3, total=65536, code=24576, eeprom=37888), - MCUModel(name='STC15L1K32S', magic=0xf4e4, total=65536, code=32768, eeprom=29696), - MCUModel(name='STC15L1K40S', magic=0xf4e5, total=65536, code=40960, eeprom=21504), - MCUModel(name='STC15L1K48S', magic=0xf4e6, total=65536, code=49152, eeprom=13312), - MCUModel(name='STC15L1K56S', magic=0xf4e7, total=65536, code=57344, eeprom=5120), - MCUModel(name='STC15L1K60S', magic=0xf4e8, total=65536, code=61440, eeprom=1024), - MCUModel(name='IAP15L1K61S', magic=0xf4a9, total=65536, code=62464, eeprom=0), - MCUModel(name='IRC15L1K63S', magic=0xf4a0, total=65536, code=65024, eeprom=0), - MCUModel(name='STC15F404AD', magic=0xf40a, total=65536, code=4096, eeprom=9216), - MCUModel(name='STC15F408AD', magic=0xf40b, total=65536, code=8192, eeprom=5120), - MCUModel(name='STC15F412AD', magic=0xf40c, total=65536, code=12288, eeprom=1024), - MCUModel(name='IAP15F413AD', magic=0xf44d, total=65536, code=13312, eeprom=0), - MCUModel(name='STC15L404AD', magic=0xf48a, total=65536, code=4096, eeprom=9216), - MCUModel(name='STC15L408AD', magic=0xf48b, total=65536, code=8192, eeprom=5120), - MCUModel(name='STC15L412AD', magic=0xf48c, total=65536, code=12288, eeprom=1024), - MCUModel(name='IAP15L413AD', magic=0xf4cd, total=65536, code=13312, eeprom=0), - MCUModel(name='STC15W101SW', magic=0xf501, total=8192, code=1024, eeprom=4096), - MCUModel(name='STC15W102SW', magic=0xf502, total=8192, code=2048, eeprom=3072), - MCUModel(name='STC15W103SW', magic=0xf503, total=8192, code=3072, eeprom=2048), - MCUModel(name='STC15W104SW', magic=0xf504, total=8192, code=4096, eeprom=1024), - MCUModel(name='IAP15W105SW', magic=0xf545, total=8192, code=5120, eeprom=0), - MCUModel(name='STC15W101S', magic=0xf508, total=8192, code=1024, eeprom=4096), - MCUModel(name='STC15W102S', magic=0xf50a, total=8192, code=2048, eeprom=3072), - MCUModel(name='STC15W103S', magic=0xf50b, total=8192, code=3072, eeprom=2048), - MCUModel(name='STC15W104S', magic=0xf50c, total=8192, code=4096, eeprom=1024), - MCUModel(name='IAP15W105S', magic=0xf54d, total=8192, code=5120, eeprom=0), - MCUModel(name='STC15W201S', magic=0xf511, total=8192, code=1024, eeprom=4096), - MCUModel(name='STC15W202S', magic=0xf512, total=8192, code=2048, eeprom=3072), - MCUModel(name='STC15W203S', magic=0xf513, total=8192, code=3072, eeprom=2048), - MCUModel(name='STC15W204S', magic=0xf514, total=8192, code=4096, eeprom=1024), - MCUModel(name='IAP15W205S', magic=0xf555, total=8192, code=5120, eeprom=0), - MCUModel(name='IRC15W207S', magic=0xf556, total=8192, code=7680, eeprom=0), - MCUModel(name='STC15W1K16S', magic=0xf516, total=32768, code=16384, eeprom=13312), - MCUModel(name='STC15W1K24S', magic=0xf517, total=32768, code=24576, eeprom=5120), - MCUModel(name='IAP15W1K29S', magic=0xf558, total=32768, code=29696, eeprom=0), - MCUModel(name='IRC15W1K31S', magic=0xf559, total=32768, code=32256, eeprom=0), - MCUModel(name='STC15W404S', magic=0xf519, total=16384, code=4096, eeprom=9216), - MCUModel(name='STC15W408S', magic=0xf51a, total=16384, code=8192, eeprom=5120), - MCUModel(name='STC15W410S', magic=0xf51b, total=16384, code=10240, eeprom=3072), - MCUModel(name='STC15W412S', magic=0xf51c, total=16384, code=12288, eeprom=1024), - MCUModel(name='IAP15W413S', magic=0xf55d, total=16384, code=13312, eeprom=0), - MCUModel(name='IRC15W415S', magic=0xf55e, total=16384, code=15872, eeprom=0), - MCUModel(name='JX15W415S', magic=0xf55f, total=16384, code=15872, eeprom=0), - MCUModel(name='STC15W401AS', magic=0xf52a, total=16384, code=1024, eeprom=12288), - MCUModel(name='STC15W402AS', magic=0xf52b, total=16384, code=2048, eeprom=11264), - MCUModel(name='STC15W404AS', magic=0xf51e, total=16384, code=4096, eeprom=9216), - MCUModel(name='STC15W408AS', magic=0xf51f, total=16384, code=8192, eeprom=5120), - MCUModel(name='STC15W410AS', magic=0xf520, total=16384, code=10240, eeprom=3072), - MCUModel(name='STC15W412AS', magic=0xf521, total=16384, code=12288, eeprom=1024), - MCUModel(name='IAP15W413AS', magic=0xf562, total=16384, code=13312, eeprom=0), - MCUModel(name='IRC15W415AS', magic=0xf563, total=16384, code=15872, eeprom=0), - MCUModel(name='STC15W1K08PWM', magic=0xf52d, total=65536, code=8192, eeprom=52224), - MCUModel(name='STC15W1K16PWM', magic=0xf52e, total=65536, code=16384, eeprom=44032), - MCUModel(name='STC15W1K20S', magic=0xf52f, total=65536, code=20480, eeprom=39936), - MCUModel(name='STC15W1K20AS', magic=0xf534, total=65536, code=20480, eeprom=39936), - MCUModel(name='STC15W1K32AS', magic=0xf535, total=65536, code=32768, eeprom=27648), - MCUModel(name='STC15W1K48AS', magic=0xf536, total=65536, code=49152, eeprom=11264), - MCUModel(name='STC15W2K32S2', magic=0xf530, total=65536, code=32768, eeprom=27648), - MCUModel(name='STC15W2K48S2', magic=0xf531, total=65536, code=49152, eeprom=11264), - MCUModel(name='STC15W2K32AS', magic=0xf532, total=65536, code=32768, eeprom=27648), - MCUModel(name='STC15W2K48AS', magic=0xf533, total=65536, code=49152, eeprom=11264), - MCUModel(name='STC15W4K16S4', magic=0xf523, total=65536, code=16384, eeprom=44032), - MCUModel(name='STC15W4K24S4', magic=0xf524, total=65536, code=24576, eeprom=35840), - MCUModel(name='STC15W4K32S4', magic=0xf525, total=65536, code=32768, eeprom=27648), - MCUModel(name='STC15W4K40S4', magic=0xf526, total=65536, code=40960, eeprom=19456), - MCUModel(name='STC15W4K48S4', magic=0xf527, total=65536, code=49152, eeprom=11264), - MCUModel(name='STC15W4K56S4', magic=0xf528, total=65536, code=57344, eeprom=3072), - MCUModel(name='IAP15W4K58S4', magic=0xf569, total=65536, code=59392, eeprom=0), - MCUModel(name='IAP15W4K58S4-Stu', magic=0xf56d, total=65536, code=59392, eeprom=0), - MCUModel(name='IAP15W4K61S4', magic=0xf56a, total=65536, code=62464, eeprom=0), - MCUModel(name='IRC15W4K63S4', magic=0xf56b, total=65536, code=65024, eeprom=0), - MCUModel(name='U8W', magic=0xf56c, total=65536, code=62464, eeprom=0), - MCUModel(name='STC15W100', magic=0xf2a0, total=8192, code=512, eeprom=0), - MCUModel(name='STC15W101', magic=0xf2a1, total=8192, code=1024, eeprom=4096), - MCUModel(name='STC15W102', magic=0xf2a2, total=8192, code=2048, eeprom=3072), - MCUModel(name='STC15W103', magic=0xf2a3, total=8192, code=3072, eeprom=2048), - MCUModel(name='STC15W104', magic=0xf2a4, total=8192, code=4096, eeprom=1024), - MCUModel(name='IAP15W105', magic=0xf2a5, total=8192, code=5120, eeprom=0), - MCUModel(name='IRC15W107', magic=0xf2a6, total=8192, code=7168, eeprom=0), - MCUModel(name='STC15F100W', magic=0xf290, total=8192, code=512, eeprom=0), - MCUModel(name='STC15F101W', magic=0xf291, total=8192, code=1024, eeprom=4096), - MCUModel(name='STC15F102W', magic=0xf292, total=8192, code=2048, eeprom=3072), - MCUModel(name='STC15F103W', magic=0xf293, total=8192, code=3072, eeprom=2048), - MCUModel(name='STC15F104W', magic=0xf294, total=8192, code=4096, eeprom=1024), - MCUModel(name='IAP15F105W', magic=0xf2b5, total=8192, code=5120, eeprom=0), - MCUModel(name='IRC15F107W', magic=0xf2b6, total=8192, code=7168, eeprom=0), - MCUModel(name='STC15F100', magic=0xf298, total=8192, code=512, eeprom=0), - MCUModel(name='STC15F101', magic=0xf299, total=8192, code=1024, eeprom=4096), - MCUModel(name='STC15F102', magic=0xf29a, total=8192, code=2048, eeprom=3072), - MCUModel(name='STC15F103', magic=0xf29b, total=8192, code=3072, eeprom=2048), - MCUModel(name='STC15F104', magic=0xf29c, total=8192, code=4096, eeprom=1024), - MCUModel(name='IAP15F105', magic=0xf2bd, total=8192, code=5120, eeprom=0), - MCUModel(name='IRC15F107', magic=0xf2be, total=8192, code=7168, eeprom=0), - MCUModel(name='STC15L100W', magic=0xf2d0, total=8192, code=512, eeprom=0), - MCUModel(name='STC15L101W', magic=0xf2d1, total=8192, code=1024, eeprom=4096), - MCUModel(name='STC15L102W', magic=0xf2d2, total=8192, code=2048, eeprom=3072), - MCUModel(name='STC15L103W', magic=0xf2d3, total=8192, code=3072, eeprom=2048), - MCUModel(name='STC15L104W', magic=0xf2d4, total=8192, code=4096, eeprom=1024), - MCUModel(name='IAP15L105W', magic=0xf2f5, total=8192, code=5120, eeprom=0), - MCUModel(name='IRC15L107W', magic=0xf2f6, total=8192, code=7168, eeprom=0), - MCUModel(name='STC15L100', magic=0xf2d8, total=8192, code=512, eeprom=0), - MCUModel(name='STC15L101', magic=0xf2d9, total=8192, code=1024, eeprom=4096), - MCUModel(name='STC15L102', magic=0xf2da, total=8192, code=2048, eeprom=3072), - MCUModel(name='STC15L103', magic=0xf2db, total=8192, code=3072, eeprom=2048), - MCUModel(name='STC15L104', magic=0xf2dc, total=8192, code=4096, eeprom=1024), - MCUModel(name='IAP15L105', magic=0xf2fd, total=8192, code=5120, eeprom=0), - MCUModel(name='IRC15L107', magic=0xf2fe, total=8192, code=7168, eeprom=0), - MCUModel(name='STC15F104E', magic=0xf294, total=8192, code=4096, eeprom=1024), - MCUModel(name='STC15L104E', magic=0xf2d4, total=8192, code=4096, eeprom=1024), - MCUModel(name='STC15F204EA', magic=0xf394, total=8192, code=4096, eeprom=1024), - MCUModel(name='IAP15F205EA', magic=0xf3b5, total=8192, code=5120, eeprom=0), - MCUModel(name='IRC15F207A', magic=0xf3b6, total=8192, code=7168, eeprom=0), - MCUModel(name='STC15L204EA', magic=0xf3d4, total=8192, code=4096, eeprom=1024), - MCUModel(name='IAP15L205EA', magic=0xf3f5, total=8192, code=5120, eeprom=0), - MCUModel(name='IRC15L207A', magic=0xf3f6, total=8192, code=7168, eeprom=0), - MCUModel(name='STC12C5A08S2', magic=0xd164, total=65536, code=8192, eeprom=55296), - MCUModel(name='STC12C5A16S2', magic=0xd168, total=65536, code=16384, eeprom=47104), - MCUModel(name='STC12C5A32S2', magic=0xd170, total=65536, code=32768, eeprom=30720), - MCUModel(name='STC12C5A40S2', magic=0xd174, total=65536, code=40960, eeprom=22528), - MCUModel(name='STC12C5A48S2', magic=0xd178, total=65536, code=49152, eeprom=14336), - MCUModel(name='STC12C5A52S2', magic=0xd17a, total=65536, code=53248, eeprom=10240), - MCUModel(name='STC12C5A56S2', magic=0xd17c, total=65536, code=57344, eeprom=6144), - MCUModel(name='STC12C5A60S2', magic=0xd17e, total=65536, code=61440, eeprom=2048), - MCUModel(name='STC12C5A08AD', magic=0xd144, total=65536, code=8192, eeprom=55296), - MCUModel(name='STC12C5A16AD', magic=0xd148, total=65536, code=16384, eeprom=47104), - MCUModel(name='STC12C5A32AD', magic=0xd150, total=65536, code=32768, eeprom=30720), - MCUModel(name='STC12C5A40AD', magic=0xd154, total=65536, code=40960, eeprom=22528), - MCUModel(name='STC12C5A48AD', magic=0xd158, total=65536, code=49152, eeprom=14336), - MCUModel(name='STC12C5A52AD', magic=0xd15a, total=65536, code=53248, eeprom=10240), - MCUModel(name='STC12C5A56AD', magic=0xd15c, total=65536, code=57344, eeprom=6144), - MCUModel(name='STC12C5A60AD', magic=0xd15e, total=65536, code=61440, eeprom=2048), - MCUModel(name='STC12C5A08CCP', magic=0xd124, total=65536, code=8192, eeprom=55296), - MCUModel(name='STC12C5A16CCP', magic=0xd128, total=65536, code=16384, eeprom=47104), - MCUModel(name='STC12C5A32CCP', magic=0xd130, total=65536, code=32768, eeprom=30720), - MCUModel(name='STC12C5A40CCP', magic=0xd134, total=65536, code=40960, eeprom=22528), - MCUModel(name='STC12C5A48CCP', magic=0xd138, total=65536, code=49152, eeprom=14336), - MCUModel(name='STC12C5A52CCP', magic=0xd13a, total=65536, code=53248, eeprom=10240), - MCUModel(name='STC12C5A56CCP', magic=0xd13c, total=65536, code=57344, eeprom=6144), - MCUModel(name='STC12C5A60CCP', magic=0xd13e, total=65536, code=61440, eeprom=2048), - MCUModel(name='STC12C5A08X', magic=0xd104, total=65536, code=8192, eeprom=0), - MCUModel(name='STC12C5A16X', magic=0xd108, total=65536, code=16384, eeprom=0), - MCUModel(name='STC12C5A32X', magic=0xd110, total=65536, code=32768, eeprom=0), - MCUModel(name='STC12C5A40X', magic=0xd114, total=65536, code=40960, eeprom=0), - MCUModel(name='STC12C5A48X', magic=0xd118, total=65536, code=49152, eeprom=0), - MCUModel(name='STC12C5A52X', magic=0xd11a, total=65536, code=53248, eeprom=0), - MCUModel(name='STC12C5A56X', magic=0xd11c, total=65536, code=57344, eeprom=0), - MCUModel(name='STC12C5A60X', magic=0xd11e, total=65536, code=61440, eeprom=0), - MCUModel(name='IAP12C5A08S2', magic=0xd163, total=65536, code=8192, eeprom=0), - MCUModel(name='IAP12C5A16S2', magic=0xd167, total=65536, code=16384, eeprom=0), - MCUModel(name='IAP12C5A32S2', magic=0xd16f, total=65536, code=32768, eeprom=0), - MCUModel(name='IAP12C5A40S2', magic=0xd173, total=65536, code=40960, eeprom=0), - MCUModel(name='IAP12C5A48S2', magic=0xd177, total=65536, code=49152, eeprom=0), - MCUModel(name='IAP12C5A52S2', magic=0xd179, total=65536, code=53248, eeprom=0), - MCUModel(name='IAP12C5A56S2', magic=0xd17b, total=65536, code=57344, eeprom=0), - MCUModel(name='IAP12C5A60S2', magic=0xd17d, total=65536, code=61440, eeprom=0), - MCUModel(name='IAP12C5A62S2', magic=0xd17f, total=65536, code=63488, eeprom=0), - MCUModel(name='IAP12C5A08AD', magic=0xd143, total=65536, code=8192, eeprom=0), - MCUModel(name='IAP12C5A16AD', magic=0xd147, total=65536, code=16384, eeprom=0), - MCUModel(name='IAP12C5A32AD', magic=0xd14f, total=65536, code=32768, eeprom=0), - MCUModel(name='IAP12C5A40AD', magic=0xd153, total=65536, code=40960, eeprom=0), - MCUModel(name='IAP12C5A48AD', magic=0xd157, total=65536, code=49152, eeprom=0), - MCUModel(name='IAP12C5A52AD', magic=0xd159, total=65536, code=53248, eeprom=0), - MCUModel(name='IAP12C5A56AD', magic=0xd15b, total=65536, code=57344, eeprom=0), - MCUModel(name='IAP12C5A60AD', magic=0xd15d, total=65536, code=61440, eeprom=0), - MCUModel(name='IAP12C5A62AD', magic=0xd15f, total=65536, code=63488, eeprom=0), - MCUModel(name='IAP12C5A08CCP', magic=0xd123, total=65536, code=8192, eeprom=0), - MCUModel(name='IAP12C5A16CCP', magic=0xd127, total=65536, code=16384, eeprom=0), - MCUModel(name='IAP12C5A32CCP', magic=0xd12f, total=65536, code=32768, eeprom=0), - MCUModel(name='IAP12C5A40CCP', magic=0xd133, total=65536, code=40960, eeprom=0), - MCUModel(name='IAP12C5A48CCP', magic=0xd137, total=65536, code=49152, eeprom=0), - MCUModel(name='IAP12C5A52CCP', magic=0xd139, total=65536, code=53248, eeprom=0), - MCUModel(name='IAP12C5A56CCP', magic=0xd13b, total=65536, code=57344, eeprom=0), - MCUModel(name='IAP12C5A60CCP', magic=0xd13d, total=65536, code=61440, eeprom=0), - MCUModel(name='IAP12C5A62CCP', magic=0xd13f, total=65536, code=63488, eeprom=0), - MCUModel(name='IAP12C5A08', magic=0xd103, total=65536, code=8192, eeprom=0), - MCUModel(name='IAP12C5A16', magic=0xd107, total=65536, code=16384, eeprom=0), - MCUModel(name='IAP12C5A32', magic=0xd10f, total=65536, code=32768, eeprom=0), - MCUModel(name='IAP12C5A40', magic=0xd113, total=65536, code=40960, eeprom=0), - MCUModel(name='IAP12C5A48', magic=0xd117, total=65536, code=49152, eeprom=0), - MCUModel(name='IAP12C5A52', magic=0xd119, total=65536, code=53248, eeprom=0), - MCUModel(name='IAP12C5A56', magic=0xd11b, total=65536, code=57344, eeprom=0), - MCUModel(name='IAP12C5A60', magic=0xd11d, total=65536, code=61440, eeprom=0), - MCUModel(name='IAP12C5A62', magic=0xd11f, total=65536, code=63488, eeprom=0), - MCUModel(name='STC12LE5A08S2', magic=0xd1e4, total=65536, code=8192, eeprom=55296), - MCUModel(name='STC12LE5A16S2', magic=0xd1e8, total=65536, code=16384, eeprom=47104), - MCUModel(name='STC12LE5A32S2', magic=0xd1f0, total=65536, code=32768, eeprom=30720), - MCUModel(name='STC12LE5A40S2', magic=0xd1f4, total=65536, code=40960, eeprom=22528), - MCUModel(name='STC12LE5A48S2', magic=0xd1f8, total=65536, code=49152, eeprom=14336), - MCUModel(name='STC12LE5A52S2', magic=0xd1fa, total=65536, code=53248, eeprom=10240), - MCUModel(name='STC12LE5A56S2', magic=0xd1fc, total=65536, code=57344, eeprom=6144), - MCUModel(name='STC12LE5A60S2', magic=0xd1fe, total=65536, code=61440, eeprom=2048), - MCUModel(name='STC12LE5A08AD', magic=0xd1c4, total=65536, code=8192, eeprom=55296), - MCUModel(name='STC12LE5A16AD', magic=0xd1c8, total=65536, code=16384, eeprom=47104), - MCUModel(name='STC12LE5A32AD', magic=0xd1d0, total=65536, code=32768, eeprom=30720), - MCUModel(name='STC12LE5A40AD', magic=0xd1d4, total=65536, code=40960, eeprom=22528), - MCUModel(name='STC12LE5A48AD', magic=0xd1d8, total=65536, code=49152, eeprom=14336), - MCUModel(name='STC12LE5A52AD', magic=0xd1da, total=65536, code=53248, eeprom=10240), - MCUModel(name='STC12LE5A56AD', magic=0xd1dc, total=65536, code=57344, eeprom=6144), - MCUModel(name='STC12LE5A60AD', magic=0xd1de, total=65536, code=61440, eeprom=2048), - MCUModel(name='STC12LE5A08CCP', magic=0xd1a4, total=65536, code=8192, eeprom=55296), - MCUModel(name='STC12LE5A16CCP', magic=0xd1a8, total=65536, code=16384, eeprom=47104), - MCUModel(name='STC12LE5A32CCP', magic=0xd1b0, total=65536, code=32768, eeprom=30720), - MCUModel(name='STC12LE5A40CCP', magic=0xd1b4, total=65536, code=40960, eeprom=22528), - MCUModel(name='STC12LE5A48CCP', magic=0xd1b8, total=65536, code=49152, eeprom=14336), - MCUModel(name='STC12LE5A52CCP', magic=0xd1ba, total=65536, code=53248, eeprom=10240), - MCUModel(name='STC12LE5A56CCP', magic=0xd1bc, total=65536, code=57344, eeprom=6144), - MCUModel(name='STC12LE5A60CCP', magic=0xd1be, total=65536, code=61440, eeprom=2048), - MCUModel(name='STC12LE5A08X', magic=0xd184, total=65536, code=8192, eeprom=0), - MCUModel(name='STC12LE5A16X', magic=0xd188, total=65536, code=16384, eeprom=0), - MCUModel(name='STC12LE5A32X', magic=0xd190, total=65536, code=32768, eeprom=0), - MCUModel(name='STC12LE5A40X', magic=0xd194, total=65536, code=40960, eeprom=0), - MCUModel(name='STC12LE5A48X', magic=0xd198, total=65536, code=49152, eeprom=0), - MCUModel(name='STC12LE5A52X', magic=0xd19a, total=65536, code=53248, eeprom=0), - MCUModel(name='STC12LE5A56X', magic=0xd19c, total=65536, code=57344, eeprom=0), - MCUModel(name='STC12LE5A60X', magic=0xd19e, total=65536, code=61440, eeprom=0), - MCUModel(name='IAP12LE5A08S2', magic=0xd1e3, total=65536, code=8192, eeprom=0), - MCUModel(name='IAP12LE5A16S2', magic=0xd1e7, total=65536, code=16384, eeprom=0), - MCUModel(name='IAP12LE5A32S2', magic=0xd1ef, total=65536, code=32768, eeprom=0), - MCUModel(name='IAP12LE5A40S2', magic=0xd1f3, total=65536, code=40960, eeprom=0), - MCUModel(name='IAP12LE5A48S2', magic=0xd1f7, total=65536, code=49152, eeprom=0), - MCUModel(name='IAP12LE5A52S2', magic=0xd1f9, total=65536, code=53248, eeprom=0), - MCUModel(name='IAP12LE5A56S2', magic=0xd1fb, total=65536, code=57344, eeprom=0), - MCUModel(name='IAP12LE5A60S2', magic=0xd1fd, total=65536, code=61440, eeprom=0), - MCUModel(name='IAP12LE5A62S2', magic=0xd1ff, total=65536, code=63488, eeprom=0), - MCUModel(name='IAP12LE5A08AD', magic=0xd1c3, total=65536, code=8192, eeprom=0), - MCUModel(name='IAP12LE5A16AD', magic=0xd1c7, total=65536, code=16384, eeprom=0), - MCUModel(name='IAP12LE5A32AD', magic=0xd1cf, total=65536, code=32768, eeprom=0), - MCUModel(name='IAP12LE5A40AD', magic=0xd1d3, total=65536, code=40960, eeprom=0), - MCUModel(name='IAP12LE5A48AD', magic=0xd1d7, total=65536, code=49152, eeprom=0), - MCUModel(name='IAP12LE5A52AD', magic=0xd1d9, total=65536, code=53248, eeprom=0), - MCUModel(name='IAP12LE5A56AD', magic=0xd1db, total=65536, code=57344, eeprom=0), - MCUModel(name='IAP12LE5A60AD', magic=0xd1dd, total=65536, code=61440, eeprom=0), - MCUModel(name='IAP12LE5A62AD', magic=0xd1df, total=65536, code=63488, eeprom=0), - MCUModel(name='IAP12LE5A08CCP', magic=0xd1a3, total=65536, code=8192, eeprom=0), - MCUModel(name='IAP12LE5A16CCP', magic=0xd1a7, total=65536, code=16384, eeprom=0), - MCUModel(name='IAP12LE5A32CCP', magic=0xd1af, total=65536, code=32768, eeprom=0), - MCUModel(name='IAP12LE5A40CCP', magic=0xd1b3, total=65536, code=40960, eeprom=0), - MCUModel(name='IAP12LE5A48CCP', magic=0xd1b7, total=65536, code=49152, eeprom=0), - MCUModel(name='IAP12LE5A52CCP', magic=0xd1b9, total=65536, code=53248, eeprom=0), - MCUModel(name='IAP12LE5A56CCP', magic=0xd1bb, total=65536, code=57344, eeprom=0), - MCUModel(name='IAP12LE5A60CCP', magic=0xd1bd, total=65536, code=61440, eeprom=0), - MCUModel(name='IAP12LE5A62CCP', magic=0xd1bf, total=65536, code=63488, eeprom=0), - MCUModel(name='IAP12LE5A08', magic=0xd183, total=65536, code=8192, eeprom=0), - MCUModel(name='IAP12LE5A16', magic=0xd187, total=65536, code=16384, eeprom=0), - MCUModel(name='IAP12LE5A32', magic=0xd18f, total=65536, code=32768, eeprom=0), - MCUModel(name='IAP12LE5A40', magic=0xd193, total=65536, code=40960, eeprom=0), - MCUModel(name='IAP12LE5A48', magic=0xd197, total=65536, code=49152, eeprom=0), - MCUModel(name='IAP12LE5A52', magic=0xd199, total=65536, code=53248, eeprom=0), - MCUModel(name='IAP12LE5A56', magic=0xd19b, total=65536, code=57344, eeprom=0), - MCUModel(name='IAP12LE5A60', magic=0xd19d, total=65536, code=61440, eeprom=0), - MCUModel(name='IAP12LE5A62', magic=0xd19f, total=65536, code=63488, eeprom=0), - MCUModel(name='STC5A08S2-5V', magic=0xd160, total=65536, code=8192, eeprom=55296), - MCUModel(name='STC5A16S2-5V', magic=0xd161, total=65536, code=16384, eeprom=47104), - MCUModel(name='STC5A32S2-5V', magic=0xd162, total=65536, code=32768, eeprom=30720), - MCUModel(name='STC5A40S2-5V', magic=0xd165, total=65536, code=40960, eeprom=22528), - MCUModel(name='STC5A48S2-5V', magic=0xd166, total=65536, code=49152, eeprom=14336), - MCUModel(name='STC5A52S2-5V', magic=0xd169, total=65536, code=53248, eeprom=10240), - MCUModel(name='STC5A56S2-5V', magic=0xd16a, total=65536, code=57344, eeprom=6144), - MCUModel(name='STC5A60S2-5V', magic=0xd16b, total=65536, code=61440, eeprom=2048), - MCUModel(name='IAP5A62S2-5V', magic=0xd16c, total=65536, code=63488, eeprom=0), - MCUModel(name='STC5A08S2-3V', magic=0xd1e0, total=65536, code=8192, eeprom=55296), - MCUModel(name='STC5A16S2-3V', magic=0xd1e1, total=65536, code=16384, eeprom=47104), - MCUModel(name='STC5A32S2-3V', magic=0xd1e2, total=65536, code=32768, eeprom=30720), - MCUModel(name='STC5A40S2-3V', magic=0xd1e5, total=65536, code=40960, eeprom=22528), - MCUModel(name='STC5A48S2-3V', magic=0xd1e6, total=65536, code=49152, eeprom=14336), - MCUModel(name='STC5A52S2-3V', magic=0xd1e9, total=65536, code=53248, eeprom=10240), - MCUModel(name='STC5A56S2-3V', magic=0xd1ea, total=65536, code=57344, eeprom=6144), - MCUModel(name='STC5A60S2-3V', magic=0xd1eb, total=65536, code=61440, eeprom=2048), - MCUModel(name='IAP5A62S2-3V', magic=0xd1ec, total=65536, code=63488, eeprom=0), - MCUModel(name='STC10F02XE', magic=0xd262, total=16384, code=2048, eeprom=12288), - MCUModel(name='STC10F04XE', magic=0xd264, total=16384, code=4096, eeprom=10240), - MCUModel(name='STC10F06XE', magic=0xd266, total=16384, code=6144, eeprom=8192), - MCUModel(name='STC10F08XE', magic=0xd268, total=16384, code=8192, eeprom=6144), - MCUModel(name='STC10F10XE', magic=0xd26a, total=16384, code=10240, eeprom=4096), - MCUModel(name='STC10F12XE', magic=0xd26c, total=16384, code=12288, eeprom=2048), - MCUModel(name='STC10F02X', magic=0xd242, total=16384, code=2048, eeprom=0), - MCUModel(name='STC10F04X', magic=0xd244, total=16384, code=4096, eeprom=0), - MCUModel(name='STC10F06X', magic=0xd246, total=16384, code=6144, eeprom=0), - MCUModel(name='STC10F08X', magic=0xd248, total=16384, code=8192, eeprom=0), - MCUModel(name='STC10F10X', magic=0xd24a, total=16384, code=10240, eeprom=0), - MCUModel(name='STC10F12X', magic=0xd24c, total=16384, code=12288, eeprom=0), - MCUModel(name='STC10F02', magic=0xd202, total=16384, code=2048, eeprom=0), - MCUModel(name='STC10F04', magic=0xd204, total=16384, code=4096, eeprom=0), - MCUModel(name='STC10F06', magic=0xd206, total=16384, code=6144, eeprom=0), - MCUModel(name='STC10F08', magic=0xd208, total=16384, code=8192, eeprom=0), - MCUModel(name='STC10F10', magic=0xd20a, total=16384, code=10240, eeprom=0), - MCUModel(name='STC10F12', magic=0xd20c, total=16384, code=12288, eeprom=0), - MCUModel(name='IAP10F02XE', magic=0xd272, total=16384, code=2048, eeprom=0), - MCUModel(name='IAP10F04XE', magic=0xd274, total=16384, code=4096, eeprom=0), - MCUModel(name='IAP10F06XE', magic=0xd276, total=16384, code=6144, eeprom=0), - MCUModel(name='IAP10F08XE', magic=0xd278, total=16384, code=8192, eeprom=0), - MCUModel(name='IAP10F10XE', magic=0xd27a, total=16384, code=10240, eeprom=0), - MCUModel(name='IAP10F12XE', magic=0xd27c, total=16384, code=12288, eeprom=0), - MCUModel(name='IAP10F14X', magic=0xd27e, total=16384, code=14336, eeprom=0), - MCUModel(name='IAP10F02', magic=0xd232, total=16384, code=2048, eeprom=0), - MCUModel(name='IAP10F04', magic=0xd234, total=16384, code=4096, eeprom=0), - MCUModel(name='IAP10F06', magic=0xd236, total=16384, code=6144, eeprom=0), - MCUModel(name='IAP10F08', magic=0xd238, total=16384, code=8192, eeprom=0), - MCUModel(name='IAP10F10', magic=0xd23a, total=16384, code=10240, eeprom=0), - MCUModel(name='IAP10F12', magic=0xd23c, total=16384, code=12288, eeprom=0), - MCUModel(name='IAP10F14', magic=0xd23e, total=16384, code=14336, eeprom=0), - MCUModel(name='STC10L02XE', magic=0xd2e2, total=16384, code=2048, eeprom=12288), - MCUModel(name='STC10L04XE', magic=0xd2e4, total=16384, code=4096, eeprom=10240), - MCUModel(name='STC10L06XE', magic=0xd2e6, total=16384, code=6144, eeprom=8192), - MCUModel(name='STC10L08XE', magic=0xd2e8, total=16384, code=8192, eeprom=6144), - MCUModel(name='STC10L10XE', magic=0xd2ea, total=16384, code=10240, eeprom=4096), - MCUModel(name='STC10L12XE', magic=0xd2ec, total=16384, code=12288, eeprom=2048), - MCUModel(name='STC10L02X', magic=0xd2c2, total=16384, code=2048, eeprom=0), - MCUModel(name='STC10L04X', magic=0xd2c4, total=16384, code=4096, eeprom=0), - MCUModel(name='STC10L06X', magic=0xd2c6, total=16384, code=6144, eeprom=0), - MCUModel(name='STC10L08X', magic=0xd2c8, total=16384, code=8192, eeprom=0), - MCUModel(name='STC10L10X', magic=0xd2ca, total=16384, code=10240, eeprom=0), - MCUModel(name='STC10L12X', magic=0xd2cc, total=16384, code=12288, eeprom=0), - MCUModel(name='STC10L02', magic=0xd282, total=16384, code=2048, eeprom=0), - MCUModel(name='STC10L04', magic=0xd284, total=16384, code=4096, eeprom=0), - MCUModel(name='STC10L06', magic=0xd286, total=16384, code=6144, eeprom=0), - MCUModel(name='STC10L08', magic=0xd288, total=16384, code=8192, eeprom=0), - MCUModel(name='STC10L10', magic=0xd28a, total=16384, code=10240, eeprom=0), - MCUModel(name='STC10L12', magic=0xd28c, total=16384, code=12288, eeprom=0), - MCUModel(name='IAP10L02XE', magic=0xd2f2, total=16384, code=2048, eeprom=0), - MCUModel(name='IAP10L04XE', magic=0xd2f4, total=16384, code=4096, eeprom=0), - MCUModel(name='IAP10L06XE', magic=0xd2f6, total=16384, code=6144, eeprom=0), - MCUModel(name='IAP10L08XE', magic=0xd2f8, total=16384, code=8192, eeprom=0), - MCUModel(name='IAP10L10XE', magic=0xd2fa, total=16384, code=10240, eeprom=0), - MCUModel(name='IAP10L12XE', magic=0xd2fc, total=16384, code=12288, eeprom=0), - MCUModel(name='IAP10L14X', magic=0xd2fe, total=16384, code=14336, eeprom=0), - MCUModel(name='IAP10L02', magic=0xd2b2, total=16384, code=2048, eeprom=0), - MCUModel(name='IAP10L04', magic=0xd2b4, total=16384, code=4096, eeprom=0), - MCUModel(name='IAP10L06', magic=0xd2b6, total=16384, code=6144, eeprom=0), - MCUModel(name='IAP10L08', magic=0xd2b8, total=16384, code=8192, eeprom=0), - MCUModel(name='IAP10L10', magic=0xd2ba, total=16384, code=10240, eeprom=0), - MCUModel(name='IAP10L12', magic=0xd2bc, total=16384, code=12288, eeprom=0), - MCUModel(name='IAP10L14', magic=0xd2be, total=16384, code=14336, eeprom=0), - MCUModel(name='STC02XE-5V', magic=0xd260, total=16384, code=2048, eeprom=12288), - MCUModel(name='STC04XE-5V', magic=0xd261, total=16384, code=4096, eeprom=10240), - MCUModel(name='STC06XE-5V', magic=0xd263, total=16384, code=6144, eeprom=8192), - MCUModel(name='STC08XE-5V', magic=0xd265, total=16384, code=8192, eeprom=6144), - MCUModel(name='STC10XE-5V', magic=0xd267, total=16384, code=10240, eeprom=4096), - MCUModel(name='STC12XE-5V', magic=0xd269, total=16384, code=12288, eeprom=2048), - MCUModel(name='IAP14X-5V', magic=0xd26b, total=16384, code=14336, eeprom=0), - MCUModel(name='STC02XE-3V', magic=0xd2e0, total=16384, code=2048, eeprom=12288), - MCUModel(name='STC04XE-3V', magic=0xd2e1, total=16384, code=4096, eeprom=10240), - MCUModel(name='STC06XE-3V', magic=0xd2e3, total=16384, code=6144, eeprom=8192), - MCUModel(name='STC08XE-3V', magic=0xd2e5, total=16384, code=8192, eeprom=6144), - MCUModel(name='STC10XE-3V', magic=0xd2e7, total=16384, code=10240, eeprom=4096), - MCUModel(name='STC12XE-3V', magic=0xd2e9, total=16384, code=12288, eeprom=2048), - MCUModel(name='IAP14X-3V', magic=0xd2eb, total=16384, code=14336, eeprom=0), - MCUModel(name='STC11F01E', magic=0xe221, total=8192, code=1024, eeprom=5120), - MCUModel(name='STC11F02E', magic=0xe222, total=8192, code=2048, eeprom=4096), - MCUModel(name='STC11F03E', magic=0xe223, total=8192, code=3072, eeprom=3072), - MCUModel(name='STC11F04E', magic=0xe224, total=8192, code=4096, eeprom=2048), - MCUModel(name='STC11F05E', magic=0xe265, total=8192, code=5120, eeprom=1024), - MCUModel(name='STC11F01', magic=0xe201, total=8192, code=1024, eeprom=0), - MCUModel(name='STC11F02', magic=0xe202, total=8192, code=2048, eeprom=0), - MCUModel(name='STC11F03', magic=0xe203, total=8192, code=3072, eeprom=0), - MCUModel(name='STC11F04', magic=0xe204, total=8192, code=4096, eeprom=0), - MCUModel(name='STC11F05', magic=0xe245, total=8192, code=5120, eeprom=0), - MCUModel(name='IAP11F01E', magic=0xe231, total=8192, code=1024, eeprom=0), - MCUModel(name='IAP11F02E', magic=0xe232, total=8192, code=2048, eeprom=0), - MCUModel(name='IAP11F03E', magic=0xe233, total=8192, code=3072, eeprom=0), - MCUModel(name='IAP11F04E', magic=0xe234, total=8192, code=4096, eeprom=0), - MCUModel(name='IAP11F05E', magic=0xe275, total=8192, code=5120, eeprom=0), - MCUModel(name='IAP11F01', magic=0xe211, total=8192, code=1024, eeprom=0), - MCUModel(name='IAP11F02', magic=0xe212, total=8192, code=2048, eeprom=0), - MCUModel(name='IAP11F03', magic=0xe213, total=8192, code=3072, eeprom=0), - MCUModel(name='IAP11F04', magic=0xe214, total=8192, code=4096, eeprom=0), - MCUModel(name='IAP11F05', magic=0xe255, total=8192, code=5120, eeprom=0), - MCUModel(name='IAP11F06', magic=0xe276, total=8192, code=6144, eeprom=0), - MCUModel(name='STC11L01E', magic=0xe2a1, total=8192, code=1024, eeprom=5120), - MCUModel(name='STC11L02E', magic=0xe2a2, total=8192, code=2048, eeprom=4096), - MCUModel(name='STC11L03E', magic=0xe2a3, total=8192, code=3072, eeprom=3072), - MCUModel(name='STC11L04E', magic=0xe2a4, total=8192, code=4096, eeprom=2048), - MCUModel(name='STC11L05E', magic=0xe2e5, total=8192, code=5120, eeprom=1024), - MCUModel(name='STC11L01', magic=0xe281, total=8192, code=1024, eeprom=0), - MCUModel(name='STC11L02', magic=0xe282, total=8192, code=2048, eeprom=0), - MCUModel(name='STC11L03', magic=0xe283, total=8192, code=3072, eeprom=0), - MCUModel(name='STC11L04', magic=0xe284, total=8192, code=4096, eeprom=0), - MCUModel(name='STC11L05', magic=0xe2c5, total=8192, code=5120, eeprom=0), - MCUModel(name='IAP11L01E', magic=0xe2b1, total=8192, code=1024, eeprom=0), - MCUModel(name='IAP11L02E', magic=0xe2b2, total=8192, code=2048, eeprom=0), - MCUModel(name='IAP11L03E', magic=0xe2b3, total=8192, code=3072, eeprom=0), - MCUModel(name='IAP11L04E', magic=0xe2b4, total=8192, code=4096, eeprom=0), - MCUModel(name='IAP11L05E', magic=0xe2f5, total=8192, code=5120, eeprom=0), - MCUModel(name='IAP11L01', magic=0xe291, total=8192, code=1024, eeprom=0), - MCUModel(name='IAP11L02', magic=0xe292, total=8192, code=2048, eeprom=0), - MCUModel(name='IAP11L03', magic=0xe293, total=8192, code=3072, eeprom=0), - MCUModel(name='IAP11L04', magic=0xe294, total=8192, code=4096, eeprom=0), - MCUModel(name='IAP11L05', magic=0xe2d5, total=8192, code=5120, eeprom=0), - MCUModel(name='IAP11L06', magic=0xe2f6, total=8192, code=6144, eeprom=0), - MCUModel(name='STC01E-5V', magic=0xe220, total=8192, code=1024, eeprom=5120), - MCUModel(name='STC02E-5V', magic=0xe226, total=8192, code=2048, eeprom=4096), - MCUModel(name='STC03E-5V', magic=0xe227, total=8192, code=3072, eeprom=3072), - MCUModel(name='STC04E-5V', magic=0xe228, total=8192, code=4096, eeprom=2048), - MCUModel(name='STC05E-5V', magic=0xe229, total=8192, code=5120, eeprom=1024), - MCUModel(name='IAP06-5V', magic=0xe22a, total=8192, code=6144, eeprom=0), - MCUModel(name='STC01E-3V', magic=0xe2a0, total=8192, code=1024, eeprom=5120), - MCUModel(name='STC02E-3V', magic=0xe2a6, total=8192, code=2048, eeprom=4096), - MCUModel(name='STC03E-3V', magic=0xe2a7, total=8192, code=3072, eeprom=3072), - MCUModel(name='STC04E-3V', magic=0xe2a8, total=8192, code=4096, eeprom=2048), - MCUModel(name='STC05E-3V', magic=0xe2a9, total=8192, code=5120, eeprom=1024), - MCUModel(name='IAP06-3V', magic=0xe2aa, total=8192, code=6144, eeprom=0), - MCUModel(name='STC11F08XE', magic=0xd364, total=65536, code=8192, eeprom=55296), - MCUModel(name='STC11F16XE', magic=0xd368, total=65536, code=16384, eeprom=47104), - MCUModel(name='STC11F20XE', magic=0xd36a, total=65536, code=20480, eeprom=30720), - MCUModel(name='STC11F32XE', magic=0xd370, total=65536, code=32768, eeprom=30720), - MCUModel(name='STC11F40XE', magic=0xd374, total=65536, code=40960, eeprom=22528), - MCUModel(name='STC11F48XE', magic=0xd378, total=65536, code=49152, eeprom=14336), - MCUModel(name='STC11F52XE', magic=0xd37a, total=65536, code=53248, eeprom=10240), - MCUModel(name='STC11F56XE', magic=0xd37c, total=65536, code=57344, eeprom=6144), - MCUModel(name='STC11F60XE', magic=0xd37e, total=65536, code=61440, eeprom=2048), - MCUModel(name='STC11F08X', magic=0xd344, total=65536, code=8192, eeprom=0), - MCUModel(name='STC11F16X', magic=0xd348, total=65536, code=16384, eeprom=0), - MCUModel(name='STC11F20X', magic=0xd34a, total=65536, code=20480, eeprom=0), - MCUModel(name='STC11F32X', magic=0xd350, total=65536, code=32768, eeprom=0), - MCUModel(name='STC11F40X', magic=0xd354, total=65536, code=40960, eeprom=0), - MCUModel(name='STC11F48X', magic=0xd358, total=65536, code=49152, eeprom=0), - MCUModel(name='STC11F52X', magic=0xd35a, total=65536, code=53248, eeprom=0), - MCUModel(name='STC11F56X', magic=0xd35c, total=65536, code=57344, eeprom=0), - MCUModel(name='STC11F60X', magic=0xd35e, total=65536, code=61440, eeprom=0), - MCUModel(name='STC11F08', magic=0xd304, total=65536, code=8192, eeprom=0), - MCUModel(name='STC11F16', magic=0xd308, total=65536, code=16384, eeprom=0), - MCUModel(name='STC11F20', magic=0xd30a, total=65536, code=20480, eeprom=0), - MCUModel(name='STC11F32', magic=0xd310, total=65536, code=32768, eeprom=0), - MCUModel(name='STC11F40', magic=0xd314, total=65536, code=40960, eeprom=0), - MCUModel(name='STC11F48', magic=0xd318, total=65536, code=49152, eeprom=0), - MCUModel(name='STC11F52', magic=0xd31a, total=65536, code=53248, eeprom=0), - MCUModel(name='STC11F56', magic=0xd31c, total=65536, code=57344, eeprom=0), - MCUModel(name='STC11F60', magic=0xd31e, total=65536, code=61440, eeprom=0), - MCUModel(name='IAP11F08XE', magic=0xd363, total=65536, code=8192, eeprom=0), - MCUModel(name='IAP11F16XE', magic=0xd367, total=65536, code=16384, eeprom=0), - MCUModel(name='IAP11F20XE', magic=0xd369, total=65536, code=20480, eeprom=0), - MCUModel(name='IAP11F32XE', magic=0xd36f, total=65536, code=32768, eeprom=0), - MCUModel(name='IAP11F40XE', magic=0xd373, total=65536, code=40960, eeprom=0), - MCUModel(name='IAP11F48XE', magic=0xd377, total=65536, code=49152, eeprom=0), - MCUModel(name='IAP11F52XE', magic=0xd379, total=65536, code=53248, eeprom=0), - MCUModel(name='IAP11F56XE', magic=0xd37b, total=65536, code=57344, eeprom=0), - MCUModel(name='IAP11F60XE', magic=0xd37d, total=65536, code=61440, eeprom=0), - MCUModel(name='IAP11F08X', magic=0xd343, total=65536, code=8192, eeprom=0), - MCUModel(name='IAP11F16X', magic=0xd347, total=65536, code=16384, eeprom=0), - MCUModel(name='IAP11F20X', magic=0xd349, total=65536, code=20480, eeprom=0), - MCUModel(name='IAP11F32X', magic=0xd34f, total=65536, code=32768, eeprom=0), - MCUModel(name='IAP11F40X', magic=0xd353, total=65536, code=40960, eeprom=0), - MCUModel(name='IAP11F48X', magic=0xd357, total=65536, code=49152, eeprom=0), - MCUModel(name='IAP11F52X', magic=0xd359, total=65536, code=53248, eeprom=0), - MCUModel(name='IAP11F56X', magic=0xd35b, total=65536, code=57344, eeprom=0), - MCUModel(name='IAP11F60X', magic=0xd35d, total=65536, code=61440, eeprom=0), - MCUModel(name='IAP11F62X', magic=0xd35f, total=65536, code=63488, eeprom=0), - MCUModel(name='IAP11F08', magic=0xd303, total=65536, code=8192, eeprom=0), - MCUModel(name='IAP11F16', magic=0xd307, total=65536, code=16384, eeprom=0), - MCUModel(name='IAP11F20', magic=0xd309, total=65536, code=20480, eeprom=0), - MCUModel(name='IAP11F32', magic=0xd30f, total=65536, code=32768, eeprom=0), - MCUModel(name='IAP11F40', magic=0xd313, total=65536, code=40960, eeprom=0), - MCUModel(name='IAP11F48', magic=0xd317, total=65536, code=49152, eeprom=0), - MCUModel(name='IAP11F52', magic=0xd319, total=65536, code=53248, eeprom=0), - MCUModel(name='IAP11F56', magic=0xd31b, total=65536, code=57344, eeprom=0), - MCUModel(name='IAP11F60', magic=0xd31d, total=65536, code=61440, eeprom=0), - MCUModel(name='IAP11F62', magic=0xd31f, total=65536, code=63488, eeprom=0), - MCUModel(name='STC11L08XE', magic=0xd3e4, total=65536, code=8192, eeprom=55296), - MCUModel(name='STC11L16XE', magic=0xd3e8, total=65536, code=16384, eeprom=47104), - MCUModel(name='STC11L20XE', magic=0xd3ea, total=65536, code=20480, eeprom=30720), - MCUModel(name='STC11L32XE', magic=0xd3f0, total=65536, code=32768, eeprom=30720), - MCUModel(name='STC11L40XE', magic=0xd3f4, total=65536, code=40960, eeprom=22528), - MCUModel(name='STC11L48XE', magic=0xd3f8, total=65536, code=49152, eeprom=14336), - MCUModel(name='STC11L52XE', magic=0xd3fa, total=65536, code=53248, eeprom=10240), - MCUModel(name='STC11L56XE', magic=0xd3fc, total=65536, code=57344, eeprom=6144), - MCUModel(name='STC11L60XE', magic=0xd3fe, total=65536, code=61440, eeprom=2048), - MCUModel(name='STC11L08X', magic=0xd3c4, total=65536, code=8192, eeprom=0), - MCUModel(name='STC11L16X', magic=0xd3c8, total=65536, code=16384, eeprom=0), - MCUModel(name='STC11L20X', magic=0xd3ca, total=65536, code=20480, eeprom=0), - MCUModel(name='STC11L32X', magic=0xd3d0, total=65536, code=32768, eeprom=0), - MCUModel(name='STC11L40X', magic=0xd3d4, total=65536, code=40960, eeprom=0), - MCUModel(name='STC11L48X', magic=0xd3d8, total=65536, code=49152, eeprom=0), - MCUModel(name='STC11L52X', magic=0xd3da, total=65536, code=53248, eeprom=0), - MCUModel(name='STC11L56X', magic=0xd3dc, total=65536, code=57344, eeprom=0), - MCUModel(name='STC11L60X', magic=0xd3de, total=65536, code=61440, eeprom=0), - MCUModel(name='STC11L08', magic=0xd384, total=65536, code=8192, eeprom=0), - MCUModel(name='STC11L16', magic=0xd388, total=65536, code=16384, eeprom=0), - MCUModel(name='STC11L20', magic=0xd38a, total=65536, code=20480, eeprom=0), - MCUModel(name='STC11L32', magic=0xd390, total=65536, code=32768, eeprom=0), - MCUModel(name='STC11L40', magic=0xd394, total=65536, code=40960, eeprom=0), - MCUModel(name='STC11L48', magic=0xd398, total=65536, code=49152, eeprom=0), - MCUModel(name='STC11L52', magic=0xd39a, total=65536, code=53248, eeprom=0), - MCUModel(name='STC11L56', magic=0xd39c, total=65536, code=57344, eeprom=0), - MCUModel(name='STC11L60', magic=0xd39e, total=65536, code=61440, eeprom=0), - MCUModel(name='IAP11L08XE', magic=0xd3e3, total=65536, code=8192, eeprom=0), - MCUModel(name='IAP11L16XE', magic=0xd3e7, total=65536, code=16384, eeprom=0), - MCUModel(name='IAP11L20XE', magic=0xd3e9, total=65536, code=20480, eeprom=0), - MCUModel(name='IAP11L32XE', magic=0xd3ef, total=65536, code=32768, eeprom=0), - MCUModel(name='IAP11L40XE', magic=0xd3f3, total=65536, code=40960, eeprom=0), - MCUModel(name='IAP11L48XE', magic=0xd3f7, total=65536, code=49152, eeprom=0), - MCUModel(name='IAP11L52XE', magic=0xd3f9, total=65536, code=53248, eeprom=0), - MCUModel(name='IAP11L56XE', magic=0xd3fb, total=65536, code=57344, eeprom=0), - MCUModel(name='IAP11L60XE', magic=0xd3fd, total=65536, code=61440, eeprom=0), - MCUModel(name='IAP11L08X', magic=0xd3c3, total=65536, code=8192, eeprom=0), - MCUModel(name='IAP11L16X', magic=0xd3c7, total=65536, code=16384, eeprom=0), - MCUModel(name='IAP11L20X', magic=0xd3c9, total=65536, code=20480, eeprom=0), - MCUModel(name='IAP11L32X', magic=0xd3cf, total=65536, code=32768, eeprom=0), - MCUModel(name='IAP11L40X', magic=0xd3d3, total=65536, code=40960, eeprom=0), - MCUModel(name='IAP11L48X', magic=0xd3d7, total=65536, code=49152, eeprom=0), - MCUModel(name='IAP11L52X', magic=0xd3d9, total=65536, code=53248, eeprom=0), - MCUModel(name='IAP11L56X', magic=0xd3db, total=65536, code=57344, eeprom=0), - MCUModel(name='IAP11L60X', magic=0xd3dd, total=65536, code=61440, eeprom=0), - MCUModel(name='IAP11L62X', magic=0xd3df, total=65536, code=63488, eeprom=0), - MCUModel(name='IAP11L08', magic=0xd383, total=65536, code=8192, eeprom=0), - MCUModel(name='IAP11L16', magic=0xd387, total=65536, code=16384, eeprom=0), - MCUModel(name='IAP11L20', magic=0xd389, total=65536, code=20480, eeprom=0), - MCUModel(name='IAP11L32', magic=0xd38f, total=65536, code=32768, eeprom=0), - MCUModel(name='IAP11L40', magic=0xd393, total=65536, code=40960, eeprom=0), - MCUModel(name='IAP11L48', magic=0xd397, total=65536, code=49152, eeprom=0), - MCUModel(name='IAP11L52', magic=0xd399, total=65536, code=53248, eeprom=0), - MCUModel(name='IAP11L56', magic=0xd39b, total=65536, code=57344, eeprom=0), - MCUModel(name='IAP11L60', magic=0xd39d, total=65536, code=61440, eeprom=0), - MCUModel(name='IAP11L62', magic=0xd39f, total=65536, code=63488, eeprom=0), - MCUModel(name='STC08XE-5V', magic=0xd360, total=65536, code=8192, eeprom=55296), - MCUModel(name='STC16XE-5V', magic=0xd361, total=65536, code=16384, eeprom=47104), - MCUModel(name='STC20XE-5V', magic=0xd362, total=65536, code=20480, eeprom=30720), - MCUModel(name='STC32XE-5V', magic=0xd365, total=65536, code=32768, eeprom=30720), - MCUModel(name='STC40XE-5V', magic=0xd366, total=65536, code=40960, eeprom=22528), - MCUModel(name='STC48XE-5V', magic=0xd36b, total=65536, code=49152, eeprom=14336), - MCUModel(name='STC52XE-5V', magic=0xd36c, total=65536, code=53248, eeprom=10240), - MCUModel(name='STC56XE-5V', magic=0xd36d, total=65536, code=57344, eeprom=6144), - MCUModel(name='STC60XE-5V', magic=0xd36e, total=65536, code=61440, eeprom=2048), - MCUModel(name='IAP62X-5V', magic=0xd371, total=65536, code=63488, eeprom=0), - MCUModel(name='STC08XE-3V', magic=0xd3e0, total=65536, code=8192, eeprom=55296), - MCUModel(name='STC16XE-3V', magic=0xd3e1, total=65536, code=16384, eeprom=47104), - MCUModel(name='STC20XE-3V', magic=0xd3e2, total=65536, code=20480, eeprom=30720), - MCUModel(name='STC32XE-3V', magic=0xd3e5, total=65536, code=32768, eeprom=30720), - MCUModel(name='STC40XE-3V', magic=0xd3e6, total=65536, code=40960, eeprom=22528), - MCUModel(name='STC48XE-3V', magic=0xd3eb, total=65536, code=49152, eeprom=14336), - MCUModel(name='STC52XE-3V', magic=0xd3ec, total=65536, code=53248, eeprom=10240), - MCUModel(name='STC56XE-3V', magic=0xd3ed, total=65536, code=57344, eeprom=6144), - MCUModel(name='STC60XE-3V', magic=0xd3ee, total=65536, code=61440, eeprom=2048), - MCUModel(name='IAP62X-3V', magic=0xd3f1, total=65536, code=63488, eeprom=0), - MCUModel(name='STC12C5201AD', magic=0xe161, total=8192, code=1024, eeprom=5120), - MCUModel(name='STC12C5202AD', magic=0xe162, total=8192, code=2048, eeprom=4096), - MCUModel(name='STC12C5203AD', magic=0xe163, total=8192, code=3072, eeprom=3072), - MCUModel(name='STC12C5204AD', magic=0xe164, total=8192, code=4096, eeprom=2048), - MCUModel(name='STC12C5205AD', magic=0xe165, total=8192, code=5120, eeprom=1024), - MCUModel(name='STC12C5206AD', magic=0xe166, total=8192, code=6144, eeprom=0), - MCUModel(name='STC12C5201PWM', magic=0xe121, total=8192, code=1024, eeprom=5120), - MCUModel(name='STC12C5202PWM', magic=0xe122, total=8192, code=2048, eeprom=4096), - MCUModel(name='STC12C5203PWM', magic=0xe123, total=8192, code=3072, eeprom=3072), - MCUModel(name='STC12C5204PWM', magic=0xe124, total=8192, code=4096, eeprom=2048), - MCUModel(name='STC12C5205PWM', magic=0xe125, total=8192, code=5120, eeprom=1024), - MCUModel(name='STC12C5206PWM', magic=0xe126, total=8192, code=6144, eeprom=0), - MCUModel(name='STC12C5201', magic=0xe101, total=8192, code=1024, eeprom=5120), - MCUModel(name='STC12C5202', magic=0xe102, total=8192, code=2048, eeprom=4096), - MCUModel(name='STC12C5203', magic=0xe103, total=8192, code=3072, eeprom=3072), - MCUModel(name='STC12C5204', magic=0xe104, total=8192, code=4096, eeprom=2048), - MCUModel(name='STC12C5205', magic=0xe105, total=8192, code=5120, eeprom=1024), - MCUModel(name='STC12C5206', magic=0xe106, total=8192, code=6144, eeprom=0), - MCUModel(name='STC12LE5201AD', magic=0xe1e1, total=8192, code=1024, eeprom=5120), - MCUModel(name='STC12LE5202AD', magic=0xe1e2, total=8192, code=2048, eeprom=4096), - MCUModel(name='STC12LE5203AD', magic=0xe1e3, total=8192, code=3072, eeprom=3072), - MCUModel(name='STC12LE5204AD', magic=0xe1e4, total=8192, code=4096, eeprom=2048), - MCUModel(name='STC12LE5205AD', magic=0xe1e5, total=8192, code=5120, eeprom=1024), - MCUModel(name='STC12LE5206AD', magic=0xe1e6, total=8192, code=6144, eeprom=0), - MCUModel(name='STC12LE5201PWM', magic=0xe1a1, total=8192, code=1024, eeprom=5120), - MCUModel(name='STC12LE5202PWM', magic=0xe1a2, total=8192, code=2048, eeprom=4096), - MCUModel(name='STC12LE5203PWM', magic=0xe1a3, total=8192, code=3072, eeprom=3072), - MCUModel(name='STC12LE5204PWM', magic=0xe1a4, total=8192, code=4096, eeprom=2048), - MCUModel(name='STC12LE5205PWM', magic=0xe1a5, total=8192, code=5120, eeprom=1024), - MCUModel(name='STC12LE5206PWM', magic=0xe1a6, total=8192, code=6144, eeprom=0), - MCUModel(name='STC12LE5201', magic=0xe181, total=8192, code=1024, eeprom=5120), - MCUModel(name='STC12LE5202', magic=0xe182, total=8192, code=2048, eeprom=4096), - MCUModel(name='STC12LE5203', magic=0xe183, total=8192, code=3072, eeprom=3072), - MCUModel(name='STC12LE5204', magic=0xe184, total=8192, code=4096, eeprom=2048), - MCUModel(name='STC12LE5205', magic=0xe185, total=8192, code=5120, eeprom=1024), - MCUModel(name='STC12LE5206', magic=0xe186, total=8192, code=6144, eeprom=0), - MCUModel(name='STC5201AD-5V', magic=0xe168, total=8192, code=1024, eeprom=5120), - MCUModel(name='STC5202AD-5V', magic=0xe169, total=8192, code=2048, eeprom=4096), - MCUModel(name='STC5203AD-5V', magic=0xe16a, total=8192, code=3072, eeprom=3072), - MCUModel(name='STC5204AD-5V', magic=0xe16b, total=8192, code=4096, eeprom=2048), - MCUModel(name='STC5205AD-5V', magic=0xe16c, total=8192, code=5120, eeprom=1024), - MCUModel(name='STC5206AD-5V', magic=0xe16d, total=8192, code=6144, eeprom=0), - MCUModel(name='STC5201AD-3V', magic=0xe1e8, total=8192, code=1024, eeprom=5120), - MCUModel(name='STC5202AD-3V', magic=0xe1e9, total=8192, code=2048, eeprom=4096), - MCUModel(name='STC5203AD-3V', magic=0xe1ea, total=8192, code=3072, eeprom=3072), - MCUModel(name='STC5204AD-3V', magic=0xe1eb, total=8192, code=4096, eeprom=2048), - MCUModel(name='STC5205AD-3V', magic=0xe1ec, total=8192, code=5120, eeprom=1024), - MCUModel(name='STC5206AD-3V', magic=0xe1ed, total=8192, code=6144, eeprom=0), - MCUModel(name='STC12C5601AD', magic=0xe661, total=32768, code=1024, eeprom=29696), - MCUModel(name='STC12C5602AD', magic=0xe662, total=32768, code=2048, eeprom=28672), - MCUModel(name='STC12C5603AD', magic=0xe663, total=32768, code=3072, eeprom=27648), - MCUModel(name='STC12C5604AD', magic=0xe664, total=32768, code=4096, eeprom=26624), - MCUModel(name='STC12C5605AD', magic=0xe665, total=32768, code=5120, eeprom=0), - MCUModel(name='STC12C5606AD', magic=0xe666, total=32768, code=6144, eeprom=24576), - MCUModel(name='STC12C5608AD', magic=0xe668, total=32768, code=8192, eeprom=22528), - MCUModel(name='STC12C5612AD', magic=0xe66c, total=32768, code=12288, eeprom=0), - MCUModel(name='STC12C5616AD', magic=0xe670, total=32768, code=16384, eeprom=14336), - MCUModel(name='STC12C5620AD', magic=0xe674, total=32768, code=20480, eeprom=10240), - MCUModel(name='STC12C5624AD', magic=0xe678, total=32768, code=24576, eeprom=6144), - MCUModel(name='STC12C5628AD', magic=0xe67c, total=32768, code=28672, eeprom=0), - MCUModel(name='STC12C5630AD', magic=0xe67e, total=32768, code=30720, eeprom=0), - MCUModel(name='STC12C5601', magic=0xe601, total=32768, code=1024, eeprom=29696), - MCUModel(name='STC12C5602', magic=0xe602, total=32768, code=2048, eeprom=28672), - MCUModel(name='STC12C5603', magic=0xe603, total=32768, code=3072, eeprom=27648), - MCUModel(name='STC12C5604', magic=0xe604, total=32768, code=4096, eeprom=26624), - MCUModel(name='STC12C5605', magic=0xe605, total=32768, code=5120, eeprom=0), - MCUModel(name='STC12C5606', magic=0xe606, total=32768, code=6144, eeprom=24576), - MCUModel(name='STC12C5608', magic=0xe608, total=32768, code=8192, eeprom=22528), - MCUModel(name='STC12C5612', magic=0xe60c, total=32768, code=12288, eeprom=0), - MCUModel(name='STC12C5616', magic=0xe610, total=32768, code=16384, eeprom=14336), - MCUModel(name='STC12C5620', magic=0xe614, total=32768, code=20480, eeprom=10240), - MCUModel(name='STC12C5624', magic=0xe618, total=32768, code=24576, eeprom=6144), - MCUModel(name='STC12C5628', magic=0xe61c, total=32768, code=28672, eeprom=0), - MCUModel(name='STC12C5630', magic=0xe61e, total=32768, code=30720, eeprom=0), - MCUModel(name='STC12LE5601AD', magic=0xe6e1, total=32768, code=1024, eeprom=29696), - MCUModel(name='STC12LE5602AD', magic=0xe6e2, total=32768, code=2048, eeprom=28672), - MCUModel(name='STC12LE5603AD', magic=0xe6e3, total=32768, code=3072, eeprom=27648), - MCUModel(name='STC12LE5604AD', magic=0xe6e4, total=32768, code=4096, eeprom=26624), - MCUModel(name='STC12LE5605AD', magic=0xe6e5, total=32768, code=5120, eeprom=0), - MCUModel(name='STC12LE5606AD', magic=0xe6e6, total=32768, code=6144, eeprom=24576), - MCUModel(name='STC12LE5608AD', magic=0xe6e8, total=32768, code=8192, eeprom=22528), - MCUModel(name='STC12LE5612AD', magic=0xe6ec, total=32768, code=12288, eeprom=0), - MCUModel(name='STC12LE5616AD', magic=0xe6f0, total=32768, code=16384, eeprom=14336), - MCUModel(name='STC12LE5620AD', magic=0xe6f4, total=32768, code=20480, eeprom=10240), - MCUModel(name='STC12LE5624AD', magic=0xe6f8, total=32768, code=24576, eeprom=6144), - MCUModel(name='STC12LE5628AD', magic=0xe6fc, total=32768, code=28672, eeprom=0), - MCUModel(name='STC12LE5630AD', magic=0xe6fe, total=32768, code=30720, eeprom=0), - MCUModel(name='STC12LE5601', magic=0xe681, total=32768, code=1024, eeprom=29696), - MCUModel(name='STC12LE5602', magic=0xe682, total=32768, code=2048, eeprom=28672), - MCUModel(name='STC12LE5603', magic=0xe683, total=32768, code=3072, eeprom=27648), - MCUModel(name='STC12LE5604', magic=0xe684, total=32768, code=4096, eeprom=26624), - MCUModel(name='STC12LE5605', magic=0xe685, total=32768, code=5120, eeprom=0), - MCUModel(name='STC12LE5606', magic=0xe686, total=32768, code=6144, eeprom=24576), - MCUModel(name='STC12LE5608', magic=0xe688, total=32768, code=8192, eeprom=22528), - MCUModel(name='STC12LE5612', magic=0xe68c, total=32768, code=12288, eeprom=0), - MCUModel(name='STC12LE5616', magic=0xe690, total=32768, code=16384, eeprom=14336), - MCUModel(name='STC12LE5620', magic=0xe694, total=32768, code=20480, eeprom=10240), - MCUModel(name='STC12LE5624', magic=0xe698, total=32768, code=24576, eeprom=6144), - MCUModel(name='STC12LE5628', magic=0xe69c, total=32768, code=28672, eeprom=0), - MCUModel(name='STC12LE5630', magic=0xe69e, total=32768, code=30720, eeprom=0), - MCUModel(name='STC608AD-5V', magic=0xe667, total=32768, code=8192, eeprom=22528), - MCUModel(name='STC616AD-5V', magic=0xe66a, total=32768, code=16384, eeprom=14336), - MCUModel(name='IAP616AD-5V', magic=0xe669, total=32768, code=16384, eeprom=0), - MCUModel(name='STC608AD-3V', magic=0xe6e7, total=32768, code=8192, eeprom=22528), - MCUModel(name='STC616AD-3V', magic=0xe6ea, total=32768, code=16384, eeprom=14336), - MCUModel(name='IAP616AD-3V', magic=0xe6e9, total=32768, code=16384, eeprom=0), - MCUModel(name='STC12C5401AD', magic=0xe061, total=32768, code=1024, eeprom=12288), - MCUModel(name='STC12C5402AD', magic=0xe062, total=32768, code=2048, eeprom=12288), - MCUModel(name='STC12C5404AD', magic=0xe064, total=32768, code=4096, eeprom=12288), - MCUModel(name='STC12C5406AD', magic=0xe066, total=32768, code=6144, eeprom=12288), - MCUModel(name='STC12C5408AD', magic=0xe068, total=32768, code=8192, eeprom=12288), - MCUModel(name='STC12C5410AD', magic=0xe06a, total=32768, code=10240, eeprom=12288), - MCUModel(name='STC12C5412AD', magic=0xe06c, total=32768, code=12288, eeprom=12288), - MCUModel(name='STC12C5416AD', magic=0xe070, total=32768, code=16384, eeprom=12288), - MCUModel(name='STC12C5420AD', magic=0xe074, total=32768, code=20480, eeprom=12288), - MCUModel(name='STC12C5424AD', magic=0xe078, total=32768, code=24576, eeprom=12288), - MCUModel(name='STC12C5428AD', magic=0xe07c, total=32768, code=28672, eeprom=12288), - MCUModel(name='STC12C5401', magic=0xe001, total=32768, code=1024, eeprom=12288), - MCUModel(name='STC12C5402', magic=0xe002, total=32768, code=2048, eeprom=12288), - MCUModel(name='STC12C5404', magic=0xe004, total=32768, code=4096, eeprom=12288), - MCUModel(name='STC12C5406', magic=0xe006, total=32768, code=6144, eeprom=12288), - MCUModel(name='STC12C5408', magic=0xe008, total=32768, code=8192, eeprom=12288), - MCUModel(name='STC12C5410', magic=0xe00a, total=32768, code=10240, eeprom=12288), - MCUModel(name='STC12C5412', magic=0xe00c, total=32768, code=12288, eeprom=12288), - MCUModel(name='STC12C5416', magic=0xe010, total=32768, code=16384, eeprom=12288), - MCUModel(name='STC12C5420', magic=0xe014, total=32768, code=20480, eeprom=12288), - MCUModel(name='STC12C5424', magic=0xe018, total=32768, code=24576, eeprom=12288), - MCUModel(name='STC12C5428', magic=0xe01c, total=32768, code=28672, eeprom=12288), - MCUModel(name='STC12LE5401AD', magic=0xe0e1, total=32768, code=1024, eeprom=12288), - MCUModel(name='STC12LE5402AD', magic=0xe0e2, total=32768, code=2048, eeprom=12288), - MCUModel(name='STC12LE5404AD', magic=0xe0e4, total=32768, code=4096, eeprom=12288), - MCUModel(name='STC12LE5406AD', magic=0xe0e6, total=32768, code=6144, eeprom=12288), - MCUModel(name='STC12LE5408AD', magic=0xe0e8, total=32768, code=8192, eeprom=12288), - MCUModel(name='STC12LE5410AD', magic=0xe0ea, total=32768, code=10240, eeprom=12288), - MCUModel(name='STC12LE5412AD', magic=0xe0ec, total=32768, code=12288, eeprom=12288), - MCUModel(name='STC12LE5416AD', magic=0xe0f0, total=32768, code=16384, eeprom=12288), - MCUModel(name='STC12LE5420AD', magic=0xe0f4, total=32768, code=20480, eeprom=12288), - MCUModel(name='STC12LE5424AD', magic=0xe0f8, total=32768, code=24576, eeprom=12288), - MCUModel(name='STC12LE5428AD', magic=0xe0fc, total=32768, code=28672, eeprom=12288), - MCUModel(name='STC12LE5401', magic=0xe081, total=32768, code=1024, eeprom=12288), - MCUModel(name='STC12LE5402', magic=0xe082, total=32768, code=2048, eeprom=12288), - MCUModel(name='STC12LE5404', magic=0xe084, total=32768, code=4096, eeprom=12288), - MCUModel(name='STC12LE5406', magic=0xe086, total=32768, code=6144, eeprom=12288), - MCUModel(name='STC12LE5408', magic=0xe088, total=32768, code=8192, eeprom=12288), - MCUModel(name='STC12LE5410', magic=0xe08a, total=32768, code=10240, eeprom=12288), - MCUModel(name='STC12LE5412', magic=0xe08c, total=32768, code=12288, eeprom=12288), - MCUModel(name='STC12LE5416', magic=0xe090, total=32768, code=16384, eeprom=12288), - MCUModel(name='STC12LE5420', magic=0xe094, total=32768, code=20480, eeprom=12288), - MCUModel(name='STC12LE5424', magic=0xe098, total=32768, code=24576, eeprom=12288), - MCUModel(name='STC12LE5428', magic=0xe09c, total=32768, code=28672, eeprom=12288), - MCUModel(name='STC12C1052AD', magic=0xf211, total=8192, code=1024, eeprom=5120), - MCUModel(name='STC12C2052AD', magic=0xf212, total=8192, code=2048, eeprom=4096), - MCUModel(name='STC12C3052AD', magic=0xf213, total=8192, code=3072, eeprom=3072), - MCUModel(name='STC12C4052AD', magic=0xf214, total=8192, code=4096, eeprom=2048), - MCUModel(name='STC12C5052AD', magic=0xf215, total=8192, code=5120, eeprom=1024), - MCUModel(name='STC12C1052', magic=0xf201, total=8192, code=1024, eeprom=5120), - MCUModel(name='STC12C2052', magic=0xf202, total=8192, code=2048, eeprom=4096), - MCUModel(name='STC12C3052', magic=0xf203, total=8192, code=3072, eeprom=3072), - MCUModel(name='STC12C4052', magic=0xf204, total=8192, code=4096, eeprom=2048), - MCUModel(name='STC12C5052', magic=0xf205, total=8192, code=5120, eeprom=1024), - MCUModel(name='STC12LE1052AD', magic=0xf231, total=8192, code=1024, eeprom=5120), - MCUModel(name='STC12LE2052AD', magic=0xf232, total=8192, code=2048, eeprom=4096), - MCUModel(name='STC12LE3052AD', magic=0xf233, total=8192, code=3072, eeprom=3072), - MCUModel(name='STC12LE4052AD', magic=0xf234, total=8192, code=4096, eeprom=2048), - MCUModel(name='STC12LE5052AD', magic=0xf235, total=8192, code=5120, eeprom=1024), - MCUModel(name='STC12LE1052', magic=0xf221, total=8192, code=1024, eeprom=5120), - MCUModel(name='STC12LE2052', magic=0xf222, total=8192, code=2048, eeprom=4096), - MCUModel(name='STC12LE3052', magic=0xf223, total=8192, code=3072, eeprom=3072), - MCUModel(name='STC12LE4052', magic=0xf224, total=8192, code=4096, eeprom=2048), - MCUModel(name='STC12LE5052', magic=0xf225, total=8192, code=5120, eeprom=1024), - MCUModel(name='STC89C51', magic=0xf050, total=16384, code=4096, eeprom=10240), - MCUModel(name='STC89C52', magic=0xf051, total=16384, code=8192, eeprom=6144), - MCUModel(name='STC89C53', magic=0xf052, total=16384, code=12288, eeprom=2048), - MCUModel(name='STC89C14', magic=0xf053, total=16384, code=14336, eeprom=0), - MCUModel(name='STC89LE51', magic=0xf060, total=16384, code=4096, eeprom=10240), - MCUModel(name='STC89LE52', magic=0xf061, total=16384, code=8192, eeprom=6144), - MCUModel(name='STC89LE53', magic=0xf062, total=16384, code=12288, eeprom=2048), - MCUModel(name='STC89LE14', magic=0xf063, total=16384, code=14336, eeprom=0), - MCUModel(name='STC89C54', magic=0xf1a0, total=65536, code=16384, eeprom=47104), - MCUModel(name='STC89C58', magic=0xf1a1, total=65536, code=32768, eeprom=30720), - MCUModel(name='STC89C510', magic=0xf1a2, total=65536, code=40960, eeprom=22528), - MCUModel(name='STC89C512', magic=0xf1a3, total=65536, code=49152, eeprom=14336), - MCUModel(name='STC89C514', magic=0xf1a4, total=65536, code=57344, eeprom=6144), - MCUModel(name='STC89C516', magic=0xf1a5, total=65536, code=63488, eeprom=0), - MCUModel(name='STC89LE54', magic=0xf1b0, total=65536, code=16384, eeprom=47104), - MCUModel(name='STC89LE58', magic=0xf1b1, total=65536, code=32768, eeprom=30720), - MCUModel(name='STC89LE510', magic=0xf1b2, total=65536, code=40960, eeprom=22528), - MCUModel(name='STC89LE512', magic=0xf1b3, total=65536, code=49152, eeprom=14336), - MCUModel(name='STC89LE514', magic=0xf1b4, total=65536, code=57344, eeprom=6144), - MCUModel(name='STC89LE516', magic=0xf1b5, total=65536, code=63488, eeprom=0), - MCUModel(name='STC89C51RC/LE51R', magic=0xf001, total=16384, code=4096, eeprom=10240), - MCUModel(name='STC89C52RC/LE52R', magic=0xf002, total=16384, code=8192, eeprom=6144), - MCUModel(name='STC89C53RC/LE53R', magic=0xf004, total=16384, code=14336, eeprom=0), - MCUModel(name='STC89C06RC/LE06R', magic=0xf006, total=16384, code=6144, eeprom=8192), - MCUModel(name='STC89C07RC/LE07R', magic=0xf007, total=16384, code=7168, eeprom=7168), - MCUModel(name='STC89C10RC/LE10R', magic=0xf00a, total=16384, code=10240, eeprom=4096), - MCUModel(name='STC89C12RC/LE12R', magic=0xf00c, total=16384, code=12288, eeprom=2048), - MCUModel(name='STC89C51RD+/LE51', magic=0xf101, total=65536, code=4096, eeprom=59392), - MCUModel(name='STC89C52RD+/LE52', magic=0xf102, total=65536, code=8192, eeprom=55296), - MCUModel(name='STC89C54RD+/LE54', magic=0xf104, total=65536, code=16384, eeprom=47104), - MCUModel(name='STC89C55RD+/LE55', magic=0xf105, total=65536, code=20480, eeprom=43008), - MCUModel(name='STC89C58RD+/LE58', magic=0xf108, total=65536, code=32768, eeprom=30720), - MCUModel(name='STC89C510RD+/LE5', magic=0xf10a, total=65536, code=40960, eeprom=22528), - MCUModel(name='STC89C512RD+/LE5', magic=0xf10c, total=65536, code=49152, eeprom=14336), - MCUModel(name='STC89C513RD+/LE5', magic=0xf10d, total=65536, code=53248, eeprom=10240), - MCUModel(name='STC89C514RD+/LE5', magic=0xf10e, total=65536, code=57344, eeprom=6144), - MCUModel(name='STC89C516RD+/LE5', magic=0xf110, total=65536, code=63488, eeprom=0), - MCUModel(name='STC89C516RD/LV51', magic=0xffff, total=65536, code=65536, eeprom=0), - MCUModel(name='STC90C51RC', magic=0xf021, total=16384, code=4096, eeprom=10240), - MCUModel(name='STC90C52RC', magic=0xf022, total=16384, code=8192, eeprom=6144), - MCUModel(name='STC90C53RC', magic=0xf024, total=16384, code=14336, eeprom=0), - MCUModel(name='STC90C06RC', magic=0xf026, total=16384, code=6144, eeprom=8192), - MCUModel(name='STC90C07RC', magic=0xf027, total=16384, code=7168, eeprom=7168), - MCUModel(name='STC90C10RC', magic=0xf02a, total=16384, code=10240, eeprom=4096), - MCUModel(name='STC90C12RC', magic=0xf02c, total=16384, code=12288, eeprom=2048), - MCUModel(name='STC90LE51RC', magic=0xf041, total=16384, code=4096, eeprom=10240), - MCUModel(name='STC90LE52RC', magic=0xf042, total=16384, code=8192, eeprom=6144), - MCUModel(name='STC90LE53RC', magic=0xf044, total=16384, code=14336, eeprom=0), - MCUModel(name='STC90LE06RC', magic=0xf046, total=16384, code=6144, eeprom=8192), - MCUModel(name='STC90LE07RC', magic=0xf047, total=16384, code=7168, eeprom=7168), - MCUModel(name='STC90LE10RC', magic=0xf04a, total=16384, code=10240, eeprom=4096), - MCUModel(name='STC90LE12RC', magic=0xf04c, total=16384, code=12288, eeprom=2048), - MCUModel(name='STC90C51RD+', magic=0xf121, total=65536, code=4096, eeprom=59392), - MCUModel(name='STC90C52RD+', magic=0xf122, total=65536, code=8192, eeprom=55296), - MCUModel(name='STC90C54RD+', magic=0xf124, total=65536, code=16384, eeprom=47104), - MCUModel(name='STC90C55RD+', magic=0xf125, total=65536, code=20480, eeprom=43008), - MCUModel(name='STC90C58RD+', magic=0xf128, total=65536, code=32768, eeprom=30720), - MCUModel(name='STC90C510RD+', magic=0xf12a, total=65536, code=40960, eeprom=22528), - MCUModel(name='STC90C512RD+', magic=0xf12c, total=65536, code=49152, eeprom=14336), - MCUModel(name='STC90C513RD+', magic=0xf12d, total=65536, code=53248, eeprom=10240), - MCUModel(name='STC90C514RD+', magic=0xf12e, total=65536, code=57344, eeprom=6144), - MCUModel(name='STC90C516RD+', magic=0xf130, total=65536, code=63488, eeprom=0), - MCUModel(name='STC90LE51RD+', magic=0xf141, total=65536, code=4096, eeprom=59392), - MCUModel(name='STC90LE52RD+', magic=0xf142, total=65536, code=8192, eeprom=55296), - MCUModel(name='STC90LE54RD+', magic=0xf144, total=65536, code=16384, eeprom=47104), - MCUModel(name='STC90LE55RD+', magic=0xf145, total=65536, code=20480, eeprom=43008), - MCUModel(name='STC90LE58RD+', magic=0xf148, total=65536, code=32768, eeprom=30720), - MCUModel(name='STC90LE510RD+', magic=0xf14a, total=65536, code=40960, eeprom=22528), - MCUModel(name='STC90LE512RD+', magic=0xf14c, total=65536, code=49152, eeprom=14336), - MCUModel(name='STC90LE513RD+', magic=0xf14d, total=65536, code=53248, eeprom=10240), - MCUModel(name='STC90LE514RD+', magic=0xf14e, total=65536, code=57344, eeprom=6144), - MCUModel(name='STC90LE516RD+', magic=0xf150, total=65536, code=63488, eeprom=0), - MCUModel(name='STC90C51AD', magic=0xf161, total=65536, code=4096, eeprom=59392), - MCUModel(name='STC90C52AD', magic=0xf162, total=65536, code=8192, eeprom=55296), - MCUModel(name='STC90C54AD', magic=0xf164, total=65536, code=16384, eeprom=47104), - MCUModel(name='STC90C55AD', magic=0xf165, total=65536, code=20480, eeprom=43008), - MCUModel(name='STC90C58AD', magic=0xf168, total=65536, code=32768, eeprom=30720), - MCUModel(name='STC90C510AD', magic=0xf16a, total=65536, code=40960, eeprom=22528), - MCUModel(name='STC90C512AD', magic=0xf16c, total=65536, code=49152, eeprom=14336), - MCUModel(name='STC90C513AD', magic=0xf16d, total=65536, code=53248, eeprom=10240), - MCUModel(name='STC90C514AD', magic=0xf16e, total=65536, code=57344, eeprom=6144), - MCUModel(name='STC90C516AD', magic=0xf170, total=65536, code=63488, eeprom=0), - MCUModel(name='STC90LE51AD', magic=0xf181, total=65536, code=4096, eeprom=59392), - MCUModel(name='STC90LE52AD', magic=0xf182, total=65536, code=8192, eeprom=55296), - MCUModel(name='STC90LE54AD', magic=0xf184, total=65536, code=16384, eeprom=47104), - MCUModel(name='STC90LE55AD', magic=0xf185, total=65536, code=20480, eeprom=43008), - MCUModel(name='STC90LE58AD', magic=0xf188, total=65536, code=32768, eeprom=30720), - MCUModel(name='STC90LE510AD', magic=0xf18a, total=65536, code=40960, eeprom=22528), - MCUModel(name='STC90LE512AD', magic=0xf18c, total=65536, code=49152, eeprom=14336), - MCUModel(name='STC90LE513AD', magic=0xf18d, total=65536, code=53248, eeprom=10240), - MCUModel(name='STC90LE514AD', magic=0xf18e, total=65536, code=57344, eeprom=6144), - MCUModel(name='STC90LE516AD', magic=0xf190, total=65536, code=63488, eeprom=0), - - # Warning, these definitions lack a valid eeprom size. - # XXX: It's unknown whether these actually exist, they were removed in STC-ISP. - MCUModel(name='STC15F04AD', magic=0xd444, total=4096, code=4096, eeprom=0), - MCUModel(name='STC15F06AD', magic=0xd446, total=6144, code=6144, eeprom=0), - MCUModel(name='STC15F08AD', magic=0xd448, total=8192, code=8192, eeprom=0), - MCUModel(name='STC15F10AD', magic=0xd44a, total=10240, code=10240, eeprom=0), - MCUModel(name='STC15F12AD', magic=0xd44c, total=12288, code=12288, eeprom=0), - MCUModel(name='STC15F04CCP', magic=0xd434, total=4096, code=4096, eeprom=0), - MCUModel(name='STC15F06CCP', magic=0xd436, total=6144, code=6144, eeprom=0), - MCUModel(name='STC15F08CCP', magic=0xd438, total=8192, code=8192, eeprom=0), - MCUModel(name='STC15F10CCP', magic=0xd43a, total=10240, code=10240, eeprom=0), - MCUModel(name='STC15F12CCP', magic=0xd43c, total=12288, code=12288, eeprom=0), - MCUModel(name='STC15F04', magic=0xd404, total=4096, code=4096, eeprom=0), - MCUModel(name='STC15F06', magic=0xd406, total=6144, code=6144, eeprom=0), - MCUModel(name='STC15F08', magic=0xd408, total=8192, code=8192, eeprom=0), - MCUModel(name='STC15F10', magic=0xd40a, total=10240, code=10240, eeprom=0), - MCUModel(name='STC15F12', magic=0xd40c, total=12288, code=12288, eeprom=0), - MCUModel(name='IAP15F08AD', magic=0xd458, total=8192, code=8192, eeprom=0), - MCUModel(name='IAP15F10AD', magic=0xd45a, total=10240, code=10240, eeprom=0), - MCUModel(name='IAP15F12AD', magic=0xd45c, total=12288, code=12288, eeprom=0), - MCUModel(name='IAP15F14AD', magic=0xd45e, total=14336, code=14336, eeprom=0), - MCUModel(name='STC15L04AD', magic=0xd4c4, total=4096, code=4096, eeprom=0), - MCUModel(name='STC15L06AD', magic=0xd4c6, total=6144, code=6144, eeprom=0), - MCUModel(name='STC15L08AD', magic=0xd4c8, total=8192, code=8192, eeprom=0), - MCUModel(name='STC15L10AD', magic=0xd4ca, total=10240, code=10240, eeprom=0), - MCUModel(name='STC15L12AD', magic=0xd4cc, total=12288, code=12288, eeprom=0), - MCUModel(name='STC15L04CCP', magic=0xd4b4, total=4096, code=4096, eeprom=0), - MCUModel(name='STC15L06CCP', magic=0xd4b6, total=6144, code=6144, eeprom=0), - MCUModel(name='STC15L08CCP', magic=0xd4b8, total=8192, code=8192, eeprom=0), - MCUModel(name='STC15L10CCP', magic=0xd4ba, total=10240, code=10240, eeprom=0), - MCUModel(name='STC15L12CCP', magic=0xd4bc, total=12288, code=12288, eeprom=0), - MCUModel(name='STC15L04', magic=0xd484, total=4096, code=4096, eeprom=0), - MCUModel(name='STC15L06', magic=0xd486, total=6144, code=6144, eeprom=0), - MCUModel(name='STC15L08', magic=0xd488, total=8192, code=8192, eeprom=0), - MCUModel(name='STC15L10', magic=0xd48a, total=10240, code=10240, eeprom=0), - MCUModel(name='STC15L12', magic=0xd48c, total=12288, code=12288, eeprom=0), - MCUModel(name='IAP15L08AD', magic=0xd4d8, total=8192, code=8192, eeprom=0), - MCUModel(name='IAP15L10AD', magic=0xd4da, total=10240, code=10240, eeprom=0), - MCUModel(name='IAP15L12AD', magic=0xd4dc, total=12288, code=12288, eeprom=0), - MCUModel(name='IAP15L14AD', magic=0xd4de, total=14336, code=14336, eeprom=0), + models =( + MCUModel(name='STC32F12K16', magic=0xf871, total=55296, code=16384, eeprom=38912, iap=False, calibrate=True, mcs251=True), + MCUModel(name='STC32F12K32', magic=0xf872, total=55296, code=32768, eeprom=22528, iap=False, calibrate=True, mcs251=True), + MCUModel(name='STC32F12K48', magic=0xf873, total=55296, code=49152, eeprom=6144, iap=False, calibrate=True, mcs251=True), + MCUModel(name='STC32F12K54', magic=0xf874, total=55296, code=55296, eeprom=0, iap=True, calibrate=True, mcs251=True), + MCUModel(name='STC32F12K59', magic=0xf875, total=60416, code=60416, eeprom=0, iap=True, calibrate=True, mcs251=True), + MCUModel(name='STC32G12K128-Beta', magic=0xf7e1, total=131072, code=131072, eeprom=0, iap=True, calibrate=True, mcs251=True), + MCUModel(name='STC32G12K128', magic=0xf7e3, total=131072, code=131072, eeprom=0, iap=True, calibrate=True, mcs251=True), + MCUModel(name='STC-USB Link1', magic=0xf7ee, total=131072, code=131072, eeprom=0, iap=True, calibrate=True, mcs251=True), + MCUModel(name='STC-USB Writer1', magic=0xf7ef, total=131072, code=131072, eeprom=0, iap=True, calibrate=True, mcs251=True), + MCUModel(name='STC32G8K64-Beta', magic=0xf850, total=65536, code=65536, eeprom=0, iap=True, calibrate=True, mcs251=True), + MCUModel(name='STC32G8K16', magic=0xf851, total=65536, code=16384, eeprom=49152, iap=False, calibrate=True, mcs251=True), + MCUModel(name='STC32G8K32', magic=0xf852, total=65536, code=32768, eeprom=32768, iap=False, calibrate=True, mcs251=True), + MCUModel(name='STC32G8K48', magic=0xf855, total=65536, code=49152, eeprom=16384, iap=False, calibrate=True, mcs251=True), + MCUModel(name='STC32G8K60', magic=0xf853, total=65536, code=61440, eeprom=4096, iap=False, calibrate=True, mcs251=True), + MCUModel(name='STC32G8K64', magic=0xf854, total=65536, code=65536, eeprom=0, iap=True, calibrate=True, mcs251=True), + MCUModel(name='STC8H8K16U', magic=0xf781, total=65536, code=16384, eeprom=49152, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8H8K32U', magic=0xf782, total=65536, code=32768, eeprom=32768, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8H8K48U', magic=0xf785, total=65536, code=49152, eeprom=16384, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8H8K60U', magic=0xf783, total=65536, code=61440, eeprom=4096, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8H8K64U', magic=0xf784, total=65536, code=65024, eeprom=512, iap=True, calibrate=True, mcs251=False), + MCUModel(name='STC8H4K16TLCD', magic=0xf811, total=65536, code=16384, eeprom=49152, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8H4K32TLCD', magic=0xf812, total=65536, code=32768, eeprom=32768, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8H4K48TLCD', magic=0xf815, total=65536, code=49152, eeprom=16384, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8H4K60TLCD', magic=0xf813, total=65536, code=61440, eeprom=4096, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8H4K64TLCD', magic=0xf814, total=65536, code=65024, eeprom=512, iap=True, calibrate=True, mcs251=False), + MCUModel(name='STC8H2K16TLCD', magic=0xf819, total=65536, code=16384, eeprom=49152, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8H2K32TLCD', magic=0xf81a, total=65536, code=32768, eeprom=32768, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8H2K48TLCD', magic=0xf81d, total=65536, code=49152, eeprom=16384, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8H2K60TLCD', magic=0xf81b, total=65536, code=61440, eeprom=4096, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8H2K64TLCD', magic=0xf81c, total=65536, code=65024, eeprom=512, iap=True, calibrate=True, mcs251=False), + MCUModel(name='STC8H4K16LCD', magic=0xf821, total=65536, code=16384, eeprom=49152, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8H4K32LCD', magic=0xf822, total=65536, code=32768, eeprom=32768, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8H4K48LCD', magic=0xf825, total=65536, code=49152, eeprom=16384, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8H4K60LCD', magic=0xf823, total=65536, code=61440, eeprom=4096, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8H4K64LCD', magic=0xf824, total=65536, code=65024, eeprom=512, iap=True, calibrate=True, mcs251=False), + MCUModel(name='STC8H4K16TL', magic=0xf831, total=65536, code=16384, eeprom=49152, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8H4K32TL', magic=0xf832, total=65536, code=32768, eeprom=32768, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8H4K48TL', magic=0xf835, total=65536, code=49152, eeprom=16384, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8H4K60TL', magic=0xf833, total=65536, code=61440, eeprom=4096, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8H4K64TL', magic=0xf834, total=65536, code=65024, eeprom=512, iap=True, calibrate=True, mcs251=False), + MCUModel(name='STC8H2K16TL', magic=0xf839, total=65536, code=16384, eeprom=49152, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8H2K32TL', magic=0xf83a, total=65536, code=32768, eeprom=32768, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8H2K48TL', magic=0xf83d, total=65536, code=49152, eeprom=16384, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8H2K60TL', magic=0xf83b, total=65536, code=61440, eeprom=4096, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8H2K64TL', magic=0xf83c, total=65536, code=65024, eeprom=512, iap=True, calibrate=True, mcs251=False), + MCUModel(name='STC8H4K16TLR', magic=0xf7c9, total=65536, code=16384, eeprom=49152, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8H4K32TLR', magic=0xf7ca, total=65536, code=32768, eeprom=32768, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8H4K48TLR', magic=0xf7cd, total=65536, code=49152, eeprom=16384, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8H4K60TLR', magic=0xf7cb, total=65536, code=61440, eeprom=4096, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8H4K64TLR', magic=0xf7cc, total=65536, code=65024, eeprom=512, iap=True, calibrate=True, mcs251=False), + MCUModel(name='STC8H3K16S4', magic=0xf741, total=65536, code=16384, eeprom=49152, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8H3K32S4', magic=0xf742, total=65536, code=32768, eeprom=32768, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8H3K48S4', magic=0xf745, total=65536, code=49152, eeprom=16384, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8H3K60S4', magic=0xf743, total=65536, code=61440, eeprom=4096, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8H3K64S4', magic=0xf744, total=65536, code=65024, eeprom=512, iap=True, calibrate=True, mcs251=False), + MCUModel(name='STC8H3K16S2', magic=0xf749, total=65536, code=16384, eeprom=49152, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8H3K32S2', magic=0xf74a, total=65536, code=32768, eeprom=32768, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8H3K48S2', magic=0xf74d, total=65536, code=49152, eeprom=16384, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8H3K60S2', magic=0xf74b, total=65536, code=61440, eeprom=4096, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8H3K64S2', magic=0xf74c, total=65536, code=65024, eeprom=512, iap=True, calibrate=True, mcs251=False), + MCUModel(name='STC8H1K16', magic=0xf721, total=28672, code=16384, eeprom=12288, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8H1K20', magic=0xf722, total=28672, code=20480, eeprom=8192, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8H1K24', magic=0xf723, total=28672, code=24576, eeprom=4096, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8H1K28', magic=0xf724, total=28672, code=28672, eeprom=0, iap=True, calibrate=True, mcs251=False), + MCUModel(name='STC8H1K33', magic=0xf725, total=33792, code=33792, eeprom=0, iap=True, calibrate=True, mcs251=False), + MCUModel(name='STC8H1K02', magic=0xf731, total=12288, code=2048, eeprom=10240, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8H1K04', magic=0xf732, total=12288, code=4096, eeprom=8192, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8H1K06', magic=0xf733, total=12288, code=6144, eeprom=6144, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8H1K08', magic=0xf734, total=12288, code=8192, eeprom=4096, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8H1K10', magic=0xf735, total=12288, code=10240, eeprom=2048, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8H1K12', magic=0xf736, total=12288, code=12288, eeprom=0, iap=True, calibrate=True, mcs251=False), + MCUModel(name='STC8H1K17', magic=0xf737, total=17408, code=17408, eeprom=0, iap=True, calibrate=True, mcs251=False), + MCUModel(name='STC8H1K08T-Beta', magic=0xf840, total=12288, code=8192, eeprom=4096, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8H1K17T-Beta', magic=0xf848, total=17408, code=17408, eeprom=0, iap=True, calibrate=True, mcs251=False), + MCUModel(name='STC8H1K02T', magic=0xf841, total=12288, code=2048, eeprom=10240, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8H1K04T', magic=0xf842, total=12288, code=4096, eeprom=8192, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8H1K06T', magic=0xf843, total=12288, code=6144, eeprom=6144, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8H1K08T', magic=0xf844, total=12288, code=8192, eeprom=4096, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8H1K10T', magic=0xf845, total=12288, code=10240, eeprom=2048, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8H1K12T', magic=0xf846, total=12288, code=12288, eeprom=0, iap=True, calibrate=True, mcs251=False), + MCUModel(name='STC8H1K17T', magic=0xf847, total=17408, code=17408, eeprom=0, iap=True, calibrate=True, mcs251=False), + MCUModel(name='STC8G2K16S4', magic=0xf761, total=65536, code=16384, eeprom=49152, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8G2K32S4', magic=0xf762, total=65536, code=32768, eeprom=32768, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8G2K48S4', magic=0xf765, total=65536, code=49152, eeprom=16384, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8G2K60S4', magic=0xf763, total=65536, code=61440, eeprom=4096, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8G2K64S4', magic=0xf764, total=65536, code=65024, eeprom=512, iap=True, calibrate=True, mcs251=False), + MCUModel(name='STC8G2K16S2', magic=0xf769, total=65536, code=16384, eeprom=49152, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8G2K32S2', magic=0xf76a, total=65536, code=32768, eeprom=32768, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8G2K48S2', magic=0xf76d, total=65536, code=49152, eeprom=16384, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8G2K60S2', magic=0xf76b, total=65536, code=61440, eeprom=4096, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8G2K64S2', magic=0xf76c, total=65536, code=65024, eeprom=512, iap=True, calibrate=True, mcs251=False), + MCUModel(name='STC8G1K02T', magic=0xf771, total=12288, code=2048, eeprom=10240, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8G1K04T', magic=0xf772, total=12288, code=4096, eeprom=8192, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8G1K06T', magic=0xf773, total=12288, code=6144, eeprom=6144, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8G1K08T', magic=0xf774, total=12288, code=8192, eeprom=4096, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8G1K10T', magic=0xf775, total=12288, code=10240, eeprom=2048, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8G1K12T', magic=0xf776, total=12288, code=12288, eeprom=0, iap=True, calibrate=True, mcs251=False), + MCUModel(name='STC8G1K17T', magic=0xf777, total=17408, code=17408, eeprom=0, iap=True, calibrate=True, mcs251=False), + MCUModel(name='STC8G1K02A-8PIN', magic=0xf791, total=12288, code=2048, eeprom=10240, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8G1K04A-8PIN', magic=0xf792, total=12288, code=4096, eeprom=8192, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8G1K06A-8PIN', magic=0xf793, total=12288, code=6144, eeprom=6144, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8G1K08A-8PIN', magic=0xf794, total=12288, code=8192, eeprom=4096, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8G1K10A-8PIN', magic=0xf795, total=12288, code=10240, eeprom=2048, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8G1K12A-8PIN', magic=0xf796, total=12288, code=12288, eeprom=0, iap=True, calibrate=True, mcs251=False), + MCUModel(name='STC8G1K17A-8PIN', magic=0xf797, total=17408, code=17408, eeprom=0, iap=True, calibrate=True, mcs251=False), + MCUModel(name='STC8G1K02-8PIN', magic=0xf7a1, total=12288, code=2048, eeprom=10240, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8G1K04-8PIN', magic=0xf7a2, total=12288, code=4096, eeprom=8192, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8G1K06-8PIN', magic=0xf7a3, total=12288, code=6144, eeprom=6144, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8G1K08-8PIN', magic=0xf7a4, total=12288, code=8192, eeprom=4096, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8G1K10-8PIN', magic=0xf7a5, total=12288, code=10240, eeprom=2048, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8G1K12-8PIN', magic=0xf7a6, total=12288, code=12288, eeprom=0, iap=True, calibrate=True, mcs251=False), + MCUModel(name='STC8G1K17-8PIN', magic=0xf7a7, total=17408, code=17408, eeprom=0, iap=True, calibrate=True, mcs251=False), + MCUModel(name='STC8G1K02-20/16PIN', magic=0xf751, total=12288, code=2048, eeprom=10240, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8G1K04-20/16PIN', magic=0xf752, total=12288, code=4096, eeprom=8192, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8G1K06-20/16PIN', magic=0xf753, total=12288, code=6144, eeprom=6144, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8G1K08-20/16PIN', magic=0xf754, total=12288, code=8192, eeprom=4096, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8G1K10-20/16PIN', magic=0xf755, total=12288, code=10240, eeprom=2048, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8G1K12-20/16PIN', magic=0xf756, total=12288, code=12288, eeprom=0, iap=True, calibrate=True, mcs251=False), + MCUModel(name='STC8G1K17-20/16PIN', magic=0xf757, total=17408, code=17408, eeprom=0, iap=True, calibrate=True, mcs251=False), + MCUModel(name='STC8C2K16S4', magic=0xf7d1, total=65536, code=16384, eeprom=49152, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8C2K32S4', magic=0xf7d2, total=65536, code=32768, eeprom=32768, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8C2K48S4', magic=0xf7d5, total=65536, code=49152, eeprom=16384, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8C2K60S4', magic=0xf7d3, total=65536, code=61440, eeprom=4096, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8C2K64S4', magic=0xf7d4, total=65536, code=65024, eeprom=512, iap=True, calibrate=True, mcs251=False), + MCUModel(name='STC8C2K16S2', magic=0xf7d9, total=65536, code=16384, eeprom=49152, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8C2K32S2', magic=0xf7da, total=65536, code=32768, eeprom=32768, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8C2K48S2', magic=0xf7dd, total=65536, code=49152, eeprom=16384, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8C2K60S2', magic=0xf7db, total=65536, code=61440, eeprom=4096, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8C2K64S2', magic=0xf7dc, total=65536, code=65024, eeprom=512, iap=True, calibrate=True, mcs251=False), + MCUModel(name='STC8C1K02', magic=0xf701, total=12288, code=2048, eeprom=10240, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8C1K04', magic=0xf702, total=12288, code=4096, eeprom=8192, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8C1K06', magic=0xf703, total=12288, code=6144, eeprom=6144, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8C1K08', magic=0xf704, total=12288, code=8192, eeprom=4096, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8C1K10', magic=0xf705, total=12288, code=10240, eeprom=2048, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8C1K12', magic=0xf706, total=12288, code=12288, eeprom=0, iap=True, calibrate=True, mcs251=False), + MCUModel(name='GX8S003', magic=0xf714, total=12288, code=8192, eeprom=4096, iap=False, calibrate=True, mcs251=False), + MCUModel(name='GX8S012', magic=0xf716, total=12288, code=12288, eeprom=0, iap=True, calibrate=True, mcs251=False), + MCUModel(name='STC8F1K02', magic=0xf671, total=12288, code=2048, eeprom=10240, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8F1K04', magic=0xf672, total=12288, code=4096, eeprom=8192, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8F1K06', magic=0xf673, total=12288, code=6144, eeprom=6144, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8F1K08', magic=0xf674, total=12288, code=8192, eeprom=4096, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8F1K10', magic=0xf675, total=12288, code=10240, eeprom=2048, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8F1K12', magic=0xf676, total=12288, code=12288, eeprom=0, iap=True, calibrate=True, mcs251=False), + MCUModel(name='STC8F1K17', magic=0xf677, total=17408, code=17408, eeprom=0, iap=True, calibrate=True, mcs251=False), + MCUModel(name='STC8F1K02S2', magic=0xf661, total=12288, code=2048, eeprom=10240, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8F1K04S2', magic=0xf662, total=12288, code=4096, eeprom=8192, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8F1K06S2', magic=0xf663, total=12288, code=6144, eeprom=6144, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8F1K08S2', magic=0xf664, total=12288, code=8192, eeprom=4096, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8F1K10S2', magic=0xf665, total=12288, code=10240, eeprom=2048, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8F1K12S2', magic=0xf666, total=12288, code=12288, eeprom=0, iap=True, calibrate=True, mcs251=False), + MCUModel(name='STC8F1K17S2', magic=0xf667, total=17408, code=17408, eeprom=0, iap=True, calibrate=True, mcs251=False), + MCUModel(name='STC8F2K08S2', magic=0xf641, total=65536, code=8192, eeprom=57344, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8F2K16S2', magic=0xf642, total=65536, code=16384, eeprom=49152, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8F2K24S2', magic=0xf643, total=65536, code=24576, eeprom=40960, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8F2K32S2', magic=0xf644, total=65536, code=32768, eeprom=32768, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8F2K40S2', magic=0xf645, total=65536, code=40960, eeprom=24576, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8F2K48S2', magic=0xf646, total=65536, code=49152, eeprom=16384, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8F2K56S2', magic=0xf647, total=65536, code=57344, eeprom=8192, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8F2K60S2', magic=0xf649, total=65536, code=61440, eeprom=4096, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8F2K64S2', magic=0xf648, total=65536, code=65024, eeprom=512, iap=True, calibrate=True, mcs251=False), + MCUModel(name='STC8F2K08S4', magic=0xf631, total=65536, code=8192, eeprom=57344, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8F2K16S4', magic=0xf632, total=65536, code=16384, eeprom=49152, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8F2K24S4', magic=0xf633, total=65536, code=24576, eeprom=40960, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8F2K32S4', magic=0xf634, total=65536, code=32768, eeprom=32768, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8F2K40S4', magic=0xf635, total=65536, code=40960, eeprom=24576, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8F2K48S4', magic=0xf636, total=65536, code=49152, eeprom=16384, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8F2K56S4', magic=0xf637, total=65536, code=57344, eeprom=8192, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8F2K60S4', magic=0xf639, total=65536, code=61440, eeprom=4096, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8F2K64S4', magic=0xf638, total=65536, code=65024, eeprom=512, iap=True, calibrate=True, mcs251=False), + MCUModel(name='STC8F8K08S4A12', magic=0xf611, total=65536, code=8192, eeprom=57344, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8F8K16S4A12', magic=0xf612, total=65536, code=16384, eeprom=49152, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8F8K24S4A12', magic=0xf613, total=65536, code=24576, eeprom=40960, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8F8K32S4A12', magic=0xf614, total=65536, code=32768, eeprom=32768, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8F8K40S4A12', magic=0xf615, total=65536, code=40960, eeprom=24576, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8F8K48S4A12', magic=0xf616, total=65536, code=49152, eeprom=16384, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8F8K56S4A12', magic=0xf617, total=65536, code=57344, eeprom=8192, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8F8K60S4A12', magic=0xf619, total=65536, code=61440, eeprom=4096, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8F8K64S4A12', magic=0xf618, total=65536, code=65024, eeprom=512, iap=True, calibrate=True, mcs251=False), + MCUModel(name='STC8A8K16D4', magic=0xf7f1, total=65536, code=16384, eeprom=49152, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8A8K32D4', magic=0xf7f2, total=65536, code=32768, eeprom=32768, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8A8K48D4', magic=0xf7f5, total=65536, code=49152, eeprom=16384, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8A8K60D4', magic=0xf7f3, total=65536, code=61440, eeprom=4096, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8A8K64D4', magic=0xf7f4, total=65536, code=65024, eeprom=512, iap=True, calibrate=True, mcs251=False), + MCUModel(name='STC8A2K16D4', magic=0xf801, total=65536, code=16384, eeprom=49152, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8A2K32D4', magic=0xf802, total=65536, code=32768, eeprom=32768, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8A2K48D4', magic=0xf805, total=65536, code=49152, eeprom=16384, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8A2K60D4', magic=0xf803, total=65536, code=61440, eeprom=4096, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8A2K64D4', magic=0xf804, total=65536, code=65024, eeprom=512, iap=True, calibrate=True, mcs251=False), + MCUModel(name='STC8A4K08S2A12', magic=0xf651, total=65536, code=8192, eeprom=57344, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8A4K16S2A12', magic=0xf652, total=65536, code=16384, eeprom=49152, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8A4K24S2A12', magic=0xf653, total=65536, code=24576, eeprom=40960, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8A4K32S2A12', magic=0xf654, total=65536, code=32768, eeprom=32768, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8A4K40S2A12', magic=0xf655, total=65536, code=40960, eeprom=24576, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8A4K48S2A12', magic=0xf656, total=65536, code=49152, eeprom=16384, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8A4K56S2A12', magic=0xf657, total=65536, code=57344, eeprom=8192, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8A4K60S2A12', magic=0xf659, total=65536, code=61440, eeprom=4096, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8A4K64S2A12', magic=0xf658, total=65536, code=65024, eeprom=512, iap=True, calibrate=True, mcs251=False), + MCUModel(name='STC8A8K08S4A12', magic=0xf621, total=65536, code=8192, eeprom=57344, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8A8K16S4A12', magic=0xf622, total=65536, code=16384, eeprom=49152, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8A8K24S4A12', magic=0xf623, total=65536, code=24576, eeprom=40960, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8A8K32S4A12', magic=0xf624, total=65536, code=32768, eeprom=32768, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8A8K40S4A12', magic=0xf625, total=65536, code=40960, eeprom=24576, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8A8K48S4A12', magic=0xf626, total=65536, code=49152, eeprom=16384, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8A8K56S4A12', magic=0xf627, total=65536, code=57344, eeprom=8192, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8A8K60S4A12', magic=0xf629, total=65536, code=61440, eeprom=4096, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC8A8K64S4A12', magic=0xf628, total=65536, code=65024, eeprom=512, iap=True, calibrate=True, mcs251=False), + MCUModel(name='STC16F40K128-Beta', magic=0xf7e0, total=126976, code=122880, eeprom=0, iap=False, calibrate=True, mcs251=True), + MCUModel(name='STC15H2K16S4', magic=0xf861, total=65536, code=16384, eeprom=49152, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15H2K32S4', magic=0xf862, total=65536, code=32768, eeprom=32768, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15H2K48S4', magic=0xf865, total=65536, code=49152, eeprom=16384, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15H2K60S4', magic=0xf863, total=65536, code=61440, eeprom=4096, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15H2K64S4', magic=0xf864, total=65536, code=65024, eeprom=512, iap=True, calibrate=True, mcs251=False), + MCUModel(name='STC15H4K08S4', magic=0xf601, total=65536, code=8192, eeprom=57344, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15H4K16S4', magic=0xf602, total=65536, code=16384, eeprom=49152, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15H4K24S4', magic=0xf603, total=65536, code=24576, eeprom=40960, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15H4K32S4', magic=0xf604, total=65536, code=32768, eeprom=32768, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15H4K40S4', magic=0xf605, total=65536, code=40960, eeprom=24576, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15H4K48S4', magic=0xf606, total=65536, code=49152, eeprom=16384, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15H4K56S4', magic=0xf607, total=65536, code=57344, eeprom=8192, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15H4K64S4', magic=0xf608, total=65536, code=65024, eeprom=512, iap=True, calibrate=True, mcs251=False), + MCUModel(name='STC15F2K08S2', magic=0xf401, total=62464, code=8192, eeprom=54272, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15F2K16S2', magic=0xf402, total=62464, code=16384, eeprom=46080, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15F2K24S2', magic=0xf403, total=62464, code=24576, eeprom=37888, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15F2K32S2', magic=0xf404, total=62464, code=32768, eeprom=29696, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15F2K40S2', magic=0xf405, total=62464, code=40960, eeprom=21504, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15F2K48S2', magic=0xf406, total=62464, code=49152, eeprom=13312, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15F2K56S2', magic=0xf407, total=62464, code=57344, eeprom=5120, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15F2K60S2', magic=0xf408, total=62464, code=61440, eeprom=1024, iap=False, calibrate=True, mcs251=False), + MCUModel(name='IAP15F2K61S2', magic=0xf449, total=62464, code=62464, eeprom=0, iap=True, calibrate=True, mcs251=False), + MCUModel(name='IRC15F2K63S2', magic=0xf44a, total=65024, code=65024, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='STC15L2K08S2', magic=0xf481, total=62464, code=8192, eeprom=54272, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15L2K16S2', magic=0xf482, total=62464, code=16384, eeprom=46080, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15L2K24S2', magic=0xf483, total=62464, code=24576, eeprom=37888, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15L2K32S2', magic=0xf484, total=62464, code=32768, eeprom=29696, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15L2K40S2', magic=0xf485, total=62464, code=40960, eeprom=21504, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15L2K48S2', magic=0xf486, total=62464, code=49152, eeprom=13312, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15L2K56S2', magic=0xf487, total=62464, code=57344, eeprom=5120, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15L2K60S2', magic=0xf488, total=62464, code=61440, eeprom=1024, iap=False, calibrate=True, mcs251=False), + MCUModel(name='IAP15L2K61S2', magic=0xf4c9, total=62464, code=62464, eeprom=0, iap=True, calibrate=True, mcs251=False), + MCUModel(name='IRC15L2K63S2', magic=0xf4ca, total=65024, code=65024, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='STC15F2K08AS', magic=0xf411, total=62464, code=8192, eeprom=54272, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15F2K16AS', magic=0xf412, total=62464, code=16384, eeprom=46080, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15F2K24AS', magic=0xf413, total=62464, code=24576, eeprom=37888, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15F2K32AS', magic=0xf414, total=62464, code=32768, eeprom=29696, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15F2K40AS', magic=0xf415, total=62464, code=40960, eeprom=21504, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15F2K48AS', magic=0xf416, total=62464, code=49152, eeprom=13312, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15F2K56AS', magic=0xf417, total=62464, code=57344, eeprom=5120, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15F2K60AS', magic=0xf418, total=62464, code=61440, eeprom=1024, iap=False, calibrate=True, mcs251=False), + MCUModel(name='IAP15F2K61AS', magic=0xf459, total=62464, code=62464, eeprom=0, iap=True, calibrate=True, mcs251=False), + MCUModel(name='IRC15F2K63AS', magic=0xf45a, total=65024, code=65024, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='STC15L2K08AS', magic=0xf491, total=62464, code=8192, eeprom=54272, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15L2K16AS', magic=0xf492, total=62464, code=16384, eeprom=46080, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15L2K24AS', magic=0xf493, total=62464, code=24576, eeprom=37888, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15L2K32AS', magic=0xf494, total=62464, code=32768, eeprom=29696, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15L2K40AS', magic=0xf495, total=62464, code=40960, eeprom=21504, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15L2K48AS', magic=0xf496, total=62464, code=49152, eeprom=13312, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15L2K56AS', magic=0xf497, total=62464, code=57344, eeprom=5120, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15L2K60AS', magic=0xf498, total=62464, code=61440, eeprom=1024, iap=False, calibrate=True, mcs251=False), + MCUModel(name='IAP15L2K61AS', magic=0xf4d9, total=62464, code=62464, eeprom=0, iap=True, calibrate=True, mcs251=False), + MCUModel(name='IRC15L2K63AS', magic=0xf4da, total=65024, code=65024, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='STC15F2K08S', magic=0xf421, total=62464, code=8192, eeprom=54272, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15F2K16S', magic=0xf422, total=62464, code=16384, eeprom=46080, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15F2K24S', magic=0xf423, total=62464, code=24576, eeprom=37888, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15F2K32S', magic=0xf424, total=62464, code=32768, eeprom=29696, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15F2K40S', magic=0xf425, total=62464, code=40960, eeprom=21504, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15F2K48S', magic=0xf426, total=62464, code=49152, eeprom=13312, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15F2K56S', magic=0xf427, total=62464, code=57344, eeprom=5120, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15F2K60S', magic=0xf428, total=62464, code=61440, eeprom=1024, iap=False, calibrate=True, mcs251=False), + MCUModel(name='IAP15F2K61S', magic=0xf469, total=62464, code=62464, eeprom=0, iap=True, calibrate=True, mcs251=False), + MCUModel(name='IRC15F2K63S', magic=0xf46a, total=65024, code=65024, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='STC15L2K08S', magic=0xf4a1, total=62464, code=8192, eeprom=54272, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15L2K16S', magic=0xf4a2, total=62464, code=16384, eeprom=46080, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15L2K24S', magic=0xf4a3, total=62464, code=24576, eeprom=37888, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15L2K32S', magic=0xf4a4, total=62464, code=32768, eeprom=29696, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15L2K40S', magic=0xf4a5, total=62464, code=40960, eeprom=21504, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15L2K48S', magic=0xf4a6, total=62464, code=49152, eeprom=13312, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15L2K56S', magic=0xf4a7, total=62464, code=57344, eeprom=5120, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15L2K60S', magic=0xf4a8, total=62464, code=61440, eeprom=1024, iap=False, calibrate=True, mcs251=False), + MCUModel(name='IAP15L2K61S', magic=0xf4e9, total=62464, code=62464, eeprom=0, iap=True, calibrate=True, mcs251=False), + MCUModel(name='IRC15L2K63S', magic=0xf4ea, total=65024, code=65024, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='U7-5V', magic=0xf44b, total=62464, code=62464, eeprom=0, iap=True, calibrate=True, mcs251=False), + MCUModel(name='U7-3V', magic=0xf4cb, total=62464, code=62464, eeprom=0, iap=True, calibrate=True, mcs251=False), + MCUModel(name='U8-5V', magic=0xf44c, total=62464, code=62464, eeprom=0, iap=True, calibrate=True, mcs251=False), + MCUModel(name='U8-3V', magic=0xf4cc, total=62464, code=62464, eeprom=0, iap=True, calibrate=True, mcs251=False), + MCUModel(name='STC15F1K08S2', magic=0xf441, total=62464, code=8192, eeprom=54272, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15F1K16S2', magic=0xf442, total=62464, code=16384, eeprom=46080, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15F1K24S2', magic=0xf443, total=62464, code=24576, eeprom=37888, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15F1K32S2', magic=0xf444, total=62464, code=32768, eeprom=29696, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15F1K40S2', magic=0xf445, total=62464, code=40960, eeprom=21504, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15F1K48S2', magic=0xf446, total=62464, code=49152, eeprom=13312, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15F1K56S2', magic=0xf447, total=62464, code=57344, eeprom=5120, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15F1K60S2', magic=0xf448, total=62464, code=61440, eeprom=1024, iap=False, calibrate=True, mcs251=False), + MCUModel(name='IAP15F1K61S2', magic=0xf409, total=62464, code=62464, eeprom=0, iap=True, calibrate=True, mcs251=False), + MCUModel(name='IRC15F1K63S2', magic=0xf400, total=65024, code=65024, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='STC15L1K08S2', magic=0xf4c1, total=62464, code=8192, eeprom=54272, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15L1K16S2', magic=0xf4c2, total=62464, code=16384, eeprom=46080, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15L1K24S2', magic=0xf4c3, total=62464, code=24576, eeprom=37888, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15L1K32S2', magic=0xf4c4, total=62464, code=32768, eeprom=29696, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15L1K40S2', magic=0xf4c5, total=62464, code=40960, eeprom=21504, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15L1K48S2', magic=0xf4c6, total=62464, code=49152, eeprom=13312, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15L1K56S2', magic=0xf4c7, total=62464, code=57344, eeprom=5120, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15L1K60S2', magic=0xf4c8, total=62464, code=61440, eeprom=1024, iap=False, calibrate=True, mcs251=False), + MCUModel(name='IAP15L1K61S2', magic=0xf489, total=62464, code=62464, eeprom=0, iap=True, calibrate=True, mcs251=False), + MCUModel(name='IRC15L1K63S2', magic=0xf480, total=65024, code=65024, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='STC15F1K08AS', magic=0xf451, total=62464, code=8192, eeprom=54272, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15F1K16AS', magic=0xf452, total=62464, code=16384, eeprom=46080, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15F1K24AS', magic=0xf453, total=62464, code=24576, eeprom=37888, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15F1K32AS', magic=0xf454, total=62464, code=32768, eeprom=29696, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15F1K40AS', magic=0xf455, total=62464, code=40960, eeprom=21504, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15F1K48AS', magic=0xf456, total=62464, code=49152, eeprom=13312, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15F1K56AS', magic=0xf457, total=62464, code=57344, eeprom=5120, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15F1K60AS', magic=0xf458, total=62464, code=61440, eeprom=1024, iap=False, calibrate=True, mcs251=False), + MCUModel(name='IAP15F1K61AS', magic=0xf419, total=62464, code=62464, eeprom=0, iap=True, calibrate=True, mcs251=False), + MCUModel(name='IRC15F1K63AS', magic=0xf410, total=65024, code=65024, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='STC15L1K08AS', magic=0xf4d1, total=62464, code=8192, eeprom=54272, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15L1K16AS', magic=0xf4d2, total=62464, code=16384, eeprom=46080, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15L1K24AS', magic=0xf4d3, total=62464, code=24576, eeprom=37888, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15L1K32AS', magic=0xf4d4, total=62464, code=32768, eeprom=29696, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15L1K40AS', magic=0xf4d5, total=62464, code=40960, eeprom=21504, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15L1K48AS', magic=0xf4d6, total=62464, code=49152, eeprom=13312, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15L1K56AS', magic=0xf4d7, total=62464, code=57344, eeprom=5120, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15L1K60AS', magic=0xf4d8, total=62464, code=61440, eeprom=1024, iap=False, calibrate=True, mcs251=False), + MCUModel(name='IAP15L1K61AS', magic=0xf499, total=62464, code=62464, eeprom=0, iap=True, calibrate=True, mcs251=False), + MCUModel(name='IRC15L1K63AS', magic=0xf490, total=65024, code=65024, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='STC15F1K08S', magic=0xf461, total=62464, code=8192, eeprom=54272, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15F1K16S', magic=0xf462, total=62464, code=16384, eeprom=46080, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15F1K24S', magic=0xf463, total=62464, code=24576, eeprom=37888, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15F1K32S', magic=0xf464, total=62464, code=32768, eeprom=29696, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15F1K40S', magic=0xf465, total=62464, code=40960, eeprom=21504, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15F1K48S', magic=0xf466, total=62464, code=49152, eeprom=13312, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15F1K56S', magic=0xf467, total=62464, code=57344, eeprom=5120, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15F1K60S', magic=0xf468, total=62464, code=61440, eeprom=1024, iap=False, calibrate=True, mcs251=False), + MCUModel(name='IAP15F1K61S', magic=0xf429, total=62464, code=62464, eeprom=0, iap=True, calibrate=True, mcs251=False), + MCUModel(name='IRC15F1K63S', magic=0xf420, total=65024, code=65024, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='STC15L1K08S', magic=0xf4e1, total=62464, code=8192, eeprom=54272, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15L1K16S', magic=0xf4e2, total=62464, code=16384, eeprom=46080, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15L1K24S', magic=0xf4e3, total=62464, code=24576, eeprom=37888, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15L1K32S', magic=0xf4e4, total=62464, code=32768, eeprom=29696, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15L1K40S', magic=0xf4e5, total=62464, code=40960, eeprom=21504, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15L1K48S', magic=0xf4e6, total=62464, code=49152, eeprom=13312, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15L1K56S', magic=0xf4e7, total=62464, code=57344, eeprom=5120, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15L1K60S', magic=0xf4e8, total=62464, code=61440, eeprom=1024, iap=False, calibrate=True, mcs251=False), + MCUModel(name='IAP15L1K61S', magic=0xf4a9, total=62464, code=62464, eeprom=0, iap=True, calibrate=True, mcs251=False), + MCUModel(name='IRC15L1K63S', magic=0xf4a0, total=65024, code=65024, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='STC15F404AD', magic=0xf40a, total=13312, code=4096, eeprom=9216, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15F408AD', magic=0xf40b, total=13312, code=8192, eeprom=5120, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15F412AD', magic=0xf40c, total=13312, code=12288, eeprom=1024, iap=False, calibrate=True, mcs251=False), + MCUModel(name='IAP15F413AD', magic=0xf44d, total=13312, code=13312, eeprom=0, iap=True, calibrate=True, mcs251=False), + MCUModel(name='STC15L404AD', magic=0xf48a, total=13312, code=4096, eeprom=9216, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15L408AD', magic=0xf48b, total=13312, code=8192, eeprom=5120, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15L412AD', magic=0xf48c, total=13312, code=12288, eeprom=1024, iap=False, calibrate=True, mcs251=False), + MCUModel(name='IAP15L413AD', magic=0xf4cd, total=13312, code=13312, eeprom=0, iap=True, calibrate=True, mcs251=False), + MCUModel(name='STC15W101SW', magic=0xf501, total=5120, code=1024, eeprom=4096, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15W102SW', magic=0xf502, total=5120, code=2048, eeprom=3072, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15W103SW', magic=0xf503, total=5120, code=3072, eeprom=2048, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15W104SW', magic=0xf504, total=5120, code=4096, eeprom=1024, iap=False, calibrate=True, mcs251=False), + MCUModel(name='IAP15W105SW', magic=0xf545, total=5120, code=5120, eeprom=0, iap=True, calibrate=True, mcs251=False), + MCUModel(name='STC15W101S', magic=0xf508, total=5120, code=1024, eeprom=4096, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15W102S', magic=0xf50a, total=5120, code=2048, eeprom=3072, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15W103S', magic=0xf50b, total=5120, code=3072, eeprom=2048, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15W104S', magic=0xf50c, total=5120, code=4096, eeprom=1024, iap=False, calibrate=True, mcs251=False), + MCUModel(name='IAP15W105S', magic=0xf54d, total=5120, code=5120, eeprom=0, iap=True, calibrate=True, mcs251=False), + MCUModel(name='STC15W201S', magic=0xf511, total=5120, code=1024, eeprom=4096, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15W202S', magic=0xf512, total=5120, code=2048, eeprom=3072, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15W203S', magic=0xf513, total=5120, code=3072, eeprom=2048, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15W204S', magic=0xf514, total=5120, code=4096, eeprom=1024, iap=False, calibrate=True, mcs251=False), + MCUModel(name='IAP15W205S', magic=0xf555, total=5120, code=5120, eeprom=0, iap=True, calibrate=True, mcs251=False), + MCUModel(name='IRC15W207S', magic=0xf556, total=7680, code=7680, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='STC15W1K16S', magic=0xf516, total=29696, code=16384, eeprom=13312, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15W1K24S', magic=0xf517, total=29696, code=24576, eeprom=5120, iap=False, calibrate=True, mcs251=False), + MCUModel(name='IAP15W1K29S', magic=0xf558, total=29696, code=29696, eeprom=0, iap=True, calibrate=True, mcs251=False), + MCUModel(name='IRC15W1K31S', magic=0xf559, total=32256, code=32256, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='STC15W404S', magic=0xf519, total=13312, code=4096, eeprom=9216, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15W408S', magic=0xf51a, total=13312, code=8192, eeprom=5120, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15W410S', magic=0xf51b, total=13312, code=10240, eeprom=3072, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15W412S', magic=0xf51c, total=13312, code=12288, eeprom=1024, iap=False, calibrate=True, mcs251=False), + MCUModel(name='IAP15W413S', magic=0xf55d, total=13312, code=13312, eeprom=0, iap=True, calibrate=True, mcs251=False), + MCUModel(name='IRC15W415S', magic=0xf55e, total=15872, code=15872, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='STC15W401AS', magic=0xf52a, total=13312, code=1024, eeprom=12288, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15W402AS', magic=0xf52b, total=13312, code=2048, eeprom=11264, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15W404AS', magic=0xf51e, total=13312, code=4096, eeprom=9216, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15W408AS', magic=0xf51f, total=13312, code=8192, eeprom=5120, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15W410AS', magic=0xf520, total=13312, code=10240, eeprom=3072, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15W412AS', magic=0xf521, total=13312, code=12288, eeprom=1024, iap=False, calibrate=True, mcs251=False), + MCUModel(name='IAP15W413AS', magic=0xf562, total=13312, code=13312, eeprom=0, iap=True, calibrate=True, mcs251=False), + MCUModel(name='IAP15W414AS', magic=0xf564, total=14336, code=14336, eeprom=0, iap=True, calibrate=True, mcs251=False), + MCUModel(name='IRC15W415AS', magic=0xf563, total=15872, code=15872, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='STC15W1K08PWM', magic=0xf52d, total=60416, code=8192, eeprom=52224, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15W1K16PWM', magic=0xf52e, total=60416, code=16384, eeprom=44032, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15W1K20S', magic=0xf52f, total=60416, code=20480, eeprom=39936, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15W1K20AS', magic=0xf534, total=60416, code=20480, eeprom=39936, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15W1K32AS', magic=0xf535, total=60416, code=32768, eeprom=27648, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15W1K48AS', magic=0xf536, total=60416, code=49152, eeprom=11264, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15W2K32S2', magic=0xf530, total=60416, code=32768, eeprom=27648, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15W2K48S2', magic=0xf531, total=60416, code=49152, eeprom=11264, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15W2K32AS', magic=0xf532, total=60416, code=32768, eeprom=27648, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15W2K48AS', magic=0xf533, total=60416, code=49152, eeprom=11264, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15W4K16S4', magic=0xf523, total=60416, code=16384, eeprom=44032, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15W4K24S4', magic=0xf524, total=60416, code=24576, eeprom=35840, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15W4K32S4', magic=0xf525, total=60416, code=32768, eeprom=27648, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15W4K40S4', magic=0xf526, total=60416, code=40960, eeprom=19456, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15W4K48S4', magic=0xf527, total=60416, code=49152, eeprom=11264, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15W4K56S4', magic=0xf528, total=60416, code=57344, eeprom=3072, iap=False, calibrate=True, mcs251=False), + MCUModel(name='IAP15W4K58S4', magic=0xf569, total=60416, code=59392, eeprom=0, iap=True, calibrate=True, mcs251=False), + MCUModel(name='IAP15W4K58S4-Student', magic=0xf56d, total=60416, code=59392, eeprom=0, iap=True, calibrate=True, mcs251=False), + MCUModel(name='IAP15W4K61S4', magic=0xf56a, total=62464, code=62464, eeprom=0, iap=True, calibrate=True, mcs251=False), + MCUModel(name='IAP15W4K62S4', magic=0xf56e, total=63488, code=63488, eeprom=0, iap=True, calibrate=True, mcs251=False), + MCUModel(name='IRC15W4K63S4', magic=0xf56b, total=65024, code=65024, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='U8W', magic=0xf56c, total=62464, code=62464, eeprom=0, iap=True, calibrate=True, mcs251=False), + MCUModel(name='STC15W100', magic=0xf2a0, total=5120, code=512, eeprom=0, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15W101', magic=0xf2a1, total=5120, code=1024, eeprom=4096, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15W102', magic=0xf2a2, total=5120, code=2048, eeprom=3072, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15W103', magic=0xf2a3, total=5120, code=3072, eeprom=2048, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15W104', magic=0xf2a4, total=5120, code=4096, eeprom=1024, iap=False, calibrate=True, mcs251=False), + MCUModel(name='IAP15W105', magic=0xf2a5, total=5120, code=5120, eeprom=0, iap=True, calibrate=True, mcs251=False), + MCUModel(name='IRC15W107', magic=0xf2a6, total=7168, code=7168, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='STC15F100W', magic=0xf290, total=5120, code=512, eeprom=0, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15F101W', magic=0xf291, total=5120, code=1024, eeprom=4096, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15F102W', magic=0xf292, total=5120, code=2048, eeprom=3072, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15F103W', magic=0xf293, total=5120, code=3072, eeprom=2048, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15F104W', magic=0xf294, total=5120, code=4096, eeprom=1024, iap=False, calibrate=True, mcs251=False), + MCUModel(name='IAP15F105W', magic=0xf2b5, total=5120, code=5120, eeprom=0, iap=True, calibrate=True, mcs251=False), + MCUModel(name='IRC15F107W', magic=0xf2b6, total=7168, code=7168, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='STC15F100', magic=0xf298, total=5120, code=512, eeprom=0, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15F101', magic=0xf299, total=5120, code=1024, eeprom=4096, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15F102', magic=0xf29a, total=5120, code=2048, eeprom=3072, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15F103', magic=0xf29b, total=5120, code=3072, eeprom=2048, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15F104', magic=0xf29c, total=5120, code=4096, eeprom=1024, iap=False, calibrate=True, mcs251=False), + MCUModel(name='IAP15F105', magic=0xf2bd, total=5120, code=5120, eeprom=0, iap=True, calibrate=True, mcs251=False), + MCUModel(name='IRC15F107', magic=0xf2be, total=7168, code=7168, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='STC15L100W', magic=0xf2d0, total=5120, code=512, eeprom=0, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15L101W', magic=0xf2d1, total=5120, code=1024, eeprom=4096, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15L102W', magic=0xf2d2, total=5120, code=2048, eeprom=3072, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15L103W', magic=0xf2d3, total=5120, code=3072, eeprom=2048, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15L104W', magic=0xf2d4, total=5120, code=4096, eeprom=1024, iap=False, calibrate=True, mcs251=False), + MCUModel(name='IAP15L105W', magic=0xf2f5, total=5120, code=5120, eeprom=0, iap=True, calibrate=True, mcs251=False), + MCUModel(name='IRC15L107W', magic=0xf2f6, total=7168, code=7168, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='STC15L100', magic=0xf2d8, total=5120, code=512, eeprom=0, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15L101', magic=0xf2d9, total=5120, code=1024, eeprom=4096, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15L102', magic=0xf2da, total=5120, code=2048, eeprom=3072, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15L103', magic=0xf2db, total=5120, code=3072, eeprom=2048, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15L104', magic=0xf2dc, total=5120, code=4096, eeprom=1024, iap=False, calibrate=True, mcs251=False), + MCUModel(name='IAP15L105', magic=0xf2fd, total=5120, code=5120, eeprom=0, iap=True, calibrate=True, mcs251=False), + MCUModel(name='IRC15L107', magic=0xf2fe, total=7168, code=7168, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='STC15F104E', magic=0xf294, total=5120, code=4096, eeprom=1024, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15L104E', magic=0xf2d4, total=5120, code=4096, eeprom=1024, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC15F204EA', magic=0xf394, total=5120, code=4096, eeprom=1024, iap=False, calibrate=True, mcs251=False), + MCUModel(name='IAP15F205EA', magic=0xf3b5, total=5120, code=5120, eeprom=0, iap=True, calibrate=True, mcs251=False), + MCUModel(name='IRC15F207A', magic=0xf3b6, total=7168, code=7168, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='STC15L204EA', magic=0xf3d4, total=5120, code=4096, eeprom=1024, iap=False, calibrate=True, mcs251=False), + MCUModel(name='IAP15L205EA', magic=0xf3f5, total=5120, code=5120, eeprom=0, iap=True, calibrate=True, mcs251=False), + MCUModel(name='IRC15L207A', magic=0xf3f6, total=7168, code=7168, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='STC12H1K04', magic=0xf7b0, total=28672, code=4096, eeprom=24576, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC12H1K08', magic=0xf7b1, total=28672, code=8192, eeprom=20480, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC12H1K12', magic=0xf7b2, total=28672, code=12288, eeprom=16384, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC12H1K16', magic=0xf7b3, total=28672, code=16384, eeprom=12288, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC12H1K20', magic=0xf7b4, total=28672, code=20480, eeprom=8192, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC12H1K24', magic=0xf7b5, total=28672, code=24576, eeprom=4096, iap=False, calibrate=True, mcs251=False), + MCUModel(name='STC12H1K28', magic=0xf7b6, total=28672, code=28672, eeprom=0, iap=True, calibrate=True, mcs251=False), + MCUModel(name='STC12H1K33', magic=0xf7b7, total=33792, code=33792, eeprom=0, iap=True, calibrate=True, mcs251=False), + MCUModel(name='STC12C5A08S2', magic=0xd164, total=65536, code=8192, eeprom=55296, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12C5A16S2', magic=0xd168, total=65536, code=16384, eeprom=47104, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12C5A32S2', magic=0xd170, total=65536, code=32768, eeprom=30720, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12C5A40S2', magic=0xd174, total=65536, code=40960, eeprom=22528, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12C5A48S2', magic=0xd178, total=65536, code=49152, eeprom=14336, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12C5A52S2', magic=0xd17a, total=65536, code=53248, eeprom=10240, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12C5A56S2', magic=0xd17c, total=65536, code=57344, eeprom=6144, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12C5A60S2', magic=0xd17e, total=65536, code=61440, eeprom=2048, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12C5A08AD', magic=0xd144, total=65536, code=8192, eeprom=55296, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12C5A16AD', magic=0xd148, total=65536, code=16384, eeprom=47104, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12C5A32AD', magic=0xd150, total=65536, code=32768, eeprom=30720, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12C5A40AD', magic=0xd154, total=65536, code=40960, eeprom=22528, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12C5A48AD', magic=0xd158, total=65536, code=49152, eeprom=14336, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12C5A52AD', magic=0xd15a, total=65536, code=53248, eeprom=10240, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12C5A56AD', magic=0xd15c, total=65536, code=57344, eeprom=6144, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12C5A60AD', magic=0xd15e, total=65536, code=61440, eeprom=2048, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12C5A08CCP', magic=0xd124, total=65536, code=8192, eeprom=55296, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12C5A16CCP', magic=0xd128, total=65536, code=16384, eeprom=47104, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12C5A32CCP', magic=0xd130, total=65536, code=32768, eeprom=30720, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12C5A40CCP', magic=0xd134, total=65536, code=40960, eeprom=22528, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12C5A48CCP', magic=0xd138, total=65536, code=49152, eeprom=14336, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12C5A52CCP', magic=0xd13a, total=65536, code=53248, eeprom=10240, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12C5A56CCP', magic=0xd13c, total=65536, code=57344, eeprom=6144, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12C5A60CCP', magic=0xd13e, total=65536, code=61440, eeprom=2048, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12C5A08X', magic=0xd104, total=65536, code=8192, eeprom=0, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12C5A16X', magic=0xd108, total=65536, code=16384, eeprom=0, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12C5A32X', magic=0xd110, total=65536, code=32768, eeprom=0, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12C5A40X', magic=0xd114, total=65536, code=40960, eeprom=0, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12C5A48X', magic=0xd118, total=65536, code=49152, eeprom=0, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12C5A52X', magic=0xd11a, total=65536, code=53248, eeprom=0, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12C5A56X', magic=0xd11c, total=65536, code=57344, eeprom=0, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12C5A60X', magic=0xd11e, total=65536, code=61440, eeprom=0, iap=False, calibrate=False, mcs251=False), + MCUModel(name='IAP12C5A08S2', magic=0xd163, total=65536, code=8192, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP12C5A16S2', magic=0xd167, total=65536, code=16384, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP12C5A32S2', magic=0xd16f, total=65536, code=32768, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP12C5A40S2', magic=0xd173, total=65536, code=40960, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP12C5A48S2', magic=0xd177, total=65536, code=49152, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP12C5A52S2', magic=0xd179, total=65536, code=53248, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP12C5A56S2', magic=0xd17b, total=65536, code=57344, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP12C5A60S2', magic=0xd17d, total=65536, code=61440, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP12C5A62S2', magic=0xd17f, total=65536, code=63488, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP12C5A08AD', magic=0xd143, total=65536, code=8192, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP12C5A16AD', magic=0xd147, total=65536, code=16384, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP12C5A32AD', magic=0xd14f, total=65536, code=32768, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP12C5A40AD', magic=0xd153, total=65536, code=40960, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP12C5A48AD', magic=0xd157, total=65536, code=49152, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP12C5A52AD', magic=0xd159, total=65536, code=53248, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP12C5A56AD', magic=0xd15b, total=65536, code=57344, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP12C5A60AD', magic=0xd15d, total=65536, code=61440, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP12C5A62AD', magic=0xd15f, total=65536, code=63488, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP12C5A08CCP', magic=0xd123, total=65536, code=8192, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP12C5A16CCP', magic=0xd127, total=65536, code=16384, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP12C5A32CCP', magic=0xd12f, total=65536, code=32768, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP12C5A40CCP', magic=0xd133, total=65536, code=40960, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP12C5A48CCP', magic=0xd137, total=65536, code=49152, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP12C5A52CCP', magic=0xd139, total=65536, code=53248, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP12C5A56CCP', magic=0xd13b, total=65536, code=57344, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP12C5A60CCP', magic=0xd13d, total=65536, code=61440, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP12C5A62CCP', magic=0xd13f, total=65536, code=63488, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP12C5A08', magic=0xd103, total=65536, code=8192, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP12C5A16', magic=0xd107, total=65536, code=16384, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP12C5A32', magic=0xd10f, total=65536, code=32768, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP12C5A40', magic=0xd113, total=65536, code=40960, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP12C5A48', magic=0xd117, total=65536, code=49152, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP12C5A52', magic=0xd119, total=65536, code=53248, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP12C5A56', magic=0xd11b, total=65536, code=57344, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP12C5A60', magic=0xd11d, total=65536, code=61440, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP12C5A62', magic=0xd11f, total=65536, code=63488, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='STC12LE5A08S2', magic=0xd1e4, total=65536, code=8192, eeprom=55296, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12LE5A16S2', magic=0xd1e8, total=65536, code=16384, eeprom=47104, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12LE5A32S2', magic=0xd1f0, total=65536, code=32768, eeprom=30720, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12LE5A40S2', magic=0xd1f4, total=65536, code=40960, eeprom=22528, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12LE5A48S2', magic=0xd1f8, total=65536, code=49152, eeprom=14336, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12LE5A52S2', magic=0xd1fa, total=65536, code=53248, eeprom=10240, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12LE5A56S2', magic=0xd1fc, total=65536, code=57344, eeprom=6144, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12LE5A60S2', magic=0xd1fe, total=65536, code=61440, eeprom=2048, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12LE5A08AD', magic=0xd1c4, total=65536, code=8192, eeprom=55296, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12LE5A16AD', magic=0xd1c8, total=65536, code=16384, eeprom=47104, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12LE5A32AD', magic=0xd1d0, total=65536, code=32768, eeprom=30720, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12LE5A40AD', magic=0xd1d4, total=65536, code=40960, eeprom=22528, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12LE5A48AD', magic=0xd1d8, total=65536, code=49152, eeprom=14336, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12LE5A52AD', magic=0xd1da, total=65536, code=53248, eeprom=10240, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12LE5A56AD', magic=0xd1dc, total=65536, code=57344, eeprom=6144, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12LE5A60AD', magic=0xd1de, total=65536, code=61440, eeprom=2048, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12LE5A08CCP', magic=0xd1a4, total=65536, code=8192, eeprom=55296, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12LE5A16CCP', magic=0xd1a8, total=65536, code=16384, eeprom=47104, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12LE5A32CCP', magic=0xd1b0, total=65536, code=32768, eeprom=30720, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12LE5A40CCP', magic=0xd1b4, total=65536, code=40960, eeprom=22528, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12LE5A48CCP', magic=0xd1b8, total=65536, code=49152, eeprom=14336, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12LE5A52CCP', magic=0xd1ba, total=65536, code=53248, eeprom=10240, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12LE5A56CCP', magic=0xd1bc, total=65536, code=57344, eeprom=6144, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12LE5A60CCP', magic=0xd1be, total=65536, code=61440, eeprom=2048, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12LE5A08X', magic=0xd184, total=65536, code=8192, eeprom=0, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12LE5A16X', magic=0xd188, total=65536, code=16384, eeprom=0, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12LE5A32X', magic=0xd190, total=65536, code=32768, eeprom=0, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12LE5A40X', magic=0xd194, total=65536, code=40960, eeprom=0, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12LE5A48X', magic=0xd198, total=65536, code=49152, eeprom=0, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12LE5A52X', magic=0xd19a, total=65536, code=53248, eeprom=0, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12LE5A56X', magic=0xd19c, total=65536, code=57344, eeprom=0, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12LE5A60X', magic=0xd19e, total=65536, code=61440, eeprom=0, iap=False, calibrate=False, mcs251=False), + MCUModel(name='IAP12LE5A08S2', magic=0xd1e3, total=65536, code=8192, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP12LE5A16S2', magic=0xd1e7, total=65536, code=16384, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP12LE5A32S2', magic=0xd1ef, total=65536, code=32768, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP12LE5A40S2', magic=0xd1f3, total=65536, code=40960, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP12LE5A48S2', magic=0xd1f7, total=65536, code=49152, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP12LE5A52S2', magic=0xd1f9, total=65536, code=53248, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP12LE5A56S2', magic=0xd1fb, total=65536, code=57344, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP12LE5A60S2', magic=0xd1fd, total=65536, code=61440, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP12LE5A62S2', magic=0xd1ff, total=65536, code=63488, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP12LE5A08AD', magic=0xd1c3, total=65536, code=8192, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP12LE5A16AD', magic=0xd1c7, total=65536, code=16384, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP12LE5A32AD', magic=0xd1cf, total=65536, code=32768, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP12LE5A40AD', magic=0xd1d3, total=65536, code=40960, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP12LE5A48AD', magic=0xd1d7, total=65536, code=49152, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP12LE5A52AD', magic=0xd1d9, total=65536, code=53248, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP12LE5A56AD', magic=0xd1db, total=65536, code=57344, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP12LE5A60AD', magic=0xd1dd, total=65536, code=61440, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP12LE5A62AD', magic=0xd1df, total=65536, code=63488, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP12LE5A08CCP', magic=0xd1a3, total=65536, code=8192, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP12LE5A16CCP', magic=0xd1a7, total=65536, code=16384, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP12LE5A32CCP', magic=0xd1af, total=65536, code=32768, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP12LE5A40CCP', magic=0xd1b3, total=65536, code=40960, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP12LE5A48CCP', magic=0xd1b7, total=65536, code=49152, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP12LE5A52CCP', magic=0xd1b9, total=65536, code=53248, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP12LE5A56CCP', magic=0xd1bb, total=65536, code=57344, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP12LE5A60CCP', magic=0xd1bd, total=65536, code=61440, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP12LE5A62CCP', magic=0xd1bf, total=65536, code=63488, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP12LE5A08', magic=0xd183, total=65536, code=8192, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP12LE5A16', magic=0xd187, total=65536, code=16384, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP12LE5A32', magic=0xd18f, total=65536, code=32768, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP12LE5A40', magic=0xd193, total=65536, code=40960, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP12LE5A48', magic=0xd197, total=65536, code=49152, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP12LE5A52', magic=0xd199, total=65536, code=53248, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP12LE5A56', magic=0xd19b, total=65536, code=57344, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP12LE5A60', magic=0xd19d, total=65536, code=61440, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP12LE5A62', magic=0xd19f, total=65536, code=63488, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='STC5A08S2-5V', magic=0xd160, total=65536, code=8192, eeprom=55296, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC5A16S2-5V', magic=0xd161, total=65536, code=16384, eeprom=47104, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC5A32S2-5V', magic=0xd162, total=65536, code=32768, eeprom=30720, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC5A40S2-5V', magic=0xd165, total=65536, code=40960, eeprom=22528, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC5A48S2-5V', magic=0xd166, total=65536, code=49152, eeprom=14336, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC5A52S2-5V', magic=0xd169, total=65536, code=53248, eeprom=10240, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC5A56S2-5V', magic=0xd16a, total=65536, code=57344, eeprom=6144, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC5A60S2-5V', magic=0xd16b, total=65536, code=61440, eeprom=2048, iap=False, calibrate=False, mcs251=False), + MCUModel(name='IAP5A62S2-5V', magic=0xd16c, total=65536, code=63488, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='STC5A08S2-3V', magic=0xd1e0, total=65536, code=8192, eeprom=55296, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC5A16S2-3V', magic=0xd1e1, total=65536, code=16384, eeprom=47104, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC5A32S2-3V', magic=0xd1e2, total=65536, code=32768, eeprom=30720, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC5A40S2-3V', magic=0xd1e5, total=65536, code=40960, eeprom=22528, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC5A48S2-3V', magic=0xd1e6, total=65536, code=49152, eeprom=14336, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC5A52S2-3V', magic=0xd1e9, total=65536, code=53248, eeprom=10240, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC5A56S2-3V', magic=0xd1ea, total=65536, code=57344, eeprom=6144, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC5A60S2-3V', magic=0xd1eb, total=65536, code=61440, eeprom=2048, iap=False, calibrate=False, mcs251=False), + MCUModel(name='IAP5A62S2-3V', magic=0xd1ec, total=65536, code=63488, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='STC10F02XE', magic=0xd262, total=16384, code=2048, eeprom=12288, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC10F04XE', magic=0xd264, total=16384, code=4096, eeprom=10240, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC10F06XE', magic=0xd266, total=16384, code=6144, eeprom=8192, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC10F08XE', magic=0xd268, total=16384, code=8192, eeprom=6144, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC10F10XE', magic=0xd26a, total=16384, code=10240, eeprom=4096, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC10F12XE', magic=0xd26c, total=16384, code=12288, eeprom=2048, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC10F02X', magic=0xd242, total=16384, code=2048, eeprom=0, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC10F04X', magic=0xd244, total=16384, code=4096, eeprom=0, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC10F06X', magic=0xd246, total=16384, code=6144, eeprom=0, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC10F08X', magic=0xd248, total=16384, code=8192, eeprom=0, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC10F10X', magic=0xd24a, total=16384, code=10240, eeprom=0, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC10F12X', magic=0xd24c, total=16384, code=12288, eeprom=0, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC10F02', magic=0xd202, total=16384, code=2048, eeprom=0, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC10F04', magic=0xd204, total=16384, code=4096, eeprom=0, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC10F06', magic=0xd206, total=16384, code=6144, eeprom=0, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC10F08', magic=0xd208, total=16384, code=8192, eeprom=0, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC10F10', magic=0xd20a, total=16384, code=10240, eeprom=0, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC10F12', magic=0xd20c, total=16384, code=12288, eeprom=0, iap=False, calibrate=False, mcs251=False), + MCUModel(name='IAP10F02XE', magic=0xd272, total=16384, code=2048, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP10F04XE', magic=0xd274, total=16384, code=4096, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP10F06XE', magic=0xd276, total=16384, code=6144, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP10F08XE', magic=0xd278, total=16384, code=8192, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP10F10XE', magic=0xd27a, total=16384, code=10240, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP10F12XE', magic=0xd27c, total=16384, code=12288, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP10F14X', magic=0xd27e, total=16384, code=14336, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP10F02', magic=0xd232, total=16384, code=2048, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP10F04', magic=0xd234, total=16384, code=4096, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP10F06', magic=0xd236, total=16384, code=6144, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP10F08', magic=0xd238, total=16384, code=8192, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP10F10', magic=0xd23a, total=16384, code=10240, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP10F12', magic=0xd23c, total=16384, code=12288, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP10F14', magic=0xd23e, total=16384, code=14336, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='STC10L02XE', magic=0xd2e2, total=16384, code=2048, eeprom=12288, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC10L04XE', magic=0xd2e4, total=16384, code=4096, eeprom=10240, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC10L06XE', magic=0xd2e6, total=16384, code=6144, eeprom=8192, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC10L08XE', magic=0xd2e8, total=16384, code=8192, eeprom=6144, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC10L10XE', magic=0xd2ea, total=16384, code=10240, eeprom=4096, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC10L12XE', magic=0xd2ec, total=16384, code=12288, eeprom=2048, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC10L02X', magic=0xd2c2, total=16384, code=2048, eeprom=0, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC10L04X', magic=0xd2c4, total=16384, code=4096, eeprom=0, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC10L06X', magic=0xd2c6, total=16384, code=6144, eeprom=0, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC10L08X', magic=0xd2c8, total=16384, code=8192, eeprom=0, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC10L10X', magic=0xd2ca, total=16384, code=10240, eeprom=0, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC10L12X', magic=0xd2cc, total=16384, code=12288, eeprom=0, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC10L02', magic=0xd282, total=16384, code=2048, eeprom=0, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC10L04', magic=0xd284, total=16384, code=4096, eeprom=0, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC10L06', magic=0xd286, total=16384, code=6144, eeprom=0, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC10L08', magic=0xd288, total=16384, code=8192, eeprom=0, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC10L10', magic=0xd28a, total=16384, code=10240, eeprom=0, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC10L12', magic=0xd28c, total=16384, code=12288, eeprom=0, iap=False, calibrate=False, mcs251=False), + MCUModel(name='IAP10L02XE', magic=0xd2f2, total=16384, code=2048, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP10L04XE', magic=0xd2f4, total=16384, code=4096, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP10L06XE', magic=0xd2f6, total=16384, code=6144, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP10L08XE', magic=0xd2f8, total=16384, code=8192, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP10L10XE', magic=0xd2fa, total=16384, code=10240, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP10L12XE', magic=0xd2fc, total=16384, code=12288, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP10L14X', magic=0xd2fe, total=16384, code=14336, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP10L02', magic=0xd2b2, total=16384, code=2048, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP10L04', magic=0xd2b4, total=16384, code=4096, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP10L06', magic=0xd2b6, total=16384, code=6144, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP10L08', magic=0xd2b8, total=16384, code=8192, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP10L10', magic=0xd2ba, total=16384, code=10240, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP10L12', magic=0xd2bc, total=16384, code=12288, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP10L14', magic=0xd2be, total=16384, code=14336, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='STC02XE-5V', magic=0xd260, total=16384, code=2048, eeprom=12288, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC04XE-5V', magic=0xd261, total=16384, code=4096, eeprom=10240, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC06XE-5V', magic=0xd263, total=16384, code=6144, eeprom=8192, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC08XE-5V', magic=0xd265, total=16384, code=8192, eeprom=6144, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC10XE-5V', magic=0xd267, total=16384, code=10240, eeprom=4096, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12XE-5V', magic=0xd269, total=16384, code=12288, eeprom=2048, iap=False, calibrate=False, mcs251=False), + MCUModel(name='IAP14X-5V', magic=0xd26b, total=16384, code=14336, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='STC02XE-3V', magic=0xd2e0, total=16384, code=2048, eeprom=12288, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC04XE-3V', magic=0xd2e1, total=16384, code=4096, eeprom=10240, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC06XE-3V', magic=0xd2e3, total=16384, code=6144, eeprom=8192, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC08XE-3V', magic=0xd2e5, total=16384, code=8192, eeprom=6144, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC10XE-3V', magic=0xd2e7, total=16384, code=10240, eeprom=4096, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12XE-3V', magic=0xd2e9, total=16384, code=12288, eeprom=2048, iap=False, calibrate=False, mcs251=False), + MCUModel(name='IAP14X-3V', magic=0xd2eb, total=16384, code=14336, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='STC11F01E', magic=0xe221, total=8192, code=1024, eeprom=5120, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC11F02E', magic=0xe222, total=8192, code=2048, eeprom=4096, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC11F03E', magic=0xe223, total=8192, code=3072, eeprom=3072, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC11F04E', magic=0xe224, total=8192, code=4096, eeprom=2048, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC11F05E', magic=0xe265, total=8192, code=5120, eeprom=1024, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC11F01', magic=0xe201, total=8192, code=1024, eeprom=0, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC11F02', magic=0xe202, total=8192, code=2048, eeprom=0, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC11F03', magic=0xe203, total=8192, code=3072, eeprom=0, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC11F04', magic=0xe204, total=8192, code=4096, eeprom=0, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC11F05', magic=0xe245, total=8192, code=5120, eeprom=0, iap=False, calibrate=False, mcs251=False), + MCUModel(name='IAP11F01E', magic=0xe231, total=8192, code=1024, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP11F02E', magic=0xe232, total=8192, code=2048, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP11F03E', magic=0xe233, total=8192, code=3072, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP11F04E', magic=0xe234, total=8192, code=4096, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP11F05E', magic=0xe275, total=8192, code=5120, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP11F01', magic=0xe211, total=8192, code=1024, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP11F02', magic=0xe212, total=8192, code=2048, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP11F03', magic=0xe213, total=8192, code=3072, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP11F04', magic=0xe214, total=8192, code=4096, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP11F05', magic=0xe255, total=8192, code=5120, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP11F06', magic=0xe276, total=8192, code=6144, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='STC11L01E', magic=0xe2a1, total=8192, code=1024, eeprom=5120, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC11L02E', magic=0xe2a2, total=8192, code=2048, eeprom=4096, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC11L03E', magic=0xe2a3, total=8192, code=3072, eeprom=3072, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC11L04E', magic=0xe2a4, total=8192, code=4096, eeprom=2048, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC11L05E', magic=0xe2e5, total=8192, code=5120, eeprom=1024, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC11L01', magic=0xe281, total=8192, code=1024, eeprom=0, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC11L02', magic=0xe282, total=8192, code=2048, eeprom=0, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC11L03', magic=0xe283, total=8192, code=3072, eeprom=0, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC11L04', magic=0xe284, total=8192, code=4096, eeprom=0, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC11L05', magic=0xe2c5, total=8192, code=5120, eeprom=0, iap=False, calibrate=False, mcs251=False), + MCUModel(name='IAP11L01E', magic=0xe2b1, total=8192, code=1024, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP11L02E', magic=0xe2b2, total=8192, code=2048, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP11L03E', magic=0xe2b3, total=8192, code=3072, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP11L04E', magic=0xe2b4, total=8192, code=4096, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP11L05E', magic=0xe2f5, total=8192, code=5120, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP11L01', magic=0xe291, total=8192, code=1024, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP11L02', magic=0xe292, total=8192, code=2048, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP11L03', magic=0xe293, total=8192, code=3072, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP11L04', magic=0xe294, total=8192, code=4096, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP11L05', magic=0xe2d5, total=8192, code=5120, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP11L06', magic=0xe2f6, total=8192, code=6144, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='STC01E-5V', magic=0xe220, total=8192, code=1024, eeprom=5120, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC02E-5V', magic=0xe226, total=8192, code=2048, eeprom=4096, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC03E-5V', magic=0xe227, total=8192, code=3072, eeprom=3072, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC04E-5V', magic=0xe228, total=8192, code=4096, eeprom=2048, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC05E-5V', magic=0xe229, total=8192, code=5120, eeprom=1024, iap=False, calibrate=False, mcs251=False), + MCUModel(name='IAP06-5V', magic=0xe22a, total=8192, code=6144, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='STC01E-3V', magic=0xe2a0, total=8192, code=1024, eeprom=5120, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC02E-3V', magic=0xe2a6, total=8192, code=2048, eeprom=4096, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC03E-3V', magic=0xe2a7, total=8192, code=3072, eeprom=3072, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC04E-3V', magic=0xe2a8, total=8192, code=4096, eeprom=2048, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC05E-3V', magic=0xe2a9, total=8192, code=5120, eeprom=1024, iap=False, calibrate=False, mcs251=False), + MCUModel(name='IAP06-3V', magic=0xe2aa, total=8192, code=6144, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='STC11F08XE', magic=0xd364, total=65536, code=8192, eeprom=55296, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC11F16XE', magic=0xd368, total=65536, code=16384, eeprom=47104, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC11F20XE', magic=0xd36a, total=65536, code=20480, eeprom=30720, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC11F32XE', magic=0xd370, total=65536, code=32768, eeprom=30720, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC11F40XE', magic=0xd374, total=65536, code=40960, eeprom=22528, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC11F48XE', magic=0xd378, total=65536, code=49152, eeprom=14336, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC11F52XE', magic=0xd37a, total=65536, code=53248, eeprom=10240, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC11F56XE', magic=0xd37c, total=65536, code=57344, eeprom=6144, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC11F60XE', magic=0xd37e, total=65536, code=61440, eeprom=2048, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC11F08X', magic=0xd344, total=65536, code=8192, eeprom=0, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC11F16X', magic=0xd348, total=65536, code=16384, eeprom=0, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC11F20X', magic=0xd34a, total=65536, code=20480, eeprom=0, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC11F32X', magic=0xd350, total=65536, code=32768, eeprom=0, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC11F40X', magic=0xd354, total=65536, code=40960, eeprom=0, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC11F48X', magic=0xd358, total=65536, code=49152, eeprom=0, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC11F52X', magic=0xd35a, total=65536, code=53248, eeprom=0, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC11F56X', magic=0xd35c, total=65536, code=57344, eeprom=0, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC11F60X', magic=0xd35e, total=65536, code=61440, eeprom=0, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC11F08', magic=0xd304, total=65536, code=8192, eeprom=0, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC11F16', magic=0xd308, total=65536, code=16384, eeprom=0, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC11F20', magic=0xd30a, total=65536, code=20480, eeprom=0, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC11F32', magic=0xd310, total=65536, code=32768, eeprom=0, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC11F40', magic=0xd314, total=65536, code=40960, eeprom=0, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC11F48', magic=0xd318, total=65536, code=49152, eeprom=0, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC11F52', magic=0xd31a, total=65536, code=53248, eeprom=0, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC11F56', magic=0xd31c, total=65536, code=57344, eeprom=0, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC11F60', magic=0xd31e, total=65536, code=61440, eeprom=0, iap=False, calibrate=False, mcs251=False), + MCUModel(name='IAP11F08XE', magic=0xd363, total=65536, code=8192, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP11F16XE', magic=0xd367, total=65536, code=16384, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP11F20XE', magic=0xd369, total=65536, code=20480, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP11F32XE', magic=0xd36f, total=65536, code=32768, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP11F40XE', magic=0xd373, total=65536, code=40960, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP11F48XE', magic=0xd377, total=65536, code=49152, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP11F52XE', magic=0xd379, total=65536, code=53248, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP11F56XE', magic=0xd37b, total=65536, code=57344, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP11F60XE', magic=0xd37d, total=65536, code=61440, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP11F08X', magic=0xd343, total=65536, code=8192, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP11F16X', magic=0xd347, total=65536, code=16384, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP11F20X', magic=0xd349, total=65536, code=20480, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP11F32X', magic=0xd34f, total=65536, code=32768, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP11F40X', magic=0xd353, total=65536, code=40960, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP11F48X', magic=0xd357, total=65536, code=49152, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP11F52X', magic=0xd359, total=65536, code=53248, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP11F56X', magic=0xd35b, total=65536, code=57344, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP11F60X', magic=0xd35d, total=65536, code=61440, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP11F62X', magic=0xd35f, total=65536, code=63488, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP11F08', magic=0xd303, total=65536, code=8192, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP11F16', magic=0xd307, total=65536, code=16384, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP11F20', magic=0xd309, total=65536, code=20480, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP11F32', magic=0xd30f, total=65536, code=32768, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP11F40', magic=0xd313, total=65536, code=40960, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP11F48', magic=0xd317, total=65536, code=49152, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP11F52', magic=0xd319, total=65536, code=53248, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP11F56', magic=0xd31b, total=65536, code=57344, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP11F60', magic=0xd31d, total=65536, code=61440, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP11F62', magic=0xd31f, total=65536, code=63488, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='STC11L08XE', magic=0xd3e4, total=65536, code=8192, eeprom=55296, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC11L16XE', magic=0xd3e8, total=65536, code=16384, eeprom=47104, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC11L20XE', magic=0xd3ea, total=65536, code=20480, eeprom=30720, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC11L32XE', magic=0xd3f0, total=65536, code=32768, eeprom=30720, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC11L40XE', magic=0xd3f4, total=65536, code=40960, eeprom=22528, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC11L48XE', magic=0xd3f8, total=65536, code=49152, eeprom=14336, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC11L52XE', magic=0xd3fa, total=65536, code=53248, eeprom=10240, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC11L56XE', magic=0xd3fc, total=65536, code=57344, eeprom=6144, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC11L60XE', magic=0xd3fe, total=65536, code=61440, eeprom=2048, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC11L08X', magic=0xd3c4, total=65536, code=8192, eeprom=0, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC11L16X', magic=0xd3c8, total=65536, code=16384, eeprom=0, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC11L20X', magic=0xd3ca, total=65536, code=20480, eeprom=0, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC11L32X', magic=0xd3d0, total=65536, code=32768, eeprom=0, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC11L40X', magic=0xd3d4, total=65536, code=40960, eeprom=0, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC11L48X', magic=0xd3d8, total=65536, code=49152, eeprom=0, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC11L52X', magic=0xd3da, total=65536, code=53248, eeprom=0, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC11L56X', magic=0xd3dc, total=65536, code=57344, eeprom=0, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC11L60X', magic=0xd3de, total=65536, code=61440, eeprom=0, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC11L08', magic=0xd384, total=65536, code=8192, eeprom=0, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC11L16', magic=0xd388, total=65536, code=16384, eeprom=0, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC11L20', magic=0xd38a, total=65536, code=20480, eeprom=0, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC11L32', magic=0xd390, total=65536, code=32768, eeprom=0, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC11L40', magic=0xd394, total=65536, code=40960, eeprom=0, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC11L48', magic=0xd398, total=65536, code=49152, eeprom=0, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC11L52', magic=0xd39a, total=65536, code=53248, eeprom=0, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC11L56', magic=0xd39c, total=65536, code=57344, eeprom=0, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC11L60', magic=0xd39e, total=65536, code=61440, eeprom=0, iap=False, calibrate=False, mcs251=False), + MCUModel(name='IAP11L08XE', magic=0xd3e3, total=65536, code=8192, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP11L16XE', magic=0xd3e7, total=65536, code=16384, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP11L20XE', magic=0xd3e9, total=65536, code=20480, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP11L32XE', magic=0xd3ef, total=65536, code=32768, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP11L40XE', magic=0xd3f3, total=65536, code=40960, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP11L48XE', magic=0xd3f7, total=65536, code=49152, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP11L52XE', magic=0xd3f9, total=65536, code=53248, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP11L56XE', magic=0xd3fb, total=65536, code=57344, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP11L60XE', magic=0xd3fd, total=65536, code=61440, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP11L08X', magic=0xd3c3, total=65536, code=8192, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP11L16X', magic=0xd3c7, total=65536, code=16384, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP11L20X', magic=0xd3c9, total=65536, code=20480, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP11L32X', magic=0xd3cf, total=65536, code=32768, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP11L40X', magic=0xd3d3, total=65536, code=40960, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP11L48X', magic=0xd3d7, total=65536, code=49152, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP11L52X', magic=0xd3d9, total=65536, code=53248, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP11L56X', magic=0xd3db, total=65536, code=57344, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP11L60X', magic=0xd3dd, total=65536, code=61440, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP11L62X', magic=0xd3df, total=65536, code=63488, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP11L08', magic=0xd383, total=65536, code=8192, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP11L16', magic=0xd387, total=65536, code=16384, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP11L20', magic=0xd389, total=65536, code=20480, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP11L32', magic=0xd38f, total=65536, code=32768, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP11L40', magic=0xd393, total=65536, code=40960, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP11L48', magic=0xd397, total=65536, code=49152, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP11L52', magic=0xd399, total=65536, code=53248, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP11L56', magic=0xd39b, total=65536, code=57344, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP11L60', magic=0xd39d, total=65536, code=61440, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='IAP11L62', magic=0xd39f, total=65536, code=63488, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='STC08XE-5V', magic=0xd360, total=65536, code=8192, eeprom=55296, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC16XE-5V', magic=0xd361, total=65536, code=16384, eeprom=47104, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC20XE-5V', magic=0xd362, total=65536, code=20480, eeprom=30720, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC32XE-5V', magic=0xd365, total=65536, code=32768, eeprom=30720, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC40XE-5V', magic=0xd366, total=65536, code=40960, eeprom=22528, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC48XE-5V', magic=0xd36b, total=65536, code=49152, eeprom=14336, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC52XE-5V', magic=0xd36c, total=65536, code=53248, eeprom=10240, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC56XE-5V', magic=0xd36d, total=65536, code=57344, eeprom=6144, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC60XE-5V', magic=0xd36e, total=65536, code=61440, eeprom=2048, iap=False, calibrate=False, mcs251=False), + MCUModel(name='IAP62X-5V', magic=0xd371, total=65536, code=63488, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='STC08XE-3V', magic=0xd3e0, total=65536, code=8192, eeprom=55296, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC16XE-3V', magic=0xd3e1, total=65536, code=16384, eeprom=47104, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC20XE-3V', magic=0xd3e2, total=65536, code=20480, eeprom=30720, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC32XE-3V', magic=0xd3e5, total=65536, code=32768, eeprom=30720, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC40XE-3V', magic=0xd3e6, total=65536, code=40960, eeprom=22528, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC48XE-3V', magic=0xd3eb, total=65536, code=49152, eeprom=14336, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC52XE-3V', magic=0xd3ec, total=65536, code=53248, eeprom=10240, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC56XE-3V', magic=0xd3ed, total=65536, code=57344, eeprom=6144, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC60XE-3V', magic=0xd3ee, total=65536, code=61440, eeprom=2048, iap=False, calibrate=False, mcs251=False), + MCUModel(name='IAP62X-3V', magic=0xd3f1, total=65536, code=63488, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='STC12C5201AD', magic=0xe161, total=8192, code=1024, eeprom=5120, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12C5202AD', magic=0xe162, total=8192, code=2048, eeprom=4096, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12C5203AD', magic=0xe163, total=8192, code=3072, eeprom=3072, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12C5204AD', magic=0xe164, total=8192, code=4096, eeprom=2048, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12C5205AD', magic=0xe165, total=8192, code=5120, eeprom=1024, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12C5206AD', magic=0xe166, total=8192, code=6144, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='STC12C5201PWM', magic=0xe121, total=8192, code=1024, eeprom=5120, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12C5202PWM', magic=0xe122, total=8192, code=2048, eeprom=4096, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12C5203PWM', magic=0xe123, total=8192, code=3072, eeprom=3072, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12C5204PWM', magic=0xe124, total=8192, code=4096, eeprom=2048, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12C5205PWM', magic=0xe125, total=8192, code=5120, eeprom=1024, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12C5206PWM', magic=0xe126, total=8192, code=6144, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='STC12C5201', magic=0xe101, total=8192, code=1024, eeprom=5120, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12C5202', magic=0xe102, total=8192, code=2048, eeprom=4096, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12C5203', magic=0xe103, total=8192, code=3072, eeprom=3072, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12C5204', magic=0xe104, total=8192, code=4096, eeprom=2048, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12C5205', magic=0xe105, total=8192, code=5120, eeprom=1024, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12C5206', magic=0xe106, total=8192, code=6144, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='STC12LE5201AD', magic=0xe1e1, total=8192, code=1024, eeprom=5120, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12LE5202AD', magic=0xe1e2, total=8192, code=2048, eeprom=4096, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12LE5203AD', magic=0xe1e3, total=8192, code=3072, eeprom=3072, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12LE5204AD', magic=0xe1e4, total=8192, code=4096, eeprom=2048, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12LE5205AD', magic=0xe1e5, total=8192, code=5120, eeprom=1024, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12LE5206AD', magic=0xe1e6, total=8192, code=6144, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='STC12LE5201PWM', magic=0xe1a1, total=8192, code=1024, eeprom=5120, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12LE5202PWM', magic=0xe1a2, total=8192, code=2048, eeprom=4096, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12LE5203PWM', magic=0xe1a3, total=8192, code=3072, eeprom=3072, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12LE5204PWM', magic=0xe1a4, total=8192, code=4096, eeprom=2048, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12LE5205PWM', magic=0xe1a5, total=8192, code=5120, eeprom=1024, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12LE5206PWM', magic=0xe1a6, total=8192, code=6144, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='STC12LE5201', magic=0xe181, total=8192, code=1024, eeprom=5120, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12LE5202', magic=0xe182, total=8192, code=2048, eeprom=4096, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12LE5203', magic=0xe183, total=8192, code=3072, eeprom=3072, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12LE5204', magic=0xe184, total=8192, code=4096, eeprom=2048, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12LE5205', magic=0xe185, total=8192, code=5120, eeprom=1024, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12LE5206', magic=0xe186, total=8192, code=6144, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='STC5201AD-5V', magic=0xe168, total=8192, code=1024, eeprom=5120, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC5202AD-5V', magic=0xe169, total=8192, code=2048, eeprom=4096, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC5203AD-5V', magic=0xe16a, total=8192, code=3072, eeprom=3072, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC5204AD-5V', magic=0xe16b, total=8192, code=4096, eeprom=2048, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC5205AD-5V', magic=0xe16c, total=8192, code=5120, eeprom=1024, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC5206AD-5V', magic=0xe16d, total=8192, code=6144, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='STC5201AD-3V', magic=0xe1e8, total=8192, code=1024, eeprom=5120, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC5202AD-3V', magic=0xe1e9, total=8192, code=2048, eeprom=4096, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC5203AD-3V', magic=0xe1ea, total=8192, code=3072, eeprom=3072, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC5204AD-3V', magic=0xe1eb, total=8192, code=4096, eeprom=2048, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC5205AD-3V', magic=0xe1ec, total=8192, code=5120, eeprom=1024, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC5206AD-3V', magic=0xe1ed, total=8192, code=6144, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='STC12C5601AD', magic=0xe661, total=32768, code=1024, eeprom=29696, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12C5602AD', magic=0xe662, total=32768, code=2048, eeprom=28672, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12C5603AD', magic=0xe663, total=32768, code=3072, eeprom=27648, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12C5604AD', magic=0xe664, total=32768, code=4096, eeprom=26624, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12C5605AD', magic=0xe665, total=32768, code=5120, eeprom=0, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12C5606AD', magic=0xe666, total=32768, code=6144, eeprom=24576, iap=True, calibrate=False, mcs251=False), + MCUModel(name='STC12C5608AD', magic=0xe668, total=32768, code=8192, eeprom=22528, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12C5612AD', magic=0xe66c, total=32768, code=12288, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='STC12C5616AD', magic=0xe670, total=32768, code=16384, eeprom=14336, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12C5620AD', magic=0xe674, total=32768, code=20480, eeprom=10240, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12C5624AD', magic=0xe678, total=32768, code=24576, eeprom=6144, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12C5628AD', magic=0xe67c, total=32768, code=28672, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='STC12C5630AD', magic=0xe67e, total=32768, code=30720, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='STC12C5601', magic=0xe601, total=32768, code=1024, eeprom=29696, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12C5602', magic=0xe602, total=32768, code=2048, eeprom=28672, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12C5603', magic=0xe603, total=32768, code=3072, eeprom=27648, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12C5604', magic=0xe604, total=32768, code=4096, eeprom=26624, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12C5605', magic=0xe605, total=32768, code=5120, eeprom=0, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12C5606', magic=0xe606, total=32768, code=6144, eeprom=24576, iap=True, calibrate=False, mcs251=False), + MCUModel(name='STC12C5608', magic=0xe608, total=32768, code=8192, eeprom=22528, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12C5612', magic=0xe60c, total=32768, code=12288, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='STC12C5616', magic=0xe610, total=32768, code=16384, eeprom=14336, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12C5620', magic=0xe614, total=32768, code=20480, eeprom=10240, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12C5624', magic=0xe618, total=32768, code=24576, eeprom=6144, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12C5628', magic=0xe61c, total=32768, code=28672, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='STC12C5630', magic=0xe61e, total=32768, code=30720, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='STC12LE5601AD', magic=0xe6e1, total=32768, code=1024, eeprom=29696, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12LE5602AD', magic=0xe6e2, total=32768, code=2048, eeprom=28672, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12LE5603AD', magic=0xe6e3, total=32768, code=3072, eeprom=27648, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12LE5604AD', magic=0xe6e4, total=32768, code=4096, eeprom=26624, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12LE5605AD', magic=0xe6e5, total=32768, code=5120, eeprom=0, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12LE5606AD', magic=0xe6e6, total=32768, code=6144, eeprom=24576, iap=True, calibrate=False, mcs251=False), + MCUModel(name='STC12LE5608AD', magic=0xe6e8, total=32768, code=8192, eeprom=22528, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12LE5612AD', magic=0xe6ec, total=32768, code=12288, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='STC12LE5616AD', magic=0xe6f0, total=32768, code=16384, eeprom=14336, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12LE5620AD', magic=0xe6f4, total=32768, code=20480, eeprom=10240, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12LE5624AD', magic=0xe6f8, total=32768, code=24576, eeprom=6144, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12LE5628AD', magic=0xe6fc, total=32768, code=28672, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='STC12LE5630AD', magic=0xe6fe, total=32768, code=30720, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='STC12LE5601', magic=0xe681, total=32768, code=1024, eeprom=29696, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12LE5602', magic=0xe682, total=32768, code=2048, eeprom=28672, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12LE5603', magic=0xe683, total=32768, code=3072, eeprom=27648, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12LE5604', magic=0xe684, total=32768, code=4096, eeprom=26624, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12LE5605', magic=0xe685, total=32768, code=5120, eeprom=0, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12LE5606', magic=0xe686, total=32768, code=6144, eeprom=24576, iap=True, calibrate=False, mcs251=False), + MCUModel(name='STC12LE5608', magic=0xe688, total=32768, code=8192, eeprom=22528, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12LE5612', magic=0xe68c, total=32768, code=12288, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='STC12LE5616', magic=0xe690, total=32768, code=16384, eeprom=14336, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12LE5620', magic=0xe694, total=32768, code=20480, eeprom=10240, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12LE5624', magic=0xe698, total=32768, code=24576, eeprom=6144, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12LE5628', magic=0xe69c, total=32768, code=28672, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='STC12LE5630', magic=0xe69e, total=32768, code=30720, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='STC608AD-5V', magic=0xe667, total=32768, code=8192, eeprom=22528, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC616AD-5V', magic=0xe66a, total=32768, code=16384, eeprom=14336, iap=False, calibrate=False, mcs251=False), + MCUModel(name='IAP616AD-5V', magic=0xe669, total=32768, code=16384, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='STC608AD-3V', magic=0xe6e7, total=32768, code=8192, eeprom=22528, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC616AD-3V', magic=0xe6ea, total=32768, code=16384, eeprom=14336, iap=False, calibrate=False, mcs251=False), + MCUModel(name='IAP616AD-3V', magic=0xe6e9, total=32768, code=16384, eeprom=0, iap=True, calibrate=False, mcs251=False), + MCUModel(name='STC12C5401AD', magic=0xe061, total=32768, code=1024, eeprom=12288, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12C5402AD', magic=0xe062, total=32768, code=2048, eeprom=12288, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12C5404AD', magic=0xe064, total=32768, code=4096, eeprom=12288, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12C5406AD', magic=0xe066, total=32768, code=6144, eeprom=12288, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12C5408AD', magic=0xe068, total=32768, code=8192, eeprom=12288, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12C5410AD', magic=0xe06a, total=32768, code=10240, eeprom=12288, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12C5412AD', magic=0xe06c, total=32768, code=12288, eeprom=12288, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12C5416AD', magic=0xe070, total=32768, code=16384, eeprom=12288, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12C5420AD', magic=0xe074, total=32768, code=20480, eeprom=12288, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12C5424AD', magic=0xe078, total=32768, code=24576, eeprom=12288, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12C5428AD', magic=0xe07c, total=32768, code=28672, eeprom=12288, iap=True, calibrate=False, mcs251=False), + MCUModel(name='STC12C5401', magic=0xe001, total=32768, code=1024, eeprom=12288, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12C5402', magic=0xe002, total=32768, code=2048, eeprom=12288, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12C5404', magic=0xe004, total=32768, code=4096, eeprom=12288, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12C5406', magic=0xe006, total=32768, code=6144, eeprom=12288, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12C5408', magic=0xe008, total=32768, code=8192, eeprom=12288, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12C5410', magic=0xe00a, total=32768, code=10240, eeprom=12288, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12C5412', magic=0xe00c, total=32768, code=12288, eeprom=12288, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12C5416', magic=0xe010, total=32768, code=16384, eeprom=12288, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12C5420', magic=0xe014, total=32768, code=20480, eeprom=12288, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12C5424', magic=0xe018, total=32768, code=24576, eeprom=12288, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12C5428', magic=0xe01c, total=32768, code=28672, eeprom=12288, iap=True, calibrate=False, mcs251=False), + MCUModel(name='STC12LE5401AD', magic=0xe0e1, total=32768, code=1024, eeprom=12288, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12LE5402AD', magic=0xe0e2, total=32768, code=2048, eeprom=12288, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12LE5404AD', magic=0xe0e4, total=32768, code=4096, eeprom=12288, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12LE5406AD', magic=0xe0e6, total=32768, code=6144, eeprom=12288, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12LE5408AD', magic=0xe0e8, total=32768, code=8192, eeprom=12288, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12LE5410AD', magic=0xe0ea, total=32768, code=10240, eeprom=12288, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12LE5412AD', magic=0xe0ec, total=32768, code=12288, eeprom=12288, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12LE5416AD', magic=0xe0f0, total=32768, code=16384, eeprom=12288, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12LE5420AD', magic=0xe0f4, total=32768, code=20480, eeprom=12288, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12LE5424AD', magic=0xe0f8, total=32768, code=24576, eeprom=12288, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12LE5428AD', magic=0xe0fc, total=32768, code=28672, eeprom=12288, iap=True, calibrate=False, mcs251=False), + MCUModel(name='STC12LE5401', magic=0xe081, total=32768, code=1024, eeprom=12288, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12LE5402', magic=0xe082, total=32768, code=2048, eeprom=12288, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12LE5404', magic=0xe084, total=32768, code=4096, eeprom=12288, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12LE5406', magic=0xe086, total=32768, code=6144, eeprom=12288, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12LE5408', magic=0xe088, total=32768, code=8192, eeprom=12288, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12LE5410', magic=0xe08a, total=32768, code=10240, eeprom=12288, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12LE5412', magic=0xe08c, total=32768, code=12288, eeprom=12288, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12LE5416', magic=0xe090, total=32768, code=16384, eeprom=12288, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12LE5420', magic=0xe094, total=32768, code=20480, eeprom=12288, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12LE5424', magic=0xe098, total=32768, code=24576, eeprom=12288, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12LE5428', magic=0xe09c, total=32768, code=28672, eeprom=12288, iap=True, calibrate=False, mcs251=False), + MCUModel(name='STC12C1052AD', magic=0xf211, total=8192, code=1024, eeprom=5120, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12C2052AD', magic=0xf212, total=8192, code=2048, eeprom=4096, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12C3052AD', magic=0xf213, total=8192, code=3072, eeprom=3072, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12C4052AD', magic=0xf214, total=8192, code=4096, eeprom=2048, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12C5052AD', magic=0xf215, total=8192, code=5120, eeprom=1024, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12C1052', magic=0xf201, total=8192, code=1024, eeprom=5120, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12C2052', magic=0xf202, total=8192, code=2048, eeprom=4096, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12C3052', magic=0xf203, total=8192, code=3072, eeprom=3072, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12C4052', magic=0xf204, total=8192, code=4096, eeprom=2048, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12C5052', magic=0xf205, total=8192, code=5120, eeprom=1024, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12LE1052AD', magic=0xf231, total=8192, code=1024, eeprom=5120, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12LE2052AD', magic=0xf232, total=8192, code=2048, eeprom=4096, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12LE3052AD', magic=0xf233, total=8192, code=3072, eeprom=3072, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12LE4052AD', magic=0xf234, total=8192, code=4096, eeprom=2048, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12LE5052AD', magic=0xf235, total=8192, code=5120, eeprom=1024, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12LE1052', magic=0xf221, total=8192, code=1024, eeprom=5120, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12LE2052', magic=0xf222, total=8192, code=2048, eeprom=4096, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12LE3052', magic=0xf223, total=8192, code=3072, eeprom=3072, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12LE4052', magic=0xf224, total=8192, code=4096, eeprom=2048, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC12LE5052', magic=0xf225, total=8192, code=5120, eeprom=1024, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC89C51', magic=0xf050, total=16384, code=4096, eeprom=10240, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC89C52', magic=0xf051, total=16384, code=8192, eeprom=6144, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC89C53', magic=0xf052, total=16384, code=12288, eeprom=2048, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC89C14', magic=0xf053, total=16384, code=14336, eeprom=0, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC89LE51', magic=0xf060, total=16384, code=4096, eeprom=10240, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC89LE52', magic=0xf061, total=16384, code=8192, eeprom=6144, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC89LE53', magic=0xf062, total=16384, code=12288, eeprom=2048, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC89LE14', magic=0xf063, total=16384, code=14336, eeprom=0, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC89C54', magic=0xf1a0, total=65536, code=16384, eeprom=47104, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC89C58', magic=0xf1a1, total=65536, code=32768, eeprom=30720, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC89C510', magic=0xf1a2, total=65536, code=40960, eeprom=22528, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC89C512', magic=0xf1a3, total=65536, code=49152, eeprom=14336, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC89C514', magic=0xf1a4, total=65536, code=57344, eeprom=6144, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC89C516', magic=0xf1a5, total=65536, code=63488, eeprom=0, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC89LE54', magic=0xf1b0, total=65536, code=16384, eeprom=47104, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC89LE58', magic=0xf1b1, total=65536, code=32768, eeprom=30720, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC89LE510', magic=0xf1b2, total=65536, code=40960, eeprom=22528, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC89LE512', magic=0xf1b3, total=65536, code=49152, eeprom=14336, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC89LE514', magic=0xf1b4, total=65536, code=57344, eeprom=6144, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC89LE516', magic=0xf1b5, total=65536, code=63488, eeprom=0, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC89C51RC/LE51RC', magic=0xf001, total=16384, code=4096, eeprom=10240, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC89C52RC/LE52RC', magic=0xf002, total=16384, code=8192, eeprom=6144, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC89C53RC/LE53RC', magic=0xf004, total=16384, code=14336, eeprom=0, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC89C06RC/LE06RC', magic=0xf006, total=16384, code=6144, eeprom=8192, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC89C07RC/LE07RC', magic=0xf007, total=16384, code=7168, eeprom=7168, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC89C10RC/LE10RC', magic=0xf00a, total=16384, code=10240, eeprom=4096, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC89C12RC/LE12RC', magic=0xf00c, total=16384, code=12288, eeprom=2048, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC89C51RD+/LE51RD+', magic=0xf101, total=65536, code=4096, eeprom=59392, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC89C52RD+/LE52RD+', magic=0xf102, total=65536, code=8192, eeprom=55296, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC89C54RD+/LE54RD+', magic=0xf104, total=65536, code=16384, eeprom=47104, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC89C55RD+/LE55RD+', magic=0xf105, total=65536, code=20480, eeprom=43008, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC89C58RD+/LE58RD+', magic=0xf108, total=65536, code=32768, eeprom=30720, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC89C510RD+/LE510RD+', magic=0xf10a, total=65536, code=40960, eeprom=22528, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC89C512RD+/LE512RD+', magic=0xf10c, total=65536, code=49152, eeprom=14336, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC89C513RD+/LE513RD+', magic=0xf10d, total=65536, code=53248, eeprom=10240, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC89C514RD+/LE514RD+', magic=0xf10e, total=65536, code=57344, eeprom=6144, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC89C516RD+/LE516RD+', magic=0xf110, total=65536, code=63488, eeprom=0, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC89C516RD/LV516RD', magic=0xffff, total=65536, code=65536, eeprom=0, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC90C51RC', magic=0xf021, total=16384, code=4096, eeprom=10240, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC90C52RC', magic=0xf022, total=16384, code=8192, eeprom=6144, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC90C53RC', magic=0xf024, total=16384, code=14336, eeprom=0, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC90C06RC', magic=0xf026, total=16384, code=6144, eeprom=8192, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC90C07RC', magic=0xf027, total=16384, code=7168, eeprom=7168, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC90C10RC', magic=0xf02a, total=16384, code=10240, eeprom=4096, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC90C12RC', magic=0xf02c, total=16384, code=12288, eeprom=2048, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC90LE51RC', magic=0xf041, total=16384, code=4096, eeprom=10240, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC90LE52RC', magic=0xf042, total=16384, code=8192, eeprom=6144, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC90LE53RC', magic=0xf044, total=16384, code=14336, eeprom=0, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC90LE06RC', magic=0xf046, total=16384, code=6144, eeprom=8192, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC90LE07RC', magic=0xf047, total=16384, code=7168, eeprom=7168, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC90LE10RC', magic=0xf04a, total=16384, code=10240, eeprom=4096, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC90LE12RC', magic=0xf04c, total=16384, code=12288, eeprom=2048, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC90C51RD+', magic=0xf121, total=65536, code=4096, eeprom=59392, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC90C52RD+', magic=0xf122, total=65536, code=8192, eeprom=55296, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC90C54RD+', magic=0xf124, total=65536, code=16384, eeprom=47104, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC90C55RD+', magic=0xf125, total=65536, code=20480, eeprom=43008, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC90C58RD+', magic=0xf128, total=65536, code=32768, eeprom=30720, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC90C510RD+', magic=0xf12a, total=65536, code=40960, eeprom=22528, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC90C512RD+', magic=0xf12c, total=65536, code=49152, eeprom=14336, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC90C513RD+', magic=0xf12d, total=65536, code=53248, eeprom=10240, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC90C514RD+', magic=0xf12e, total=65536, code=57344, eeprom=6144, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC90C516RD+', magic=0xf130, total=65536, code=63488, eeprom=0, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC90LE51RD+', magic=0xf141, total=65536, code=4096, eeprom=59392, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC90LE52RD+', magic=0xf142, total=65536, code=8192, eeprom=55296, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC90LE54RD+', magic=0xf144, total=65536, code=16384, eeprom=47104, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC90LE55RD+', magic=0xf145, total=65536, code=20480, eeprom=43008, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC90LE58RD+', magic=0xf148, total=65536, code=32768, eeprom=30720, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC90LE510RD+', magic=0xf14a, total=65536, code=40960, eeprom=22528, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC90LE512RD+', magic=0xf14c, total=65536, code=49152, eeprom=14336, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC90LE513RD+', magic=0xf14d, total=65536, code=53248, eeprom=10240, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC90LE514RD+', magic=0xf14e, total=65536, code=57344, eeprom=6144, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC90LE516RD+', magic=0xf150, total=65536, code=63488, eeprom=0, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC90C51AD', magic=0xf161, total=65536, code=4096, eeprom=59392, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC90C52AD', magic=0xf162, total=65536, code=8192, eeprom=55296, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC90C54AD', magic=0xf164, total=65536, code=16384, eeprom=47104, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC90C55AD', magic=0xf165, total=65536, code=20480, eeprom=43008, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC90C58AD', magic=0xf168, total=65536, code=32768, eeprom=30720, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC90C510AD', magic=0xf16a, total=65536, code=40960, eeprom=22528, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC90C512AD', magic=0xf16c, total=65536, code=49152, eeprom=14336, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC90C513AD', magic=0xf16d, total=65536, code=53248, eeprom=10240, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC90C514AD', magic=0xf16e, total=65536, code=57344, eeprom=6144, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC90C516AD', magic=0xf170, total=65536, code=63488, eeprom=0, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC90LE51AD', magic=0xf181, total=65536, code=4096, eeprom=59392, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC90LE52AD', magic=0xf182, total=65536, code=8192, eeprom=55296, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC90LE54AD', magic=0xf184, total=65536, code=16384, eeprom=47104, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC90LE55AD', magic=0xf185, total=65536, code=20480, eeprom=43008, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC90LE58AD', magic=0xf188, total=65536, code=32768, eeprom=30720, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC90LE510AD', magic=0xf18a, total=65536, code=40960, eeprom=22528, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC90LE512AD', magic=0xf18c, total=65536, code=49152, eeprom=14336, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC90LE513AD', magic=0xf18d, total=65536, code=53248, eeprom=10240, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC90LE514AD', magic=0xf18e, total=65536, code=57344, eeprom=6144, iap=False, calibrate=False, mcs251=False), + MCUModel(name='STC90LE516AD', magic=0xf190, total=65536, code=63488, eeprom=0, iap=False, calibrate=False, mcs251=False), ) - @classmethod - def check_model(self, model): - # User reported bricked MCUs, GH #63 - if model.name.startswith("STC8G"): - raise ValueError("MCU model {} is blacklisted".format(model.name)) - @classmethod def find_model(self, magic): for model in self.models: if model.magic == magic: - self.check_model(model) return model raise NameError diff --git a/stcgal/options.py b/stcgal/options.py index 703f288..6437305 100644 --- a/stcgal/options.py +++ b/stcgal/options.py @@ -788,4 +788,4 @@ class Stc8Option(BaseOption): num_val = Utils.to_int(val) if num_val < 512 or num_val > 65024 or (num_val % 512) != 0: raise ValueError("must be between 512 and 65024 bytes and a multiple of 512 bytes") - self.msr[4] = num_val // 256 \ No newline at end of file + self.msr[4] = num_val // 256 diff --git a/stcgal/protocols.py b/stcgal/protocols.py index 52a4262..9bd12de 100644 --- a/stcgal/protocols.py +++ b/stcgal/protocols.py @@ -86,12 +86,15 @@ class StcBaseProtocol(ABC): self.mcu_bsl_version = "" self.options = None self.model = None + self.split_eeprom = None + self.split_code = None self.uid = None self.debug = False self.status_packet = None self.protocol_name = None self.progress = None self.progress_cb = self.progress_bar_cb + self.linearBaseAddress = 0 def progress_text_cb(self, current, written, maximum): print(current, written, maximum) @@ -133,7 +136,7 @@ class StcBaseProtocol(ABC): return packet[5:-1] @abstractmethod - def write_packet(self, packet_data): + def write_packet(self, packet_data, epilogue_len = 0): pass def read_packet(self): @@ -262,13 +265,23 @@ class StcBaseProtocol(ABC): def set_option(self, name, value): self.options.set_option(name, value) - def reset_device(self, resetcmd=False): + def reset_device(self, resetcmd=False, resetpin=False): if not resetcmd: print("Cycling power: ", end="") sys.stdout.flush() - self.ser.setDTR(True) - time.sleep(0.5) - self.ser.setDTR(False) + + if resetpin == "rts": + self.ser.setRTS(True) + else: + self.ser.setDTR(True) + + time.sleep(0.25) + + if resetpin == "rts": + self.ser.setRTS(False) + else: + self.ser.setDTR(False) + time.sleep(0.030) print("done") else: @@ -278,7 +291,7 @@ class StcBaseProtocol(ABC): print("Waiting for MCU: ", end="") sys.stdout.flush() - def connect(self, autoreset=False, resetcmd=False): + def connect(self, autoreset=False, resetcmd=False, resetpin=False): """Connect to MCU and initialize communication. Set up serial port, send sync sequence and get part info. @@ -297,7 +310,7 @@ class StcBaseProtocol(ABC): self.ser.flushInput() if autoreset: - self.reset_device(resetcmd) + self.reset_device(resetcmd, resetpin) else: print("Waiting for MCU, please cycle power: ", end="") sys.stdout.flush() @@ -377,7 +390,12 @@ class StcAutoProtocol(StcBaseProtocol): ("stc12", r"(STC|IAP)(10|11|12)\D"), ("stc15a", r"(STC|IAP)15[FL][012]0\d(E|EA|)$"), ("stc15", r"(STC|IAP|IRC)15\D"), - ("stc8", r"(STC|IAP|IRC)8")] + ("stc8d", r"STC8H(3|4|8)K"), + ("stc8d", r"STC32G"), + ("stc8d", r"STC8A8K\d\dD4"), + ("stc8g", r"STC8H"), + ("stc8g", r"STC8G"), + ("stc8", r"STC8\D")] for protocol_name, pattern in protocol_database: if re.match(pattern, self.model.name): @@ -392,7 +410,7 @@ class StcAutoProtocol(StcBaseProtocol): def initialize_status(self, status_packet): raise NotImplementedError - def write_packet(self, packet_data): + def write_packet(self, packet_data, epilogue_len = 0): raise NotImplementedError @@ -422,7 +440,7 @@ class Stc89Protocol(StcBaseProtocol): payload = StcBaseProtocol.extract_payload(self, packet) return payload[:-1] - def write_packet(self, packet_data): + def write_packet(self, packet_data, epilogue_len = 0): """Send packet to MCU. Constructs a packet with supplied payload and sends it to the MCU. @@ -817,7 +835,7 @@ class Stc12BaseProtocol(StcBaseProtocol): payload = StcBaseProtocol.extract_payload(self, packet) return payload[:-2] - def write_packet(self, packet_data): + def write_packet(self, packet_data, epilogue_len = 0): """Send packet to MCU. Constructs a packet with supplied payload and sends it to the MCU. @@ -835,6 +853,11 @@ class Stc12BaseProtocol(StcBaseProtocol): # checksum and end code packet += struct.pack(">H", sum(packet[2:]) & 0xffff) packet += self.PACKET_END + + i = 0 + while i < epilogue_len: + packet += bytes([0x66]) + i += 1 self.dump_packet(packet, receive=False) self.ser.write(packet) @@ -1561,156 +1584,6 @@ class Stc15Protocol(Stc15AProtocol): print("Target UID: %s" % Utils.hexstr(self.uid)) -class Stc8Protocol(Stc15Protocol): - """Protocol handler for STC8 series""" - - def __init__(self, port, handshake, baud, trim): - Stc15Protocol.__init__(self, port, handshake, baud, trim) - self.trim_divider = None - self.reference_voltage = None - self.mfg_date = () - - def initialize_options(self, status_packet): - """Initialize options""" - if len(status_packet) < 17: - raise StcProtocolException("invalid options in status packet") - - # create option state - self.options = Stc8Option(status_packet[9:12] + status_packet[15:17]) - self.options.print() - - def initialize_status(self, packet): - """Decode status packet and store basic MCU info""" - - if len(packet) < 39: - raise StcProtocolException("invalid status packet") - - self.mcu_clock_hz, = struct.unpack(">I", packet[1:5]) - self.external_clock = False - # all ones means no calibration - # new chips are shipped without any calibration - # XXX: somehow check if that still holds - if self.mcu_clock_hz == 0xffffffff: self.mcu_clock_hz = 0 - - # wakeup timer factory value - self.wakeup_freq, = struct.unpack(">H", packet[23:25]) - self.reference_voltage, = struct.unpack(">H", packet[35:37]) - self.mfg_date = ( - 2000 + Utils.decode_packed_bcd(packet[37]), - Utils.decode_packed_bcd(packet[38]), - Utils.decode_packed_bcd(packet[39]) - ) - - bl_version, bl_stepping = struct.unpack("BB", packet[17:19]) - bl_minor = packet[22] & 0x0f - self.mcu_bsl_version = "%d.%d.%d%s" % (bl_version >> 4, bl_version & 0x0f, - bl_minor, chr(bl_stepping)) - self.bsl_version = bl_version - - def print_mcu_info(self): - """Print additional STC8 info""" - super().print_mcu_info() - print("Target ref. voltage: %d mV" % self.reference_voltage) - print("Target mfg. date: %04d-%02d-%02d" % self.mfg_date) - - def calibrate(self): - """Calibrate selected user frequency frequency and switch to selected baudrate.""" - - # handle uncalibrated chips - if self.mcu_clock_hz == 0 and self.trim_frequency <= 0: - raise StcProtocolException("uncalibrated, please provide a trim value") - - # determine target counter - user_speed = self.trim_frequency - if user_speed <= 0: user_speed = self.mcu_clock_hz - target_user_count = round(user_speed / (self.baud_handshake/2)) - - # calibration, round 1 - print("Trimming frequency: ", end="") - sys.stdout.flush() - packet = bytes([0x00]) - packet += struct.pack(">B", 12) - packet += bytes([0x00, 0x00, 23*1, 0x00, 23*2, 0x00]) - packet += bytes([23*3, 0x00, 23*4, 0x00, 23*5, 0x00]) - packet += bytes([23*6, 0x00, 23*7, 0x00, 23*8, 0x00]) - packet += bytes([23*9, 0x00, 23*10, 0x00, 255, 0x00]) - self.write_packet(packet) - self.pulse(b"\xfe", timeout=1.0) - response = self.read_packet() - if len(response) < 2 or response[0] != 0x00: - raise StcProtocolException("incorrect magic in handshake packet") - - # select ranges and trim values - for divider in (1, 2, 3, 4, 5): - user_trim = self.choose_range(packet, response, target_user_count * divider) - if user_trim is not None: - self.trim_divider = divider - break - if user_trim is None: - raise StcProtocolException("frequency trimming unsuccessful") - - # calibration, round 2 - packet = bytes([0x00]) - packet += struct.pack(">B", 12) - for i in range(user_trim[0] - 1, user_trim[0] + 2): - packet += bytes([i & 0xff, 0x00]) - for i in range(user_trim[0] - 1, user_trim[0] + 2): - packet += bytes([i & 0xff, 0x01]) - for i in range(user_trim[0] - 1, user_trim[0] + 2): - packet += bytes([i & 0xff, 0x02]) - for i in range(user_trim[0] - 1, user_trim[0] + 2): - packet += bytes([i & 0xff, 0x03]) - self.write_packet(packet) - self.pulse(b"\xfe", timeout=1.0) - response = self.read_packet() - if len(response) < 2 or response[0] != 0x00: - raise StcProtocolException("incorrect magic in handshake packet") - - # select final values - user_trim, user_count = self.choose_trim(packet, response, target_user_count) - self.trim_value = user_trim - self.trim_frequency = round(user_count * (self.baud_handshake / 2) / self.trim_divider) - print("%.03f MHz" % (self.trim_frequency / 1E6)) - - # switch to programming frequency - print("Switching to %d baud: " % self.baud_transfer, end="") - sys.stdout.flush() - packet = bytes([0x01, 0x00, 0x00]) - bauds = self.baud_transfer * 4 - packet += struct.pack(">H", round(65536 - 24E6 / bauds)) - packet += bytes([user_trim[1], user_trim[0]]) - iap_wait = self.get_iap_delay(24E6) - packet += bytes([iap_wait]) - self.write_packet(packet) - response = self.read_packet() - if len(response) < 1 or response[0] != 0x01: - raise StcProtocolException("incorrect magic in handshake packet") - self.ser.baudrate = self.baud_transfer - - def build_options(self): - """Build a packet of option data from the current configuration.""" - - msr = self.options.get_msr() - packet = 40 * bytearray([0xff]) - packet[3] = 0 - packet[6] = 0 - packet[22] = 0 - packet[24:28] = struct.pack(">I", self.trim_frequency) - packet[28:30] = self.trim_value - packet[30] = self.trim_divider - packet[32] = msr[0] - packet[36:40] = msr[1:5] - return bytes(packet) - - def disconnect(self): - """Disconnect from MCU""" - - # reset mcu - packet = bytes([0xff]) - self.write_packet(packet) - self.ser.close() - print("Disconnected!") - class StcUsb15Protocol(Stc15Protocol): """USB should use large blocks""" PROGRAM_BLOCKSIZE = 128 @@ -1772,7 +1645,7 @@ class StcUsb15Protocol(Stc15Protocol): host2dev = usb.util.CTRL_TYPE_VENDOR | usb.util.CTRL_RECIPIENT_DEVICE | usb.util.CTRL_OUT self.dev.ctrl_transfer(host2dev, request, value, index, chunks) - def connect(self, autoreset=False, resetcmd=False): + def connect(self, autoreset=False, resetcmd=False, resetpin=False): """Connect to USB device and read info packet""" # USB support is optional. Provide an error if pyusb is not available. @@ -1874,3 +1747,399 @@ class StcUsb15Protocol(Stc15Protocol): if self.dev: self.write_packet(0xff) print("Disconnected!") + + +class Stc8Protocol(Stc15Protocol): + """Protocol handler for STC8 series""" + + def __init__(self, port, handshake, baud, trim): + Stc15Protocol.__init__(self, port, handshake, baud, trim) + self.trim_divider = None + self.reference_voltage = None + self.mfg_date = () + + def initialize_options(self, status_packet): + """Initialize options""" + if len(status_packet) < 17: + raise StcProtocolException("invalid options in status packet") + + # create option state + self.options = Stc8Option(status_packet[9:12] + status_packet[15:17]) + self.options.print() + + def initialize_status(self, packet): + """Decode status packet and store basic MCU info""" + + if len(packet) < 39: + raise StcProtocolException("invalid status packet") + + self.mcu_clock_hz, = struct.unpack(">I", packet[1:5]) + self.external_clock = False + # all ones means no calibration + # new chips are shipped without any calibration + # XXX: somehow check if that still holds + if self.mcu_clock_hz == 0xffffffff: self.mcu_clock_hz = 0 + + # wakeup timer factory value + self.wakeup_freq, = struct.unpack(">H", packet[23:25]) + self.reference_voltage, = struct.unpack(">H", packet[35:37]) + self.mfg_date = ( + 2000 + Utils.decode_packed_bcd(packet[37]), + Utils.decode_packed_bcd(packet[38]), + Utils.decode_packed_bcd(packet[39]) + ) + + bl_version, bl_stepping = struct.unpack("BB", packet[17:19]) + bl_minor = packet[22] & 0x0f + self.mcu_bsl_version = "%d.%d.%d%s" % (bl_version >> 4, bl_version & 0x0f, + bl_minor, chr(bl_stepping)) + self.bsl_version = bl_version + + def print_mcu_info(self): + """Print additional STC8 info""" + super().print_mcu_info() + print("Target ref. voltage: %d mV" % self.reference_voltage) + print("Target mfg. date: %04d-%02d-%02d" % self.mfg_date) + + def set_option(self, name, value): + super().set_option(name, value) + + def calibrate(self): + """Calibrate selected user frequency frequency and switch to selected baudrate.""" + + # handle uncalibrated chips + if self.mcu_clock_hz == 0 and self.trim_frequency <= 0: + raise StcProtocolException("uncalibrated, please provide a trim value") + + # determine target counter + user_speed = self.trim_frequency + if user_speed <= 0: user_speed = self.mcu_clock_hz + target_user_count = round(user_speed / (self.baud_handshake/2)) + + # calibration, round 1 + print("Trimming frequency: ", end="") + sys.stdout.flush() + packet = bytes([0x00]) + packet += struct.pack(">B", 12) + packet += bytes([0x00, 0x00, 23*1, 0x00, 23*2, 0x00]) + packet += bytes([23*3, 0x00, 23*4, 0x00, 23*5, 0x00]) + packet += bytes([23*6, 0x00, 23*7, 0x00, 23*8, 0x00]) + packet += bytes([23*9, 0x00, 23*10, 0x00, 255, 0x00]) + self.write_packet(packet) + self.pulse(b"\xfe", timeout=1.0) + response = self.read_packet() + if len(response) < 2 or response[0] != 0x00: + raise StcProtocolException("incorrect magic in handshake packet") + + # select ranges and trim values + for divider in (1, 2, 3, 4, 5): + user_trim = self.choose_range(packet, response, target_user_count * divider) + if user_trim is not None: + self.trim_divider = divider + break + if user_trim is None: + raise StcProtocolException("frequency trimming unsuccessful") + + # calibration, round 2 + packet = bytes([0x00]) + packet += struct.pack(">B", 12) + for i in range(user_trim[0] - 1, user_trim[0] + 2): + packet += bytes([i & 0xff, 0x00]) + for i in range(user_trim[0] - 1, user_trim[0] + 2): + packet += bytes([i & 0xff, 0x01]) + for i in range(user_trim[0] - 1, user_trim[0] + 2): + packet += bytes([i & 0xff, 0x02]) + for i in range(user_trim[0] - 1, user_trim[0] + 2): + packet += bytes([i & 0xff, 0x03]) + self.write_packet(packet) + self.pulse(b"\xfe", timeout=1.0) + response = self.read_packet() + if len(response) < 2 or response[0] != 0x00: + raise StcProtocolException("incorrect magic in handshake packet") + + # select final values + user_trim, user_count = self.choose_trim(packet, response, target_user_count) + self.trim_value = user_trim + self.trim_frequency = round(user_count * (self.baud_handshake / 2) / self.trim_divider) + print("%.03f MHz" % (self.trim_frequency / 1E6)) + + # switch to programming frequency + print("Switching to %d baud: " % self.baud_transfer, end="") + sys.stdout.flush() + packet = bytes([0x01, 0x00, 0x00]) + bauds = self.baud_transfer * 4 + packet += struct.pack(">H", round(65536 - 24E6 / bauds)) + packet += bytes([user_trim[1], user_trim[0]]) + iap_wait = self.get_iap_delay(24E6) + packet += bytes([iap_wait]) + self.write_packet(packet) + response = self.read_packet() + if len(response) < 1 or response[0] != 0x01: + raise StcProtocolException("incorrect magic in handshake packet") + self.ser.baudrate = self.baud_transfer + + def build_options(self): + """Build a packet of option data from the current configuration.""" + + msr = self.options.get_msr() + packet = 40 * bytearray([0xff]) + packet[3] = 0 + packet[6] = 0 + packet[22] = 0 + packet[24:28] = struct.pack(">I", self.trim_frequency) + packet[28:30] = self.trim_value + packet[30] = self.trim_divider + packet[32] = msr[0] + packet[36:40] = msr[1:5] + return bytes(packet) + + def disconnect(self): + """Disconnect from MCU""" + + # reset mcu + packet = bytes([0xff]) + self.write_packet(packet) + self.ser.close() + print("Disconnected!") + + +class Stc8dProtocol(Stc8Protocol): + """Protocol handler for STC8A8K64D4 series""" + + def __init__(self, port, handshake, baud, trim): + Stc8Protocol.__init__(self, port, handshake, baud, trim) + + def set_option(self, name, value): + super().set_option(name, value) + if name=='program_eeprom_split': + split_point = Utils.to_int(value); + + if self.model.mcs251: + """Minimum size is 1K in STC-ISP""" + if split_point == 0 and self.model.iap: + split_point = 0x400; + + # CODE starts at 0xFF0000 + self.split_code = 0x10000; + # EEPROM starts at 0xFE0000 + self.split_eeprom = split_point; + else: + if split_point == 0 and self.model.iap: + split_point = self.model.code; + + self.split_code = split_point; + self.split_eeprom = self.model.total - self.split_code; + + def choose_range(self, packet, response, target_count): + """Choose appropriate trim value mean for next round from challenge + responses.""" + + + challenge_data = packet[2:] + calib_data = response[2:] + calib_len = response[1] + if len(calib_data) < 2 * calib_len: + raise StcProtocolException("range calibration data missing") + for i in range(calib_len >> 1): + count_a, count_b = struct.unpack( + ">HH", calib_data[4 * i: 4 * i + 4]) + trim_a, trim_b, trim_range = struct.unpack( + ">BxBB", challenge_data[4 * i:4 * i + 4]) + if ((count_a <= target_count and count_b >= target_count)): + target_trim = round( + (target_count - count_a) * (trim_b - trim_a) / (count_b - count_a) + trim_a) + # target_trim will be set at the center of packet in the 2nd calibration + if target_trim < 6 or target_trim > 255 - 5: + raise StcProtocolException("frequency trimming failed") + return (target_trim, trim_range) + return None + + def choose_trim(self, packet, response, target_count): + """Choose best trim for given target count from challenge + responses.""" + calib_data = response[2:] + challenge_data = packet[2:] + calib_len = response[1] + if len(calib_data) < 2 * calib_len: + raise StcProtocolException("trim calibration data missing") + best = None + best_count = sys.maxsize + for i in range(calib_len): + count, = struct.unpack(">H", calib_data[2 * i: 2 * i + 2]) + trim_adj, trim_range = struct.unpack( + ">BB", challenge_data[2 * i: 2 * i + 2]) + if abs(count - target_count) < best_count: + best_count = abs(count - target_count) + best = (trim_adj, trim_range), count + if not best: + raise StcProtocolException("frequency trimming failed") + return best + + + def calibrate(self): + """Calibrate selected user frequency frequency and switch to selected baudrate.""" + + # handle uncalibrated chips + if self.mcu_clock_hz == 0 and self.trim_frequency <= 0: + raise StcProtocolException( + "uncalibrated, please provide a trim value") + + # determine target counter + user_speed = self.trim_frequency + if user_speed <= 0: + user_speed = self.mcu_clock_hz + target_user_count = round(user_speed / self.baud_handshake) + + # calibration, round 1 + print("Target frequency: ", end="") + sys.stdout.flush() + packet = bytes([0x00, 0x08]) + packet += bytes([0x00, 0x00, 0xFF, 0x00]) + packet += bytes([0x00, 0x10, 0xFF, 0x10]) + packet += bytes([0x00, 0x20, 0xFF, 0x20]) + packet += bytes([0x00, 0x30, 0xFF, 0x30]) + self.write_packet(packet) + self.pulse(b"\xfe", timeout=1.0) + response = self.read_packet() + if len(response) < 2 or response[0] != 0x00: + raise StcProtocolException("incorrect magic in handshake packet") + + # select ranges and trim values + for divider in range(1, 6): + user_trim = self.choose_range( + packet, response, target_user_count * divider) + if user_trim is not None: + self.trim_divider = divider + break + if user_trim is None: + raise StcProtocolException("frequency trimming unsuccessful") + + # calibration, round 2 + packet = bytes([0x00, 0x0C]) + for i in range(-6, 6): + packet += bytes([user_trim[0] + i, user_trim[1]]) + self.write_packet(packet) + self.pulse(b"\xfe", timeout=1.0) + response = self.read_packet() + if len(response) < 2 or response[0] != 0x00: + raise StcProtocolException("incorrect magic in handshake packet") + + # select final values + user_trim, user_count = self.choose_trim( + packet, response, target_user_count * self.trim_divider) + self.trim_value = user_trim + self.trim_frequency = round( + user_count * self.baud_handshake/self.trim_divider) + print("Target %.03f MHz" % (user_speed / 1E6)) + print("Adjusted frequency: %.03f MHz(%.03f%%)" % ( + (self.trim_frequency / 1E6), (self.trim_frequency*100/user_speed-100))) + + # switch to programming frequency + print("Switching to %d baud: " % self.baud_transfer, end="") + sys.stdout.flush() + packet = bytes([0x01, 0x00, 0x00]) + bauds = self.baud_transfer * 4 + packet += struct.pack(">H", round(65536 - 24E6 / bauds)) + packet += bytes([user_trim[1], user_trim[0]]) + # iap_wait = self.get_iap_delay(24E6) + iap_wait = 0x98 # iap_wait for "STC8A8K64D4" + packet += bytes([iap_wait]) + self.write_packet(packet) + response = self.read_packet() + if len(response) < 1 or response[0] != 0x01: + raise StcProtocolException("incorrect magic in handshake packet") + self.ser.baudrate = self.baud_transfer + + def build_options(self): + """Build a packet of option data from the current configuration.""" + msr = self.options.get_msr() + packet = 40 * bytearray([0xff]) + packet[3] = 0x00 + packet[6] = 0x00 + packet[22] = 0x00 + packet[24:28] = struct.pack(">I", self.trim_frequency) + packet[28:30] = self.trim_value + packet[30] = self.trim_divider + packet[32] = msr[0] + packet[36:40] = msr[1:5] + return bytes(packet) + + +class Stc8gProtocol(Stc8dProtocol): + """Protocol handler for STC8G series""" + + def __init__(self, port, handshake, baud, trim): + Stc8dProtocol.__init__(self, port, handshake, baud, trim) + + def calibrate(self): + """Calibrate selected user frequency frequency and switch to selected baudrate.""" + + # handle uncalibrated chips + if self.mcu_clock_hz == 0 and self.trim_frequency <= 0: + raise StcProtocolException( + "uncalibrated, please provide a trim value") + + # determine target counter + user_speed = self.trim_frequency + if user_speed <= 0: + user_speed = self.mcu_clock_hz + target_user_count = round(user_speed / self.baud_handshake) + + # calibration, round 1 + print("Target frequency: ", end="") + sys.stdout.flush() + packet = bytes([0x00, 0x05]) + packet += bytes([0x00, 0x00, 0x80, 0x00]) + packet += bytes([0x00, 0x80, 0x80, 0x80]) + packet += bytes([0xFF, 0x00]) + self.write_packet(packet, 12) + self.pulse(b"\xfe", timeout=1.0) + response = self.read_packet() + if len(response) < 2 or response[0] != 0x00: + raise StcProtocolException("incorrect magic in handshake packet") + + # select ranges and trim values + for divider in range(1, 6): + user_trim = self.choose_range( + packet, response, target_user_count * divider) + if user_trim is not None: + self.trim_divider = divider + break + if user_trim is None: + raise StcProtocolException("frequency trimming unsuccessful") + + # calibration, round 2 + packet = bytes([0x00, 0x0C]) + for i in range(-6, 6): + packet += bytes([user_trim[0] + i, user_trim[1]]) + self.write_packet(packet, 19) + self.pulse(b"\xfe", timeout=1.0) + response = self.read_packet() + if len(response) < 2 or response[0] != 0x00: + raise StcProtocolException("incorrect magic in handshake packet") + + # select final values + user_trim, user_count = self.choose_trim( + packet, response, target_user_count * self.trim_divider) + self.trim_value = user_trim + self.trim_frequency = round( + user_count * self.baud_handshake/self.trim_divider) + print("Target %.03f MHz" % (user_speed / 1E6)) + print("Adjusted frequency: %.03f MHz(%.03f%%)" % ( + (self.trim_frequency / 1E6), (self.trim_frequency*100/user_speed-100))) + + # switch to programming frequency + print("Switching to %d baud: " % self.baud_transfer, end="") + sys.stdout.flush() + packet = bytes([0x01, 0x00, 0x00]) + bauds = self.baud_transfer * 4 + packet += struct.pack(">H", round(65536 - 24E6 / bauds)) + packet += bytes([user_trim[1], user_trim[0]]) + # iap_wait = self.get_iap_delay(24E6) + iap_wait = 0x98 # iap_wait for "STC8A8K64D4" + packet += bytes([iap_wait]) + self.write_packet(packet) + response = self.read_packet() + if len(response) < 1 or response[0] != 0x01: + raise StcProtocolException("incorrect magic in handshake packet") + self.ser.baudrate = self.baud_transfer