* device/include/pic16/adc.h,
[fw/sdcc] / device / include / pic16 / pic16devices.txt
1 #
2 # Specification of devices supported by the PIC16 target of the
3 # Small Devices C Compiler (SDCC).
4 #
5 # Lines starting with a hash '#' are ignored.
6 # A new device specification must begin with a 'name' command.
7 # Numbers can be given in any way acceptable for scanf's %d,
8 # i.e., octal (0[0-7]*), decimal ([1-9][0-9]*), or hexadecimal
9 # (0[xX][0-9a-fA-F]+).
10 # Strings must not be quoted and may not contain whitespace!
11 #
12 # Valid commands are:
13 # name <name>
14 #       Begin specification of device type <name>, e.g. 18f6720.
15 #       Aliases 'p<name>' and 'pic<name>' will be recognized as well.
16 # using <name>
17 #       Import specification from the named entry, which must be defined
18 #       earlier. Later commands overrule imported ones.
19 # ramsize <size>
20 #       This device has <size> bytes of RAM.
21 # split <offset>
22 #       Addresses below <offset> refer to bank 0, addresses above <offset>
23 #       refer to SFRs in bank 15 for references via the access bank.
24 # configrange <first> <last>
25 #       Configuration registers occupy addresses <first> to <last> (both
26 #       included).
27 # configword <address> <mask> <value>
28 #       The config word at address <address> only implements the bits
29 #       indicated via <mask> (all others will be forced to 0 by the
30 #       compiler).
31 #       Unless overridden in C code, use the given default <value>.
32 # idlocrange <first> <last>
33 #       ID locations occupy addresses <first> to <last> (both included).
34 # idword <address> <value>
35 #       Unless overridden in C code, use the given default <value>.
36 #
37
38 name        18f1220
39 ramsize     256
40 split       0x80
41 configrange 0x300001 0x30000d
42 configword  0x300001 0xcf 0xff
43 configword  0x300002 0x0f 0xff
44 configword  0x300003 0x1f 0xff
45 configword  0x300005 0x80 0xff
46 configword  0x300006 0x85 0xff
47 configword  0x300008 0x03 0xff
48 configword  0x300009 0xc0 0xff
49 configword  0x30000a 0x03 0xff
50 configword  0x30000b 0xe0 0xff
51 configword  0x30000c 0x03 0xff
52 configword  0x30000d 0x40 0xff
53 idlocrange  0x200000 0x200007
54
55
56 name        18f1320
57 using       18f1220
58
59
60 name        18f2220
61 ramsize     512
62 split       0x80
63 configrange 0x300001 0x30000d
64 configword  0x300001 0xcf 0xff
65 configword  0x300002 0x0f 0xff
66 configword  0x300003 0x1f 0xff
67 configword  0x300005 0x83 0xff
68 configword  0x300006 0x85 0xff
69 configword  0x300008 0x0f 0xff
70 configword  0x300009 0xc0 0xff
71 configword  0x30000a 0x0f 0xff
72 configword  0x30000b 0xe0 0xff
73 configword  0x30000c 0x0f 0xff
74 configword  0x30000d 0x40 0xff
75 idlocrange  0x200000 0x200007
76
77
78 name        18f2221
79 ramsize     512
80 split       0x80
81 configrange 0x300001 0x30000d
82 configword  0x300001 0xcf 0x37
83 configword  0x300002 0x1f 0xff
84 configword  0x300003 0x1f 0xff
85 configword  0x300005 0x87 0xfb
86 configword  0x300006 0xf5 0x8f
87 configword  0x300008 0x03 0xff
88 configword  0x300009 0xc0 0xff
89 configword  0x30000a 0x03 0xff
90 configword  0x30000b 0xe0 0xff
91 configword  0x30000c 0x03 0xff
92 configword  0x30000d 0x40 0xff
93 idlocrange  0x200000 0x200007
94
95
96 name        18f2320
97 using       18f2220
98
99
100 name        18f2321
101 using       18f2221
102
103
104 name        18f2331
105 ramsize     768
106 split       0x60
107 configrange 0x300001 0x30000d
108 configword  0x300001 0xcf 0xff
109 configword  0x300002 0x0f 0xff
110 configword  0x300003 0x3f 0xff
111 configword  0x300004 0x3c 0xff
112 configword  0x300005 0x9d 0xff
113 configword  0x300006 0x85 0xff
114 configword  0x300008 0x0f 0xff
115 configword  0x300009 0xc0 0xff
116 configword  0x30000a 0x0f 0xff
117 configword  0x30000b 0xe0 0xff
118 configword  0x30000c 0x0f 0xff
119 configword  0x30000d 0x40 0xff
120 idlocrange  0x200000 0x200007
121
122
123 name        18f2410
124 ramsize     768
125 split       0x80
126 configrange 0x300001 0x30000d
127 configword  0x300001 0xcf 0x37
128 configword  0x300002 0x1f 0xff
129 configword  0x300003 0x1f 0xfb
130 configword  0x300005 0x87 0xfb
131 configword  0x300006 0xc5 0xbf
132 configword  0x300008 0x0f 0xff
133 configword  0x300009 0x40 0xff
134 configword  0x30000a 0x0f 0xff
135 configword  0x30000b 0x60 0xff
136 configword  0x30000c 0x0f 0xff
137 configword  0x30000d 0x40 0xff
138 idlocrange  0x200000 0x200007
139
140
141 name        18f242
142 ramsize     768
143 split       0x80
144 configrange 0x300001 0x30000d
145 configword  0x300001 0x27 0xff
146 configword  0x300002 0x0f 0xff
147 configword  0x300003 0x0f 0xff
148 configword  0x300005 0x01 0xff
149 configword  0x300006 0x85 0xff
150 configword  0x300008 0x0f 0xff
151 configword  0x300009 0xc0 0xff
152 configword  0x30000a 0x0f 0xff
153 configword  0x30000b 0xe0 0xff
154 configword  0x30000c 0x0f 0xff
155 configword  0x30000d 0x40 0xff
156 idlocrange  0x200000 0x200007
157
158
159 name        18f2420
160 ramsize     768
161 split       0x80
162 configrange 0x300001 0x30000d
163 configword  0x300001 0xcf 0x07
164 configword  0x300002 0x1f 0xff
165 configword  0x300003 0x1f 0xff
166 configword  0x300005 0x87 0xfb
167 configword  0x300006 0xc5 0xbf
168 configword  0x300008 0x0f 0xff
169 configword  0x300009 0xc0 0xff
170 configword  0x30000a 0x0f 0xff
171 configword  0x30000b 0xe0 0xff
172 configword  0x30000c 0x0f 0xff
173 configword  0x30000d 0x40 0xff
174 idlocrange  0x200000 0x200007
175
176
177 name        18f2423
178 ramsize     768
179 split       0x80
180 configrange 0x300001 0x30000d
181 configword  0x300001 0xcf 0x07
182 configword  0x300002 0x1f 0xff
183 configword  0x300003 0x1f 0xff
184 configword  0x300005 0x87 0xfb
185 configword  0x300006 0xc5 0xbf
186 configword  0x300008 0x0f 0xff
187 configword  0x300009 0xc0 0xff
188 configword  0x30000a 0x0f 0xff
189 configword  0x30000b 0xe0 0xff
190 configword  0x30000c 0x0f 0xff
191 configword  0x30000d 0x40 0xff
192 idlocrange  0x200000 0x200007
193
194
195 name        18f2431
196 using       18f2331
197
198
199 name        18f2450
200 # 0x200..0x3FF is not implemented, but we leave that to the linker ;-)
201 ramsize     0x500
202 split       0x60
203 configrange 0x300000 0x30000d
204 configword  0x300000 0x3f 0xc7
205 configword  0x300001 0xcf 0x37
206 configword  0x300002 0x3f 0xdf
207 configword  0x300003 0x1f 0xff
208 configword  0x300005 0x86 0xfb
209 configword  0x300006 0xed 0x97
210 configword  0x300008 0x03 0xff
211 configword  0x300009 0x40 0xff
212 configword  0x30000a 0x03 0xff
213 configword  0x30000b 0x60 0xff
214 configword  0x30000c 0x03 0xff
215 configword  0x30000d 0x40 0xff
216 idlocrange  0x200000 0x200007
217
218 name        18f2455
219 ramsize     2048
220 split       0x60
221 configrange 0x300000 0x30000d
222 configword  0x300000 0x3f 0xc0
223 configword  0x300001 0xcf 0x35
224 configword  0x300002 0x3f 0xdf
225 configword  0x300003 0x1f 0xff
226 configword  0x300005 0x87 0xfb
227 configword  0x300006 0xe5 0x9f
228 configword  0x300008 0x0f 0xff
229 configword  0x300009 0xc0 0xff
230 configword  0x30000a 0x0f 0xff
231 configword  0x30000b 0xe0 0xff
232 configword  0x30000c 0x0f 0xff
233 configword  0x30000d 0x40 0xff
234 idlocrange  0x200000 0x200007
235
236
237 name        18f248
238 ramsize     768
239 split       0x60
240 configrange 0x300001 0x30000d
241 configword  0x300001 0x27 0xff
242 configword  0x300002 0x0f 0xff
243 configword  0x300003 0x0f 0xff
244 configword  0x300006 0x85 0xff
245 configword  0x300008 0x0f 0xff
246 configword  0x300009 0xc0 0xff
247 configword  0x30000a 0x0f 0xff
248 configword  0x30000b 0xe0 0xff
249 configword  0x30000c 0x0f 0xff
250 configword  0x30000d 0x40 0xff
251 idlocrange  0x200000 0x200007
252
253
254 name        18f2480
255 ramsize     768
256 split       0x60
257 configrange 0x300001 0x30000d
258 configword  0x300001 0xcf 0x37
259 configword  0x300002 0x1f 0xff
260 configword  0x300003 0x1f 0xff
261 configword  0x300005 0x86 0xfb
262 configword  0x300006 0xd5 0xaf
263 configword  0x300008 0x0f 0xff
264 configword  0x300009 0xc0 0xff
265 configword  0x30000a 0x0f 0xff
266 configword  0x30000b 0xe0 0xff
267 configword  0x30000c 0x0f 0xff
268 configword  0x30000d 0x40 0xff
269 idlocrange  0x200000 0x200007
270
271
272 name        18f24j10
273 ramsize     1024
274 split       0x80
275 configrange 0x300000 0x300005
276 configword  0x300000 0xe1 0xff
277 configword  0x300001 0x04 0xf7
278 configword  0x300002 0xc7 0xff
279 configword  0x300003 0x0f 0xff
280 configword  0x300005 0x01 0xff
281 idlocrange  0x200000 0x200007
282
283
284 name        18f2510
285 using       18f2410
286 ramsize     1536
287
288
289 name        18f2515
290 using       18f2410
291 ramsize     4096
292
293
294 name        18f252
295 using       18f242
296 ramsize     1536
297
298
299 name        18f2520
300 using       18f2420
301 ramsize     1536
302
303
304 name        18f2523
305 using       18f2423
306 ramsize     1536
307
308
309 name        18f2525
310 ramsize     4096
311 split       0x80
312 configrange 0x300001 0x30000d
313 configword  0x300001 0xcf 0x37
314 configword  0x300002 0x1f 0xff
315 configword  0x300003 0x1f 0xff
316 configword  0x300005 0x87 0xfb
317 configword  0x300006 0xc5 0xbf
318 configword  0x300008 0x0f 0xff
319 configword  0x300009 0xc0 0xff
320 configword  0x30000a 0x0f 0xff
321 configword  0x30000b 0xe0 0xff
322 configword  0x30000c 0x0f 0xff
323 configword  0x30000d 0x40 0xff
324 idlocrange  0x200000 0x200007
325
326
327 name        18f2550
328 using       18f2455
329
330
331 name        18f258
332 using       18f248
333 ramsize     1536
334
335
336 name        18f2580
337 using       18f2480
338 ramsize     1536
339
340
341 name        18f2585
342 ramsize     4096
343 split       0x60
344 configrange 0x300001 0x30000d
345 configword  0x300001 0xcf 0x37
346 configword  0x300002 0x1f 0xff
347 configword  0x300003 0x1f 0xff
348 configword  0x300005 0x86 0xfb
349 configword  0x300006 0xf5 0x8f
350 configword  0x300008 0x0f 0xff
351 configword  0x300009 0xc0 0xff
352 configword  0x30000a 0x0f 0xff
353 configword  0x30000b 0xe0 0xff
354 configword  0x30000c 0x0f 0xff
355 configword  0x30000d 0x40 0xff
356 idlocrange  0x200000 0x200007
357
358
359 name        18f25j10
360 using       18f24j10
361
362
363 name        18f2610
364 using       18f2410
365 ramsize     4096
366
367
368 name        18f2620
369 using       18f2525
370
371
372 name        18f2680
373 using       18f2585
374
375
376 name        18f2682
377 ramsize     4096
378 split       0x60
379 configrange 0x300001 0x30000d
380 configword  0x300001 0xcf 0x37
381 configword  0x300002 0x1f 0xff
382 configword  0x300003 0x1f 0xff
383 configword  0x300005 0x86 0xfb
384 configword  0x300006 0xf5 0x8f
385 configword  0x300008 0x3f 0xff
386 configword  0x300009 0xc0 0xff
387 configword  0x30000a 0x3f 0xff
388 configword  0x30000b 0xe0 0xff
389 configword  0x30000c 0x3f 0xff
390 configword  0x30000d 0x40 0xff
391 idlocrange  0x200000 0x200007
392
393
394 name        18f2685
395 using       18f2682
396
397
398 name        18f4220
399 using       18f2220
400
401
402 name        18f4221
403 using       18f2221
404
405
406 name        18f4320
407 using       18f2220
408
409
410 name        18f4321
411 using       18f2221
412
413
414 name        18f4331
415 using       18f2331
416
417
418 name        18f4410
419 using       18f2410
420 ramsize     768
421
422
423 name        18f442
424 using       18f242
425
426
427 name        18f4420
428 using       18f2420
429
430
431 name        18f4423
432 using       18f2423
433
434
435 name        18f4431
436 using       18f2331
437
438
439 name        18f4450
440 using       18f2450
441
442 name        18f4455
443 using       18f2455
444
445
446 name        18f448
447 using       18f248
448
449
450 name        18f4480
451 using       18f2480
452
453
454 name        18f44j10
455 using       18f24j10
456
457
458 name        18f4510
459 using       18f2410
460 ramsize     1536
461
462
463 name        18f4515
464 using       18f2410
465 ramsize     4096
466
467
468 name        18f452
469 using       18f242
470 ramsize     1536
471
472
473 name        18f4520
474 using       18f2420
475 ramsize     1536
476
477
478 name        18f4523
479 using       18f2423
480 ramsize     1536
481
482 name        18f4525
483 using       18f2525
484
485
486 name        18f4550
487 using       18f2455
488
489
490 name        18f458
491 using       18f248
492 ramsize     1536
493
494
495 name        18f4580
496 using       18f2480
497 ramsize     1536
498
499
500 name        18f4585
501 using       18f2585
502
503
504 name        18f45j10
505 using       18f24j10
506
507
508 name        18f4610
509 using       18f2410
510 ramsize     4096
511
512
513 name        18f4620
514 using       18f2525
515
516
517 name        18f4680
518 using       18f2585
519
520
521 name        18f4682
522 using       18f2682
523
524
525 name        18f4685
526 using       18f2682
527
528
529 name        18f6520
530 ramsize     2048
531 split       0x60
532 configrange 0x300001 0x30000d
533 configword  0x300001 0x27 0xff
534 configword  0x300002 0x0f 0xff
535 configword  0x300003 0x0f 0xff
536 configword  0x300004 0x83 0xff
537 configword  0x300005 0x03 0xff
538 configword  0x300006 0x85 0xff
539 configword  0x300008 0xff 0xff
540 configword  0x300009 0xc0 0xff
541 configword  0x30000a 0xff 0xff
542 configword  0x30000b 0xe0 0xff
543 configword  0x30000c 0xff 0xff
544 configword  0x30000d 0x40 0xff
545 idlocrange  0x200000 0x200007
546
547
548 name        18f6585
549 ramsize     3328
550 split       0x60
551 configrange 0x300001 0x30000d
552 configword  0x300001 0x2f 0xff
553 configword  0x300002 0x0f 0xff
554 configword  0x300003 0x1f 0xff
555 configword  0x300004 0x83 0xff
556 configword  0x300005 0x83 0xff
557 configword  0x300006 0x85 0xff
558 configword  0x300008 0x0f 0xff
559 configword  0x300009 0xc0 0xff
560 configword  0x30000a 0x0f 0xff
561 configword  0x30000b 0xe0 0xff
562 configword  0x30000c 0x0f 0xff
563 configword  0x30000d 0x40 0xff
564 idlocrange  0x200000 0x200007
565
566
567 name        18f6620
568 using       18f6520
569 ramsize     3840
570
571
572 name        18f6680
573 using       18f6585
574
575
576 name        18f6720
577 using       18f6520
578 ramsize     3840
579
580
581 name        18f8520
582 using       18f6520
583
584
585 name        18f8585
586 using       18f6585
587
588
589 name        18f8620
590 using       18f6520
591 ramsize     3840
592
593
594 name        18f8680
595 using       18f6585
596
597
598 name        18f8720
599 using       18f6520
600 ramsize     3840
601
602
603 name        18f66j60
604 ramsize     4096
605 split       0x60
606 configrange 0xfff8 0xfffd
607 configword  0xfff8 0xc1 0xff
608 configword  0xfff9 0x04 0xf7
609 configword  0xfffa 0xc7 0xff
610 configword  0xfffb 0x0f 0xff
611 configword  0xfffc 0xf8 0xff
612 configword  0xfffd 0x07 0xff
613
614
615 name        18f66j65
616 ramsize     4096
617 split       0x60
618 configrange 0x17ff8 0x17ffd
619 configword  0x17ff8 0xc1 0xff
620 configword  0x17ff9 0x04 0xf7
621 configword  0x17ffa 0xc7 0xff
622 configword  0x17ffb 0x0f 0xff
623 configword  0x17ffc 0xf8 0xff
624 configword  0x17ffd 0x07 0xff
625
626
627 name        18f67j60
628 ramsize     4096
629 split       0x60
630 configrange 0x1fff8 0x1fffd
631 configword  0x1fff8 0xc1 0xff
632 configword  0x1fff9 0x04 0xf7
633 configword  0x1fffa 0xc7 0xff
634 configword  0x1fffb 0x0f 0xff
635 configword  0x1fffc 0xf8 0xff
636 configword  0x1fffd 0x07 0xff
637
638
639 name        18f86j60
640 using       18f66j60
641
642
643 name        18f86j65
644 using       18f66j65
645
646
647 name        18f87j60
648 using       18f67j60
649
650
651 name        18f96j60
652 using       18f66j60
653
654
655 name        18f96j65
656 using       18f66j65
657
658
659 name        18f97j60
660 using       18f67j60
661