Nei sistemi integrati occorre immagazzinare le informazioni in maniera permanente, ad esempio un codice di programma e i dati di calibrazione, di modo che rimangano disponibili anche dopo che l'alimentazione viene rimossa dal sistema. Diversi dispositivi di memoria e tecnologie sono disponibili a tale scopo. Tra questi, PROM, EPROM, EEPROM e la memoria flash. Quando il dispositivo di memoria viene realizzato è vuoto, perciò deve essere programmato prima che il sistema in cui è installato possa essere usato.
Sebbene la generazione odierna di microcontroller generalmente comprenda una memoria flash e abbia la capacità di riprogrammare piccoli elementi di memoria una volta che il loro codice principale è stato installato, per la programmazione di dispositivi "vuoti" è necessario un programmatore esterno.
Altri circuiti integrati, conosciuti con acronimi come PAL, PLA, PLD, CPLD, GAL, FPGA sono apparecchi programmabili dove i dati che devono essere immessi definiscono un circuito logico di combinazione piuttosto che istruzioni per software; questi apparecchi devono inoltre essere programmati prima di essere usati. L'apparecchiatura che serve per ottenere questo può avere molti nomi, come ad esempio "programmatore del dispositivo, "programmatore del chip", "programmatore del circuito", "programmatore IC oppure "bruciatore EPROM".
Figura 1: programmatore universale per FPGA. Fonte: Lattice Semiconductor)
Esistono quattro tipi generici di programmatori per dispositivi:
1) Programmatori Gang: per la programmazione di circuiti multipli in produzione di massa.
2) Programmatori universali: per lo sviluppo di produzioni in piccola serie.3) Programmatori pocket: programmatori portatili per lo sviluppo e il servizio sul campo.
4) Programmatori specializzati: per specifici circuiti soltanto, come ad esempio i programmatori EPROM.In questo articolo trattiamo nello specifico i programmatori universali, che sono in grado di programmare tipologie multiple di dispositivi. Si tratta di un'abilità molto utile, perché per decenni (il primo EPROM è comparso nel 1971) sono esistiti molteplici apparecchi programmabili e numerosi modi di programmarli.
I metodi di programmazione seguono tutti una procedura di base: il dispositivo che deve essere programmato è collegato al programmatore, sia inserendolo in una presa sul programmatore oppure collegando il programmatore attraverso un adattatore alla scheda che contiene il dispositivo. Un volta che questo accade, i dati vengono quindi trasferiti sul dispositivo applicando segnali ai pin di connessione usando circuiti con pin corrispondenti.
All'interno di questa procedura di base, tuttavia, esistono molte differenze tra i dispositivi. Prima di tutto, non esiste una piedinatura standard per programmare i pin. Secondo poi, alcuni dispositivi necessitano di dati attraverso input seriali, altri paralleli. I dispositivi lavorano a differenti tensioni di alimentazione e si servono di altre tensioni per la programmazione.
Il risultato è che ogni pin di I/O del programmatore universale deve essere in grado di applicare tensioni che vanno da 0 a 25 V, velocità di clock fino a 40 MHz e input logici con soglie regolabili. E, naturalmente, non dimentichiamoci del numero sempre crescente di pacchetti diversi tra loro. Questi possono essere generalmente utilizzati con adattatori di prese come mostrato di seguito.
Figura 2: adattatori di prese per programmatore universale. (Fonte: Lattice Semiconductor)
Come per il software, esistono molti diversi formati di file per i dati binari, l's-record di Motorola, il formato Intel HEX e altri, che il programmatore universale deve tenere in conto. Molti produttori realizzano programmatori universali per tutti i dispositivi delle loro linee di profitti e i progettisti possono inoltre ottenere programmatori universali che funzionano con dispositivi di fornitori diversi. Un dispositivo del genere promette di funzionare con 92.000 dispositivi di 332 produttori di IC!
Dal momento che esiste un largo numero di combinazioni possibili, un programmatore universale è un strumento fondamentale in ogni laboratorio che usa una gamma di diverse tecnologie di memoria.