Looking for machine readable PIC16 Chip information

Where do I find the row sizes, memory ranges and config locations for PIC16 devices in a machine readable format. I'm basically looking for an atpack xml, but those don't seem to exist(yet?). But for lack of other chioces, a (1) pdf or sthg would do aswell.

Reply to
Johann Klammer
Loading thread data ...

On a sunny day (Sun, 16 Sep 2018 00:29:08 +0200) it happened Johann Klammer wrote in :

You need the include files. For me those are part of gpasm in Linux, part of gputils. I am sure they are on the Microchip site too. That looks like this for a 16F84:

LIST ; P16F84A.INC Standard Header File, Version 2.00 Microchip Technology, Inc. NOLIST

; This header file defines configurations, registers, and other useful bits of ; information for the PIC16F84 microcontroller. These names are taken to match ; the data sheets as closely as possible.

; Note that the processor must be selected before this file is ; included. The processor may be selected the following ways:

; 1. Command line switch: ; C:\ MPASM MYFILE.ASM /PIC16F84A ; 2. LIST directive in the source file ; LIST P=PIC16F84A ; 3. Processor Type entry in the MPASM full-screen interface

;========================================================================== ; ; Revision History ; ;==========================================================================

;Rev: Date: Reason:

;1.00 2/15/99 Initial Release

;========================================================================== ; ; Verify Processor ; ;==========================================================================

IFNDEF __16F84A MESSG "Processor-header file mismatch. Verify selected processor." ENDIF

;========================================================================== ; ; Register Definitions ; ;==========================================================================

W EQU H'0000' F EQU H'0001'

;----- Register Files------------------------------------------------------

INDF EQU H'0000' TMR0 EQU H'0001' PCL EQU H'0002' STATUS EQU H'0003' FSR EQU H'0004' PORTA EQU H'0005' PORTB EQU H'0006' EEDATA EQU H'0008' EEADR EQU H'0009' PCLATH EQU H'000A' INTCON EQU H'000B'

OPTION_REG EQU H'0081' TRISA EQU H'0085' TRISB EQU H'0086' EECON1 EQU H'0088' EECON2 EQU H'0089'

;----- STATUS Bits --------------------------------------------------------

IRP EQU H'0007' RP1 EQU H'0006' RP0 EQU H'0005' NOT_TO EQU H'0004' NOT_PD EQU H'0003' Z EQU H'0002' DC EQU H'0001' C EQU H'0000'

;----- INTCON Bits --------------------------------------------------------

GIE EQU H'0007' EEIE EQU H'0006' T0IE EQU H'0005' INTE EQU H'0004' RBIE EQU H'0003' T0IF EQU H'0002' INTF EQU H'0001' RBIF EQU H'0000'

;----- OPTION_REG Bits ----------------------------------------------------

NOT_RBPU EQU H'0007' INTEDG EQU H'0006' T0CS EQU H'0005' T0SE EQU H'0004' PSA EQU H'0003' PS2 EQU H'0002' PS1 EQU H'0001' PS0 EQU H'0000'

;----- EECON1 Bits --------------------------------------------------------

EEIF EQU H'0004' WRERR EQU H'0003' WREN EQU H'0002' WR EQU H'0001' RD EQU H'0000'

;========================================================================== ; ; RAM Definition ; ;==========================================================================

__MAXRAM H'CF' __BADRAM H'07', H'50'-H'7F', H'87'

;========================================================================== ; ; Configuration Bits ; ;==========================================================================

_CP_ON EQU H'000F' _CP_OFF EQU H'3FFF' _PWRTE_ON EQU H'3FF7' _PWRTE_OFF EQU H'3FFF' _WDT_ON EQU H'3FFF' _WDT_OFF EQU H'3FFB' _LP_OSC EQU H'3FFC' _XT_OSC EQU H'3FFD' _HS_OSC EQU H'3FFE' _RC_OSC EQU H'3FFF'

LIST

Reply to
<698839253X6D445TD

Okay, I will use those.

Reply to
Johann Klammer

Actually, the linker scripts look more interesting. it got the mem maps at least. Unfortunately neither .inc nor .lkr have the actual chip id values(only their locations).

Reply to
Johann Klammer

also the gputils source dir has no chip id list. (I have the need to map the mem maps to the actual detected chip)

Reply to
Johann Klammer

Johann Klammer wrote

For the 18F14K22 I find the chip ID and revision numbers described in the datasheet, and errata.

