El software utilizado es el MPLAB, de microchip para la grabación de microcontroladores PIC. Si se desea grabar un PIC que se encuentra grabado en C, habra que utilizar el mismo procedimiento.
Luego de haber finalizado nuestro proyecto, teniendo el archivo resultante .hex
Conectaremos nuestro microcontrolador en el grabador, cuidadosamente y lo ajustaremos con la pequeña palanca que tiene a un costado, conectaremos a 9V en el power del grabador y un cable serie desde el grabador hasta el puerto Serie (DB9 - COM1) de nuestra pc.
Al conectar la alimentación se encenderá el primer led que nos indicará que el grabador tiene energía
abrir el MPLAB y seleccionar en el menu File - Import
Luego abriremos nuestro archivo .hex, que queremos grabar.
Nos aparecera que el archivo fue cargado:
Seleccionaremos el programador PICSTARTPLUS:
Luego iremos a Program Enable programmer, para habilitar el programador, aqui verificará la correcta conexión con el grabador.
Y de nuevo programmer, pero ahora haremos clic en program, aqui grabá el micro.
En el grabador se encenderá el segundo led, si todo funciona correctamente, ese led se apagará y en la pantalla verémos que el programa se ha grabado correctamente.
lunes, 20 de junio de 2011
jueves, 9 de junio de 2011
Microcontroladores: Programación II
Esta entrada es la continuacion de Microcontroladores: Programación I.
En esta entrada explicaremos las caracteristicas basicas y los procediietos y algunas instrucciones..
La primera parte debemos poner una descipcion de lo que sera el programa.Todas las descripciones empiezan y terminan con";".
La primera parte se llama Header, aqui pondremos el nombre de programa, la fecha, la version de programa, la compañia, etc.:
Ej:
Filename: led.asm
; Date: 9\6\11
; File Version: 0.1
;
; Author: GDD
Company: CUBA
Files Required: P16F684.INC este archivo relaciona nombres fantasia con posciones de memoria ya est
ablecidas.
de
__CONFIG: Es un registrode configuracion especial, hace que el micro funcione de tal manerau
Luego de config
_CP_OFF & _WDT_OFF & PWRTE_ON & RC_OSC
CP: Code Protection, proteje el codigo contra lecturas indeseables (cp = 0: se puede leer perfectamente, cp=1 el micro no se puede leer)
WDT: Watch Dog Timer: Si en un tiempo determinado no realiza una instruccion muy precisa se auto-resetea.
B
PWRTE: Poer up timer: tiempo que sorroe toma el micro para iniciar la apliacacion (72mS)
RC_PSC: Elegimos el cloc de micro
VARIABLE DEFINITIONS
En este sector se definen las variables, la forma mas ordenada es mediante la instruccion CBLOCK, aqui pondremos en que direccion empieza a guardar variables en la memoria GPR
Ej:
CBLOCK 0X0C
w_temp
status_tem
ENDC
PROGRAMA
Para empezar el programa usamos la instruccion ORG
ORG 0X000
CLRW ; Borro el registro W
movf status_temp,w ; (lleva esa variable al registro W)
movwf Status ; (deja el registro que estba en W en el STATUS)
END ; (Termina el programa)
Aclaracion: Este programa es solo una muestra para explicar, no realiza ninuguna accion siginificativa, mas adelante en blog publicaremos nuevos programas mas complejos.
En esta entrada explicaremos las caracteristicas basicas y los procediietos y algunas instrucciones..
La primera parte debemos poner una descipcion de lo que sera el programa.Todas las descripciones empiezan y terminan con";".
La primera parte se llama Header, aqui pondremos el nombre de programa, la fecha, la version de programa, la compañia, etc.:
Ej:
Filename: led.asm
; Date: 9\6\11
; File Version: 0.1
;
; Author: GDD
Company: CUBA
Files Required: P16F684.INC este archivo relaciona nombres fantasia con posciones de memoria ya est
ablecidas.
de
__CONFIG: Es un registrode configuracion especial, hace que el micro funcione de tal manerau
Luego de config
_CP_OFF & _WDT_OFF & PWRTE_ON & RC_OSC
CP: Code Protection, proteje el codigo contra lecturas indeseables (cp = 0: se puede leer perfectamente, cp=1 el micro no se puede leer)
WDT: Watch Dog Timer: Si en un tiempo determinado no realiza una instruccion muy precisa se auto-resetea.
B
PWRTE: Poer up timer: tiempo que sorroe toma el micro para iniciar la apliacacion (72mS)
RC_PSC: Elegimos el cloc de micro
VARIABLE DEFINITIONS
En este sector se definen las variables, la forma mas ordenada es mediante la instruccion CBLOCK, aqui pondremos en que direccion empieza a guardar variables en la memoria GPR
Ej:
CBLOCK 0X0C
w_temp
status_tem
ENDC
PROGRAMA
Para empezar el programa usamos la instruccion ORG
ORG 0X000
CLRW ; Borro el registro W
movf status_temp,w ; (lleva esa variable al registro W)
movwf Status ; (deja el registro que estba en W en el STATUS)
END ; (Termina el programa)
Aclaracion: Este programa es solo una muestra para explicar, no realiza ninuguna accion siginificativa, mas adelante en blog publicaremos nuevos programas mas complejos.
Microcontroladores: Programación I
Para la programación de los pic se utiliza el software MPLAB de Microchip, se puede descargar desde su web: http://www.microchip.com , deberemos instalarlo en nuestra PC.
Vamos a comenzar nuestro proyecto, teniendo como base una plantilla (Template) que Microchip nos brinda. Para ello iremos a Project -Project Wizard
Ahora nos abrira un asisente, comenzado por la pantalla de bienvenida que deberemos seguir las instrucciones, haciendo clic en siguiente:
Ahora debemos seleccionar el microcontrolador a utilizar (ej: pic16F84A)
Ahora elegiremos con que programa interno vamos a utililizar para ensamblarm en este caso vamos autilizar el assambler dentro del MPASM ToolSuite
Luego elegirmeos la plantilla que vamos a usar,la plantilla es una base que nos da Microchip para empezar a programar, podemos eencontrar la misma dentro de la carpeta C:\Archivos de programa\Microchip\MPASM Suite\Template\Object y seleccionamos nuestro pic. Hacemos clic en Add y aparecera en la ventada de la derecha con una A (A de ADD, que significa agregar), pero nosotros no quereremos agregar sino copiar,entonces tendremos que hacer clic en la A, hasta llegar a la C (Copy)
Ahora debemos elegir donde guardara los archivos que genere. Ej:
C:\LEDII\LEDII
Es conveniente nombrar la carpeta y el archivo con el mismo nombre y directo en la raiz del disco.
Ahora cuando hagamos clic en siguiente nos dara un breve resumen del proyecto hasta ahora.
Nos abrira una nueva ventana con carpetas, con una carpeta abierta,(Source) con un archivo con extension .ASM, le haremos doble clic y ya podemos empezar a programar.
Las caracteristicas basicas de programacion estaran en la entrada Microcontroladores: Programacion II
Vamos a comenzar nuestro proyecto, teniendo como base una plantilla (Template) que Microchip nos brinda. Para ello iremos a Project -Project Wizard
Ahora nos abrira un asisente, comenzado por la pantalla de bienvenida que deberemos seguir las instrucciones, haciendo clic en siguiente:
Ahora debemos seleccionar el microcontrolador a utilizar (ej: pic16F84A)
Ahora elegiremos con que programa interno vamos a utililizar para ensamblarm en este caso vamos autilizar el assambler dentro del MPASM ToolSuite
Luego elegirmeos la plantilla que vamos a usar,la plantilla es una base que nos da Microchip para empezar a programar, podemos eencontrar la misma dentro de la carpeta C:\Archivos de programa\Microchip\MPASM Suite\Template\Object y seleccionamos nuestro pic. Hacemos clic en Add y aparecera en la ventada de la derecha con una A (A de ADD, que significa agregar), pero nosotros no quereremos agregar sino copiar,entonces tendremos que hacer clic en la A, hasta llegar a la C (Copy)
Ahora debemos elegir donde guardara los archivos que genere. Ej:
C:\LEDII\LEDII
Es conveniente nombrar la carpeta y el archivo con el mismo nombre y directo en la raiz del disco.
Ahora cuando hagamos clic en siguiente nos dara un breve resumen del proyecto hasta ahora.
Nos abrira una nueva ventana con carpetas, con una carpeta abierta,(Source) con un archivo con extension .ASM, le haremos doble clic y ya podemos empezar a programar.
Las caracteristicas basicas de programacion estaran en la entrada Microcontroladores: Programacion II
Microcontroladores: Memorias
La arquitectura interna de Pic se divide en las siguientes partes, que seran explicadas en detalle en esta entrada
Area EEPROM : Que se compone de 68 registros x 8 bits
Memoria de DATOS
Como habiamos esxplicado anteriormente la memoria de Datos se divide en 2 partes, la memoria RAM y la memoria EEPROM;:
La memoria RAM es una memoria volatil, que guarda variables, datos, etc. como son variables van variando por lo que tiene que escribirse y rescribirse muchas veces por lo tanto los datos tienen no tienen que ser almacenados, por eso lo de volatil Al ser Volatil al sacarle la energia, los datos en ella se borraran. Los bytes de la RAM, se guardan en direcciones, como por ejemplo 03h (STATUS)
La RAM se divide en 2 partes:
Memoria de Programa
En la memoria de programa se almacenan las instrucciones del programa, estos datos tienen que estar guardados SIEMPRE, por eso, cuando se desconecta la energia los datos se mantienen. Para grabar un microcontrolador se debe tener una computadora con conexion DB9 (SERIE), un equipo llamado programador y un software llamado MPLAB (Microchip - PIC), la programacion del micro esta explicada detalladamente dentro de la etiqueta "Microcontroladores" la entrada Microcontroladores: Programación.
La utilizacion de la memoria de programa o memoria ROM FLASH, es comoda y facil de usar.
- Memoria de Programa (ROM): Donde se guardan todas los comandos del microcontrolador.
- Memoria de datos: Alli se hallan registros de variables que el microcontrolador necesite crear para funcionar. Se divide en 2 partes
Area EEPROM : Que se compone de 68 registros x 8 bits
- ALU y Registro de Trabajo W: En este sector se hacen las operaciones matematicas. Que puede ser entre cualquier registro, memoria, puerto, o el codigo de instrucion
- 2 puertos para la comunicacion con el mundo exterior ó perifericos son: Port A de 5 bits (Pines Desde RA0 hasta RA4) Y el Port B de 8 bits (Puertos desde RB0 hasta RB7)
- Contador de Programa (Counter Timer) contiene 13 bits, basicamente es el encargado de direccionar las instrucciones de la memoria de programa.
Memoria de DATOS
Como habiamos esxplicado anteriormente la memoria de Datos se divide en 2 partes, la memoria RAM y la memoria EEPROM;:
La memoria RAM es una memoria volatil, que guarda variables, datos, etc. como son variables van variando por lo que tiene que escribirse y rescribirse muchas veces por lo tanto los datos tienen no tienen que ser almacenados, por eso lo de volatil Al ser Volatil al sacarle la energia, los datos en ella se borraran. Los bytes de la RAM, se guardan en direcciones, como por ejemplo 03h (STATUS)
La RAM se divide en 2 partes:
- GPR: General Purpose Register ó Registros de proposito general: Contiene 68 posisiones de memoria (Bytes) para guardar variables. Son registros de uso general para guardar datos temporales del programa.
- SFR: Special Fuctions register): Son los primeros registros, cada uno tiene un propoito especial
- Los registros del SFR estan entre las direcciones 00h y 0Bh del banco 0 y entre las direcciones 80h y 8Bh. Algunos registros SFR se ecuentran duplicados en ambos bancos, para acelerar los tiempos de busqueda. como por ejemplo el registro PCL.
Memoria de Programa
En la memoria de programa se almacenan las instrucciones del programa, estos datos tienen que estar guardados SIEMPRE, por eso, cuando se desconecta la energia los datos se mantienen. Para grabar un microcontrolador se debe tener una computadora con conexion DB9 (SERIE), un equipo llamado programador y un software llamado MPLAB (Microchip - PIC), la programacion del micro esta explicada detalladamente dentro de la etiqueta "Microcontroladores" la entrada Microcontroladores: Programación.
La utilizacion de la memoria de programa o memoria ROM FLASH, es comoda y facil de usar.
sábado, 4 de junio de 2011
Actividad 3 Caso B
En esta entrada vamos a analizar el circuito Monoestable, este circuito que realiza una función secuencial consistente en que al recibir una excitación exterior, cambia de estado y se mantiene en él durante un periodo que viene determinado por una constante de tiempo. Transcurrido dicho período, la salida del monoestable vuelve a su estado original.
Para trabajar analizandolo vamos a usar un circuito con un integrado 555 que es el siguiente:
podemos armar el circuito virtualmente y hacer las mediciones podemos usar el programa Proteus en su version 7. Podemos ver que al apretar el pulsador el led se encendera por una cantidad de tiempo, esa cantidad la podemos medir con el contador. Luego el Led se apaga, corresponde con el circuito monoestable explicado arriba.
Podemos medir con un Osciloscopio virtual que cuenta el proteus y veremos que los estados tension
0: 0,175V
1: 5,1V
Y corroborar los tiempos con el contador y el osciloscopio virtual. El tiempo es 0,947344 Seg.
Tambien podemos cambiar el valor de tiempo mediante las formulas que aperecen en las hojas de datos del 555:
Para Monoestable:
T = 1,1 * R *C.
T= Tiempo
R = R1
C = C1
Con esta formula podemos ahcerlo para 5 seg, y valores de resistencias y capacitores comerciales para armar el circuito.
Podemos usar para 5 Segundos un capacitor de 4.7 uF y una resistencia de 1M.
Simulamos en Proteus:
Las mediciones correspondientes para este circuito fueron:
Para trabajar analizandolo vamos a usar un circuito con un integrado 555 que es el siguiente:
podemos armar el circuito virtualmente y hacer las mediciones podemos usar el programa Proteus en su version 7. Podemos ver que al apretar el pulsador el led se encendera por una cantidad de tiempo, esa cantidad la podemos medir con el contador. Luego el Led se apaga, corresponde con el circuito monoestable explicado arriba.
Podemos medir con un Osciloscopio virtual que cuenta el proteus y veremos que los estados tension
0: 0,175V
1: 5,1V
Y corroborar los tiempos con el contador y el osciloscopio virtual. El tiempo es 0,947344 Seg.
Tambien podemos cambiar el valor de tiempo mediante las formulas que aperecen en las hojas de datos del 555:
Para Monoestable:
T = 1,1 * R *C.
T= Tiempo
R = R1
C = C1
Con esta formula podemos ahcerlo para 5 seg, y valores de resistencias y capacitores comerciales para armar el circuito.
Podemos usar para 5 Segundos un capacitor de 4.7 uF y una resistencia de 1M.
Simulamos en Proteus:
Las mediciones correspondientes para este circuito fueron:
Osciloscopio virtual:
Tensión en osciloscopio digital:
Tiempo en osciloscopio digital:
La causa del error en el tiempo de estado en alto en la práctica se debe a que el capacitor no era de 4.7u, sino que 5uF. A continuación se mostrarán las medidas efectuadas con el puente RLC digital de banco:
¿Que pasa si volvemos apretamos mas de una vez el pulsador?
El contador contara desde el ultimo clic pero se parara respetando el primero.
¿Que pasa si mantenemos apretado por mas tiempo en que esta la señal en alto?
El contador deja de contar en el instante en que se suelta el pulsador.
Tambien podemos hacer en protel:
El contador contara desde el ultimo clic pero se parara respetando el primero.
¿Que pasa si mantenemos apretado por mas tiempo en que esta la señal en alto?
El contador deja de contar en el instante en que se suelta el pulsador.
Tambien podemos hacer en protel:
Suscribirse a:
Entradas (Atom)