Quel que soient les dispositifs programmables, EPROM, PAL, GAL, CPLD, FPGA ou microcontrôleurs des outils spécifiques sont nécessaires afin de les gaver de données.

D'abord la logique

Mon expérience en électronique a débutée avec les circuits logiques, pas besoin de programmation l'une de mes premières réalisation fut un écran de 256 leds organisées en 8 lignes de 32 led. Cet écran graphique voyait défiler une animation en lisant simplement une EPROM. 

Par la suite ma formation étant passée par là j'ai commencer à développer quelques cartes à base 6809 et ses accessoires, là aussi le programme était contenu dans une EPROM.

Pour mener à bien ces projets je me suis donc doté d'un programmateur "universel" (enfin pour l'époque), le LV48 micromaster de Ice Technology. Universel, pas loin, puisqu'il permet avec son connecteur ZIF 48 broches et adaptateur TQFP44 de gérer:

  • Les EPROM (parallèles ou séries), EEPROM, PROM Série pour la configuration de FPGA
  • Mémoire Flash jusque 512Mbit
  • NOVRAM et BPROM
  • Circuit logiques PAL, GAL, PEEL, PALCE, etc...
  • CPLD Xilinx EPLD, Vantis MACH, Altera MAX
  • Microcontrôleurs 8748/51/196, 89Cxxxx, 89FXX, 87LPCxx, PIC, AVR 68HC705/711, 68HC908/912, CY63000 USB, COP8, TMS320/370, etc...

En fait je m'en suis principalement servi pour programmer des EPROM et quelques circuits PAL, parce que programmer une puce in situ c'est quand même plus simple et plus facile pour développer et ajuster un programme.

Ensuite les microcontrôleurs et la programmation in situ

Assez orienté Motorola au début, dans les années '98 avec un brève expérience sur les 68HC11 et 68HC705, je me suis orienté vers une nouvelle famille de microcontrôleurs à architecture RSISC, et il m'a fallu faire un choix entre PIC et AVR. Je me suis finalement largement investi dans les AVR. J'ai trouvé le jeu d'instruction et le système de registre plus simple d'utilisation. D'autre part l'environnement de développement des AVR était entièrement gratuit. Il était possible de rédiger un programme, le compiler, le simuler, grâce à l'AVR Studio, pour le télécharger au travers d'un programmateur in situ simple à réaliser.

Finalement je me suis doté d'un programmateur AVR JTAG ICE MkII permettant via son bus JTAG non seulement réaliser une programmation in situ mais également de faire du pas à pas ou mettre en place des point d'arrêt sur la carte en cours de développement. C'était très puissant pour développer, je l'en suis notamment servi pour l'ATMega162. Il permettait la programmation de la totalité des AVR, megaAVR, TinyAVR et AVR32 et certains XMega AVR.

Puis par simplicité je me suis offert un AVRISP MKII, plus simple d'utilisation sans fonction de debug suffisant pour programmer la série des AVR, Tiny, Mega et XMega

Facile d'utilisation avec son connecteur à six broches, notamment pour programmer les arduino nano à base d'ATMega328p, mais pas que.

Enfin les CPLD et autre FPGA

je vais clore le chapitre des programmateurs par les CPLD et FPGA, pour cela je n'ai pas grand chose un vieux programmateur ATMEL pour la série ATF15xx utilisant la suite WINCUPL (fonctionnant sur Windows XP au maximum). Cette vieille suite permet la réalisation et la simulation de circuit en AHDL. le cordon ISP Downloader permet la programmation des CPLD avec le protocole JTAG. Outre les CPLD Atmel il serait capable de programmer la série EPM7032/64/128 d'Altera.

Enfin un USB Blaster d'Altera afin de programmer les CPLD/FPGA du même constructeur (racheté par Intel) dont je ne me suis pas encore servi mais pour lequel j'ai quelques FLEX10K en attente.