In case somebody else makes the same goof, here's what I finally figured out. To enter/re-enter programming/verify mode, apply the following sequence: mclr* rb.3 rb.6 rb.7 L L L L L H L L H H L L Once in the programming/verify mode and in configuration memory, the complete sequence must be accomplished again in order to (re-)access user program or data EEPROM memory. This is clearer in the programming document's timing diagrams than in the textual description. My mistake was in simply pulsing mclr* while leaving rb.3 high to escape configuration memory, rather than lowering and raising rb.3 while mclr* was re-asserted. I can now send the image in the logical memory-mapped order--code, configuration, eeprom--successfully. Thanks to Tony and Alan for your suggestions. Regards, Steve On 3 Feb 02 at 21:31, S Parkis wrote: > In putting together a simple '16F877 programming system I've run > into a puzzling problem. The system programs the device directly > (i.e., not a bootloader arrangement) via LVP as described in > DS39025E, "PIC16F87X EEPROM Memory Programming Specification". > > Here's the situation. If I program the user program memory space, > followed by the configuration memory and finally the data EEPROM > memory, the data EEPROM doesn't "take". It seems to read back OK > while in programming mode, but it's not really there where I meant > to put it--it must have been written to and read back from some > other memory location... -- http://www.piclist.com hint: To leave the PICList mailto:piclist-unsubscribe-request@mitvma.mit.edu