Share to: share facebook share twitter share wa share telegram print page

Programació en sistema

Conectors ISP AVR de 6 i 10 pins

La programació en sistema (ISP), o també anomenada programació sèrie en circuit (ICSP), és la capacitat d'un dispositiu lògic programable, microcontrolador, xipset o altre dispositiu integrat de ser programat mentre està instal·lat en un sistema complet, en lloc de requerir que el xip es programi abans de la instal·lació. També permet que les actualitzacions de firmware es lliurin a la memòria del xip dels microcontroladors i processadors relacionats sense necessitat de circuits de programació especialitzats a la placa de circuit, i simplifica el treball de disseny.[1]

Visió general

No hi ha cap estàndard per als protocols de programació dins del sistema per programar dispositius de microcontroladors. Gairebé tots els fabricants de microcontroladors admeten ISP, però tots han implementat els seus propis protocols, que sovint difereixen fins i tot per a diversos dispositius del mateix fabricant. Es poden requerir fins a 4 pins per implementar una interfície estàndard JTAG. En general, els protocols moderns intenten mantenir baix el nombre de pins utilitzats, normalment a 2 pins. Algunes interfícies ISP aconsegueixen el mateix amb un sol pin. Els microcontroladors ATtiny més nous amb UPDI poden fins i tot reutilitzar aquest pin de programació també com a entrada/sortida d'ús general.[2]

El principal avantatge de la programació dins del sistema és que permet als fabricants de dispositius electrònics integrar la programació i les proves en una sola fase de producció i estalviar diners, en lloc de requerir una etapa de programació separada abans de muntar el sistema. Això pot permetre als fabricants programar els xips a la línia de producció del seu propi sistema en lloc de comprar xips preprogramats d'un fabricant o distribuïdor, fent possible aplicar canvis de codi o disseny enmig d'una tirada de producció. L'altre avantatge és que la producció sempre pot utilitzar el firmware més recent i es poden implementar noves funcions, així com correccions d'errors, i posar-les en producció sense el retard que es produeix quan s'utilitzen microcontroladors preprogramats.[3]

Els microcontroladors normalment es solden directament a una placa de circuits impresos i normalment no tenen els circuits ni l'espai per a un cable de programació extern gran a un altre ordinador.[4]

Normalment, els xips que admeten ISP tenen circuits interns per generar qualsevol voltatge de programació necessari a partir del voltatge de subministrament normal del sistema i comunicar-se amb el programador a través d'un protocol sèrie. La majoria dels dispositius lògics programables utilitzen una variant del protocol JTAG per a ISP, per tal de facilitar una integració més fàcil amb procediments de prova automatitzats. Altres dispositius solen utilitzar protocols propietaris o protocols definits per estàndards més antics. En sistemes prou complexos com per requerir una lògica d'adhesió moderadament gran, els dissenyadors poden implementar un subsistema de programació controlat per JTAG per a dispositius que no són JTAG, com ara memòria flash i microcontroladors, permetent que tot el procediment de programació i prova es realitzi sota el control d'un únic protocol.[5]

Història

A partir de principis dels anys noranta, es va observar una important evolució tecnològica en l'arquitectura dels microcontroladors. Inicialment, es van realitzar en dues possibles solucions: amb memòries programables d'un sol ús (OTP) o amb memòries EPROM. Per a les EPROM, un procés d'esborrat de memòria requereix que el xip s'exposi a la llum ultraviolada a través d'una finestra específica sobre el paquet. El 1993, Microchip Technology va introduir el primer microcontrolador amb memòria EEPROM: el PIC16C84. Les memòries EEPROM es poden esborrar elèctricament. Aquesta característica va permetre reduir els costos de realització eliminant la finestra d'esborrat sobre el paquet i iniciant la tecnologia de programació dins del sistema. Amb el procés de flasheig d'ISP es pot realitzar directament a la placa al final del procés de producció. Aquesta evolució va donar la possibilitat d'unificar la fase de programació i prova funcional i en entorns de producció i iniciar la producció preliminar de les plaques fins i tot si el desenvolupament del firmware encara no s'ha completat. D'aquesta manera va ser possible corregir errors o fer canvis més endavant. El mateix any, Atmel va desenvolupar el primer microcontrolador amb memòria flash, més fàcil i ràpid de programar i amb un cicle de vida molt més llarg en comparació amb les memòries EEPROM.

Els microcontroladors que admeten ISP solen estar proveïts de pins utilitzats pel perifèric de comunicació sèrie per interactuar amb el programador, una memòria flash/EEPROM i els circuits utilitzats per subministrar el voltatge necessari per programar el microcontrolador. El perifèric de comunicació està connectat a un perifèric de programació que proporciona ordres per operar a la memòria flash o EEPROM.

