1 | #------------------------------------------------------------
|
2 | # ATTiny841
|
3 | #------------------------------------------------------------
|
4 |
|
5 | part
|
6 | id = "t841";
|
7 | desc = "ATtiny841";
|
8 | has_debugwire = yes;
|
9 | flash_instr = 0xB4, 0x07, 0x17;
|
10 | eeprom_instr = 0xBB, 0xFF, 0xBB, 0xEE, 0xBB, 0xCC, 0xB2, 0x0D,
|
11 | 0xBC, 0x07, 0xB4, 0x07, 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 0x15;
|
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, 0x0F;
|
44 | hventerstabdelay = 100;
|
45 | hvspcmdexedelay = 0;
|
46 | synchcycles = 6;
|
47 | latchcycles = 1;
|
48 | togglevtg = 1;
|
49 | poweroffdelay = 25;
|
50 | resetdelayms = 0;
|
51 | resetdelayus = 70;
|
52 | hvleavestabdelay = 100;
|
53 | resetdelay = 25;
|
54 | chiperasepolltimeout = 40;
|
55 |
|
56 | memory "eeprom"
|
57 | size = 512;
|
58 | paged = no;
|
59 | page_size = 4;
|
60 | min_write_delay = 4000;
|
61 | max_write_delay = 4500;
|
62 | readback_p1 = 0xff;
|
63 | readback_p2 = 0xff;
|
64 | read = "1 0 1 0 0 0 0 0 0 0 0 x x x x a8",
|
65 | "a7 a6 a5 a4 a3 a2 a1 a0 o o o o o o o o";
|
66 |
|
67 | write = "1 1 0 0 0 0 0 0 0 0 0 x x x x a8",
|
68 | "a7 a6 a5 a4 a3 a2 a1 a0 i i i i i i i i";
|
69 |
|
70 | loadpage_lo = " 1 1 0 0 0 0 0 1",
|
71 | " 0 0 0 0 0 0 0 0",
|
72 | " 0 0 0 0 0 0 a1 a0",
|
73 | " i i i i i i i i";
|
74 |
|
75 | writepage = " 1 1 0 0 0 0 1 0",
|
76 | " 0 0 x x x x x x",
|
77 | " x a6 a5 a4 a3 a2 0 0",
|
78 | " x x x x x x x x";
|
79 |
|
80 | mode = 0x41;
|
81 | delay = 6;
|
82 | blocksize = 4;
|
83 | readsize = 256;
|
84 | ;
|
85 | memory "flash"
|
86 | paged = yes;
|
87 | size = 8192;
|
88 | page_size = 16;
|
89 | num_pages = 512;
|
90 | min_write_delay = 4500;
|
91 | max_write_delay = 4500;
|
92 | readback_p1 = 0xff;
|
93 | readback_p2 = 0xff;
|
94 | read_lo = " 0 0 1 0 0 0 0 0",
|
95 | " 0 0 0 0 a11 a10 a9 a8",
|
96 | " a7 a6 a5 a4 a3 a2 a1 a0",
|
97 | " o o o o o o o o";
|
98 |
|
99 | read_hi = " 0 0 1 0 1 0 0 0",
|
100 | " 0 0 0 0 a11 a10 a9 a8",
|
101 | " a7 a6 a5 a4 a3 a2 a1 a0",
|
102 | " o o o o o o o o";
|
103 |
|
104 | loadpage_lo = " 0 1 0 0 0 0 0 0",
|
105 | " 0 0 0 x x x x x",
|
106 | " x x x x x a2 a1 a0",
|
107 | " i i i i i i i i";
|
108 |
|
109 | loadpage_hi = " 0 1 0 0 1 0 0 0",
|
110 | " 0 0 0 x x x x x",
|
111 | " x x x x x a2 a1 a0",
|
112 | " i i i i i i i i";
|
113 |
|
114 | writepage = " 0 1 0 0 1 1 0 0",
|
115 | " 0 0 0 0 a11 a10 a9 a8",
|
116 | " a7 a6 a5 a4 a3 x x x",
|
117 | " x x x x x x x x";
|
118 |
|
119 | mode = 0x41;
|
120 | delay = 10;
|
121 | blocksize = 16;
|
122 | readsize = 256;
|
123 | ;
|
124 | # ATtiny841 has Signature Bytes: 0x1E 0x93 0x0C.
|
125 | memory "signature"
|
126 | size = 3;
|
127 | read = "0 0 1 1 0 0 0 0 0 0 0 x x x x x",
|
128 | "x x x x x x a1 a0 o o o o o o o o";
|
129 | ;
|
130 |
|
131 | memory "lock"
|
132 | size = 1;
|
133 | write = "1 0 1 0 1 1 0 0 1 1 1 x x x x x",
|
134 | "x x x x x x x x x x x x x x i i";
|
135 | read = "0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0",
|
136 | "0 0 0 0 0 0 0 0 o o o o o o o o";
|
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 i i i i i i i 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 = 1;
|
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 | ;
|