Você está na página 1de 7

Revisin del Programador PP2.

Por Jos Manuel Garca

Introduccin.
Cuando hace unos meses present el PP2, ya expliqu que ciertos dispositivos, tanto presentes como futuros, se podran programar, pero no directamente sobre el zcalo, sino a travs del conector de ampliacin dispuesto para ello, bien mediante adaptadores, bien mediante ICSP (In Circuit Serial Programming programacin serie sobre circuito). Sin embargo, la forma de hacerlo qued en el aire. Por otro lado, tambin dej ver que la zona libre de la placa de circuito impreso podra utilizarse para futuras ampliaciones, dando cabida a nuevos dispositivos, cuyo uso muy habitual haga ms recomendable el poder programarlos sin necesidad de adaptadores. En este artculo me centrar en este tema, presentando varios adaptadores para dispositivos especficos, y una modificacin de la placa que nos permitir programar directamente algunos microcontroladores nuevos de Microchip en un zcalo que aadiremos al que ya haba. Adems, hablar sobre la forma de implementar ICSP en los diseos, de forma que los microcontroladores puedan ser programados sin retirarlos del circuito. De esta forma, la tabla de dispositivos que podremos programar con el PP2 y los adaptadores que presento en este artculo queda como se indica en la tabla 1 (los que aparecen en negrilla los he probado personalmente). Quede claro que se pueden programar otros dispositivos, pero se requieren otros adaptadores. Adems, los PICs programables en serie de las series 16C, 16F y todos los de las series 18C y 18F deberan poderse programar por ICSP, y la mayora de ellos en los zcalos Z1 Z2.
Dispositivo: PICs (todas las series de cada modelo, incluidas -A, -B y JW): 12C508, 12C509, 12CE518, 12CE519, 12C671, 12C672, 12CE673, 12CE674, 12F629, 12F675, 16C61, 16C62, 16C63, 16C64, 16C65, 16C66, 16C67, 16C71, 16C72, 16C73, 16C74, 16C76, 16C77, 16C84, 16C433, 16C505, 16C620, 16C621, 16C622, 16C715, 16C745, 16C765, 16C923, 16C924, 16F83, 16F84, 16F627, 16F628, 16F676, 16F870, 16F871, 16F872, 16F873, 16F874, 16F876, 16F877, 18F242, 18F252, 18F258, 18F442, 18F452, 18F458, 18F2220, 18F2320, 18F4220, 18F4320, 18F4439, 18F4539 PICs: 16F818, 16F819, 18F1220, 18F1320, rfPIC12C509 PICs: 18F6620, 18F6720, 18F8620, 18F8720, rfPIC12F675 24C01, 24C02, 24C04, 24C08, 24C16, 24C32, 24C64, 24C128, 24C256, 24C512, 24LC01, 24LC02, 24LC04, 24LC08, 24LC16, 24LC32, 24LC64, 24LC128, 24LC256, 24LC512 59C11, 59C22, 59C13 93C06, 93C46, 93C56, 93C57, 93C66, 93C76, 93C86 MDA2062, NVM3060 P87LPC764, P87LPC767, P87LPC768 AT90S1200, AT90S2313, AT90S2323, AT90S2333, AT90S2343, AT90S4414, AT90S4433, AT90S4434, AT90S8515, AT90S8535 SI SI Z1 93C_59C 93C_59C MDA206X P87LPC76 ATMEL Zcalo ICSP Adapt.

Z1

SI

Z2

SI SI

Tabla 1

