lo que hacemos es primero, definir el micro que vamos a usar, segundo, incluir el correspondiente archivo .inc , donde vienen definidos un montón de constantes. Así, cuando queramos acceder al puerto A escribiremos simplemente PORTA, ya que en el fichero .inc viene definido como: PORTA EQU H'0005'
Como plantillas para empezar a escribir código se usará el archivo:
MPLABTEMPLATECodef84temp.asm o bien si se usa el PIC16F84A:
MPLABTEMPLATECodef84Atemp.asm
y si se usa el PIC16F873 :
MPLABTEMPLATECodef873temp.asm
Programación de microcontroladores
Software necesario.
- El MPLAB.
Antes de comenzar a escribir programas es necesario conocer las herramientas disponibles para desarrollarlos. De entre ellas el entorno más interesante es el MPLAB (incluido en el CD), no por ser el más eficiente, ya que de hecho probablemente no lo es, sino por ser el más accesible: se puede bajar gratis a través de internet o pedirse, también gratis, a Sagitrón, su distribuidor en España. Además es gráfico, funcionando perfectamente bajo Windows.
Este entorno funciona tipo Container, es decir, sus distintas opciones son asociadas a programas, que serán ejecutados cuando se las pulse. De este modo bastará con definirle un ensamblador, un emulador o un grabador distinto a los que lleva por defecto para incorporarlo inmediatamente al entorno.
El ensamblador que utiliza por defecto el MPLAB es el MPASM con el que es posible abrir un fichero en ensamblador (*.asm) y ensamblarlo para poder obtener el fichero de entrada de un grabador (*.hex), pero también es posible el uso de proyectos que utilicen varios *.asm, permitiendo así reutilizar código con mayor facilidad.
Una vez corregidos todos los errores, el programa ya está listo para ser grabado en el PIC y probado sobre el terreno, pero resulta más práctico (normalmente), y más fiable, si antes se lleva a cabo una simulación por software. MPLAB tiene una herramienta de simulación software, el MPLAB-SIM. Esta herramienta, sin embargo, tiene la gran desventaja de no poder simular algunos periféricos, especialmente la USART (el puerto serie).
- El GPASM y GPSIM.
Otra opción interesante para usuarios Linux/Unix es el ensamblador GPASM y el simulador GPSIM, ambas herramientas GNU en constante evolución. GPASM es la versión GNU del ensamblador MPASM desde línea de comandos. Soporta todas las instrucciones y modos que soporte el MPASM. Se incluye en el CD en el directorio Capitulo3. Una vez descomprimido consultar el manual gpasm.pdf .
La herramienta de simulación bajo Linux es GPSIM, y a pesar de no tener una funcionalidad completa todavía, se sigue desarrollando. Se incluye también en el CD.
Harware necesario.
- Programación serie en circuito.
Los microcontroladores de la gama media pueden ser programados de forma serie directamente en el circuito donde van montados ya que sólo necesitan una línea para datos, otra para el reloj, otra para tensión de alimentación, otra para tensión de grabación y otra de masa. Los microcontroladores 16F87x pueden programarse también a nivel bajo de tensión activando los flags correspondientes. Todos los programadores comerciales y los esquemas gratuitos de la red se basan en la siguiente especificación técnica (incluida en el CD):In-Circuit Serial Programming (ICSP) Guide, (DS30277B).
- Programador de puerto serie. JDM programmer.
Dentro de los programadores gratuitos que están en la red llama la atención el JDM Programmer por ser muy fácil de construir, por no necesitar alimentación externa, por permitir grabar tanto 16F84 como 16F873 (además de otros muchos) y pequeñas memorias serie, y por ser compatible con el software ICProg.
Esquema:
Programador de microcontroladores por puerto serie.
Lado de las pistas: Consultar sección de planos.
Componentes:
R1 Resistencia 10 K
R2 Resistencia 1,5K
R3 Resistencia 100 K
R4 Resistencia 1 K
R5 Resistencia 1 K
R6 Resistencia 1 K
Dz1 Diodo zener 8,2 V
Dz2 Diodo zener 5,1 V
DL1 Diodo led 3 mm verde
DL2 Diodo led 3 mm rojo
D1,D2, D3, D4 Diodo 1N4148
C1 Electrolítico 22uF/16V
C2 Electrolítico 100uF/16V
Q1, Q2 BC237 (usar exactamente este modelo, ya que tiene VCEsat muy baja)
Q3 BC307 (usar exactamente este modelo, ya que tiene VCEsat muy baja)
Conector DB9 Hembra acodado
Zócalo 28 pin o dos de 14 pin
Zócalo 18 pin
Zócalo 8 pin (necesario sólo si se quieren programar memorias)
Realización: Este circuito puede montarse de forma muy sencilla en una placa de prueba, aunque se recomienda su montaje con soldadura. Partiendo de una placa de prototipos o bien de una placa fabricada según se describe en el capítulo 5, proceder de la siguiente manera:
Soldar los puentes, los zócalos y el conector acodado lo primero. Después soldar las resistencias y condensadores. Por último soldar los diodos y transistores.
El JDM es muy ingenioso ya que toma la tensión de programación directamente de un pin del puerto serie en estado bajo (>+12 V), y se queda con las tensión de alimentación que le proporciona un diodo zener de 5.2 V. El puerto serie no tiene ningún problema en alimentar el circuito ya que puede proporcionar hasta 100mA. Es posible que en algunos portátiles
Cable: Se recomienda comprar un cable serie estándar macho-hembra NO null-modem. Si se quiere fabricar, entonces es necesario hacer un cable que conecte los pines 7,8,3,4 y 5 entre el puerto serie del ordenador y el programador.
Uso: Insertar el microcontrolador a programar (no es necesario apretarlo mucho, y es conveniente tocar la carcasa del ordenador primero- o algo que esté puesto a tierra). Enchufar el cable al ordenador. Programar el micro. Desenchufar el cable. Extraer el micro con unas pinzas o con mucho cuidado.
Para programar usando el puerto paralelo se recomineda usar el PIC800 o el programador_paralelo (compatible con ProPic2 y con su propia fuente de alimentación) incluidos en el CD.
- El ICPROG.
El IcProg es un software para Windows muy versátil y sencillo que permite programar todo tipo de circuitos integrados que sean programables con protocolo serie: 12C508, 16C84, 16F84, PIC 16F87x, 24C16, 24C32, 93C46, 90S1200, 59C11, 89C2051, 89S53, 250×0, AVR , 80C51 etc…
Es muy sencillo de usar. Primero hay que configurar el programador:
Settings->Hardware
y configurar como se indica en la siguiente imagen:
ICProg. Configuración del JDM Programmer.
Luego se elige el procesador a usar:
Settings->Device->Microchip PIC
Se selecciona el archivo a programar:
File->Open (tipo IHX8 *.hex)
Se pueden quitar o poner los fusibles, eligir el tipo de oscilador… en el caso de no haberlos elegido en el código fuente con la directiva __CONFIG.
Se pulsa F5 para empezar a programar. Si todo ha ido correctamente dará un mensaje de Verify Successful. Si no, dará un mensaje Verify Failed; comprobar que el cable está correctamente enchufado y el micro correctamente colocado ( ¡¡ si se coloca el micro al revés en el programador puede resultar dañado !! ).
Para más información y para descargar la última versión (en el Cd se incluye el ICProg versión 0.9e y el fichero de ayuda):
http://www.ic-prog.com/
- Programación en Linux.
Para usar un programador de puerto paralelo o serie en Linux se recomienda la página: http://www.gnupic.org/ sección Programmers.
En ella encontraremos software para programadores serie (el PTK4L es compatible con el JDM Programmer al menos para programar el PIC16F84) y para programadores de puerto paralelo independientes del hardware (hay que configurar qué es cada pata del puerto) como el MIPI. Se incluyen en el CD tres diseños de programadores de puerto paralelo: el PIC800 (http://www.miguelo.com.ar) , el programador_paralelo y el No-Parts-PIC-Programmer.
Enviado por: Ing.+Lic. Yunior Andrés Castillo S.
"NO A LA CULTURA DEL SECRETO, SI A LA LIBERTAD DE INFORMACION"®
Santiago de los Caballeros, República Dominicana, 2016.
"DIOS, JUAN PABLO DUARTE, JUAN BOSCH Y ANDRÉS CASTILLO DE LEÓN – POR SIEMPRE"®
Autor:
Yunior Andrés Castillo Silverio.
Página anterior | Volver al principio del trabajo | Página siguiente |