hi , i thought i would put in my 2 cents worth on ICSP standard
a 10 pin header as per the u2 programmer is far too large to be placed on pcbs as the design gets more complex and size of the pcb gets smaller , more so when smd and clearances become harder depending on layouts
for me most cases i use only 4 pin header (2.54 spacing ) yes they are not keyed , but since the programmer is not powering the device , it just not work/program , you get a msg that the device is not ready etc and you reverse the connection ,, no damage or issues
If 5 pins are used , the programmer can power the device when programming , but for all the devices i have made, this is now very rare , and if programmer has to power the cpu is often a creates a bigger issues such as
a. if the device is not 5v,then it cant be used directly so no standard can be applied to the header
b. if cpu uses the common power bus for the pcb so that the programmer would need to supply the total current / voltage for the pcb when programming - easy way to damage a programmer
c. requires that the programmer interface be be keyed to avoid possible damage to the programmer / pcb device when it supplies power
As a result it often is not advisable to use the programmer to power the cpu when programming via ICSP and maintain a standard
consider standardizing on the ICSP header connection pinouts for ALL your projects and make the interface as small as practical , also making them able to support both vertical / horz mounted INTERFACE options , that are easy to swap to allow for PCB layouts that will not work well if vert or horz ones may not suit easy , or need to be put on the reverse side of the pcb if need be
also 2.54 headers can be vert/ horz, mounted and available in colors so you can use say red as the ICSP
for me i assign 4 pin 2.54 header as
pin1 = GND
pin2 = PGD
Pin3 = PGC
pin4= VPP/MCLR
for me the grouping made sense when pin1 is often square and is grd
PGD and PBC are often in the same seq on the chip and line up on the pcb
VPP/MCLR also are often the next pin on the cpu so line up on the pcb
for what is worth
Cheers
Sheldon
Bookmarks