Electronic – PIC Programming commands

microcontrollerpicprogramming

I want to program some PIC micro simultaneously using single same port. There is no problem in programming but when process is finished, feedback command that say "done! its programmed" cause conflict in receiver. In the other words, I want to able check each micro separately and this is my challenge.

with diodes I can separate send/receive path and check that finish programming command. but I don't know what is the type and value of this feedback command.

can you help me in this case or give better suggestion?
Thank you all,

Best Answer

Tying multiple PICs together to program them at the same time is not a good idea.

Programming is not totally a one-way process. Programmers may try to read from the PIC for several reasons:

  1. To determine what PIC is out there, or verify that the stated PIC is out there. By default, all my programmers go thru a surprisingly complicated process to try to determine what PIC is connected. Microchip's POD (Programming Obfuscation Division) has been busy creating different and incompatible ways to communicate with different PICs during programming. There isn't even a single way to enter programming mode, let alone read the chip ID. Even worse, the only means to enter programming mode of some PICs would fry others.

    The net result is that the programmer probably does several back and forth attempts at communication when first starting the programming operation.

    Even when the exact target PIC is specified externally, like with a command line argument, my programmers at least still attempt to verify that particular PIC model is connected.

  2. To know when some part of a programming operation has completed. Some programming algorithms require polling the chip to know when a erase or write has completed.

  3. To verify the data after programming. Obviously this needs to be unique per device.

However, that doesn't mean you can't program multiple PICs a the same time, only that a little more of the programming process needs to be replicated per PIC. Basically, you need to replicate at least the low level hardware interface per PIC.

The simplest way to do that is to use multiple programmers. Programmers are a one-time cost. If you are doing such high volume that programming multiple PICs in parallel is important, then the cost of multiple programmers should be minor.

For example, if you are using one of the newer PICs that can be programmed completely from a 3.3 V interface only, then you can use my LProg PIC programmer. At $18 each for five (Apr 2017), a bunch of these and a USB hub are cheaper than most gang programmers. That gives you a setup that works in-circuit, which gang programmers generally don't.