Modificaciones en el PP2.
Cuando se hace necesario, como ocurre ahora, modificar un circuito, normalmente es por una falta de previsin por parte del diseador. En nuestro caso, propongo un par de modificaciones. La primera, si bien es muy simple, se debe exclusivamente a la causa apuntada, es decir, no haber previsto la conveniencia de poder disponer de un par de seales adicionales en el conector de expansin. En mi descargo dir que se podran disear los adaptadores para funcionar sin esas dos seales, pero eso complicara dichos circuitos de forma innecesaria. Lgicamente, si no se van a utilizar adaptadores, esta primera modificacin no es necesaria. La segunda modificacin no es completamente necesaria, pero a m personalmente me parece conveniente hacerla. Se trata de aadir un zcalo en el que se puedan programar algunos modelos nuevos de PICs. Evidentemente esto mismo podra hacerse mediante un adaptador o mediante ICSP, pero por ser micros que estoy utilizando con cierta frecuencia, me resulta ms prctico tener un zcalo fijo en el que programarlos. Se trata de los PIC16F818, PIC16F819, PIC18F1220 y PIC18F1320, cuyas caractersticas los hacen ms que interesantes. En este caso no haba forma de que yo pudiera prever los cambios que Microchip introducira en estos micros en cuanto a las patillas utilizadas para la programacin. Adems, he aprovechado para hacerle sitio en este zcalo al rfPIC12C509 en formato DIP. En la figura 1 se puede ver la posicin del zcalo aadido (Z2). Como se indica en la tabla 1, este zcalo se utilizar para programar los siguientes micros: PIC16F818, PIC16F819, PIC18F1220, PIC18F1320 y rfPIC12C509 con encapsulado PDIP o CERDIP. En todos los casos, son encapsulados de 18 patillas, y se pinchan en el zcalo en su posicin natural (muesca del PIC coincidiendo con muesca del zcalo).

Figura 1 Como es lgico, la figura 1 no refleja las modificaciones que afectan al conector de expansin CON2, y que, bsicamente, consisten en utilizar patillas de dicho conector que haban quedado sin uso, para hacer accesibles un par de seales que es conveniente utilizar para algunos adaptadores. Por un lado, la patilla 9 quedar conectada a la fuente de tensin de 13V, y por otro lado, la patilla 7 nos da acceso a la seal DATA OUT del programador. Esto facilitar el diseo de adaptadores para programar micros que utilizan patillas distintas para DATA OUT y DATA IN.

Por tanto, las seales del conector de expansin CON2, despus de la modificacin, sern las siguientes:
PIN 1 PIN 2 Vdd: Tensin de alimentacin para el PIC, controlada por la seal D2 del puerto paralelo, para dar o no alimentacin al PIC segn se necesite. Vppx: Tensin de programacin del PIC, que ser activada por cualquiera de las seales D3, D4 D5 del puerto paralelo. Esto garantiza que, sea cual sea el dispositivo que se programe, el software activar la tensin de programacin. Data: Seal DATA I/O del PIC. Para enviar datos al PIC se utiliza la seal D0, y para recibir datos la seal ACK del puerto paralelo. Clock: Seal de reloj para el PIC, controlada por la seal D1 del puerto paralelo. Masa: Seal Vss del PIC, correspondiente a 0V. Vcc: Alimentacin para futuras ampliaciones y adaptadores. Vcc es +5V siempre que el programador est encendido. DATA OUT del programador (DATA IN del micro a programar). +13V.

PIN 3 PIN 4 PIN 5 PIN 6 PIN 7 PIN 9

La figura 2 muestra las modificaciones a realizar en el PP2. Como puede verse, una vez colocado el zcalo, slo hay que soldar unos cuantos cablecitos por la cara de soldadura, que quedarn ocultos al montar el programador en su caja. Los colores utilizados no tienen significado alguno, y simplemente se han usado para que se diferencien con claridad los distintos cables. Igualmente la trayectoria de los cables no tiene por qu ser esa. El esquema de cableado de la figura 2, est visto desde la cara de soldadura, para facilitar la tarea.

Figura 2 Como siempre, los archivos con informacin detallada se pueden descargar de la seccin ficheros de mi pgina, agrupados bajo el nombre REV_PP2.ZIP.

ICSP para PICs.


