Programmation in-situ
# Programmation in-situ

La programmation in-situ (In-System Programming ou ISP) est une fonctionnalité qui permet aux composants électroniques (microcontrôleurs en particulier) d'être (re)programmés alors qu'ils sont déjà en place dans le système électronique qu'ils doivent piloter.

Ceci évite d'avoir besoin de programmer le composant en dehors du montage complet à l'aide d'un programmateur dédié.

## Intérêts

Pour les fabricants de matériel électronique, le principal avantage d'une telle technique est de pouvoir regrouper les phases de programmation et de test en une seule alors qu'il fallait au préalable passer par une phase de programmation avant même de pouvoir assembler le système. Ainsi, les fabricants peuvent programmer leurs composants dans leur propre ligne de production, évitant alors d'avoir à acheter des composants pré-programmés. Les fabricants de matériel électronique peuvent en outre modifier le code à envoyer au composant programmable, alors même que le processus de fabrication a débuté.

## Fonctionnement

Classiquement, les composants qui autorisent la Programmation In-situ possèdent un circuit interne qui permet de générer les tensions spécifiques de programmation à partir de la tension d'alimentation. Il permet aussi de communiquer avec le programmateur via une liaison série. La plupart des composants programmables par ISP utilisent une variante du protocole JTAG dédiée à la programmation ; cela permet ainsi de faciliter l'intégration de tels dispositifs avec des procédures de tests automatisés.

D'autres composants utilisent des protocoles propriétaires ou des protocoles définis par des standards plus anciens. Dans les systèmes suffisamment complexes pour nécessiter de la logique additionnelle, il est possible d'intégrer un système de programmation contrôlé par JTAG pour les composants en étant dépourvu (Mémoire flash, microcontôleurs). Ce système permet d'utiliser un seul protocole pour la programmation des composants et le test.

