Electronic – Programming PIC16F88

icsppic

I've built a simple PIC programmer which works OK on a PIC16F628 but fails on a PIC16F88:

enter image description here

I've checked the VPP voltage and it's within spec (although I had to substitute a 1.8K for the 1.6K to get it to 12.75 – the input is not exactly 5.0v) and I've added a lengthy delay to allow it to settle, but the 16F88 just won't play ball. Sadly I don't have access to an oscilloscope, but my logic analyser shows the right traffic on the logic lines at least, although the data coming back is always all zeroes. I've scrutinized the datasheets side by side but can't find anything which would explain the difference.

Does anyone have experience of these two MCUs? Is the 16F88 'more picky' in some way? Is my schematic, in fact, completely bogus? It works on a breadboard (with the 628).

The MCU is connected only to the ICSP lines, there's no other lines or circuit involved.

I suspected insufficent current, but the datasheet says that the current draw on VPP is very low (it's supplying about 50mA I think, I only have a cheap multimeter and I'm not sure I trust it).

Link to the software: Bitbucket

[Edit] Updated schematic to try and make it more clear.

[Edit] DC-DC step up is based on this tool: http://www.nomad.ee/micros/mc34063a/ with Vin=5, Vout = 13, Iout=35, Vripple=50, Fmin=125

[Edit] Schematic should be clearer now

[Edit] Added MCU to schematic. The capacitor C1 is actually just a ceramic capacitor, not tantalum or anything, but I can't get the right symbol to show in the schematic (so please ignore the little + sign).

Best Answer

The two micros enter programming differently.

The pic16f628 wants the Vpp line pulled high before the Vdd line is pulled high.

enter image description here

The pic16f88 is the opposite, it wants the the Vdd line pulled high before the Vpp line is pulled high.

enter image description here

There may also be other programming differences i did not inspect the entire programming specification for both.