La mayora de microcontroladores PIC de Microchip permiten ser programados en el propio circuito, utilizando slo unas cuantas patillas, mediante las cuales el programador se comunica con el micro. No debe confundirse este mtodo con los sistemas basados en un boot-loader, en los que un pequeo programa previamente grabado en el micro es el que establece la comunicacin con un ordenador (normalmente mediante una comunicacin RS232 o USB) y se encarga de auto programar el micro. Para programar un micro mediante ICSP no es necesario haber cargado ningn programa en el micro, porque se trata simplemente de trasladar a nuestro circuito las mismas seales que se utilizan en el zcalo del programador. El ICSP es un sistema simple, barato y que puede resultar muy til, pero obliga a cuidar ciertos detalles en el diseo. En primer lugar, hay que tener en cuenta que, para poder programar un PIC, ste tiene que estar alimentado. Habitualmente esto implica que el resto del circuito est alimentado tambin, con lo que el consumo total depender del consumo del circuito en esas condiciones, y no slo del consumo del micro. Por tanto, si se utiliza la alimentacin del programador para alimentar al micro, habr que aislar ste de las lneas de alimentacin del resto de componentes, o bien asegurarse de que el consumo total no supera la capacidad del programador, que no debera exceder de 200mA. La otra alternativa es utilizar la propia fuente de alimentacin de nuestro circuito, tambin durante la programacin. En cualquier caso, si las dos fuentes de alimentacin estn funcionando, es absolutamente imprescindible que las salidas de tensin de ambas no estn interconectadas, ya que eso, casi con toda seguridad, daara el programador. Adems, hay que tener en cuenta que durante la programacin, los ports no utilizados del PIC permanecern en estado de alta impedancia. Si se disea un circuito contando con que el micro va a controlar otros elementos, habr que prever que durante la programacin no podr hacerlo, asegurndose de que en ese estado, el funcionamiento del circuito est previsto. Por otro lado, al disear el circuito hay que contar con que el programador tendr que utilizar ciertas patillas para la programacin. Cuando el micro tiene ports de sobra, lo ideal es dejar esas patillas sin otro uso, pero cuando el micro es pequeo, normalmente no podemos permitirnos ese lujo. En este caso, la conexin de ese port al resto del circuito deber hacerse mediante una resistencia, o bien prever un sistema para aislar esa patilla del resto del circuito durante la programacin, por ejemplo mediante un jumper. Por lo dems, en cada caso habr que estudiar las patillas utilizadas para la programacin, en las Programming Specification del PIC utilizado. En todos los casos se utilizan las patillas marcadas como DATA (o ICSPDAT), CLOCK (o ICSPCLK), MCLR (o VPP), junto con las patillas de alimentacin (VSS y VDD). Adems, los micros que permiten LVP (Low Voltage Programming programacin a baja tensin) utilizan otra patilla llamada PGM (o LVP) para configurar si la programacin se har utilizando tensin de programacin de 12.75V programacin a baja tensin (seales de 5V). En nuestro caso, utilizando el PP2, es obligado usar el mtodo clsico, es decir, con tensin de programacin de 12.75V, y por tanto, dicha patilla tiene que estar conectada a VSS (0V) durante la programacin. El esquema bsico para la programacin ICSP sera el de la figura 3. Como se ve, un conector miniatura de slo 4 patillas es suficiente para comunicar el PP2 con el circuito. En este caso, se da por hecho que el circuito que alberga al PIC tiene su propia alimentacin, y que no hay inconveniente en dedicar las patillas MCLR, DATA, CLOCK y PGM exclusivamente a las tareas de programacin.

Figura 3

