/dist/tools-mac/avrdude.conf

http://github.com/makerbot/G3Firmware · Config · 11721 lines · 10075 code · 1646 blank · 0 comment · 0 complexity · 25c20925af5af4d9bc18a1ef0562e96e MD5 · raw file

Large files are truncated click here to view the full file

  1. # $Id: avrdude.conf.in,v 1.122 2007/05/16 21:29:36 joerg_wunsch Exp $
  2. #
  3. # AVRDUDE Configuration File
  4. #
  5. # This file contains configuration data used by AVRDUDE which describes
  6. # the programming hardware pinouts and also provides part definitions.
  7. # AVRDUDE's "-C" command line option specifies the location of the
  8. # configuration file. The "-c" option names the programmer configuration
  9. # which must match one of the entry's "id" parameter. The "-p" option
  10. # identifies which part AVRDUDE is going to be programming and must match
  11. # one of the parts' "id" parameter.
  12. #
  13. # Possible entry formats are:
  14. #
  15. # programmer
  16. # id = <id1> [, <id2> [, <id3>] ...] ; # <idN> are quoted strings
  17. # desc = <description> ; # quoted string
  18. # type = par | stk500 | stk500v2 | stk500pp | stk500hvsp | stk500generic |
  19. # avr910 | butterfly | usbasp |
  20. # jtagmki | jtagmkii | jtagmkii_isp | jtagmkii_dw |
  21. # dragon_dw | dragon_jtag | dragon_isp | dragon_pp |
  22. # dragon_hvsp; # programmer type
  23. # baudrate = <num> ; # baudrate for avr910-programmer
  24. # vcc = <num1> [, <num2> ... ] ; # pin number(s)
  25. # reset = <num> ; # pin number
  26. # sck = <num> ; # pin number
  27. # mosi = <num> ; # pin number
  28. # miso = <num> ; # pin number
  29. # errled = <num> ; # pin number
  30. # rdyled = <num> ; # pin number
  31. # pgmled = <num> ; # pin number
  32. # vfyled = <num> ; # pin number
  33. # ;
  34. #
  35. # part
  36. # id = <id> ; # quoted string
  37. # desc = <description> ; # quoted string
  38. # has_jtag = <yes/no> ; # part has JTAG i/f
  39. # has_debugwire = <yes/no> ; # part has debugWire i/f
  40. # devicecode = <num> ; # deprecated, use stk500_devcode
  41. # stk500_devcode = <num> ; # numeric
  42. # avr910_devcode = <num> ; # numeric
  43. # signature = <num> <num> <num> ; # signature bytes
  44. # chip_erase_delay = <num> ; # micro-seconds
  45. # reset = dedicated | io;
  46. # retry_pulse = reset | sck;
  47. # pgm_enable = <instruction format> ;
  48. # chip_erase = <instruction format> ;
  49. # chip_erase_delay = <num> ; # chip erase delay (us)
  50. # # STK500 parameters (parallel programming IO lines)
  51. # pagel = <num> ; # pin name in hex, i.e., 0xD7
  52. # bs2 = <num> ; # pin name in hex, i.e., 0xA0
  53. # serial = <yes/no> ; # can use serial downloading
  54. # parallel = <yes/no/pseudo>; # can use par. programming
  55. # # STK500v2 parameters, to be taken from Atmel's XML files
  56. # timeout = <num> ;
  57. # stabdelay = <num> ;
  58. # cmdexedelay = <num> ;
  59. # synchloops = <num> ;
  60. # bytedelay = <num> ;
  61. # pollvalue = <num> ;
  62. # pollindex = <num> ;
  63. # predelay = <num> ;
  64. # postdelay = <num> ;
  65. # pollmethod = <num> ;
  66. # mode = <num> ;
  67. # delay = <num> ;
  68. # blocksize = <num> ;
  69. # readsize = <num> ;
  70. # hvspcmdexedelay = <num> ;
  71. # # STK500v2 HV programming parameters, from XML
  72. # pp_controlstack = <num>, <num>, ...; # PP only
  73. # hvsp_controlstack = <num>, <num>, ...; # HVSP only
  74. # hventerstabdelay = <num>;
  75. # progmodedelay = <num>; # PP only
  76. # latchcycles = <num>;
  77. # togglevtg = <num>;
  78. # poweroffdelay = <num>;
  79. # resetdelayms = <num>;
  80. # resetdelayus = <num>;
  81. # hvleavestabdelay = <num>;
  82. # resetdelay = <num>;
  83. # synchcycles = <num>; # HVSP only
  84. # chiperasepulsewidth = <num>; # PP only
  85. # chiperasepolltimeout = <num>;
  86. # chiperasetime = <num>; # HVSP only
  87. # programfusepulsewidth = <num>; # PP only
  88. # programfusepolltimeout = <num>;
  89. # programlockpulsewidth = <num>; # PP only
  90. # programlockpolltimeout = <num>;
  91. # # JTAG ICE mkII parameters, also from XML files
  92. # allowfullpagebitstream = <yes/no> ;
  93. # enablepageprogramming = <yes/no> ;
  94. # idr = <num> ; # IO addr of IDR (OCD) reg.
  95. # rampz = <num> ; # IO addr of RAMPZ reg.
  96. # spmcr = <num> ; # mem addr of SPMC[S]R reg.
  97. # eecr = <num> ; # mem addr of EECR reg.
  98. # # (only when != 0x3c)
  99. #
  100. # memory <memtype>
  101. # paged = <yes/no> ; # yes / no
  102. # size = <num> ; # bytes
  103. # page_size = <num> ; # bytes
  104. # num_pages = <num> ; # numeric
  105. # min_write_delay = <num> ; # micro-seconds
  106. # max_write_delay = <num> ; # micro-seconds
  107. # readback_p1 = <num> ; # byte value
  108. # readback_p2 = <num> ; # byte value
  109. # pwroff_after_write = <yes/no> ; # yes / no
  110. # read = <instruction format> ;
  111. # write = <instruction format> ;
  112. # read_lo = <instruction format> ;
  113. # read_hi = <instruction format> ;
  114. # write_lo = <instruction format> ;
  115. # write_hi = <instruction format> ;
  116. # loadpage_lo = <instruction format> ;
  117. # loadpage_hi = <instruction format> ;
  118. # writepage = <instruction format> ;
  119. # ;
  120. # ;
  121. #
  122. # If any of the above parameters are not specified, the default value
  123. # of 0 is used for numerics or the empty string ("") for string
  124. # values. If a required parameter is left empty, AVRDUDE will
  125. # complain.
  126. #
  127. # NOTES:
  128. # * 'devicecode' is the device code used by the STK500 (see codes
  129. # listed below)
  130. # * Not all memory types will implement all instructions.
  131. # * AVR Fuse bits and Lock bits are implemented as a type of memory.
  132. # * Example memory types are:
  133. # "flash", "eeprom", "fuse", "lfuse" (low fuse), "hfuse" (high
  134. # fuse), "signature", "calibration", "lock"
  135. # * The memory type specified on the avrdude command line must match
  136. # one of the memory types defined for the specified chip.
  137. # * The pwroff_after_write flag causes avrdude to attempt to
  138. # power the device off and back on after an unsuccessful write to
  139. # the affected memory area if VCC programmer pins are defined. If
  140. # VCC pins are not defined for the programmer, a message
  141. # indicating that the device needs a power-cycle is printed out.
  142. # This flag was added to work around a problem with the
  143. # at90s4433/2333's; see the at90s4433 errata at:
  144. #
  145. # http://www.atmel.com/atmel/acrobat/doc1280.pdf
  146. #
  147. # INSTRUCTION FORMATS
  148. #
  149. # Instruction formats are specified as a comma seperated list of
  150. # string values containing information (bit specifiers) about each
  151. # of the 32 bits of the instruction. Bit specifiers may be one of
  152. # the following formats:
  153. #
  154. # '1' = the bit is always set on input as well as output
  155. #
  156. # '0' = the bit is always clear on input as well as output
  157. #
  158. # 'x' = the bit is ignored on input and output
  159. #
  160. # 'a' = the bit is an address bit, the bit-number matches this bit
  161. # specifier's position within the current instruction byte
  162. #
  163. # 'aN' = the bit is the Nth address bit, bit-number = N, i.e., a12
  164. # is address bit 12 on input, a0 is address bit 0.
  165. #
  166. # 'i' = the bit is an input data bit
  167. #
  168. # 'o' = the bit is an output data bit
  169. #
  170. # Each instruction must be composed of 32 bit specifiers. The
  171. # instruction specification closely follows the instruction data
  172. # provided in Atmel's data sheets for their parts.
  173. #
  174. # See below for some examples.
  175. #
  176. #
  177. # The following are STK500 part device codes to use for the
  178. # "devicecode" field of the part. These came from Atmel's software
  179. # section avr061.zip which accompanies the application note
  180. # AVR061 available from:
  181. #
  182. # http://www.atmel.com/atmel/acrobat/doc2525.pdf
  183. #
  184. #define ATTINY10 0x10
  185. #define ATTINY11 0x11
  186. #define ATTINY12 0x12
  187. #define ATTINY15 0x13
  188. #define ATTINY13 0x14
  189. #define ATTINY22 0x20
  190. #define ATTINY26 0x21
  191. #define ATTINY28 0x22
  192. #define ATTINY2313 0x23
  193. #define AT90S1200 0x33
  194. #define AT90S2313 0x40
  195. #define AT90S2323 0x41
  196. #define AT90S2333 0x42
  197. #define AT90S2343 0x43
  198. #define AT90S4414 0x50
  199. #define AT90S4433 0x51
  200. #define AT90S4434 0x52
  201. #define ATMEGA48 0x59
  202. #define AT90S8515 0x60
  203. #define AT90S8535 0x61
  204. #define AT90C8534 0x62
  205. #define ATMEGA8515 0x63
  206. #define ATMEGA8535 0x64
  207. #define ATMEGA8 0x70
  208. #define ATMEGA88 0x73
  209. #define ATMEGA168 0x86
  210. #define ATMEGA161 0x80
  211. #define ATMEGA163 0x81
  212. #define ATMEGA16 0x82
  213. #define ATMEGA162 0x83
  214. #define ATMEGA169 0x84
  215. #define ATMEGA323 0x90
  216. #define ATMEGA32 0x91
  217. #define ATMEGA64 0xA0
  218. #define ATMEGA103 0xB1
  219. #define ATMEGA128 0xB2
  220. #define AT90CAN128 0xB3
  221. #define AT86RF401 0xD0
  222. #define AT89START 0xE0
  223. #define AT89S51 0xE0
  224. #define AT89S52 0xE1
  225. # The following table lists the devices in the original AVR910
  226. # appnote:
  227. # |Device |Signature | Code |
  228. # +-------+----------+------+
  229. # |tiny12 | 1E 90 05 | 0x55 |
  230. # |tiny15 | 1E 90 06 | 0x56 |
  231. # | | | |
  232. # | S1200 | 1E 90 01 | 0x13 |
  233. # | | | |
  234. # | S2313 | 1E 91 01 | 0x20 |
  235. # | S2323 | 1E 91 02 | 0x48 |
  236. # | S2333 | 1E 91 05 | 0x34 |
  237. # | S2343 | 1E 91 03 | 0x4C |
  238. # | | | |
  239. # | S4414 | 1E 92 01 | 0x28 |
  240. # | S4433 | 1E 92 03 | 0x30 |
  241. # | S4434 | 1E 92 02 | 0x6C |
  242. # | | | |
  243. # | S8515 | 1E 93 01 | 0x38 |
  244. # | S8535 | 1E 93 03 | 0x68 |
  245. # | | | |
  246. # |mega32 | 1E 95 01 | 0x72 |
  247. # |mega83 | 1E 93 05 | 0x65 |
  248. # |mega103| 1E 97 01 | 0x41 |
  249. # |mega161| 1E 94 01 | 0x60 |
  250. # |mega163| 1E 94 02 | 0x64 |
  251. # Appnote AVR109 also has a table of AVR910 device codes, which
  252. # lists:
  253. # dev avr910 signature
  254. # ATmega8 0x77 0x1E 0x93 0x07
  255. # ATmega8515 0x3B 0x1E 0x93 0x06
  256. # ATmega8535 0x6A 0x1E 0x93 0x08
  257. # ATmega16 0x75 0x1E 0x94 0x03
  258. # ATmega162 0x63 0x1E 0x94 0x04
  259. # ATmega163 0x66 0x1E 0x94 0x02
  260. # ATmega169 0x79 0x1E 0x94 0x05
  261. # ATmega32 0x7F 0x1E 0x95 0x02
  262. # ATmega323 0x73 0x1E 0x95 0x01
  263. # ATmega64 0x46 0x1E 0x96 0x02
  264. # ATmega128 0x44 0x1E 0x97 0x02
  265. #
  266. # These codes refer to "BOOT" device codes which are apparently
  267. # different than standard device codes, for whatever reasons
  268. # (often one above the standard code).
  269. # There are several extended versions of AVR910 implementations around
  270. # in the Internet. These add the following codes (only devices that
  271. # actually exist are listed):
  272. # ATmega8515 0x3A
  273. # ATmega128 0x43
  274. # ATmega64 0x45
  275. # ATtiny26 0x5E
  276. # ATmega8535 0x69
  277. # ATmega32 0x72
  278. # ATmega16 0x74
  279. # ATmega8 0x76
  280. # ATmega169 0x78
  281. #
  282. # Overall avrdude defaults
  283. #
  284. default_parallel = "unknown";
  285. default_serial = "unknown";
  286. #
  287. # PROGRAMMER DEFINITIONS
  288. #
  289. programmer
  290. id = "avrisp";
  291. desc = "Atmel AVR ISP";
  292. type = stk500;
  293. ;
  294. programmer
  295. id = "avrispv2";
  296. desc = "Atmel AVR ISP V2";
  297. type = stk500v2;
  298. ;
  299. programmer
  300. id = "avrispmkII";
  301. desc = "Atmel AVR ISP mkII";
  302. type = stk500v2;
  303. ;
  304. programmer
  305. id = "avrisp2";
  306. desc = "Atmel AVR ISP mkII";
  307. type = stk500v2;
  308. ;
  309. # This is supposed to be the "default" STK500 entry.
  310. # Attempts to select the correct firmware version
  311. # by probing for it. Better use one of the entries
  312. # below instead.
  313. programmer
  314. id = "stk500";
  315. desc = "Atmel STK500";
  316. type = stk500generic;
  317. ;
  318. programmer
  319. id = "stk500v1";
  320. desc = "Atmel STK500 Version 1.x firmware";
  321. type = stk500;
  322. ;
  323. programmer
  324. id = "stk500v2";
  325. desc = "Atmel STK500 Version 2.x firmware";
  326. type = stk500v2;
  327. ;
  328. programmer
  329. id = "stk500pp";
  330. desc = "Atmel STK500 V2 in parallel programming mode";
  331. type = stk500pp;
  332. ;
  333. programmer
  334. id = "stk500hvsp";
  335. desc = "Atmel STK500 V2 in high-voltage serial programming mode";
  336. type = stk500hvsp;
  337. ;
  338. programmer
  339. id = "avr910";
  340. desc = "Atmel Low Cost Serial Programmer";
  341. type = avr910;
  342. ;
  343. programmer
  344. id = "usbasp";
  345. desc = "USBasp, http://www.fischl.de/usbasp/";
  346. type = usbasp;
  347. ;
  348. programmer
  349. id = "usbtiny";
  350. desc = "USBtiny simple USB programmer";
  351. type = usbtiny;
  352. ;
  353. programmer
  354. id = "butterfly";
  355. desc = "Atmel Butterfly Development Board";
  356. type = butterfly;
  357. ;
  358. programmer
  359. id = "avr109";
  360. desc = "Atmel AppNote AVR109 Boot Loader";
  361. type = butterfly;
  362. ;
  363. programmer
  364. id = "avr911";
  365. desc = "Atmel AppNote AVR911 AVROSP";
  366. type = butterfly;
  367. ;
  368. programmer
  369. id = "jtagmkI";
  370. desc = "Atmel JTAG ICE (mkI)";
  371. baudrate = 115200; # default is 115200
  372. type = jtagmki;
  373. ;
  374. # easier to type
  375. programmer
  376. id = "jtag1";
  377. desc = "Atmel JTAG ICE (mkI)";
  378. baudrate = 115200; # default is 115200
  379. type = jtagmki;
  380. ;
  381. # easier to type
  382. programmer
  383. id = "jtag1slow";
  384. desc = "Atmel JTAG ICE (mkI)";
  385. baudrate = 19200;
  386. type = jtagmki;
  387. ;
  388. programmer
  389. id = "jtagmkII";
  390. desc = "Atmel JTAG ICE mkII";
  391. baudrate = 19200; # default is 19200
  392. type = jtagmkii;
  393. ;
  394. # easier to type
  395. programmer
  396. id = "jtag2slow";
  397. desc = "Atmel JTAG ICE mkII";
  398. baudrate = 19200; # default is 19200
  399. type = jtagmkii;
  400. ;
  401. # JTAG ICE mkII @ 115200 Bd
  402. programmer
  403. id = "jtag2fast";
  404. desc = "Atmel JTAG ICE mkII";
  405. baudrate = 115200;
  406. type = jtagmkii;
  407. ;
  408. # make the fast one the default, people will love that
  409. programmer
  410. id = "jtag2";
  411. desc = "Atmel JTAG ICE mkII";
  412. baudrate = 115200;
  413. type = jtagmkii;
  414. ;
  415. # JTAG ICE mkII in ISP mode
  416. programmer
  417. id = "jtag2isp";
  418. desc = "Atmel JTAG ICE mkII in ISP mode";
  419. baudrate = 115200;
  420. type = jtagmkii_isp;
  421. ;
  422. # JTAG ICE mkII in debugWire mode
  423. programmer
  424. id = "jtag2dw";
  425. desc = "Atmel JTAG ICE mkII in debugWire mode";
  426. baudrate = 115200;
  427. type = jtagmkii_dw;
  428. ;
  429. # AVR Dragon in JTAG mode
  430. programmer
  431. id = "dragon_jtag";
  432. desc = "Atmel AVR Dragon in JTAG mode";
  433. baudrate = 115200;
  434. type = dragon_jtag;
  435. ;
  436. # AVR Dragon in ISP mode
  437. programmer
  438. id = "dragon_isp";
  439. desc = "Atmel AVR Dragon in ISP mode";
  440. baudrate = 115200;
  441. type = dragon_isp;
  442. ;
  443. # AVR Dragon in PP mode
  444. programmer
  445. id = "dragon_pp";
  446. desc = "Atmel AVR Dragon in PP mode";
  447. baudrate = 115200;
  448. type = dragon_pp;
  449. ;
  450. # AVR Dragon in HVSP mode
  451. programmer
  452. id = "dragon_hvsp";
  453. desc = "Atmel AVR Dragon in HVSP mode";
  454. baudrate = 115200;
  455. type = dragon_hvsp;
  456. ;
  457. # AVR Dragon in debugWire mode
  458. programmer
  459. id = "dragon_dw";
  460. desc = "Atmel AVR Dragon in debugWire mode";
  461. baudrate = 115200;
  462. type = dragon_dw;
  463. ;
  464. programmer
  465. id = "pavr";
  466. desc = "Jason Kyle's pAVR Serial Programmer";
  467. type = avr910;
  468. ;
  469. #
  470. # some ultra cheap programmers use bitbanging on the
  471. # serialport.
  472. #
  473. # PC - DB9 - Pins for RS232:
  474. #
  475. # GND 5 -- |O
  476. # | O| <- 9 RI
  477. # DTR 4 <- |O |
  478. # | O| <- 8 CTS
  479. # TXD 3 <- |O |
  480. # | O| -> 7 RTS
  481. # RXD 2 -> |O |
  482. # | O| <- 6 DSR
  483. # DCD 1 -> |O
  484. #
  485. # Using RXD is currently not supported.
  486. # Using RI is not supported under Win32 but is supported under Posix.
  487. # serial ponyprog design (dasa2 in uisp)
  488. # reset=!txd sck=rts mosi=dtr miso=cts
  489. programmer
  490. id = "ponyser";
  491. desc = "design ponyprog serial, reset=!txd sck=rts mosi=dtr miso=cts";
  492. type = serbb;
  493. reset = ~3;
  494. sck = 7;
  495. mosi = 4;
  496. miso = 8;
  497. ;
  498. # Same as above, different name
  499. # reset=!txd sck=rts mosi=dtr miso=cts
  500. programmer
  501. id = "siprog";
  502. desc = "Lancos SI-Prog <http://www.lancos.com/siprogsch.html>";
  503. type = serbb;
  504. reset = ~3;
  505. sck = 7;
  506. mosi = 4;
  507. miso = 8;
  508. ;
  509. # unknown (dasa in uisp)
  510. # reset=rts sck=dtr mosi=txd miso=cts
  511. programmer
  512. id = "dasa";
  513. desc = "serial port banging, reset=rts sck=dtr mosi=txd miso=cts";
  514. type = serbb;
  515. reset = 7;
  516. sck = 4;
  517. mosi = 3;
  518. miso = 8;
  519. ;
  520. # unknown (dasa3 in uisp)
  521. # reset=!dtr sck=rts mosi=txd miso=cts
  522. programmer
  523. id = "dasa3";
  524. desc = "serial port banging, reset=!dtr sck=rts mosi=txd miso=cts";
  525. type = serbb;
  526. reset = ~4;
  527. sck = 7;
  528. mosi = 3;
  529. miso = 8;
  530. ;
  531. #
  532. # PART DEFINITIONS
  533. #
  534. #------------------------------------------------------------
  535. # ATtiny11
  536. #------------------------------------------------------------
  537. # This is an HVSP-only device.
  538. part
  539. id = "t11";
  540. desc = "ATtiny11";
  541. stk500_devcode = 0x11;
  542. signature = 0x1e 0x90 0x04;
  543. chip_erase_delay = 20000;
  544. timeout = 200;
  545. hvsp_controlstack =
  546. 0x4C, 0x0C, 0x1C, 0x2C, 0x3C, 0x64, 0x74, 0x00,
  547. 0x68, 0x78, 0x68, 0x68, 0x00, 0x00, 0x68, 0x78,
  548. 0x78, 0x00, 0x6D, 0x0C, 0x80, 0x40, 0x20, 0x10,
  549. 0x11, 0x08, 0x04, 0x02, 0x03, 0x08, 0x04, 0x00;
  550. hventerstabdelay = 100;
  551. progmodedelay = 0;
  552. hvspcmdexedelay = 0;
  553. synchcycles = 6;
  554. latchcycles = 1;
  555. togglevtg = 1;
  556. poweroffdelay = 25;
  557. resetdelayms = 0;
  558. resetdelayus = 50;
  559. hvleavestabdelay = 100;
  560. resetdelay = 25;
  561. chiperasepolltimeout = 40;
  562. chiperasetime = 0;
  563. programfusepolltimeout = 25;
  564. programlockpolltimeout = 25;
  565. memory "eeprom"
  566. size = 64;
  567. blocksize = 64;
  568. readsize = 256;
  569. delay = 5;
  570. ;
  571. memory "flash"
  572. size = 1024;
  573. blocksize = 128;
  574. readsize = 256;
  575. delay = 3;
  576. ;
  577. memory "signature"
  578. size = 3;
  579. ;
  580. memory "lock"
  581. size = 1;
  582. ;
  583. memory "calibration"
  584. size = 1;
  585. ;
  586. memory "fuse"
  587. size = 1;
  588. ;
  589. ;
  590. #------------------------------------------------------------
  591. # ATtiny12
  592. #------------------------------------------------------------
  593. part
  594. id = "t12";
  595. desc = "ATtiny12";
  596. stk500_devcode = 0x12;
  597. avr910_devcode = 0x55;
  598. signature = 0x1e 0x90 0x05;
  599. chip_erase_delay = 20000;
  600. pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1",
  601. "x x x x x x x x x x x x x x x x";
  602. chip_erase = "1 0 1 0 1 1 0 0 1 0 0 x x x x x",
  603. "x x x x x x x x x x x x x x x x";
  604. timeout = 200;
  605. stabdelay = 100;
  606. cmdexedelay = 25;
  607. synchloops = 32;
  608. bytedelay = 0;
  609. pollindex = 3;
  610. pollvalue = 0x53;
  611. predelay = 1;
  612. postdelay = 1;
  613. pollmethod = 0;
  614. hvsp_controlstack =
  615. 0x4C, 0x0C, 0x1C, 0x2C, 0x3C, 0x64, 0x74, 0x00,
  616. 0x68, 0x78, 0x68, 0x68, 0x00, 0x00, 0x68, 0x78,
  617. 0x78, 0x00, 0x6D, 0x0C, 0x80, 0x40, 0x20, 0x10,
  618. 0x11, 0x08, 0x04, 0x02, 0x03, 0x08, 0x04, 0x00;
  619. hventerstabdelay = 100;
  620. hvspcmdexedelay = 0;
  621. synchcycles = 6;
  622. latchcycles = 1;
  623. togglevtg = 1;
  624. poweroffdelay = 25;
  625. resetdelayms = 0;
  626. resetdelayus = 50;
  627. hvleavestabdelay = 100;
  628. resetdelay = 25;
  629. chiperasepolltimeout = 40;
  630. chiperasetime = 0;
  631. programfusepolltimeout = 25;
  632. programlockpolltimeout = 25;
  633. memory "eeprom"
  634. size = 64;
  635. min_write_delay = 9000;
  636. max_write_delay = 20000;
  637. readback_p1 = 0xff;
  638. readback_p2 = 0xff;
  639. read = "1 0 1 0 0 0 0 0 x x x x x x x x",
  640. "x x a5 a4 a3 a2 a1 a0 o o o o o o o o";
  641. write = "1 1 0 0 0 0 0 0 x x x x x x x x",
  642. "x x a5 a4 a3 a2 a1 a0 i i i i i i i i";
  643. mode = 0x04;
  644. delay = 8;
  645. blocksize = 64;
  646. readsize = 256;
  647. ;
  648. memory "flash"
  649. size = 1024;
  650. min_write_delay = 4500;
  651. max_write_delay = 20000;
  652. readback_p1 = 0xff;
  653. readback_p2 = 0xff;
  654. read_lo = " 0 0 1 0 0 0 0 0",
  655. " x x x x x x x a8",
  656. " a7 a6 a5 a4 a3 a2 a1 a0",
  657. " o o o o o o o o";
  658. read_hi = " 0 0 1 0 1 0 0 0",
  659. " x x x x x x x a8",
  660. " a7 a6 a5 a4 a3 a2 a1 a0",
  661. " o o o o o o o o";
  662. write_lo = " 0 1 0 0 0 0 0 0",
  663. " x x x x x x x a8",
  664. " a7 a6 a5 a4 a3 a2 a1 a0",
  665. " i i i i i i i i";
  666. write_hi = " 0 1 0 0 1 0 0 0",
  667. " x x x x x x x a8",
  668. " a7 a6 a5 a4 a3 a2 a1 a0",
  669. " i i i i i i i i";
  670. mode = 0x04;
  671. delay = 5;
  672. blocksize = 128;
  673. readsize = 256;
  674. ;
  675. memory "signature"
  676. size = 3;
  677. read = "0 0 1 1 0 0 0 0 x x x x x x x x",
  678. "0 0 0 0 0 0 a1 a0 o o o o o o o o";
  679. ;
  680. memory "lock"
  681. size = 1;
  682. read = "0 1 0 1 1 0 0 0 x x x x x x x x",
  683. "x x x x x x x x x x x x x o o x";
  684. write = "1 0 1 0 1 1 0 0 1 1 1 1 1 i i 1",
  685. "x x x x x x x x x x x x x x x x";
  686. min_write_delay = 9000;
  687. max_write_delay = 9000;
  688. ;
  689. memory "calibration"
  690. size = 1;
  691. read = "0 0 1 1 1 0 0 0 x x x x x x x x",
  692. "0 0 0 0 0 0 0 0 o o o o o o o o";
  693. ;
  694. memory "fuse"
  695. size = 1;
  696. read = "0 1 0 1 0 0 0 0 x x x x x x x x",
  697. "x x x x x x x x o o o o o o o o";
  698. write = "1 0 1 0 1 1 0 0 1 0 1 x x x x x",
  699. "x x x x x x x x i i i i i i i i";
  700. min_write_delay = 9000;
  701. max_write_delay = 9000;
  702. ;
  703. ;
  704. #------------------------------------------------------------
  705. # ATtiny13
  706. #------------------------------------------------------------
  707. part
  708. id = "t13";
  709. desc = "ATtiny13";
  710. has_debugwire = yes;
  711. flash_instr = 0xB4, 0x0E, 0x1E;
  712. eeprom_instr = 0xBB, 0xFE, 0xBB, 0xEE, 0xBB, 0xCC, 0xB2, 0x0D,
  713. 0xBC, 0x0E, 0xB4, 0x0E, 0xBA, 0x0D, 0xBB, 0xBC,
  714. 0x99, 0xE1, 0xBB, 0xAC;
  715. stk500_devcode = 0x14;
  716. signature = 0x1e 0x90 0x07;
  717. chip_erase_delay = 4000;
  718. pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1",
  719. "x x x x x x x x x x x x x x x x";
  720. chip_erase = "1 0 1 0 1 1 0 0 1 0 0 x x x x x",
  721. "x x x x x x x x x x x x x x x x";
  722. timeout = 200;
  723. stabdelay = 100;
  724. cmdexedelay = 25;
  725. synchloops = 32;
  726. bytedelay = 0;
  727. pollindex = 3;
  728. pollvalue = 0x53;
  729. predelay = 1;
  730. postdelay = 1;
  731. pollmethod = 1;
  732. hvsp_controlstack =
  733. 0x4C, 0x0C, 0x1C, 0x2C, 0x3C, 0x64, 0x74, 0x66,
  734. 0x68, 0x78, 0x68, 0x68, 0x7A, 0x6A, 0x68, 0x78,
  735. 0x78, 0x7D, 0x6D, 0x0C, 0x80, 0x40, 0x20, 0x10,
  736. 0x11, 0x08, 0x04, 0x02, 0x03, 0x08, 0x04, 0x00;
  737. hventerstabdelay = 100;
  738. progmodedelay = 0;
  739. hvspcmdexedelay = 0;
  740. synchcycles = 6;
  741. latchcycles = 1;
  742. togglevtg = 1;
  743. poweroffdelay = 25;
  744. resetdelayms = 0;
  745. resetdelayus = 90;
  746. hvleavestabdelay = 100;
  747. resetdelay = 25;
  748. chiperasepolltimeout = 40;
  749. chiperasetime = 0;
  750. programfusepolltimeout = 25;
  751. programlockpolltimeout = 25;
  752. memory "eeprom"
  753. size = 64;
  754. page_size = 4;
  755. min_write_delay = 4000;
  756. max_write_delay = 4000;
  757. readback_p1 = 0xff;
  758. readback_p2 = 0xff;
  759. read = "1 0 1 0 0 0 0 0 0 0 0 x x x x x",
  760. "x x a5 a4 a3 a2 a1 a0 o o o o o o o o";
  761. write = "1 1 0 0 0 0 0 0 0 0 0 x x x x x",
  762. "x x a5 a4 a3 a2 a1 a0 i i i i i i i i";
  763. loadpage_lo = " 1 1 0 0 0 0 0 1",
  764. " 0 0 0 0 0 0 0 0",
  765. " 0 0 0 0 0 0 a1 a0",
  766. " i i i i i i i i";
  767. writepage = " 1 1 0 0 0 0 1 0",
  768. " 0 0 x x x x x x",
  769. " x x a5 a4 a3 a2 0 0",
  770. " x x x x x x x x";
  771. mode = 0x41;
  772. delay = 5;
  773. blocksize = 4;
  774. readsize = 256;
  775. ;
  776. memory "flash"
  777. paged = yes;
  778. size = 1024;
  779. page_size = 32;
  780. num_pages = 32;
  781. min_write_delay = 4500;
  782. max_write_delay = 4500;
  783. readback_p1 = 0xff;
  784. readback_p2 = 0xff;
  785. read_lo = " 0 0 1 0 0 0 0 0",
  786. " 0 0 0 0 0 0 0 a8",
  787. " a7 a6 a5 a4 a3 a2 a1 a0",
  788. " o o o o o o o o";
  789. read_hi = " 0 0 1 0 1 0 0 0",
  790. " 0 0 0 0 0 0 0 a8",
  791. " a7 a6 a5 a4 a3 a2 a1 a0",
  792. " o o o o o o o o";
  793. loadpage_lo = " 0 1 0 0 0 0 0 0",
  794. " 0 0 0 x x x x x",
  795. " x x x x a3 a2 a1 a0",
  796. " i i i i i i i i";
  797. loadpage_hi = " 0 1 0 0 1 0 0 0",
  798. " 0 0 0 x x x x x",
  799. " x x x x a3 a2 a1 a0",
  800. " i i i i i i i i";
  801. writepage = " 0 1 0 0 1 1 0 0",
  802. " 0 0 0 0 0 0 0 a8",
  803. " a7 a6 a5 a4 x x x x",
  804. " x x x x x x x x";
  805. mode = 0x41;
  806. delay = 6;
  807. blocksize = 32;
  808. readsize = 256;
  809. ;
  810. memory "signature"
  811. size = 3;
  812. read = "0 0 1 1 0 0 0 0 0 0 0 x x x x x",
  813. "x x x x x x a1 a0 o o o o o o o o";
  814. ;
  815. memory "lock"
  816. size = 1;
  817. min_write_delay = 4500;
  818. max_write_delay = 4500;
  819. read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0",
  820. "x x x x x x x x x x o o o o o o";
  821. write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x",
  822. "x x x x x x x x 1 1 i i i i i i";
  823. ;
  824. memory "calibration"
  825. size = 2;
  826. read = "0 0 1 1 1 0 0 0 0 0 0 x x x x x",
  827. "0 0 0 0 0 0 0 a0 o o o o o o o o";
  828. ;
  829. memory "lfuse"
  830. size = 1;
  831. min_write_delay = 4500;
  832. max_write_delay = 4500;
  833. write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0",
  834. "x x x x x x x x i i i i i i i i";
  835. read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0",
  836. "x x x x x x x x o o o o o o o o";
  837. ;
  838. memory "hfuse"
  839. size = 1;
  840. min_write_delay = 4500;
  841. max_write_delay = 4500;
  842. write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0",
  843. "x x x x x x x x i i i i i i i i";
  844. read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0",
  845. "x x x x x x x x o o o o o o o o";
  846. ;
  847. ;
  848. #------------------------------------------------------------
  849. # ATtiny15
  850. #------------------------------------------------------------
  851. part
  852. id = "t15";
  853. desc = "ATtiny15";
  854. stk500_devcode = 0x13;
  855. avr910_devcode = 0x56;
  856. signature = 0x1e 0x90 0x06;
  857. chip_erase_delay = 8200;
  858. pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1",
  859. "x x x x x x x x x x x x x x x x";
  860. chip_erase = "1 0 1 0 1 1 0 0 1 0 0 x x x x x",
  861. "x x x x x x x x x x x x x x x x";
  862. timeout = 200;
  863. stabdelay = 100;
  864. cmdexedelay = 25;
  865. synchloops = 32;
  866. bytedelay = 0;
  867. pollindex = 3;
  868. pollvalue = 0x53;
  869. predelay = 1;
  870. postdelay = 1;
  871. pollmethod = 0;
  872. hvsp_controlstack =
  873. 0x4C, 0x0C, 0x1C, 0x2C, 0x3C, 0x64, 0x74, 0x00,
  874. 0x68, 0x78, 0x68, 0x68, 0x00, 0x00, 0x68, 0x78,
  875. 0x78, 0x00, 0x6D, 0x0C, 0x80, 0x40, 0x20, 0x10,
  876. 0x11, 0x08, 0x04, 0x02, 0x03, 0x08, 0x04, 0x00;
  877. hventerstabdelay = 100;
  878. hvspcmdexedelay = 5;
  879. synchcycles = 6;
  880. latchcycles = 16;
  881. togglevtg = 1;
  882. poweroffdelay = 25;
  883. resetdelayms = 0;
  884. resetdelayus = 50;
  885. hvleavestabdelay = 100;
  886. resetdelay = 25;
  887. chiperasepolltimeout = 40;
  888. chiperasetime = 0;
  889. programfusepolltimeout = 25;
  890. programlockpolltimeout = 25;
  891. memory "eeprom"
  892. size = 64;
  893. min_write_delay = 8200;
  894. max_write_delay = 8200;
  895. readback_p1 = 0xff;
  896. readback_p2 = 0xff;
  897. read = "1 0 1 0 0 0 0 0 x x x x x x x x",
  898. "x x a5 a4 a3 a2 a1 a0 o o o o o o o o";
  899. write = "1 1 0 0 0 0 0 0 x x x x x x x x",
  900. "x x a5 a4 a3 a2 a1 a0 i i i i i i i i";
  901. mode = 0x04;
  902. delay = 10;
  903. blocksize = 64;
  904. readsize = 256;
  905. ;
  906. memory "flash"
  907. size = 1024;
  908. min_write_delay = 4100;
  909. max_write_delay = 4100;
  910. readback_p1 = 0xff;
  911. readback_p2 = 0xff;
  912. read_lo = " 0 0 1 0 0 0 0 0",
  913. " x x x x x x x a8",
  914. " a7 a6 a5 a4 a3 a2 a1 a0",
  915. " o o o o o o o o";
  916. read_hi = " 0 0 1 0 1 0 0 0",
  917. " x x x x x x x a8",
  918. " a7 a6 a5 a4 a3 a2 a1 a0",
  919. " o o o o o o o o";
  920. write_lo = " 0 1 0 0 0 0 0 0",
  921. " x x x x x x x a8",
  922. " a7 a6 a5 a4 a3 a2 a1 a0",
  923. " i i i i i i i i";
  924. write_hi = " 0 1 0 0 1 0 0 0",
  925. " x x x x x x x a8",
  926. " a7 a6 a5 a4 a3 a2 a1 a0",
  927. " i i i i i i i i";
  928. mode = 0x04;
  929. delay = 5;
  930. blocksize = 128;
  931. readsize = 256;
  932. ;
  933. memory "signature"
  934. size = 3;
  935. read = "0 0 1 1 0 0 0 0 x x x x x x x x",
  936. "0 0 0 0 0 0 a1 a0 o o o o o o o o";
  937. ;
  938. memory "lock"
  939. size = 1;
  940. read = "0 1 0 1 1 0 0 0 x x x x x x x x",
  941. "x x x x x x x x x x x x x o o x";
  942. write = "1 0 1 0 1 1 0 0 1 1 1 1 1 i i 1",
  943. "x x x x x x x x x x x x x x x x";
  944. min_write_delay = 9000;
  945. max_write_delay = 9000;
  946. ;
  947. memory "calibration"
  948. size = 1;
  949. read = "0 0 1 1 1 0 0 0 x x x x x x x x",
  950. "0 0 0 0 0 0 0 0 o o o o o o o o";
  951. ;
  952. memory "fuse"
  953. size = 1;
  954. read = "0 1 0 1 0 0 0 0 x x x x x x x x",
  955. "x x x x x x x x o o o o x x o o";
  956. write = "1 0 1 0 1 1 0 0 1 0 1 x x x x x",
  957. "x x x x x x x x i i i i 1 1 i i";
  958. min_write_delay = 9000;
  959. max_write_delay = 9000;
  960. ;
  961. ;
  962. #------------------------------------------------------------
  963. # AT90s1200
  964. #------------------------------------------------------------
  965. part
  966. id = "1200";
  967. desc = "AT90S1200";
  968. stk500_devcode = 0x33;
  969. avr910_devcode = 0x13;
  970. signature = 0x1e 0x90 0x01;
  971. pagel = 0xd7;
  972. bs2 = 0xa0;
  973. chip_erase_delay = 20000;
  974. pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1",
  975. "x x x x x x x x x x x x x x x x";
  976. chip_erase = "1 0 1 0 1 1 0 0 1 0 0 0 0 0 0 0",
  977. "x x x x x x x x x x x x x x x x";
  978. timeout = 200;
  979. stabdelay = 100;
  980. cmdexedelay = 25;
  981. synchloops = 1;
  982. bytedelay = 0;
  983. pollindex = 0;
  984. pollvalue = 0xFF;
  985. predelay = 1;
  986. postdelay = 1;
  987. pollmethod = 0;
  988. pp_controlstack =
  989. 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F,
  990. 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F,
  991. 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B,
  992. 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00;
  993. hventerstabdelay = 100;
  994. progmodedelay = 0;
  995. latchcycles = 0;
  996. togglevtg = 0;
  997. poweroffdelay = 0;
  998. resetdelayms = 0;
  999. resetdelayus = 0;
  1000. hvleavestabdelay = 15;
  1001. chiperasepulsewidth = 15;
  1002. chiperasepolltimeout = 0;
  1003. programfusepulsewidth = 2;
  1004. programfusepolltimeout = 0;
  1005. programlockpulsewidth = 0;
  1006. programlockpolltimeout = 1;
  1007. memory "eeprom"
  1008. size = 64;
  1009. min_write_delay = 4000;
  1010. max_write_delay = 9000;
  1011. readback_p1 = 0x00;
  1012. readback_p2 = 0xff;
  1013. read = "1 0 1 0 0 0 0 0 x x x x x x x x",
  1014. "x x a5 a4 a3 a2 a1 a0 o o o o o o o o";
  1015. write = "1 1 0 0 0 0 0 0 x x x x x x x x",
  1016. "x x a5 a4 a3 a2 a1 a0 i i i i i i i i";
  1017. mode = 0x04;
  1018. delay = 20;
  1019. blocksize = 32;
  1020. readsize = 256;
  1021. ;
  1022. memory "flash"
  1023. size = 1024;
  1024. min_write_delay = 4000;
  1025. max_write_delay = 9000;
  1026. readback_p1 = 0xff;
  1027. readback_p2 = 0xff;
  1028. read_lo = " 0 0 1 0 0 0 0 0",
  1029. " x x x x x x x a8",
  1030. " a7 a6 a5 a4 a3 a2 a1 a0",
  1031. " o o o o o o o o";
  1032. read_hi = " 0 0 1 0 1 0 0 0",
  1033. " x x x x x x x a8",
  1034. " a7 a6 a5 a4 a3 a2 a1 a0",
  1035. " o o o o o o o o";
  1036. write_lo = " 0 1 0 0 0 0 0 0",
  1037. " x x x x x x x a8",
  1038. " a7 a6 a5 a4 a3 a2 a1 a0",
  1039. " i i i i i i i i";
  1040. write_hi = " 0 1 0 0 1 0 0 0",
  1041. " x x x x x x x a8",
  1042. " a7 a6 a5 a4 a3 a2 a1 a0",
  1043. " i i i i i i i i";
  1044. mode = 0x02;
  1045. delay = 15;
  1046. blocksize = 128;
  1047. readsize = 256;
  1048. ;
  1049. memory "signature"
  1050. size = 3;
  1051. read = "0 0 1 1 0 0 0 0 x x x x x x x x",
  1052. "x x x x x x a1 a0 o o o o o o o o";
  1053. ;
  1054. memory "fuse"
  1055. size = 1;
  1056. ;
  1057. memory "lock"
  1058. size = 1;
  1059. min_write_delay = 9000;
  1060. max_write_delay = 20000;
  1061. write = "1 0 1 0 1 1 0 0 1 1 1 1 1 i i 1",
  1062. "x x x x x x x x x x x x x x x x";
  1063. ;
  1064. ;
  1065. #------------------------------------------------------------
  1066. # AT90s4414
  1067. #------------------------------------------------------------
  1068. part
  1069. id = "4414";
  1070. desc = "AT90S4414";
  1071. stk500_devcode = 0x50;
  1072. avr910_devcode = 0x28;
  1073. signature = 0x1e 0x92 0x01;
  1074. chip_erase_delay = 20000;
  1075. pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1",
  1076. "x x x x x x x x x x x x x x x x";
  1077. chip_erase = "1 0 1 0 1 1 0 0 1 0 0 0 0 0 0 0",
  1078. "x x x x x x x x x x x x x x x x";
  1079. timeout = 200;
  1080. stabdelay = 100;
  1081. cmdexedelay = 25;
  1082. synchloops = 32;
  1083. bytedelay = 0;
  1084. pollindex = 3;
  1085. pollvalue = 0x53;
  1086. predelay = 1;
  1087. postdelay = 1;
  1088. pollmethod = 0;
  1089. pp_controlstack =
  1090. 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F,
  1091. 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F,
  1092. 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B,
  1093. 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01;
  1094. hventerstabdelay = 100;
  1095. progmodedelay = 0;
  1096. latchcycles = 0;
  1097. togglevtg = 0;
  1098. poweroffdelay = 0;
  1099. resetdelayms = 0;
  1100. resetdelayus = 0;
  1101. hvleavestabdelay = 15;
  1102. chiperasepulsewidth = 15;
  1103. chiperasepolltimeout = 0;
  1104. programfusepulsewidth = 2;
  1105. programfusepolltimeout = 0;
  1106. programlockpulsewidth = 0;
  1107. programlockpolltimeout = 1;
  1108. memory "eeprom"
  1109. size = 256;
  1110. min_write_delay = 9000;
  1111. max_write_delay = 20000;
  1112. readback_p1 = 0x80;
  1113. readback_p2 = 0x7f;
  1114. read = " 1 0 1 0 0 0 0 0 x x x x x x x a8",
  1115. "a7 a6 a5 a4 a3 a2 a1 a0 o o o o o o o o";
  1116. write = " 1 1 0 0 0 0 0 0 x x x x x x x a8",
  1117. "a7 a6 a5 a4 a3 a2 a1 a0 i i i i i i i i";
  1118. mode = 0x04;
  1119. delay = 12;
  1120. blocksize = 64;
  1121. readsize = 256;
  1122. ;
  1123. memory "flash"
  1124. size = 4096;
  1125. min_write_delay = 9000;
  1126. max_write_delay = 20000;
  1127. readback_p1 = 0x7f;
  1128. readback_p2 = 0x7f;
  1129. read_lo = " 0 0 1 0 0 0 0 0",
  1130. " x x x x a11 a10 a9 a8",
  1131. " a7 a6 a5 a4 a3 a2 a1 a0",
  1132. " o o o o o o o o";
  1133. read_hi = " 0 0 1 0 1 0 0 0",
  1134. " x x x x a11 a10 a9 a8",
  1135. " a7 a6 a5 a4 a3 a2 a1 a0",
  1136. " o o o o o o o o";
  1137. write_lo = " 0 1 0 0 0 0 0 0",
  1138. " x x x x a11 a10 a9 a8",
  1139. " a7 a6 a5 a4 a3 a2 a1 a0",
  1140. " i i i i i i i i";
  1141. write_hi = " 0 1 0 0 1 0 0 0",
  1142. " x x x x a11 a10 a9 a8",
  1143. " a7 a6 a5 a4 a3 a2 a1 a0",
  1144. " i i i i i i i i";
  1145. mode = 0x04;
  1146. delay = 12;
  1147. blocksize = 64;
  1148. readsize = 256;
  1149. ;
  1150. memory "signature"
  1151. size = 3;
  1152. read = "0 0 1 1 0 0 0 0 x x x x x x x x",
  1153. "x x x x x x a1 a0 o o o o o o o o";
  1154. ;
  1155. memory "fuse"
  1156. size = 1;
  1157. ;
  1158. memory "lock"
  1159. size = 1;
  1160. write = "1 0 1 0 1 1 0 0 1 1 1 1 1 i i 1",
  1161. "x x x x x x x x x x x x x x x x";
  1162. min_write_delay = 9000;
  1163. max_write_delay = 9000;
  1164. ;
  1165. ;
  1166. #------------------------------------------------------------
  1167. # AT90s2313
  1168. #------------------------------------------------------------
  1169. part
  1170. id = "2313";
  1171. desc = "AT90S2313";
  1172. stk500_devcode = 0x40;
  1173. avr910_devcode = 0x20;
  1174. signature = 0x1e 0x91 0x01;
  1175. chip_erase_delay = 20000;
  1176. pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1",
  1177. "x x x x x x x x x x x x x x x x";
  1178. chip_erase = "1 0 1 0 1 1 0 0 1 0 0 0 0 0 0 0",
  1179. "x x x x x x x x x x x x x x x x";
  1180. timeout = 200;
  1181. stabdelay = 100;
  1182. cmdexedelay = 25;
  1183. synchloops = 32;
  1184. bytedelay = 0;
  1185. pollindex = 3;
  1186. pollvalue = 0x53;
  1187. predelay = 1;
  1188. postdelay = 1;
  1189. pollmethod = 0;
  1190. pp_controlstack =
  1191. 0x0E, 0x1E, 0x0F, 0x1F, 0x2E, 0x3E, 0x2F, 0x3F,
  1192. 0x4E, 0x5E, 0x4F, 0x5F, 0x6E, 0x7E, 0x6F, 0x7F,
  1193. 0x66, 0x76, 0x67, 0x77, 0x6A, 0x7A, 0x6B, 0x7B,
  1194. 0xBE, 0xFD, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00;
  1195. hventerstabdelay = 100;
  1196. progmodedelay = 0;
  1197. latchcycles = 0;
  1198. togglevtg = 0;
  1199. poweroffdelay = 0;
  1200. resetdelayms = 0;
  1201. resetdelayus = 0;
  1202. hvleavestabdelay = 15;
  1203. chiperasepulsewidth = 15;
  1204. chiperasepolltimeout = 0;
  1205. programfusepulsewidth = 2;
  1206. programfusepolltimeout = 0;
  1207. programlockpulsewidth = 0;
  1208. programlockpolltimeout = 1;
  1209. memory "eeprom"
  1210. size = 128;
  1211. min_write_delay = 4000;
  1212. max_write_delay = 9000;
  1213. readback_p1 = 0x80;
  1214. readback_p2 = 0x7f;
  1215. read = "1 0 1 0 0 0 0 0 x x x x x x x x",
  1216. "x a6 a5 a4 a3 a2 a1 a0 o o o o o o o o";
  1217. write = "1 1 0 0 0 0 0 0 x x x x x x x x",
  1218. "x a6 a5 a4 a3 a2 a1 a0 i i i i i i i i";
  1219. mode = 0x04;
  1220. delay = 12;
  1221. blocksize = 64;
  1222. readsize = 256;
  1223. ;
  1224. memory "flash"
  1225. size = 2048;
  1226. min_write_delay = 4000;
  1227. max_write_delay = 9000;
  1228. readback_p1 = 0x7f;
  1229. readback_p2 = 0x7f;
  1230. read_lo = " 0 0 1 0 0 0 0 0",
  1231. " x x x x x x a9 a8",
  1232. " a7 a6 a5 a4 a3 a2 a1 a0",
  1233. " o o o o o o o o";
  1234. read_hi = " 0 0 1 0 1 0 0 0",
  1235. " x x x x x x a9 a8",
  1236. " a7 a6 a5 a4 a3 a2 a1 a0",
  1237. " o o o o o o o o";
  1238. write_lo = " 0 1 0 0 0 0 0 0",
  1239. " x x x x x x a9 a8",
  1240. " a7 a6 a5 a4 a3 a2 a1 a0",
  1241. " i i i i i i i i";
  1242. write_hi = " 0 1 0 0 1 0 0 0",
  1243. " x x x x x x a9 a8",
  1244. " a7 a6 a5 a4 a3 a2 a1 a0",
  1245. " i i i i i i i i";
  1246. mode = 0x04;
  1247. delay = 12;
  1248. blocksize = 128;
  1249. readsize = 256;
  1250. ;
  1251. memory "signature"
  1252. size = 3;
  1253. read = "0 0 1 1 0 0 0 0 x x x x x x x x",
  1254. "x x x x x x a1 a0 o o o o o o o o";
  1255. ;
  1256. memory "fuse"
  1257. size = 1;
  1258. ;
  1259. memory "lock"
  1260. size = 1;
  1261. write = "1 0 1 0 1 1 0 0 1 1 1 x x i i x",
  1262. "x x x x x x x x x x x x x x x x";
  1263. min_write_delay = 9000;
  1264. max_write_delay = 9000;
  1265. ;
  1266. ;
  1267. #------------------------------------------------------------
  1268. # AT90s2333
  1269. #------------------------------------------------------------
  1270. part
  1271. id = "2333";
  1272. ##### WARNING: No XML file for device 'AT90S2333'! #####
  1273. desc = "AT90S2333";
  1274. stk500_devcode = 0x42;
  1275. avr910_devcode = 0x34;
  1276. signature = 0x1e 0x91 0x05;
  1277. chip_erase_delay = 20000;
  1278. pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1",
  1279. "x x x x x x x x x x x x x x x x";
  1280. chip_erase = "1 0 1 0 1 1 0 0 1 0 0 0 0 0 0 0",
  1281. "x x x x x x x x x x x x x x x x";
  1282. memory "eeprom"
  1283. size = 128;
  1284. min_write_delay = 9000;
  1285. max_write_delay = 20000;
  1286. readback_p1 = 0x00;
  1287. readback_p2 = 0xff;
  1288. read = "1 0 1 0 0 0 0 0 x x x x x x x x",
  1289. "x a6 a5 a4 a3 a2 a1 a0 o o o o o o o o";
  1290. write = "1 1 0 0 0 0 0 0 x x x x x x x x",
  1291. "x a6 a5 a4 a3 a2 a1 a0 i i i i i i i i";
  1292. ;
  1293. memory "flash"
  1294. size = 2048;
  1295. min_write_delay = 9000;
  1296. max_write_delay = 20000;
  1297. readback_p1 = 0xff;
  1298. readback_p2 = 0xff;
  1299. read_lo = " 0 0 1 0 0 0 0 0",
  1300. " x x x x x x a9 a8",
  1301. " a7 a6 a5 a4 a3 a2 a1 a0",
  1302. " o o o o o o o o";
  1303. read_hi = " 0 0 1 0 1 0 0 0",
  1304. " x x x x x x a9 a8",
  1305. " a7 a6 a5 a4 a3 a2 a1 a0",
  1306. " o o o o o o o o";
  1307. write_lo = " 0 1 0 0 0 0 0 0",
  1308. " x x x x x x a9 a8",
  1309. " a7 a6 a5 a4 a3 a2 a1 a0",
  1310. " i i i i i i i i";
  1311. write_hi = " 0 1 0 0 1 0 0 0",
  1312. " x x x x x x a9 a8",
  1313. " a7 a6 a5 a4 a3 a2 a1 a0",
  1314. " i i i i i i i i";
  1315. ;
  1316. memory "signature"
  1317. size = 3;
  1318. read = "0 0 1 1 0 0 0 0 x x x x x x x x",
  1319. "x x x x x x a1 a0 o o o o o o o o";
  1320. ;
  1321. memory "fuse"
  1322. size = 1;
  1323. min_write_delay = 9000;
  1324. max_write_delay = 20000;
  1325. pwroff_after_write = yes;
  1326. read = "0 1 0 1 0 0 0 0 x x x x x x x x",
  1327. "x x x x x x x x x x o o o o o o";
  1328. write = "1 0 1 0 1 1 0 0 1 0 1 i i i i i",
  1329. "x x x x x x x x x x x x x x x x";
  1330. ;
  1331. memory "lock"
  1332. size = 1;
  1333. min_write_delay = 9000;
  1334. max_write_delay = 20000;
  1335. read = "0 1 0 1 1 0 0 0 x x x x x x x x",
  1336. "x x x x x x x x x x x x x o o x";
  1337. write = "1 0 1 0 1 1 0 0 1 1 1 1 1 i i 1",
  1338. "x x x x x x x x x x x x x x x x";
  1339. ;
  1340. ;
  1341. #------------------------------------------------------------
  1342. # AT90s2343 (also AT90s2323 and ATtiny22)
  1343. #------------------------------------------------------------
  1344. part
  1345. id = "2343";
  1346. desc = "AT90S2343";
  1347. stk500_devcode = 0x43;
  1348. avr910_devcode = 0x4c;
  1349. signature = 0x1e 0x91 0x03;
  1350. chip_erase_delay = 18000;
  1351. pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1",
  1352. "x x x x x x x x x x x x x x x x";
  1353. chip_erase = "1 0 1 0 1 1 0 0 1 0 0 x x x x x",
  1354. "x x x x x x x x x x x x x x x x";
  1355. timeout = 200;
  1356. stabdelay = 100;
  1357. cmdexedelay = 25;
  1358. synchloops = 32;
  1359. bytedelay = 0;
  1360. pollindex = 3;
  1361. pollvalue = 0x53;
  1362. predelay = 1;
  1363. postdelay = 1;
  1364. pollmethod = 0;
  1365. hvsp_controlstack =
  1366. 0x4C, 0x0C, 0x1C, 0x2C, 0x3C, 0x64, 0x74, 0x00,
  1367. 0x68, 0x78, 0x68, 0x68, 0x00, 0x00, 0x68, 0x78,
  1368. 0x78, 0x00, 0x6D, 0x0C, 0x80, 0x40, 0x20, 0x10,
  1369. 0x11, 0x08, 0x04, 0x02, 0x03, 0x08, 0x04, 0x00;
  1370. hventerstabdelay = 100;
  1371. hvspcmdexedelay = 0;
  1372. synchcycles = 6;
  1373. latchcycles = 1;
  1374. togglevtg = 0;
  1375. poweroffdelay = 25;
  1376. resetdelayms = 0;
  1377. resetdelayus = 50;
  1378. hvleavestabdelay = 100;
  1379. resetdelay = 25;
  1380. chiperasepolltimeout = 40;
  1381. chiperasetime = 0;
  1382. programfusepolltimeout = 25;
  1383. programlockpolltimeout = 25;
  1384. memory "eeprom"
  1385. size = 128;
  1386. min_write_delay = 9000;
  1387. max_write_delay = 20000;
  1388. readback_p1 = 0x00;
  1389. readback_p2 = 0xff;
  1390. read = "1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0",
  1391. "x a6 a5 a4 a3 a2 a1 a0 o o o o o o o o";
  1392. write = "1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0",
  1393. "x a6 a5 a4 a3 a2 a1 a0 i i i i i i i i";
  1394. mode = 0x04;
  1395. delay = 12;
  1396. blocksize = 64;
  1397. readsize = 256;
  1398. ;
  1399. memory "flash"
  1400. size = 2048;
  1401. min_write_delay = 9000;
  1402. max_write_delay = 20000;
  1403. readback_p1 = 0xff;
  1404. readback_p2 = 0xff;
  1405. read_lo = " 0 0 1 0 0 0 0 0",
  1406. " x x x x x x a9 a8",