Continue to Site

Welcome to our site!

Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

  • Welcome to our site! Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

preferred method for ICSP isolation

Status
Not open for further replies.

justDIY

Active Member
I've got a board which uses nearly all the pins on my pic. The way the layout came together, PGC and PGD needed to be used as inputs.

They are connected to a push/pull output of a touch sensing chip. I'm not sure what the output stage looks like on the touch sensor, but even with both Vss and Vdd disconnected, the touch sensor still loads PGC and PGD too much for the programmer to program.

The touch sensor has an active-high output, so the pins are held low until a 'switch' is activated and then they go high.

The outputs can source and sink up to 20ma but Quantum recommends drawing as little as 1ma of current from the outputs to improve the response time and accuracy of the chip.

If I use a 4.7k resistor between the connector for the "buttons" and the pic pins, it will limit current to just over 1ma. That should help reduce the load on the programmer, right? I'm not using the Vpp pin for anything accept mclr and vpp, it is pulled high through a diode and resistor.

Any other suggestions? I don't have a lot of room left in the layout, or I'd just cheat and use something like a hex inverter to buffer the inputs.
 
Hopefully Nigel or someone else will comment, but I know Microchip has an AppNote on what you have to do to isolate the pins.

Mike
 
If you have any pulled high switches, I'd move them to the pgc and pgd. Use internal pullups and you are golden.
 
An obvious 100% effective solution is to use a simple DPDT switch, or plug-in jumpers - and the jumpers take very little space. Or for no space at all, assuming it's not a SM device, then simply unplug it and program it seperately.
 
Last edited:
For breadboarding I prefer to extend the pins out and use a 5-pin programming terminated with headers. If pins are shared then that device is pulled out of bread board during programming or I use an isolated ground.

For prototype boards, I use small DPDT push-button switch.

For production, I do not even bother reprogramming. If its a must, I get a bigger chip or force devices to share common i/o lines. Still programming isolation does not exist. Yeah, I could use jumpers or dips switches but I do not prefer this. I'd rather not be able to program over doing such a thing.
 
the resistors are working - i crudely soldered some inline with the cable which goes to the touch sensing daughter board. the next revision of the board will have room for some 0603 resistors

I like the jumper idea, but I wanted to be able to reprogram the board while it's in service, without having to disconnect the touchpad. I think it might make more sense to use PGC and PGD as outputs instead of inputs, since the outputs of the programmer are high-z unless the programmer is active, i'll have to see if I can re-route things to make that happen.

thanks a lot for the suggestions all!

here's some crude pictures of what i'm working with:

main board top (the unpopulated 2x7 holes is where the button board connects)
https://projects.dimension-x.net/pictures/sprinkler/ctrl01-assembled-top_lg.jpg

bottom of main board:
https://projects.dimension-x.net/pictures/sprinkler/ctrl01-assembled-bot_lg.jpg

touch pad 'buttons' daughter board:
https://projects.dimension-x.net/pictures/touch/6buttons-top-sm.jpg
 
Status
Not open for further replies.

Latest threads

Back
Top