La figura 4 ilustra un sistema ms verstil. En este caso la alimentacin del programador es la que alimenta al micro durante la programacin. Por otro lado, las patillas utilizadas para la programacin, pueden tener otros usos en funcionamiento normal. La idea es que, para la programacin, el conector que viene del PP2 se inserte en el que hay en el circuito, pero en funcionamiento normal, se mantenga insertado otro conector que puentee las patillas 1-2, 3-4, 5-6 y 7-8. De esa forma, en funcionamiento normal, cada patilla del PIC queda conectada al circuito, pero en programacin, el PIC queda prcticamente aislado del circuito. Es interesante fijarse en la forma de conectar la patilla PGM. Durante la programacin, queda conectada a masa (VSS), y en funcionamiento normal, queda conectada al circuito mediante una resistencia. Lgicamente, el valor de esa resistencia y el resto del circuito, deben estar calculados de forma que, al conectar la patilla PGM a masa, no se dae el circuito. Evidentemente, es imposible prever las necesidades de cada diseo, pero esto puede servir como idea.

Figura 4

EEPROMs 4-wire / 3-wire.


Las EEPROMs con interface 4-wire (59Cxx) y sobre todo las que utilizan interface 3-wire o microwire (93Cxx) son muy comunes en equipos electrnicos de todo tipo. Fueron las primeras EEPROMs de bajo coste, y eso les da cierta ventaja sobre las I2C para capacidades de almacenamiento relativamente bajas. El esquema del adaptador necesario para programarlas aparece en la figura 5. Como puede verse, es muy simple, y se puede montar fcilmente en un trocito de placa pretaladrada soldado directamente a un conector DB9 macho.

Figura 5

EEPROMs IM-bus MDA206x.


Las EEPROMs con interface IM-bus se utilizan relativamente poco, debido principalmente a la tensin de programacin que utilizan. Sin embargo, no es raro encontrarlas en algunos equipos, y es difcil localizar un programador en internet adecuado para ellas. Eso me ha decidido a publicar este adaptador que, an siendo algo complejo, puede ser de inters. En cualquier caso, los componentes utilizados son relativamente baratos, y el coste de este adaptador no debera pasar de 3 o 4 euros.

Figura 6 La complejidad de este adaptador viene derivada de las seales que requieren estas memorias durante la programacin. Por un lado, en la patilla 3 debe haber una tensin de 20V, que generamos a partir de la tensin de 13V, mediante un inversor (formado alrededor de L1, T1, D4 y C2). Este inversor trabaja a unos 31kHz, obtenidos de un oscilador de 1MHz mediante un divisor de frecuencia 4060 (1MHz / 32 = 31250Hz). Adems, se requiere inyectar una seal de aproximadamente 1kHz, lo ms estable posible, en la patilla 13 de la EEPROM. Esta seal se obtiene del mismo oscilador de 1MHz, utilizando otra salida del mismo divisor de frecuencia 4060, que divide por 1024 (1MHz / 1024 = 977Hz).

Microcontroladores Philips P87LPC76x.


Esta serie de microcontroladores se programan mediante seales muy similares a las utilizadas en los PICs, como puede suponerse viendo la simplicidad de este adaptador, en el que prcticamente slo hay que limitar la tensin de programacin a unos 10.75V.

Figura 7

Microcontroladores Atmel AT90Sxxxx.


Lo primero que tengo que decir de este adaptador es que YO NO LO HE PROBADO. Es decir, prob un adaptador similar con uno de los primeros prototipos del PP2, pero no lo he probado con la versin definitiva. El motivo es simplemente que no dispongo de ningn micro de estos modelos para probar, y tampoco tengo intencin de gastar dinero y tiempo en comprarlo (en los comercios locales no lo tienen). Por otro lado, tengo noticias de dos personas que s lo han probado, con resultados contradictorios; a una le funcion y a la otra no. Una causa podra estar en las limitaciones de la programacin en serie de estos micros, en los que ciertos bits de configuracin slo pueden cambiarse con un programador en paralelo, pero realmente no estoy seguro, por lo que no puedo avalar la validez de este adaptador. Lo que me ha impulsado a incluirlo en este artculo es que me lo han pedido varias personas, y que es realmente simple, pero quede claro que no garantizo su funcionamiento correcto.

Figura 8

Você também pode gostar