For the 16F689-690 I do not see it, only the location is mentioned. No ID in the data shseet for 16F648 either. Maybe a trick to sell tehri own programmers?

But google is a big help in cases like that, I asked 'list of Microchip chip IDs' and was presented with this link:

formatting link
that says

;****************************************************************** ; ; 18F Device Table ; ; , 8 bytes per device ; ; PARAM1 = B EE WWWW F (B = bulk erase algorithm, 0 or 1) ; (E = erase buffer size, 20h or 40h) ; (W = write buffer size, 08h, 20h, or 40h) ; (F = flash memory size b16) ; ; PARAM2 = FFFF EEEE (F = flash mem size b15..b12) ; (E = eeprom mem size b11..b8) ; org h'0C00' ID8TBL dt 0x04,0x80, "242 ", 0x42,0x41 ;18F242 9.0-13.25 VDD dt 0x08,0x00, "248 ", 0x42,0x41 ;18F248 9.0-13.25 VDD dt 0x04,0x00, "252 ", 0x42,0x81 ;18F252 9.0-13.25 VDD dt 0x08,0x40, "258 ", 0x42,0x81 ;18F258 9.0-13.25 VDD dt 0x04,0xA0, "442 ", 0x42,0x41 ;18F442 9.0-13.25 VDD dt 0x08,0x20, "448 ", 0x42,0x41 ;18F448 9.0-13.25 VDD dt 0x04,0x20, "452 ", 0x42,0x81 ;18F452 9.0-13.25 VDD dt 0x08,0x60, "458 ", 0x42,0x81 ;18F458 9.0-13.25 VDD ; dt 0x00,0x00, "1230", 0x00,0x00 ;18F1230 future? ; dt 0x00,0x00, "1330", 0x00,0x00 ;18F1330 future? dt 0x07,0xE0, "1220", 0x42,0x11 ;18F1220 9.0-13.25 VDD dt 0x05,0x80, "2220", 0x42,0x11 ;18F2220 9.0-13.25 VDD dt 0x05,0xA0, "4220", 0x42,0x11 ;18F4220 9.0-13.25 VDD dt 0x07,0xC0, "1320", 0x42,0x21 ;18F1320 9.0-13.25 VDD dt 0x05,0x00, "2320", 0x42,0x21 ;18F2320 9.0-13.25 VDD dt 0x05,0x20, "4320", 0x42,0x21 ;18F4320 9.0-13.25 VDD dt 0x08,0xE0, "2331", 0x42,0x21 ;18F2331 9.0-13.25 VDD dt 0x08,0xC0, "2431", 0x42,0x41 ;18F2431 9.0-13.25 VDD dt 0x08,0xA0, "4331", 0x42,0x21 ;18F4331 9.0-13.25 VDD dt 0x08,0x80, "4431", 0x42,0x41 ;18F4431 9.0-13.25 VDD dt 0x21,0x60, "2221", 0xC2,0x11 ;18F2221 9.0-12.5 VDD (e) dt 0x21,0x20, "2321", 0xC2,0x11 ;18F2321 9.0-12.5 VDD (e) dt 0x11,0x60, "2410", 0xC8,0x40 ;18F2410 9.0-12.5 VDD (e) dt 0x11,0x40, "2420", 0xC8,0x41 ;18F2420 9.0-12.5 VDD (e) dt 0x24,0x20, "2450", 0xC8,0x40 ;18F2450 9.0-12.5 VDD (f) check dt 0x0B,0xA0, "2455", 0xC8,0x61 ;18F2455 9.0-12.5 VDD dt 0x1A,0xE0, "2480", 0xC8,0x41 ;18F2480 9.0-12.5 VDD (e) dt 0x11,0x20, "2510", 0xC8,0x80 ;18F2510 9.0-12.5 VDD (e) dt 0x0C,0xE0, "2515", 0xD0,0xC0 ;18F2515 9.0-12.5 VDD dt 0x11,0x00, "2520", 0xC8,0x81 ;18F2520 9.0-12.5 VDD (e) dt 0x0C,0xC0, "2525", 0xD0,0xC4 ;18F2525 9.0-12.5 VDD dt 0x0B,0x60, "2550", 0xC8,0x81 ;18F2550 9.0-12.5 VDD dt 0x1A,0xC0, "2580", 0xC8,0x81 ;18F2580 9.0-12.5 VDD (e) dt 0x0E,0xE0, "2585", 0xD0,0xC4 ;18F2585 9.0-12.5 VDD dt 0x0C,0xA0, "2610", 0xD1,0x00 ;18F2610 9.0-12.5 VDD dt 0x0C,0x80, "2620", 0xD1,0x04 ;18F2620 9.0-12.5 VDD dt 0x0E,0xC0, "2680", 0xD1,0x04 ;18F2680 9.0-12.5 VDD dt 0x21,0x40, "4221", 0xC2,0x41 ;18F4221 9.0-12.5 VDD (e) dt 0x21,0x00, "4321", 0xC2,0x41 ;18F4321 9.0-12.5 VDD (e) dt 0x10,0xE0, "4410", 0xC8,0x40 ;18F4410 9.0-12.5 VDD (e) dt 0x10,0xC0, "4420", 0xC8,0x41 ;18F4420 9.0-12.5 VDD (e) dt 0x24,0x00, "4450", 0xC8,0x40 ;18F4450 9.0-12.5 VDD (f) check dt 0x0B,0x80, "4455", 0xC8,0x61 ;18F4455 9.0-12.5 VDD dt 0x1A,0xA0, "4480", 0xC8,0x41 ;18F4480 9.0-12.5 VDD (e) dt 0x10,0xA0, "4510", 0xC8,0x80 ;18F4510 9.0-12.5 VDD (e) dt 0x0C,0x60, "4515", 0xD0,0xC0 ;18F4515 9.0-12.5 VDD dt 0x10,0x80, "4520", 0xC8,0x81 ;18F4520 9.0-12.5 VDD (e) dt 0x0C,0x40, "4525", 0xD0,0xC4 ;18F4525 9.0-12.5 VDD dt 0x0B,0x40, "4550", 0xC8,0x81 ;18F4550 9.0-12.5 VDD dt 0x1A,0x80, "4580", 0xC8,0x81 ;18F4580 9.0-12.5 VDD (e) dt 0x0E,0xA0, "4585", 0xD0,0xC4 ;18F4585 9.0-12.5 VDD dt 0x0C,0x20, "4610", 0xD1,0x00 ;18F4610 9.0-12.5 VDD dt 0x0C,0x00, "4620", 0xD1,0x04 ;18F4620 9.0-12.5 VDD dt 0x0E,0x80, "4680", 0xD1,0x04 ;18F4680 9.0-12.5 VDD ID8TOT equ ($-ID8TBL)/8 ;****************************************************************** ; ; 12F/16F Device Table ; ; , 8 bytes per device ; ; PARAM1 = not defined yet ; ; PARAM2 = not defined yet ; org h'0E00' ID6TBL dt 0x00,0x00, "508 ", 0x0000 ;12F508 ; dt 0x00,0x00, "509 ", 0x0000 ;12F509 ; dt 0x00,0x00, "510 ", 0x0000 ;12F510 dt 0x0F,0x80, "629 ", 0x0000 ;12F629 (*) 8.5-13.5 VPP dt 0x0F,0xA0, "635 ", 0x0000 ;12F635 10.0-13.0 VPP dt 0x0F,0xC0, "675 ", 0x0000 ;12F675 (*) 8.5-13.5 VPP dt 0x04,0x60, "683 ", 0x0000 ;12F683 10.0-13.0 VPP ; ; dt 0x00,0x00, "505 ", 0x0000 ;16F505 ID 12.5-13.5 VDD ; dt 0x00,0x00, "506 ", 0x0000 ;16F506 future? ; dt 0x00,0x00, "54 ", 0x0000 ;16F54 ID 12.5-13.5 VDD ; dt 0x00,0x00, "57 ", 0x0000 ;16F57 ID 12.5-13.5 VDD ; dt 0x00,0x00, "59 ", 0x0000 ;16F59 ID 12.5-13.5 VDD dt 0x07,0xA0, "627 ", 0x0000 ;16F627 8.5-13.5 VDD dt 0x10,0x40, "627A", 0x0000 ;16F627A 10.0-13.5 VPP dt 0x07,0xC0, "628 ", 0x0000 ;16F628 8.5-13.5 VDD dt 0x10,0x60, "628A", 0x0000 ;16F628A 10.0-13.5 VPP dt 0x10,0xC0, "630 ", 0x0000 ;16F630 8.5-13.5 VPP dt 0x10,0xA0, "636 ", 0x0000 ;16F636 10.0-13.0 VPP ; dt 0x10,0xA0, "639 ", 0x0000 ;16F639 10.0-13.0 VPP dt 0x11,0x00, "648A", 0x0000 ;16F648A 10.0-13.5 VPP dt 0x10,0xE0, "676 ", 0x0000 ;16F676 8.5-13.5 VPP dt 0x10,0x80, "684 ", 0x0000 ;16F684 10.0-13.0 VPP ; dt 0x04,0xA0, "685 ", 0x0000 ;16F685 10.0-13.0 VPP ; dt 0x13,0x20, "687 ", 0x0000 ;16F687 10.0-13.0 VPP dt 0x11,0x80, "688 ", 0x0000 ;16F688 10.0-13.0 VPP ; dt 0x13,0x40, "689 ", 0x0000 ;16F689 10.0-13.0 VPP ; dt 0x14,0x00, "690 ", 0x0000 ;16F690 10.0-13.0 VPP ; dt 0x11,0x40, "716 ", 0x0000 ;16F716 11.0-13.5 VDD ; dt 0x00,0x00, "72 ", 0x0000 ;16F72 ; dt 0x06,0x00, "73 ", 0x0000 ;16F73 12.8-13.3 VDD dt 0x0B,0xA0, "737 ", 0x0000 ;16F737 12.8-13.3 VDD ; dt 0x06,0x20, "74 ", 0x0000 ;16F74 12.8-13.3 VDD dt 0x0B,0xE0, "747 ", 0x0000 ;16F747 12.8-13.3 VDD ; dt 0x06,0x40, "76 ", 0x0000 ;16F76 12.8-13.3 VDD dt 0x0E,0xA0, "767 ", 0x0000 ;16F767 12.8-13.3 VDD ; dt 0x06,0x60, "77 ", 0x0000 ;16F77 12.8-13.3 VDD dt 0x0D,0xE0, "777 ", 0x0000 ;16F777 12.8-13.3 VDD ; dt 0x12,0x00, "785 ", 0x0000 ;16F785 10.0-12.0 VDD/VPP dt 0x04,0xC0, "818 ", 0x0000 ;16F818 8.5-13.5 VDD dt 0x04,0xE0, "819 ", 0x0000 ;16F819 8.5-13.5 VDD dt 0x05,0x60, "84A ", 0x0000 ;16F84A dt 0x07,0x20, "87 ", 0x0000 ;16F87 8.5-13.5 VDD dt 0x0D,0x00, "870 ", 0x0000 ;16F870 8.5-13.5 VDD dt 0x0D,0x20, "871 ", 0x0000 ;16F871 8.5-13.5 VDD dt 0x08,0xE0, "872 ", 0x0000 ;16F872 8.5-13.5 VDD dt 0x09,0x60, "873 ", 0x0000 ;16F873 8.5-13.5 VDD dt 0x0E,0x40, "873A", 0x0000 ;16F873A 8.5-13.5 VDD dt 0x09,0x20, "874 ", 0x0000 ;16F874 8.5-13.5 VDD dt 0x0E,0x60, "874A", 0x0000 ;16F874A 8.5-13.5 VDD dt 0x09,0xE0, "876 ", 0x0000 ;16F876 8.5-13.5 VDD dt 0x0E,0x00, "876A", 0x0000 ;16F876A 8.5-13.5 VDD dt 0x09,0xA0, "877 ", 0x0000 ;16F877 8.5-13.5 VDD dt 0x0E,0x20, "877A", 0x0000 ;16F877A 8.5-13.5 VDD dt 0x07,0x60, "88 ", 0x0000 ;16F88 8.5-13.5 VDD ; dt 0x13,0xE0, "913 ", 0x0000 ;16F913 10.0-12.0 VDD/VPP ; dt 0x13,0xC0, "914 ", 0x0000 ;16F914 10.0-12.0 VDD/VPP ; dt 0x13,0xA0, "916 ", 0x0000 ;16F916 10.0-12.0 VDD/VPP ; dt 0x13,0x80, "917 ", 0x0000 ;16F917 10.0-12.0 VDD/VPP ; dt 0x00,0x00, "946 ", 0x0000 ;16F946 ID6TOT equ ($-ID6TBL)/8

Is it right, is it wrong? Maybe a start?

Reply to
<698839253X6D445TD

And from the same forum this link in a more machine readable format, IDs only:

formatting link

Reply to
<698839253X6D445TD

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.