PDA

View Full Version : Simultaneous programming of multiple pics - is it possible?



brid0030
- 4th March 2010, 22:00
I've found myself in a position where I will often need to program up to several hundred pics. This is not enough to purchase them preprogrammed but enough to make for considerable tedium. Does anyone know of a way to program multiple devices at the same time (without having say 10 programmers hooked up to 10 computers) or some sort of clever automation?

LinkMTech
- 4th March 2010, 23:15
I had a circuit that used 4 PIC16F688's running parallel and would accept simultaneous programming without any problems. These were all soldered in place though.
I have never tried more than that.

lugo.p
- 9th March 2010, 21:53
if you want to burn the same code in all PICs, the easier thing that i can think is that you take an ICSP and multiply all by X all the pins using logical gates or something like that.

by example:

you have only one data pin from ICSP to 10 PIC's. Conect that data pin to an IC buffer like 7404 hex buffer or something like that.

Do this for all ICSP pins and you will have as many programmers as you wish.

Also you can design a PCB with buffers and insert that PCB in your programmer.

The size and ammount of simultaneus PIC it can handle depends on you

NOTE: buffers are for assurance power signal.



--EDIT--

I forgot to mention that you need to put all inputs together in the buffer to obtain the same output.

This is, if your IC handle 6 buffers, connect all input together and each output will be the same, in this case you will have 5 extra programming pins for 5 PIC. In total 6 programming PIC.

--EDIT2--

I add a picture

Charles Linquis
- 9th March 2010, 22:11
If your parts are surface-mounted, and you have the programming pins brought out - a Microchip ICD3 is a fast programmer. And you can probably get one shipped overnight.

ardhuru
- 10th March 2010, 04:42
Not something I'd recommend, for sure, but just thought I'd share. Back in the early 80s, our CPM PCBs had EPROMs which would take forever to program; verifying them was much faster. So, we'd just stack up about 5 units one on top of the other, and program them. Then, verify them individually. We rarerly had a failed verification.

Regards,

Anand

brid0030
- 19th March 2010, 02:36
Thanks everyone. That was just the help I needed. Based on your stories, I built a jig that parallels the output of a pickit 2 to 5 PIC16F688s. Works great. Thanks for adding years to my life.

mtripoli
- 19th March 2010, 04:07
And they all verified? I haven't looked at the programming spec in a long time but I'll throw this out there. Parallel programming like this is frowned on. Fanout can be a problem from the programmer, but more importantly because of the acknowledge response from the IC during verify.

In general terms, when you program information is going back and forth between the programmer and the PIC (RB7 specifically during verify IIRC). How do you know which IC is verifying when you have them paralled like this? I'd say, you don't. I think some very "funky" (or another "f" word) things can happen under this scenario.

You may have got lucky by stacking a few devices, but if you are programming more than a couple, for anything more than your own use (I wouldn't want to know that something I bought had been programmed this way) I'd rethink this. Commercial gang programmers are readily available for doing this. These don't simply parallel all the pins; they usually have some dedicated circuitry so that each processor is programmed on it's own.

Head over to Microchip and search on ICSP; look at the process that takes place during a program cycle.

EDIT: I did the leg work for you (wasn't hard, went to the page of the device and looked for programming spec). Anyway, look at this: http://ww1.microchip.com/downloads/en/DeviceDoc/41204H.pdf

When programming RB7 is flipping back and forth between input/output. Play that out across 2 devices...5...10?

brid0030
- 18th April 2010, 04:56
Thanks for the heads up, Mtripoli. I haven't yet done this simultaneous programming (5 devices only) extensively, but it has worked about 20 times in a row with no problems. Although I have verified devices a few times, I do not plan to do so much in the future. But before each one goes into the field, I run a diagnostic which, among other things, should indicate whether the PIC got programmed.

I'm not sure what I'm supposed to see in the programming protocol you linked. I sort of read through it, but nothing caught my eye as a danger. I don't have an RB7 on my PIC and I didn't see any others in the document that used RB7 for programming. I think I will verify the first 100 units and if there are no problems, just continue on. I'll still do the diagnostic, of course.