Quan es dissenyen plaques electròniques per a la programació d'ISP, cal tenir en compte algunes pautes per tenir una fase de programació el més fiable possible. Alguns microcontroladors amb un nombre baix de pins comparteixen les línies de programació amb les línies d'E/S. Això pot ser un problema si no es tenen en compte les precaucions necessàries en el disseny de la placa; el dispositiu pot patir danys als components d'E/S durant la programació. A més, és important connectar les línies ISP a circuits d'alta impedància tant per evitar danys als components per part del programador com perquè el microcontrolador sovint no pot subministrar prou corrent per pilotar la línia. Molts microcontroladors necessiten una línia de reinici dedicada per entrar en mode de programació. Cal parar atenció al corrent subministrat per a la conducció de la línia i comprovar la presència de watchdogs connectats a la línia de reinici que poden generar un reinici no desitjat i, per tant, provocar un error de programació. A més, alguns microcontroladors necessiten un voltatge més alt per entrar en mode de programació i, per tant, cal comprovar que aquest valor no estigui atenuat i que aquest voltatge no es transmeti a altres components de la placa.

Aplicació industrial

La programació en el sistema té lloc durant la fase final de producció d'un producte. Es pot dur a terme de dues maneres diferents en funció dels volums de producció:

En el primer mètode, un connector es connecta manualment al programador. Aquesta solució espera la participació humana en el procés de programació que ha de connectar el programador a la placa electrònica amb el cable. Per tant, aquesta solució està pensada per a volums de producció baixos.

El segon mètode utilitza punts de prova a la placa. Són zones específiques col·locades a la placa impresa, o PCB, que estan connectades elèctricament a alguns dels components electrònics de la placa. Els punts de prova s'utilitzen per realitzar proves funcionals dels components muntats a la placa i, com que estan connectats directament a alguns pins del microcontrolador, són molt eficaços per als ISP. Per a volums de producció mitjans i alts, utilitzar punts de prova és la millor solució, ja que permet integrar la fase de programació en una línia de muntatge.

A les línies de producció, les plaques es col·loquen sobre un llit de claus anomenat fixació. Aquests últims s'integren, en funció dels volums de producció, en sistemes de prova semiautomàtics o automàtics anomenats equips de prova automàtics (ATE). Les fixacions estan dissenyades específicament per a cada placa, o com a màxim per a uns quants models similars a la placa per a la qual van ser dissenyats; per tant, són intercanviables en l'entorn del sistema on s'integren. El sistema de prova, un cop la placa i la fixació es col·loquen en posició, té un mecanisme per posar en contacte les agulles de la fixació amb els punts de prova de la placa a provar. El sistema està connectat a, o té integrat directament a l'interior, un programador ISP. Aquest ha de programar el dispositiu o dispositius muntats a la placa: per exemple, un microcontrolador i/o una memòria sèrie.

ICSP de Microchip

Per a la majoria de microcontroladors de Microchip, la programació ICSP es realitza utilitzant dos pins, rellotge (PGC) i dades (PGD), mentre que un alt voltatge (12 V) és present al pin Vpp/MCLR. Programació de baixa tensió (5 V o 3.3 V) elimina l'alt voltatge, però reserva l'ús exclusiu d'un pin d'E/S. Tanmateix, per als microcontroladors més nous, concretament les famílies de microcontroladors PIC18F6XJXX/8XJXX de Microchip Technology, entrar als modes ICSP és una mica diferent. Entrar al mode Programa/Verificació ICSP requereix els tres passos següents:

  1. El voltatge s'aplica breument al pin MCLR (master clear).
  2. A PGD es presenta una seqüència de claus de 32 bits.
  3. Es torna a aplicar el voltatge a MCLR.
Programador ICSP PICkit de Microchip

Es requereix una peça de maquinari separada, anomenada programador, per connectar-se a un port d'E/S d'un PC per un costat i al PIC per l'altre. Una llista de les característiques de cada tipus de programació principal és:

  1. Port paral·lel : cable gran i voluminós, la majoria d'ordinadors només tenen un port i pot ser inconvenient intercanviar el cable de programació amb una impressora connectada. La majoria dels ordinadors portàtils més nous del 2010 no admeten aquest port. La programació del port paral·lel és molt ràpida.
  2. Port sèrie (port COM): en un moment donat va ser el mètode més popular. Els ports sèrie normalment no tenen una tensió d'alimentació adequada per a la programació de circuits. La majoria d'ordinadors i portàtils més nous del 2010 no són compatibles amb aquest port.
  3. Sòcol (dins o fora del circuit): la CPU s'ha de treure de la placa de circuit o s'ha de connectar una brida a l'accés a la fabricació de xips per evitar problemes.
  4. Cable USB : petit i lleuger, admet una font de voltatge i la majoria d'ordinadors tenen ports addicionals disponibles. La distància entre el circuit que s'ha de programar i l'ordinador està limitada per la longitud del cable USB; normalment ha de ser inferior a 180 cm. Això pot fer que els dispositius de programació que es troben a la maquinària o als armaris siguin un problema.
  5. Comunicació típica de programació

