1 | #------------------------------------------------------------
|
2 | # ATtiny85
|
3 | #------------------------------------------------------------
|
4 |
|
5 | part
|
6 | id = "t85";
|
7 | desc = "ATtiny85";
|
8 | has_debugwire = yes;
|
9 | flash_instr = 0xB4, 0x02, 0x12;
|
10 | eeprom_instr = 0xBB, 0xFF, 0xBB, 0xEE, 0xBB, 0xCC, 0xB2, 0x0D,
|
11 | 0xBC, 0x02, 0xB4, 0x02, 0xBA, 0x0D, 0xBB, 0xBC,
|
12 | 0x99, 0xE1, 0xBB, 0xAC;
|
13 | ## no STK500 devcode in XML file, use the ATtiny45 one
|
14 | stk500_devcode = 0x14;
|
15 | ## avr910_devcode = ?;
|
16 | ## Try the AT90S2313 devcode:
|
17 | avr910_devcode = 0x20;
|
18 | signature = 0x1e 0x93 0x0b;
|
19 | reset = io;
|
20 | chip_erase_delay = 4500;
|
21 |
|
22 | pgm_enable = "1 0 1 0 1 1 0 0 0 1 0 1 0 0 1 1",
|
23 | "x x x x x x x x x x x x x x x x";
|
24 |
|
25 | chip_erase = "1 0 1 0 1 1 0 0 1 0 0 x x x x x",
|
26 | "x x x x x x x x x x x x x x x x";
|
27 |
|
28 | timeout = 200;
|
29 | stabdelay = 100;
|
30 | cmdexedelay = 25;
|
31 | synchloops = 32;
|
32 | bytedelay = 0;
|
33 | pollindex = 3;
|
34 | pollvalue = 0x53;
|
35 | predelay = 1;
|
36 | postdelay = 1;
|
37 | pollmethod = 1;
|
38 |
|
39 | hvsp_controlstack =
|
40 | 0x4C, 0x0C, 0x1C, 0x2C, 0x3C, 0x64, 0x74, 0x66,
|
41 | 0x68, 0x78, 0x68, 0x68, 0x7A, 0x6A, 0x68, 0x78,
|
42 | 0x78, 0x7D, 0x6D, 0x0C, 0x80, 0x40, 0x20, 0x10,
|
43 | 0x11, 0x08, 0x04, 0x02, 0x03, 0x08, 0x04, 0x00;
|
44 | hventerstabdelay = 100;
|
45 | hvspcmdexedelay = 0;
|
46 | synchcycles = 6;
|
47 | latchcycles = 1;
|
48 | togglevtg = 1;
|
49 | poweroffdelay = 25;
|
50 | resetdelayms = 1;
|
51 | resetdelayus = 0;
|
52 | hvleavestabdelay = 100;
|
53 | resetdelay = 25;
|
54 | chiperasepolltimeout = 40;
|
55 | chiperasetime = 0;
|
56 | programfusepolltimeout = 25;
|
57 | programlockpolltimeout = 25;
|
58 |
|
59 | memory "eeprom"
|
60 | size = 512;
|
61 | paged = no;
|
62 | page_size = 4;
|
63 | min_write_delay = 4000;
|
64 | max_write_delay = 4500;
|
65 | readback_p1 = 0xff;
|
66 | readback_p2 = 0xff;
|
67 | read = "1 0 1 0 0 0 0 0 0 0 0 x x x x a8",
|
68 | "a7 a6 a5 a4 a3 a2 a1 a0 o o o o o o o o";
|
69 |
|
70 | write = "1 1 0 0 0 0 0 0 0 0 0 x x x x a8",
|
71 | "a8 a6 a5 a4 a3 a2 a1 a0 i i i i i i i i";
|
72 |
|
73 | loadpage_lo = " 1 1 0 0 0 0 0 1",
|
74 | " 0 0 0 0 0 0 0 0",
|
75 | " 0 0 0 0 0 0 a1 a0",
|
76 | " i i i i i i i i";
|
77 |
|
78 | writepage = " 1 1 0 0 0 0 1 0",
|
79 | " 0 0 x x x x x a8",
|
80 | " a7 a6 a5 a4 a3 a2 0 0",
|
81 | " x x x x x x x x";
|
82 |
|
83 | mode = 0x41;
|
84 | delay = 6;
|
85 | blocksize = 4;
|
86 | readsize = 256;
|
87 | ;
|
88 | memory "flash"
|
89 | paged = yes;
|
90 | size = 8192;
|
91 | page_size = 64;
|
92 | num_pages = 128;
|
93 | min_write_delay = 4500;
|
94 | max_write_delay = 4500;
|
95 | readback_p1 = 0xff;
|
96 | readback_p2 = 0xff;
|
97 | read_lo = " 0 0 1 0 0 0 0 0",
|
98 | " 0 0 0 0 a11 a10 a9 a8",
|
99 | " a7 a6 a5 a4 a3 a2 a1 a0",
|
100 | " o o o o o o o o";
|
101 |
|
102 | read_hi = " 0 0 1 0 1 0 0 0",
|
103 | " 0 0 0 0 a11 a10 a9 a8",
|
104 | " a7 a6 a5 a4 a3 a2 a1 a0",
|
105 | " o o o o o o o o";
|
106 |
|
107 | loadpage_lo = " 0 1 0 0 0 0 0 0",
|
108 | " 0 0 0 x x x x x",
|
109 | " x x x a4 a3 a2 a1 a0",
|
110 | " i i i i i i i i";
|
111 |
|
112 | loadpage_hi = " 0 1 0 0 1 0 0 0",
|
113 | " 0 0 0 x x x x x",
|
114 | " x x x a4 a3 a2 a1 a0",
|
115 | " i i i i i i i i";
|
116 |
|
117 | writepage = " 0 1 0 0 1 1 0 0",
|
118 | " 0 0 0 0 a11 a10 a9 a8",
|
119 | " a7 a6 a5 x x x x x",
|
120 | " x x x x x x x x";
|
121 |
|
122 | mode = 0x41;
|
123 | delay = 6;
|
124 | blocksize = 32;
|
125 | readsize = 256;
|
126 | ;
|
127 | # ATtiny85 has Signature Bytes: 0x1E 0x93 0x08.
|
128 | memory "signature"
|
129 | size = 3;
|
130 | read = "0 0 1 1 0 0 0 0 0 0 0 x x x x x",
|
131 | "x x x x x x a1 a0 o o o o o o o o";
|
132 | ;
|
133 | memory "lock"
|
134 | size = 1;
|
135 | write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x",
|
136 | "x x x x x x x x 1 1 i i i i i i";
|
137 | min_write_delay = 9000;
|
138 | max_write_delay = 9000;
|
139 | ;
|
140 |
|
141 | memory "lfuse"
|
142 | size = 1;
|
143 | write = "1 0 1 0 1 1 0 0 1 0 1 0 0 0 0 0",
|
144 | "x x x x x x x x i i i i i i i i";
|
145 |
|
146 | read = "0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0",
|
147 | "x x x x x x x x o o o o o o o o";
|
148 | min_write_delay = 9000;
|
149 | max_write_delay = 9000;
|
150 | ;
|
151 |
|
152 | memory "hfuse"
|
153 | size = 1;
|
154 | write = "1 0 1 0 1 1 0 0 1 0 1 0 1 0 0 0",
|
155 | "x x x x x x x x i i i i i i i i";
|
156 |
|
157 | read = "0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0",
|
158 | "x x x x x x x x o o o o o o o o";
|
159 | min_write_delay = 9000;
|
160 | max_write_delay = 9000;
|
161 | ;
|
162 |
|
163 | memory "efuse"
|
164 | size = 1;
|
165 | write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0",
|
166 | "x x x x x x x x x x x x x x x i";
|
167 |
|
168 | read = "0 1 0 1 0 0 0 0 0 0 0 0 1 0 0 0",
|
169 | "x x x x x x x x o o o o o o o o";
|
170 | min_write_delay = 9000;
|
171 | max_write_delay = 9000;
|
172 | ;
|
173 |
|
174 | memory "calibration"
|
175 | size = 2;
|
176 | read = "0 0 1 1 1 0 0 0 0 0 0 x x x x x",
|
177 | "0 0 0 0 0 0 0 a0 o o o o o o o o";
|
178 | ;
|
179 | ;
|