1 /*-------------------------------------------------------------------------
2 device.inc - pic16 device descriptions for inclusion into device.c
4 Written By - Scott Dattalo scott@dattalo.com
5 Ported to PIC16 By - Martin Dubuc m.dubuc@rogers.com
6 Moved from device.c - Raphael Neider <rneider AT web.de>
8 This program is free software; you can redistribute it and/or modify it
9 under the terms of the GNU General Public License as published by the
10 Free Software Foundation; either version 2, or (at your option) any
13 This program is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 GNU General Public License for more details.
18 You should have received a copy of the GNU General Public License
19 along with this program; if not, write to the Free Software
20 Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
23 -------------------------------------------------------------------------*/
25 /* This file is included into device.c in order to populate the
26 * Pics16 array with the various device's descriptions.
27 * For a reference of the structure to be filled in here see
28 * PIC16_device in device.h.
30 * The list is scanned top-down, the first device entry matching the
31 * desired processor name will be used. Temporary overrides of faulty
32 * device descriptions can be specified be placing them near the top
37 // {"p18f242", "18f242", "pic18f242", "f242", "18F242"}, // aliases
41 // { 0xf80, 0xfff }, /* PIC18F242 range of SFR's */
43 // /* PIC18F242 configuration words */
46 // { { 0x27, 0, 0xff } /* 1 */ , { 0x0f, 0, 0xff } /* 2 */ , { 0x0f, 0, 0xff } /* 3 */ ,
47 // { -1, 0, 0xff } /* 4 */ , { 0x01, 0, 0xff } /* 5 */ , { 0x85, 0, 0xff } /* 6 */ ,
48 // { -1, 0, 0xff } /* 7 */ , { 0x03, 0, 0xff } /* 8 */ , { 0xc0, 0, 0xff } /* 9 */ ,
49 // { 0x03, 0, 0xff } /* a */ , { 0xe0, 0, 0xff } /* b */ , { 0x03, 0, 0xff } /* c */ ,
50 // { 0x40, 0, 0xff } /* d */ }
55 {"p18f242", "18f242", "pic18f242", "f242"},
60 { 0xf80, 0xfff }, /* PIC18F242 range of SFR's */
62 /* PIC18F242 configuration words */
65 { { 0x27, 0, 0xff } /* 1 */ , { 0x0f, 0, 0xff } /* 2 */ , { 0x0f, 0, 0xff } /* 3 */ ,
66 { -1, 0, 0xff } /* 4 */ , { 0x01, 0, 0xff } /* 5 */ , { 0x85, 0, 0xff } /* 6 */ ,
67 { -1, 0, 0xff } /* 7 */ , { 0x0f, 0, 0xff } /* 8 */ , { 0xc0, 0, 0xff } /* 9 */ ,
68 { 0x0f, 0, 0xff } /* a */ , { 0xe0, 0, 0xff } /* b */ , { 0x0f, 0, 0xff } /* c */ ,
69 { 0x40, 0, 0xff } /* d */ }
72 { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
73 { 0, 0 }, { 0, 0 }, { 0, 0 } }
77 {"p18f248", "18f248", "pic18f248", "f248"},
82 { 0xf00, 0xfff }, /* PIC18F248 range of SFR's */
84 /* PIC18F248 configuration words */
87 { { 0x27, 0, 0xff } /* 1 */ , { 0x0f, 0, 0xff } /* 2 */ , { 0x0f, 0, 0xff } /* 3 */ ,
88 { -1, 0, 0xff } /* 4 */ , { -1, 0, 0xff } /* 5 */ , { 0x85, 0, 0xff } /* 6 */ ,
89 { -1, 0, 0xff } /* 7 */ , { 0x0f, 0, 0xff } /* 8 */ , { 0xc0, 0, 0xff } /* 9 */ ,
90 { 0x0f, 0, 0xff } /* a */ , { 0xe0, 0, 0xff } /* b */ , { 0x0f, 0, 0xff } /* c */ ,
91 { 0x40, 0, 0xff } /* d */ }
94 { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
95 { 0, 0 }, { 0, 0 }, { 0, 0 } }
99 {"p18f252", "18f252", "pic18f252", "f252"},
104 { 0xf80, 0xfff }, /* PIC18F252 range of SFR's */
106 /* PIC18F252 configuration words */
109 { { 0x27, 0, 0xff } /* 1 */ , { 0x0f, 0, 0xff } /* 2 */ , { 0x0f, 0, 0xff } /* 3 */ ,
110 { -1, 0, 0xff } /* 4 */ , { 0x01, 0, 0xff } /* 5 */ , { 0x85, 0, 0xff } /* 6 */ ,
111 { -1, 0, 0xff } /* 7 */ , { 0x0f, 0, 0xff } /* 8 */ , { 0xc0, 0, 0xff } /* 9 */ ,
112 { 0x0f, 0, 0xff } /* a */ , { 0xe0, 0, 0xff } /* b */ , { 0x0f, 0, 0xff } /* c */ ,
113 { 0x40, 0, 0xff } /* d */ }
115 { 0x200000, 0x200007,
116 { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
117 { 0, 0 }, { 0, 0 }, { 0, 0 } }
121 {"p18f258", "18f258", "pic18f258", "f258"},
126 { 0xf00, 0xfff }, /* PIC18F258 range of SFR's */
128 /* PIC18F258 configuration words */
131 { { 0x27, 0, 0xff } /* 1 */ , { 0x0f, 0, 0xff } /* 2 */ , { 0x0f, 0, 0xff } /* 3 */ ,
132 { -1, 0, 0xff } /* 4 */ , { -1, 0, 0xff } /* 5 */ , { 0x85, 0, 0xff } /* 6 */ ,
133 { -1, 0, 0xff } /* 7 */ , { 0x0f, 0, 0xff } /* 8 */ , { 0xc0, 0, 0xff } /* 9 */ ,
134 { 0x0f, 0, 0xff } /* a */ , { 0xe0, 0, 0xff } /* b */ , { 0x0f, 0, 0xff } /* c */ ,
135 { 0x40, 0, 0xff } /* d */ }
137 { 0x200000, 0x200007,
138 { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
139 { 0, 0 }, { 0, 0 }, { 0, 0 } }
143 {"p18f442", "18f442", "pic18f442", "f442"},
148 { 0xf80, 0xfff }, /* PIC18F442 range of SFR's */
150 /* PIC18F442 configuration words */
153 { { 0x27, 0, 0xff } /* 1 */ , { 0x0f, 0, 0xff } /* 2 */ , { 0x0f, 0, 0xff } /* 3 */ ,
154 { -1, 0, 0xff } /* 4 */ , { 0x01, 0, 0xff } /* 5 */ , { 0x85, 0, 0xff } /* 6 */ ,
155 { -1, 0, 0xff } /* 7 */ , { 0x0f, 0, 0xff } /* 8 */ , { 0xc0, 0, 0xff } /* 9 */ ,
156 { 0x0f, 0, 0xff } /* a */ , { 0xe0, 0, 0xff } /* b */ , { 0x0f, 0, 0xff } /* c */ ,
157 { 0x40, 0, 0xff } /* d */ }
159 { 0x200000, 0x200007,
160 { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
161 { 0, 0 }, { 0, 0 }, { 0, 0 } }
165 {"p18f448", "18f448", "pic18f448", "f448"},
170 { 0xf00, 0xfff }, /* PIC18F448 range of SFR's */
172 /* PIC18F448 configuration words */
175 { { 0x27, 0, 0xff } /* 1 */ , { 0x0f, 0, 0xff } /* 2 */ , { 0x0f, 0, 0xff } /* 3 */ ,
176 { -1, 0, 0xff } /* 4 */ , { -1, 0, 0xff } /* 5 */ , { 0x85, 0, 0xff } /* 6 */ ,
177 { -1, 0, 0xff } /* 7 */ , { 0x0f, 0, 0xff } /* 8 */ , { 0xc0, 0, 0xff } /* 9 */ ,
178 { 0x0f, 0, 0xff } /* a */ , { 0xe0, 0, 0xff } /* b */ , { 0x0f, 0, 0xff } /* c */ ,
179 { 0x40, 0, 0xff } /* d */ }
181 { 0x200000, 0x200007,
182 { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
183 { 0, 0 }, { 0, 0 }, { 0, 0 } }
187 {"p18f452", "18f452", "pic18f452", "f452"},
192 { 0xf80, 0xfff }, /* PIC18F452 range of SFR's */
194 /* PIC18F452 configuration words */
197 { { 0x27, 0, 0xff } /* 1 */ , { 0x0f, 0, 0xff } /* 2 */ , { 0x0f, 0, 0xff } /* 3 */ ,
198 { -1, 0, 0xff } /* 4 */ , { 0x01, 0, 0xff } /* 5 */ , { 0x85, 0, 0xff } /* 6 */ ,
199 { -1, 0, 0xff } /* 7 */ , { 0x0f, 0, 0xff } /* 8 */ , { 0xc0, 0, 0xff } /* 9 */ ,
200 { 0x0f, 0, 0xff } /* a */ , { 0xe0, 0, 0xff } /* b */ , { 0x0f, 0, 0xff } /* c */ ,
201 { 0x40, 0, 0xff } /* d */ }
203 { 0x200000, 0x200007,
204 { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
205 { 0, 0 }, { 0, 0 }, { 0, 0 } }
209 {"p18f458", "18f458", "pic18f458", "f458"},
214 { 0xf00, 0xfff }, /* PIC18F458 range of SFR's */
216 /* PIC18F458 configuration words */
219 { { 0x27, 0, 0xff } /* 1 */ , { 0x0f, 0, 0xff } /* 2 */ , { 0x0f, 0, 0xff } /* 3 */ ,
220 { -1, 0, 0xff } /* 4 */ , { -1, 0, 0xff } /* 5 */ , { 0x85, 0, 0xff } /* 6 */ ,
221 { -1, 0, 0xff } /* 7 */ , { 0x0f, 0, 0xff } /* 8 */ , { 0xc0, 0, 0xff } /* 9 */ ,
222 { 0x0f, 0, 0xff } /* a */ , { 0xe0, 0, 0xff } /* b */ , { 0x0f, 0, 0xff } /* c */ ,
223 { 0x40, 0, 0xff } /* d */ }
225 { 0x200000, 0x200007,
226 { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
227 { 0, 0 }, { 0, 0 }, { 0, 0 } }
231 {"p18f1220", "18f1220", "pic18f1220", "f1220"},
236 { 0xf80, 0xfff }, /* PIC18F1220 range of SFR's */
238 /* PIC18F1220 configuration words */
241 { { 0xcf, 0, 0xff } /* 1 */ , { 0x0f, 0, 0xff } /* 2 */ , { 0x1f, 0, 0xff } /* 3 */ ,
242 { -1, 0, 0xff } /* 4 */ , { 0x80, 0, 0xff } /* 5 */ , { 0x85, 0, 0xff } /* 6 */ ,
243 { -1, 0, 0xff } /* 7 */ , { 0x03, 0, 0xff } /* 8 */ , { 0xc0, 0, 0xff } /* 9 */ ,
244 { 0x03, 0, 0xff } /* a */ , { 0xe0, 0, 0xff } /* b */ , { 0x03, 0, 0xff } /* c */ ,
245 { 0x40, 0, 0xff } /* d */ }
247 { 0x200000, 0x200007,
248 { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
249 { 0, 0 }, { 0, 0 }, { 0, 0 } }
253 {"p18f1320", "18f1320", "pic18f1320", "f1320"},
258 { 0xf80, 0xfff }, /* PIC18F1320 range of SFR's */
260 /* PIC18F1320 configuration words */
263 { { 0xcf, 0, 0xff } /* 1 */ , { 0x0f, 0, 0xff } /* 2 */ , { 0x1f, 0, 0xff } /* 3 */ ,
264 { -1, 0, 0xff } /* 4 */ , { 0x80, 0, 0xff } /* 5 */ , { 0x85, 0, 0xff } /* 6 */ ,
265 { -1, 0, 0xff } /* 7 */ , { 0x03, 0, 0xff } /* 8 */ , { 0xc0, 0, 0xff } /* 9 */ ,
266 { 0x03, 0, 0xff } /* a */ , { 0xe0, 0, 0xff } /* b */ , { 0x03, 0, 0xff } /* c */ ,
267 { 0x40, 0, 0xff } /* d */ }
269 { 0x200000, 0x200007,
270 { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
271 { 0, 0 }, { 0, 0 }, { 0, 0 } }
275 {"p18f2220", "18f2220", "pic18f2220", "f2220"},
280 { 0xf80, 0xfff }, /* PIC18F2220 range of SFR's */
282 /* PIC18F2220 configuration words */
285 { { 0xcf, 0, 0xff } /* 1 */ , { 0x0f, 0, 0xff } /* 2 */ , { 0x1f, 0, 0xff } /* 3 */ ,
286 { -1, 0, 0xff } /* 4 */ , { 0x83, 0, 0xff } /* 5 */ , { 0x85, 0, 0xff } /* 6 */ ,
287 { -1, 0, 0xff } /* 7 */ , { 0x0f, 0, 0xff } /* 8 */ , { 0xc0, 0, 0xff } /* 9 */ ,
288 { 0x0f, 0, 0xff } /* a */ , { 0xe0, 0, 0xff } /* b */ , { 0x0f, 0, 0xff } /* c */ ,
289 { 0x40, 0, 0xff } /* d */ }
291 { 0x200000, 0x200007,
292 { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
293 { 0, 0 }, { 0, 0 }, { 0, 0 } }
297 {"p18f2221", "18f2221", "pic18f2221", "f2221"}, // also: 2321, 4221, 4321
299 0x200, /* RAM in bytes */
300 0x80, /* access bank split */
302 { 0xf80, 0xfff }, /* range of SFR's */
304 /* configuration words */
305 0x300001, /* first address */
306 0x30000d, /* last address */
307 { { 0xcf, 0, 0x37 } /* 1 */ , { 0x1f, 0, 0xff } /* 2 */ , { 0x1f, 0, 0xff } /* 3 */ ,
308 { -1 , 0, 0xff } /* 4 */ , { 0x87, 0, 0xfb } /* 5 */ , { 0xf5, 0, 0x8f } /* 6 */ ,
309 { -1 , 0, 0xff } /* 7 */ , { 0x03, 0, 0xff } /* 8 */ , { 0xc0, 0, 0xff } /* 9 */ ,
310 { 0x03, 0, 0xff } /* a */ , { 0xe0, 0, 0xff } /* b */ , { 0x03, 0, 0xff } /* c */ ,
311 { 0x40, 0, 0xff } /* d */ }
313 /* IDLOCs --- always 0 */
314 { 0x200000, 0x200007,
315 { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
316 { 0, 0 }, { 0, 0 }, { 0, 0 } }
320 {"p18f2320", "18f2320", "pic18f2320", "f2320"},
325 { 0xf80, 0xfff }, /* PIC18F2320 range of SFR's */
327 /* PIC18F2320 configuration words */
330 { { 0xcf, 0, 0xff } /* 1 */ , { 0x0f, 0, 0xff } /* 2 */ , { 0x1f, 0, 0xff } /* 3 */ ,
331 { -1, 0, 0xff } /* 4 */ , { 0x83, 0, 0xff } /* 5 */ , { 0x85, 0, 0xff } /* 6 */ ,
332 { -1, 0, 0xff } /* 7 */ , { 0x0f, 0, 0xff } /* 8 */ , { 0xc0, 0, 0xff } /* 9 */ ,
333 { 0x0f, 0, 0xff } /* a */ , { 0xe0, 0, 0xff } /* b */ , { 0x0f, 0, 0xff } /* c */ ,
334 { 0x40, 0, 0xff } /* d */ }
336 { 0x200000, 0x200007,
337 { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
338 { 0, 0 }, { 0, 0 }, { 0, 0 } }
342 {"p18f2321", "18f2321", "pic18f2321", "f2321"}, // also: 2221, 4221, 4321
344 0x200, /* RAM in bytes */
345 0x80, /* access bank split */
347 { 0xf80, 0xfff }, /* range of SFR's */
349 /* configuration words */
350 0x300001, /* first address */
351 0x30000d, /* last address */
352 { { 0xcf, 0, 0x37 } /* 1 */ , { 0x1f, 0, 0xff } /* 2 */ , { 0x1f, 0, 0xff } /* 3 */ ,
353 { -1 , 0, 0xff } /* 4 */ , { 0x87, 0, 0xfb } /* 5 */ , { 0xf5, 0, 0x8f } /* 6 */ ,
354 { -1 , 0, 0xff } /* 7 */ , { 0x03, 0, 0xff } /* 8 */ , { 0xc0, 0, 0xff } /* 9 */ ,
355 { 0x03, 0, 0xff } /* a */ , { 0xe0, 0, 0xff } /* b */ , { 0x03, 0, 0xff } /* c */ ,
356 { 0x40, 0, 0xff } /* d */ }
358 /* IDLOCs --- always 0 */
359 { 0x200000, 0x200007,
360 { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
361 { 0, 0 }, { 0, 0 }, { 0, 0 } }
365 {"p18f2331", "18f2331", "pic18f2331", "f2331"}, // also: 18f[24][34]31
367 0x300, /* RAM in bytes */
368 0x60, /* access bank split */
370 { 0xf60, 0xfff }, /* range of SFR's */
372 /* configuration words */
373 0x300001, /* first address */
374 0x30000d, /* last address */
375 { { 0xcf, 0, 0xff } /* 1 */ , { 0x0f, 0, 0xff } /* 2 */ , { 0x1f, 0, 0xff } /* 3 */ ,
376 { 0x3c, 0, 0xff } /* 4 */ , { 0x9b, 0, 0xff } /* 5 */ , { 0x85, 0, 0xff } /* 6 */ ,
377 { -1 , 0, 0xff } /* 7 */ , { 0x0f, 0, 0xff } /* 8 */ , { 0xc0, 0, 0xff } /* 9 */ ,
378 { 0x0f, 0, 0xff } /* a */ , { 0xe0, 0, 0xff } /* b */ , { 0x0f, 0, 0xff } /* c */ ,
379 { 0x40, 0, 0xff } /* d */ }
381 /* IDLOCs --- always 0 */
382 { 0x200000, 0x200007,
383 { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
384 { 0, 0 }, { 0, 0 }, { 0, 0 } }
388 {"p18f2431", "18f2431", "pic18f2431", "f2431"}, // also: 18f[24][34]31
390 0x300, /* RAM in bytes */
391 0x60, /* access bank split */
393 { 0xf60, 0xfff }, /* range of SFR's */
395 /* configuration words */
396 0x300001, /* first address */
397 0x30000d, /* last address */
398 { { 0xcf, 0, 0xff } /* 1 */ , { 0x0f, 0, 0xff } /* 2 */ , { 0x1f, 0, 0xff } /* 3 */ ,
399 { 0x3c, 0, 0xff } /* 4 */ , { 0x9b, 0, 0xff } /* 5 */ , { 0x85, 0, 0xff } /* 6 */ ,
400 { -1 , 0, 0xff } /* 7 */ , { 0x0f, 0, 0xff } /* 8 */ , { 0xc0, 0, 0xff } /* 9 */ ,
401 { 0x0f, 0, 0xff } /* a */ , { 0xe0, 0, 0xff } /* b */ , { 0x0f, 0, 0xff } /* c */ ,
402 { 0x40, 0, 0xff } /* d */ }
404 /* IDLOCs --- always 0 */
405 { 0x200000, 0x200007,
406 { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
407 { 0, 0 }, { 0, 0 }, { 0, 0 } }
411 {"p18f2455", "18f2455", "pic18f2455", "f2455"},
416 { 0xf62, 0xfff }, /* PIC18F2455 range of SFR's */
418 /* PIC18F2455 configuration words */
421 { { 0x3f, 0, 0xff } /* 0 */ , { 0xcf, 0, 0xff } /* 1 */ , { 0x3f, 0, 0xff } /* 2 */ ,
422 { 0x1f, 0, 0xff } /* 3 */ , { -1, 0, 0xff } /* 4 */ , { 0x87, 0, 0xff } /* 5 */ ,
423 { 0xe5, 0, 0xff } /* 6 */ , { -1, 0, 0xff } /* 7 */ , { 0x0f, 0, 0xff } /* 8 */ ,
424 { 0xc0, 0, 0xff } /* 9 */ , { 0x0f, 0, 0xff } /* a */ , { 0xe0, 0, 0xff } /* b */ ,
425 { 0x0f, 0, 0xff } /* c */ , { 0x40, 0, 0xff } /* d */ }
427 { 0x200000, 0x200007,
428 { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
429 { 0, 0 }, { 0, 0 }, { 0, 0 } }
433 {"p18f2525", "18f2525", "pic18f2525", "f2525"},
438 { 0xf80, 0xfff }, /* PIC18F4525,2525 range of SFR's */
440 /* PIC18F4525,2525 configuration words */
443 { { 0xcf, 0, 0xff } /* 1 */ , { 0x1f, 0, 0xff } /* 2 */ , { 0x1f, 0, 0xff } /* 3 */ ,
444 { -1, 0, 0xff } /* 4 */ , { 0x87, 0, 0xff } /* 5 */ , { 0xc5, 0, 0xff } /* 6 */ ,
445 { -1, 0, 0xff } /* 7 */ , { 0x07, 0, 0xff } /* 8 */ , { 0xc0, 0, 0xff } /* 9 */ ,
446 { 0x07, 0, 0xff } /* a */ , { 0xe0, 0, 0xff } /* b */ , { 0x07, 0, 0xff } /* c */ ,
447 { 0x40, 0, 0xff } /* d */ }
449 { 0x200000, 0x200007,
450 { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
451 { 0, 0 }, { 0, 0 }, { 0, 0 } }
455 {"p18f2550", "18f2550", "pic18f2550", "f2550"},
460 { 0xf62, 0xfff }, /* PIC18F2550 range of SFR's */
462 /* PIC18F2550 configuration words */
465 { { 0x3f, 0, 0xff } /* 0 */ , { 0xcf, 0, 0xff } /* 1 */ , { 0x3f, 0, 0xff } /* 2 */ ,
466 { 0x1f, 0, 0xff } /* 3 */ , { -1, 0, 0xff } /* 4 */ , { 0x87, 0, 0xff } /* 5 */ ,
467 { 0xe5, 0, 0xff } /* 6 */ , { -1, 0, 0xff } /* 7 */ , { 0x0f, 0, 0xff } /* 8 */ ,
468 { 0xc0, 0, 0xff } /* 9 */ , { 0x0f, 0, 0xff } /* a */ , { 0xe0, 0, 0xff } /* b */ ,
469 { 0x0f, 0, 0xff } /* c */ , { 0x40, 0, 0xff } /* d */ }
471 { 0x200000, 0x200007,
472 { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
473 { 0, 0 }, { 0, 0 }, { 0, 0 } }
477 {"p18f2620", "18f2620", "pic18f2620", "f2620"},
482 { 0xf80, 0xfff }, /* PIC18F4620,2620 range of SFR's */
484 /* PIC18F4620,2620 configuration words */
487 { { 0xcf, 0, 0xff } /* 1 */ , { 0x1f, 0, 0xff } /* 2 */ , { 0x1f, 0, 0xff } /* 3 */ ,
488 { -1, 0, 0xff } /* 4 */ , { 0x87, 0, 0xff } /* 5 */ , { 0xc5, 0, 0xff } /* 6 */ ,
489 { -1, 0, 0xff } /* 7 */ , { 0x0f, 0, 0xff } /* 8 */ , { 0xc0, 0, 0xff } /* 9 */ ,
490 { 0x0f, 0, 0xff } /* a */ , { 0xe0, 0, 0xff } /* b */ , { 0x0f, 0, 0xff } /* c */ ,
491 { 0x40, 0, 0xff } /* d */ }
493 { 0x200000, 0x200007,
494 { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
495 { 0, 0 }, { 0, 0 }, { 0, 0 } }
499 {"p18f4220", "18f4220", "pic18f4220", "f4220"},
504 { 0xf80, 0xfff }, /* PIC18F4220 range of SFR's */
506 /* PIC18F4220 configuration words */
509 { { 0xcf, 0, 0xff } /* 1 */ , { 0x0f, 0, 0xff } /* 2 */ , { 0x1f, 0, 0xff } /* 3 */ ,
510 { -1, 0, 0xff } /* 4 */ , { 0x83, 0, 0xff } /* 5 */ , { 0x85, 0, 0xff } /* 6 */ ,
511 { -1, 0, 0xff } /* 7 */ , { 0x0f, 0, 0xff } /* 8 */ , { 0xc0, 0, 0xff } /* 9 */ ,
512 { 0x0f, 0, 0xff } /* a */ , { 0xe0, 0, 0xff } /* b */ , { 0x0f, 0, 0xff } /* c */ ,
513 { 0x40, 0, 0xff } /* d */ }
515 { 0x200000, 0x200007,
516 { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
517 { 0, 0 }, { 0, 0 }, { 0, 0 } }
521 {"p18f4221", "18f4221", "pic18f4221", "f4221"}, // also: 2221, 2321, 4321
523 0x200, /* RAM in bytes */
524 0x80, /* access bank split */
526 { 0xf80, 0xfff }, /* range of SFR's */
528 /* configuration words */
529 0x300001, /* first address */
530 0x30000d, /* last address */
531 { { 0xcf, 0, 0x37 } /* 1 */ , { 0x1f, 0, 0xff } /* 2 */ , { 0x1f, 0, 0xff } /* 3 */ ,
532 { -1 , 0, 0xff } /* 4 */ , { 0x87, 0, 0xfb } /* 5 */ , { 0xf5, 0, 0x8f } /* 6 */ ,
533 { -1 , 0, 0xff } /* 7 */ , { 0x03, 0, 0xff } /* 8 */ , { 0xc0, 0, 0xff } /* 9 */ ,
534 { 0x03, 0, 0xff } /* a */ , { 0xe0, 0, 0xff } /* b */ , { 0x03, 0, 0xff } /* c */ ,
535 { 0x40, 0, 0xff } /* d */ }
537 /* IDLOCs --- always 0 */
538 { 0x200000, 0x200007,
539 { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
540 { 0, 0 }, { 0, 0 }, { 0, 0 } }
544 {"p18f4320", "18f4320", "pic18f4320", "f4320"},
549 { 0xf80, 0xfff }, /* PIC18F4320 range of SFR's */
551 /* PIC18F4320 configuration words */
554 { { 0xcf, 0, 0xff } /* 1 */ , { 0x0f, 0, 0xff } /* 2 */ , { 0x1f, 0, 0xff } /* 3 */ ,
555 { -1, 0, 0xff } /* 4 */ , { 0x83, 0, 0xff } /* 5 */ , { 0x85, 0, 0xff } /* 6 */ ,
556 { -1, 0, 0xff } /* 7 */ , { 0x0f, 0, 0xff } /* 8 */ , { 0xc0, 0, 0xff } /* 9 */ ,
557 { 0x0f, 0, 0xff } /* a */ , { 0xe0, 0, 0xff } /* b */ , { 0x0f, 0, 0xff } /* c */ ,
558 { 0x40, 0, 0xff } /* d */ }
560 { 0x200000, 0x200007,
561 { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
562 { 0, 0 }, { 0, 0 }, { 0, 0 } }
566 {"p18f4321", "18f4321", "pic18f4321", "f4321"}, // also: 2221, 2321, 4221
568 0x200, /* RAM in bytes */
569 0x80, /* access bank split */
571 { 0xf80, 0xfff }, /* range of SFR's */
573 /* configuration words */
574 0x300001, /* first address */
575 0x30000d, /* last address */
576 { { 0xcf, 0, 0x37 } /* 1 */ , { 0x1f, 0, 0xff } /* 2 */ , { 0x1f, 0, 0xff } /* 3 */ ,
577 { -1 , 0, 0xff } /* 4 */ , { 0x87, 0, 0xfb } /* 5 */ , { 0xf5, 0, 0x8f } /* 6 */ ,
578 { -1 , 0, 0xff } /* 7 */ , { 0x03, 0, 0xff } /* 8 */ , { 0xc0, 0, 0xff } /* 9 */ ,
579 { 0x03, 0, 0xff } /* a */ , { 0xe0, 0, 0xff } /* b */ , { 0x03, 0, 0xff } /* c */ ,
580 { 0x40, 0, 0xff } /* d */ }
582 /* IDLOCs --- always 0 */
583 { 0x200000, 0x200007,
584 { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
585 { 0, 0 }, { 0, 0 }, { 0, 0 } }
589 {"p18f4331", "18f4331", "pic18f4331", "f4331"}, // also: 18f[24][34]31
591 0x300, /* RAM in bytes */
592 0x60, /* access bank split */
594 { 0xf60, 0xfff }, /* range of SFR's */
596 /* configuration words */
597 0x300001, /* first address */
598 0x30000d, /* last address */
599 { { 0xcf, 0, 0xff } /* 1 */ , { 0x0f, 0, 0xff } /* 2 */ , { 0x1f, 0, 0xff } /* 3 */ ,
600 { 0x3c, 0, 0xff } /* 4 */ , { 0x9b, 0, 0xff } /* 5 */ , { 0x85, 0, 0xff } /* 6 */ ,
601 { -1 , 0, 0xff } /* 7 */ , { 0x0f, 0, 0xff } /* 8 */ , { 0xc0, 0, 0xff } /* 9 */ ,
602 { 0x0f, 0, 0xff } /* a */ , { 0xe0, 0, 0xff } /* b */ , { 0x0f, 0, 0xff } /* c */ ,
603 { 0x40, 0, 0xff } /* d */ }
605 /* IDLOCs --- always 0 */
606 { 0x200000, 0x200007,
607 { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
608 { 0, 0 }, { 0, 0 }, { 0, 0 } }
612 {"p18f4431", "18f4431", "pic18f4431", "f4431"}, // also: 18f[24][34]31
614 0x300, /* RAM in bytes */
615 0x60, /* access bank split */
617 { 0xf60, 0xfff }, /* range of SFR's */
619 /* configuration words */
620 0x300001, /* first address */
621 0x30000d, /* last address */
622 { { 0xcf, 0, 0xff } /* 1 */ , { 0x0f, 0, 0xff } /* 2 */ , { 0x1f, 0, 0xff } /* 3 */ ,
623 { 0x3c, 0, 0xff } /* 4 */ , { 0x9b, 0, 0xff } /* 5 */ , { 0x85, 0, 0xff } /* 6 */ ,
624 { -1 , 0, 0xff } /* 7 */ , { 0x0f, 0, 0xff } /* 8 */ , { 0xc0, 0, 0xff } /* 9 */ ,
625 { 0x0f, 0, 0xff } /* a */ , { 0xe0, 0, 0xff } /* b */ , { 0x0f, 0, 0xff } /* c */ ,
626 { 0x40, 0, 0xff } /* d */ }
628 /* IDLOCs --- always 0 */
629 { 0x200000, 0x200007,
630 { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
631 { 0, 0 }, { 0, 0 }, { 0, 0 } }
635 {"p18f4455", "18f4455", "pic18f4455", "f4455"},
640 { 0xf62, 0xfff }, /* PIC18F4455 range of SFR's */
642 /* PIC18F4455 configuration words */
645 { { 0x3f, 0, 0xff } /* 0 */ , { 0xcf, 0, 0xff } /* 1 */ , { 0x3f, 0, 0xff } /* 2 */ ,
646 { 0x1f, 0, 0xff } /* 3 */ , { -1, 0, 0xff } /* 4 */ , { 0x87, 0, 0xff } /* 5 */ ,
647 { 0xe5, 0, 0xff } /* 6 */ , { -1, 0, 0xff } /* 7 */ , { 0x0f, 0, 0xff } /* 8 */ ,
648 { 0xc0, 0, 0xff } /* 9 */ , { 0x0f, 0, 0xff } /* a */ , { 0xe0, 0, 0xff } /* b */ ,
649 { 0x0f, 0, 0xff } /* c */ , { 0x40, 0, 0xff } /* d */ }
651 { 0x200000, 0x200007,
652 { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
653 { 0, 0 }, { 0, 0 }, { 0, 0 } }
657 {"p18f4520", "18f4520", "pic18f4520", "f4520"},
662 { 0xf80, 0xfff }, /* PIC18F4520 range of SFR's */
664 /* PIC18F4520 configuration words */
667 { { 0x3f, 0, 0xff } /* 0 */ , { 0xcf, 0, 0xff } /* 1 */ , { 0x1f, 0, 0xff } /* 2 */ ,
668 { 0x1f, 0, 0xff } /* 3 */ , { -1, 0, 0xff } /* 4 */ , { 0x87, 0, 0xff } /* 5 */ ,
669 { 0xc5, 0, 0xff } /* 6 */ , { -1, 0, 0xff } /* 7 */ , { 0x0f, 0, 0xff } /* 8 */ ,
670 { 0xc0, 0, 0xff } /* 9 */ , { 0x0f, 0, 0xff } /* a */ , { 0xe0, 0, 0xff } /* b */ ,
671 { 0x0f, 0, 0xff } /* c */ , { 0x40, 0, 0xff } /* d */ }
673 { 0x200000, 0x200007,
674 { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
675 { 0, 0 }, { 0, 0 }, { 0, 0 } }
679 {"p18f4525", "18f4525", "pic18f4525", "f4525"},
684 { 0xf80, 0xfff }, /* PIC18F4525,2525 range of SFR's */
686 /* PIC18F4525,2525 configuration words */
689 { { 0xcf, 0, 0xff } /* 1 */ , { 0x1f, 0, 0xff } /* 2 */ , { 0x1f, 0, 0xff } /* 3 */ ,
690 { -1, 0, 0xff } /* 4 */ , { 0x87, 0, 0xff } /* 5 */ , { 0xc5, 0, 0xff } /* 6 */ ,
691 { -1, 0, 0xff } /* 7 */ , { 0x07, 0, 0xff } /* 8 */ , { 0xc0, 0, 0xff } /* 9 */ ,
692 { 0x07, 0, 0xff } /* a */ , { 0xe0, 0, 0xff } /* b */ , { 0x07, 0, 0xff } /* c */ ,
693 { 0x40, 0, 0xff } /* d */ }
695 { 0x200000, 0x200007,
696 { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
697 { 0, 0 }, { 0, 0 }, { 0, 0 } }
701 {"p18f4550", "18f4550", "pic18f4550", "f4550"},
706 { 0xf62, 0xfff }, /* PIC18F4550 range of SFR's */
708 /* PIC18F4550 configuration words */
711 { { 0x3f, 0, 0xff } /* 0 */ , { 0xcf, 0, 0xff } /* 1 */ , { 0x3f, 0, 0xff } /* 2 */ ,
712 { 0x1f, 0, 0xff } /* 3 */ , { -1, 0, 0xff } /* 4 */ , { 0x87, 0, 0xff } /* 5 */ ,
713 { 0xe5, 0, 0xff } /* 6 */ , { -1, 0, 0xff } /* 7 */ , { 0x0f, 0, 0xff } /* 8 */ ,
714 { 0xc0, 0, 0xff } /* 9 */ , { 0x0f, 0, 0xff } /* a */ , { 0xe0, 0, 0xff } /* b */ ,
715 { 0x0f, 0, 0xff } /* c */ , { 0x40, 0, 0xff } /* d */ }
717 { 0x200000, 0x200007,
718 { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
719 { 0, 0 }, { 0, 0 }, { 0, 0 } }
723 {"p18f4620", "18f4620", "pic18f4620", "f4620"},
728 { 0xf80, 0xfff }, /* PIC18F4620,2620 range of SFR's */
730 /* PIC18F4620,2620 configuration words */
733 { { 0xcf, 0, 0xff } /* 1 */ , { 0x1f, 0, 0xff } /* 2 */ , { 0x1f, 0, 0xff } /* 3 */ ,
734 { -1, 0, 0xff } /* 4 */ , { 0x87, 0, 0xff } /* 5 */ , { 0xc5, 0, 0xff } /* 6 */ ,
735 { -1, 0, 0xff } /* 7 */ , { 0x0f, 0, 0xff } /* 8 */ , { 0xc0, 0, 0xff } /* 9 */ ,
736 { 0x0f, 0, 0xff } /* a */ , { 0xe0, 0, 0xff } /* b */ , { 0x0f, 0, 0xff } /* c */ ,
737 { 0x40, 0, 0xff } /* d */ }
739 { 0x200000, 0x200007,
740 { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
741 { 0, 0 }, { 0, 0 }, { 0, 0 } }
745 {"p18f6520", "18f6520", "pic18f6520", "f6520"},
750 { 0xf6b, 0xfff }, /* PIC18F6520 range of SFR's */
752 /* PIC18F6520 configuration words */
755 { { 0x27, 0, 0xff } /* 1 */ , { 0x0f, 0, 0xff } /* 2 */ , { 0x0f, 0, 0xff } /* 3 */ ,
756 { 0x83, 0, 0xff } /* 4 */ , { 0x03, 0, 0xff } /* 5 */ , { 0x85, 0, 0xff } /* 6 */ ,
757 { -1, 0, 0xff } /* 7 */ , { 0xff, 0, 0xff } /* 8 */ , { 0xc0, 0, 0xff } /* 9 */ ,
758 { 0xff, 0, 0xff } /* a */ , { 0xe0, 0, 0xff } /* b */ , { 0xff, 0, 0xff } /* c */ ,
759 { 0x40, 0, 0xff } /* d */ }
761 { 0x200000, 0x200007,
762 { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
763 { 0, 0 }, { 0, 0 }, { 0, 0 } }
767 {"p18f6620", "18f6620", "pic18f6620", "f6620"},
772 { 0xf6b, 0xfff }, /* PIC18F6620 range of SFR's */
774 /* PIC18F6620 configuration words */
777 { { 0x27, 0, 0xff } /* 1 */ , { 0x0f, 0, 0xff } /* 2 */ , { 0x0f, 0, 0xff } /* 3 */ ,
778 { 0x83, 0, 0xff } /* 4 */ , { 0x03, 0, 0xff } /* 5 */ , { 0x85, 0, 0xff } /* 6 */ ,
779 { -1, 0, 0xff } /* 7 */ , { 0xff, 0, 0xff } /* 8 */ , { 0xc0, 0, 0xff } /* 9 */ ,
780 { 0xff, 0, 0xff } /* a */ , { 0xe0, 0, 0xff } /* b */ , { 0xff, 0, 0xff } /* c */ ,
781 { 0x40, 0, 0xff } /* d */ }
783 { 0x200000, 0x200007,
784 { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
785 { 0, 0 }, { 0, 0 }, { 0, 0 } }
789 {"p18f6680", "18f6680", "pic18f6680", "f6680"},
794 { 0xd60, 0xfff }, /* PIC18F6680 range of SFR's */
796 /* PIC18F6680 configuration words */
799 { { 0x2f, 0, 0xff } /* 1 */ , { 0x0f, 0, 0xff } /* 2 */ , { 0x1f, 0, 0xff } /* 3 */ ,
800 { 0x83, 0, 0xff } /* 4 */ , { 0x81, 0, 0xff } /* 5 */ , { 0x85, 0, 0xff } /* 6 */ ,
801 { -1, 0, 0xff } /* 7 */ , { 0x0f, 0, 0xff } /* 8 */ , { 0xc0, 0, 0xff } /* 9 */ ,
802 { 0x0f, 0, 0xff } /* a */ , { 0xe0, 0, 0xff } /* b */ , { 0x0f, 0, 0xff } /* c */ ,
803 { 0x40, 0, 0xff } /* d */ }
805 { 0x200000, 0x200007,
806 { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
807 { 0, 0 }, { 0, 0 }, { 0, 0 } }
811 {"p18f6720", "18f6720", "pic18f6720", "f6720"},
816 { 0xf6b, 0xfff }, /* PIC18F6720 range of SFR's */
818 /* PIC18F6720 configuration words */
821 { { 0x27, 0, 0xff } /* 1 */ , { 0x0f, 0, 0xff } /* 2 */ , { 0x0f, 0, 0xff } /* 3 */ ,
822 { 0x83, 0, 0xff } /* 4 */ , { 0x03, 0, 0xff } /* 5 */ , { 0x85, 0, 0xff } /* 6 */ ,
823 { -1, 0, 0xff } /* 7 */ , { 0xff, 0, 0xff } /* 8 */ , { 0xc0, 0, 0xff } /* 9 */ ,
824 { 0xff, 0, 0xff } /* a */ , { 0xe0, 0, 0xff } /* b */ , { 0xff, 0, 0xff } /* c */ ,
825 { 0x40, 0, 0xff } /* d */ }
827 { 0x200000, 0x200007,
828 { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
829 { 0, 0 }, { 0, 0 }, { 0, 0 } }
833 {"p18f8520", "18f8520", "pic18f8520", "f8520"},
838 { 0xf6b, 0xfff }, /* PIC18F8520 range of SFR's */
840 /* PIC18F8520 configuration words */
843 { { 0x27, 0, 0xff } /* 1 */ , { 0x0f, 0, 0xff } /* 2 */ , { 0x0f, 0, 0xff } /* 3 */ ,
844 { 0x83, 0, 0xff } /* 4 */ , { 0x03, 0, 0xff } /* 5 */ , { 0x85, 0, 0xff } /* 6 */ ,
845 { -1, 0, 0xff } /* 7 */ , { 0xff, 0, 0xff } /* 8 */ , { 0xc0, 0, 0xff } /* 9 */ ,
846 { 0xff, 0, 0xff } /* a */ , { 0xe0, 0, 0xff } /* b */ , { 0xff, 0, 0xff } /* c */ ,
847 { 0x40, 0, 0xff } /* d */ }
849 { 0x200000, 0x200007,
850 { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
851 { 0, 0 }, { 0, 0 }, { 0, 0 } }
855 {"p18f8620", "18f8620", "pic18f8620", "f8620"},
860 { 0xf6b, 0xfff }, /* PIC18F8620 range of SFR's */
862 /* PIC18F8620 configuration words */
865 { { 0x27, 0, 0xff } /* 1 */ , { 0x0f, 0, 0xff } /* 2 */ , { 0x0f, 0, 0xff } /* 3 */ ,
866 { 0x83, 0, 0xff } /* 4 */ , { 0x03, 0, 0xff } /* 5 */ , { 0x85, 0, 0xff } /* 6 */ ,
867 { -1, 0, 0xff } /* 7 */ , { 0xff, 0, 0xff } /* 8 */ , { 0xc0, 0, 0xff } /* 9 */ ,
868 { 0xff, 0, 0xff } /* a */ , { 0xe0, 0, 0xff } /* b */ , { 0xff, 0, 0xff } /* c */ ,
869 { 0x40, 0, 0xff } /* d */ }
871 { 0x200000, 0x200007,
872 { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
873 { 0, 0 }, { 0, 0 }, { 0, 0 } }
877 {"p18f8680", "18f8680", "pic18f8680", "f8680"},
882 { 0xd60, 0xfff }, /* PIC18F8680 range of SFR's */
884 /* PIC18F8680 configuration words */
887 { { 0x2f, 0, 0xff } /* 1 */ , { 0x0f, 0, 0xff } /* 2 */ , { 0x1f, 0, 0xff } /* 3 */ ,
888 { 0x83, 0, 0xff } /* 4 */ , { 0x81, 0, 0xff } /* 5 */ , { 0x85, 0, 0xff } /* 6 */ ,
889 { -1, 0, 0xff } /* 7 */ , { 0x0f, 0, 0xff } /* 8 */ , { 0xc0, 0, 0xff } /* 9 */ ,
890 { 0x0f, 0, 0xff } /* a */ , { 0xe0, 0, 0xff } /* b */ , { 0x0f, 0, 0xff } /* c */ ,
891 { 0x40, 0, 0xff } /* d */ }
893 { 0x200000, 0x200007,
894 { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
895 { 0, 0 }, { 0, 0 }, { 0, 0 } }
899 {"p18f8720", "18f8720", "pic18f8720", "f8720"},
904 { 0xf6b, 0xfff }, /* PIC18F8720 range of SFR's */
906 /* PIC18F8720 configuration words */
909 { { 0x27, 0, 0xff } /* 1 */ , { 0x0f, 0, 0xff } /* 2 */ , { 0x0f, 0, 0xff } /* 3 */ ,
910 { 0x83, 0, 0xff } /* 4 */ , { 0x03, 0, 0xff } /* 5 */ , { 0x85, 0, 0xff } /* 6 */ ,
911 { -1, 0, 0xff } /* 7 */ , { 0xff, 0, 0xff } /* 8 */ , { 0xc0, 0, 0xff } /* 9 */ ,
912 { 0xff, 0, 0xff } /* a */ , { 0xe0, 0, 0xff } /* b */ , { 0xff, 0, 0xff } /* c */ ,
913 { 0x40, 0, 0xff } /* d */ }
915 { 0x200000, 0x200007,
916 { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
917 { 0, 0 }, { 0, 0 }, { 0, 0 } }