Content deleted Content added
I rewrote chapter two and three adding some history details and an overview of industrial application of ISP technology Tags: references removed Visual edit |
m typos |
||
Line 4:
[[Image:Isp headers.svg|thumb|6- and 10-pin AVR ISP headers]]
'''In-system programming''' (ISP), also called '''in-circuit serial programming''' (ICSP), is the ability of some [[programmable logic device]]s, [[microcontroller]]s, and other [[embedded device]]s to be programmed while installed in a complete system, rather than requiring the chip to be programmed prior to installing it into the system. It allows firmware updates to be delivered to the on-chip memory of microcontrollers and related processors without requiring specialist programming circuitry on the circuit board, and simplifies design work.
There are several mutually-incompatible in-system programming protocols for programming [[microcontroller]] devices, including [[PIC microcontroller]]s, [[Atmel AVR|AVRs]], and the [[Parallax Propeller]]. ICSP has been primarily implemented by [[Microchip Technology]] for programming PIC and dsPIC devices.
Line 15:
== History ==
Starting from the early ‘90s we witnessed an important technological evolution in the architecture of the microcontrollers. At first, they
Microcontrollers that support ISP are usually provided with pins used by the serial communication peripheral to interface with the programmer, a Flash/EEPROM memory and the circuitry used to supply the voltage necessary to program the microcontroller. The communication peripheral is in turn connected to a programming peripheral which provides commands to operate on the Flash or EEPROM memory.
When designing electronic boards for ISP programming it’s necessary to take into account some guidelines to have a programming phase as reliable as possible. Some microcontrollers with a low number of pins share the programming lines with the I/O lines. This could be a problem if the necessary precautions are not taken into account in the design of the board; the device can suffer the damage of the I/O components during the programming. Moreover, it’s important to connect the ISP lines to [[high impedance]] circuitry both to avoid a damage of the components by the programmer and because the microcontroller often
== Industrial application ==
In-System Programming process takes place during the final stage of production of the product and it can be performed in two different ways based on the production volumes.
In the first method, a connector
The second method uses [[Test point|test points]] on the board. These are specific areas placed on the printed board, or [[Printed circuit board|PCB]], that are electrically connected to some of the electronic components on the board. Test points are used to perform functional tests for components mounted on board and, since they are connected directly to some microcontroller
In production lines, boards are placed on a bed of nails called [[Test fixture|fixture]]. The latter are integrated, based on the production volumes, in semiautomatic or automatic test systems called [[Automatic test equipment|ATE – Automatic Test Equipment]]. Fixtures are
== Microchip ICSP ==
Line 42:
# '''Parallel port''' - large bulky cable, most computers have only one port and it may be inconvenient to swap the programming cable with an attached printer. Most laptops newer than 2010 do not support this port. Parallel port programming is very fast.
# '''Serial port''' (COM port) - At one time the most popular method. Serial ports usually lack adequate circuit programming supply voltage. Most computers and laptops newer than 2010 lack support for this port.
# '''Socket''' (in or out of circuit) - the CPU must be either removed from circuit board, or a clamp must be attached to the chip
# '''USB cable''' - Small and light weight, has support for voltage source and most computers have extra ports available. The distance between the circuit to be programmed and the computer is limited by the length of USB cable - it must usually be less than 180 cm. This can make programming devices deep in machinery or cabinets a problem.
ICSP programmers have many advantages, with size, computer port availability, and power source being major features. Due to variations in the interconnect scheme and the target circuit surrounding a micro-controller, there is no programmer that works with ''''' all ''''' possible target circuits or interconnects. [http://www.Microchip.com Microchip] provides a detailed ICSP programming guide<ref>[http://ww1.microchip.com/downloads/en/devicedoc/30277d.pdf ww1.microchip.com/downloads/en/devicedoc/30277d.pdf ICSP programming guide], Microchip</ref> Many sites provide programming and circuit examples.
PICs are programmed using five signals (a sixth pin 'aux' is provided but not used). The data is transferred using a two
[[File:Icsp communication.jpg|thumb|Typical programming communication]]
Line 55:
[[File:Icsp-pinouts.png|thumb|Typical chip connections]]
* ''' V<sub>pp</sub> ''' - Programming mode voltage. This must be connected to the MCLR pin, or the V<sub>pp</sub> pin of the optional ICSP port available on some large-
* ''' V<sub>dd</sub> ''' - This is the positive power input to the PIC. Some programmers require this to be provided by the circuit (circuit must be at least partially powered up), some programmers expect to drive this line themselves and require the circuit to be off, while others can be configured either way (like the Microchip ICD2). The Embed Inc programmers expect to drive the V<sub>dd</sub> line themselves and require the target circuit to be off during programming.
* ''' V<sub>ss</sub> ''' - Negative power input to the PIC and the zero volts reference for the remaining signals. Voltages of the other signals are implicitly with respect to V<sub>ss</sub>.
|