Els programadors ICSP tenen molts avantatges, sent la mida, la disponibilitat del port de l'ordinador i la font d'alimentació les principals característiques. A causa de les variacions en l'esquema d'interconnexió i el circuit de destinació que envolta un microcontrolador, no hi ha cap programador que funcioni amb tots els circuits o interconnexions de destinació possibles. Microchip Technology proporciona una guia detallada de programació ICSP Molts llocs web proporcionen exemples de programació i circuits.

Els PIC es programen mitjançant cinc senyals (es proporciona un sisè pin 'aux' però no s'utilitza). Les dades es transfereixen mitjançant un esquema sèrie síncron de dos cables, tres cables més proporcionen programació i alimentació del xip. El senyal de rellotge sempre està controlat pel programador.

Senyals i pinout

  • Vpp - Tensió del mode de programació. Cal connectar-la al pin MCLR o al pin Vpp del port ICSP opcional disponible en alguns PIC amb un gran nombre de pins. Per posar el PIC en mode de programació, aquesta línia ha d'estar en un rang especificat que varia de PIC a PIC. Durant 5 En els PIC de V, aquesta quantitat sempre és una quantitat per sobre de Vdd, i pot arribar als 13,5 V. Els PIC de només 3,3 V, com les sèries 18FJ, 24H i 33F, utilitzen una signatura especial per entrar en mode de programació i Vpp és un senyal digital que es troba a terra o a Vdd. No hi ha cap voltatge Vpp que estigui dins del rang vàlid de Vpp per a tots els PIC. De fet, el nivell mínim de Vpp requerit per a alguns PIC pot danyar altres PIC.
  • V dd : aquesta és l'entrada d'alimentació positiva al PIC. Alguns programadors requereixen que el circuit la proporcioni (el circuit ha d'estar almenys parcialment alimentat), alguns programadors esperen controlar aquesta línia ells mateixos i requereixen que el circuit estigui apagat, mentre que d'altres es poden configurar de qualsevol manera (com el Microchip ICD2). Els programadors d'Embed Inc esperen controlar la línia V dd ells mateixos i requereixen que el circuit de destinació estigui apagat durant la programació.
  • V ss - Entrada d'alimentació negativa al PIC i la referència de zero volts per a la resta de senyals. Els voltatges dels altres senyals són implícitament respecte a Vss.
  • ICSPCLK - Línia de rellotge de la interfície de dades sèrie. Aquesta línia oscil·la entre GND i Vdd i sempre la controla el programador. Les dades es transfereixen al flanc de baixada.
  • ICSPDAT - Línia de dades sèrie. La interfície sèrie és bidireccional, de manera que aquesta línia pot ser controlada pel programador o pel PIC depenent de l'operació actual. En qualsevol cas, aquesta línia oscil·la de GND a Vdd. Es transfereix un bit al flanc de baixada del PGC.
  • AUX/PGM : els controladors PIC més nous utilitzen aquest pin per habilitar la programació de baix voltatge (LVP). Si es manté PGM alt, el microcontrolador entrarà en mode LVP. Els microcontroladors PIC s'envien amb LVP habilitat, de manera que si utilitzeu un xip nou, podeu utilitzar-lo en mode LVP. L'única manera de canviar el mode és mitjançant un programador d'alt voltatge. Si programeu el microcontrolador sense connexió a aquest pin, el mode no canvia.

Pinout RJ11

Programador PIC RJ11 a ICSP

Microchip admet un estàndard de la indústria per a l'ús de sòcols RJ11 amb un programador ICSP. La il·lustració representa la informació proporcionada a les seves fitxes tècniques. Tanmateix, hi ha marge de confusió. Les fitxes tècniques del PIC mostren un sòcol invertit i no proporcionen una vista pictòrica dels pins, per la qual cosa no està clar en quin costat del sòcol es troba el pin 1. La il·lustració que es proporciona aquí no està provada, però utilitza el pin de configuració estàndard de la indústria telefònica (el connector/sòcol RJ11 es va desenvolupar originalment per a telèfons d'escriptori amb cable).

Referències

  1. Pravisani, Ylenia. «In-System Programming (ISP) and Pre-Programming: What is the Difference?» (en anglès americà). [Consulta: 3 setembre 2025].
  2. «Unified Program and Debug Interface (UPDI) High-Voltage Activation Information - Developer Help» (en anglès). developerhelp.microchip.com. Arxivat de l'original el 2024-10-07. [Consulta: 17 desembre 2024].
  3. «In-System Programming — flashrom v1.7.0-devel (git:v1.6.0-14-gc6ceecf3) documentation» (en anglès). [Consulta: 3 setembre 2025].
  4. Pravisani, Ylenia. «What is In-System Programming?» (en anglès americà). [Consulta: 3 setembre 2025].
  5. «2.1.2.3. In-System Programming» (en anglès). [Consulta: 3 setembre 2025].
Kembali kehalaman sebelumnya