picp and the 18F4550

For a while i’ve been playing with microchip PIC chips. I have an olimex PIC-MCP-USB programmer which I use with picp under linux, and recently ran into some problems with 18F4550 chips. It would program just fine, but not erase the memory properly (took me a while to figure that out!). So I installed mplab on a windows machine, and sniffed the sequence of bytes going over the wire. Just for anyone who is fooling around with this as well, here is the proper picdevrc entry for the 18F4550:

[18F4550]       ; pic definition
        0       ; config word: code protect bit mask
        0       ; config word: watchdog bit mask
        4       ; Word alignment for writing to this device
        300000  ; Configuration memory start address
        200000 0        ; ID Locations addr and size
        f00000  ; Data eeprom address
        0       ; number of words in cfg bits with factory set bits
        0 0 0 0 0 0 0 0 ; fixed bits mask
        WARP OLIMEX     ; bit map of supporting programmers

[18F4550:def]
        40 00   ; size of program space
        ff ff   ; width of address word
        ff ff   ; width of data word
        0f 0f   ; width of ID
        0f 0f   ; ID mask
        cf 3f   ; width of configuration word
        cf 3f   ; configuration word mask
        00 ff   ; EEPROM data width
        00 ff   ; EEPROM data mask
        00 00   ; Calibration width
        00 00   ; Calibration mask
        00 00   ; ??
        40 00   ; ??
        00 00   ; address of ID locations
        04      ; size of ID locations
        00 00   ; address of configuration bits
        07      ; size of configuration register
        00 00   ; address of data space
        01 00   ; size of data space
        00 00   ; address of internal clock calibration value
        00 00   ; size of clock calibration space
        03      ; additional programming pulses for C devices
        13      ; main programming pulses for C devices
        1e 0f   ; ?? ZIF configuration ??

[18F4550:defx]
        05 00 1f 1f
        83 00 00 85
        c0 0f e0 0f
        40 0f 00 00
        cf 3f 1f 3f
        87 00 00 e5
        c0 0f e0 0f
        40 0f 00 00

Flattr this

Leave a Reply