PDA

View Full Version : In circuit GANG programming?



dhouston
- 12th February 2006, 13:46
I have an application where I want to use five 8-pin SMD PICs (probably 12F683) that will all have identical firmware. They will each maintain a serial link with a peripheral device and also communicate with a socketed PIC16F876A. All of the /MCLR pins will be tied together and I can access GP0 & GP1 independently for all five via the 16F876A socket.

Is it possible to gang program all five (in circuit) at the same time? If not, do you see any problems programming them sequentially?

modifyit
- 12th February 2006, 16:09
I'd be interesting in this as well, anyone have any thoughts? Can u simply parallel GP0, GP1, and MCLR and program more then one at the same time?

Darrel Taylor
- 12th February 2006, 23:49
The ICSPDAT (data) pin is bi-directional, so there's a problem if 2 chips give a different response. Just wiring them together is probably not a good idea.

However, there may be a way. I've never done this, so take it with a grain of salt.

http://www.darreltaylor.com/files/GangProg.gif
Theoretically, identical chips should give identical responses, unless there is an error. So if only 1 device is allowed to send to the programmer, the rest should follow along blindly.

But, if there's a programming error on any of the other chips, you'll never know.
<br>

dhouston
- 13th February 2006, 00:26
The ICSPDAT (data) pin is bi-directional, so there's a problem if 2 chips give a different response. Just wiring them together is probably not a good idea.

I'll just build an adapter that has jumpers for each. Is it sufficient to just break the data line?

Darrel Taylor
- 13th February 2006, 00:43
Is it sufficient to just break the data line?
I would think that with Vpp being applied to all chips at the same time, you would be clocking in random data to the chips that aren't being programed, since the data pin is floating and Vpp is on.

Even if you use a Pull-Up/Down, you're still clocking in all 0's or all 1's. Don't know what that would do?

Disconnecting both DAT and CLK with pull-downs on each, might do the trick.

Of course, the easiest way is to have separate Vpp's.
<br>