Los temas que se tratan en este blogger son los siguiente:
1. Generalidades del PIC 18f4550 y 18f2550
3. Descripción General de las Interrupciones
4. Manejo de las Interrupciones Externas (Ext0, Ext1 y Ext2)
5. Manejo de las Interrupciones por Timer0, Timer1, Timer2
6. Control DTMF
7. Conversor Análogo Digital
4. Manejo de las Interrupciones Externas (Ext0, Ext1 y Ext2)
5. Manejo de las Interrupciones por Timer0, Timer1, Timer2
6. Control DTMF
7. Conversor Análogo Digital
CARACTERÍSTICAS PRINCIPALES
Los PIC 18F2550 y 18F4550 poseen muy pocas diferencias entre si, de las más destacadas se aprecia el numero de puertos, en la tabla 1 se pueden observar las características más importantes.
Tabla 1 Características principales
CARACTERÍSTICA
|
18F2550
|
18F4550
|
Frecuencia de operación
|
Hasta 48 MHz
|
Hasta 48 MHz
|
Memoria de programa
|
32 Kbytes
|
32 Kbytes
|
Memoria RAM
|
2 Kbytes
|
2 Kbytes
|
Memoria EEPROM
|
256 bytes
|
256 bytes
|
Líneas de E/S
|
24
|
35
|
Fuentes de interrupción
|
19
|
20
|
Temporizadores
|
4
|
4
|
Conversor A/D 10 bits
|
10 canales
|
13 canales
|
Comparadores análogos
|
2
|
2
|
Comunicación serial
|
EAUSART, SPI, I2C
|
EAUSART, SPI, I2C
|
Comunicación USB
|
1
|
1
|
Módulos PWM
|
2
|
2
|
A continuacion se muestra en la figura 1 y figura 2 la distribución de los pines para el 18f2550 y 18f4550 respectivamente.
Figura 1: Distribución de pines del 18f2550 (Data sheet)
Figura 1: Distribución de pines del 18f4550 (Data sheet)
CONFIGURACIÓN DEL OSCILADOR PRINCIPAL
Los microcontroladores 18F2550 y 18F4550 poseen un sistema del oscilador principal bastante complejo (ver figura 3), debido al gran número de posibilidades que éste ofrece. Para la selección del cristal, hay que tener en cuenta que frecuencia de operación del microcontrolador se desea, la máxima permitida es de 48MHz.
Figura 3: Diagrama interno del reloj del microcontrolador(Data sheet)
Si se desea trabajar con una frecuencia de operación de 48MHz, no necesariamente se requiere utilizar un cristal de esta velocidad, puesto que internamente posee un PLL que aumenta de 4MHz a 96MHz, entonces se puede utilizar cualquier cristal que al ajustar los diferentes bloques, me proporcione una entrada de 4 MHz al PLL.
Por ejemplo se quiere una frecuencia de operación del microcontrolador a 48MHz, pero solo se tiene un cristal de 12 MHz, la configuración adecuada se muestra en la figura 4.
Figura 4: Configuración para obtener 48MHz a partir de un cristal de 12 MHz
Inicialmente se tiene un cristal de 12 MHz, el cual pasa por un mux, que es controlado por las entradas PLLDIV, estas entradas seleccionan la división por 3, obtenido a la salida del mux 4MHz que es la frecuencia necesaria para que el PLL proporcione 96 MHz, después del PLL pasa por otro mux que es controlado por las entradas CPUDIV, estas seleccionan la división por 2 obteniendo a la salida 48 MHz, que es la frecuencia que finalmente utilizara la CPU para su funcionamiento.
PALABRA DE CONFIGURACIÓN
La palabra de configuración define muchos parámetros necesarios para el buen funcionamiento del microcontrolador, entre ellos se encuentran los bloques del diagrama del reloj, perro guardián, programación a bajo voltaje, tipo de cristal, código de protección, entre otros. A continuación se define la palabra de configuración para utilizar un cristal de 12MHz.
#FUSES HSPLL, PLL3, CPUDIV1, MCLR, NOWDT, NOPROTECT, NOLVP, NODEBUG
En la tabla 2 se pueden apreciar las diferentes nomenclaturas que se utilizan para la selección del cristal, estas dependen de la velocidad de operación y del tipo de oscilador que se desea utilizar.
En la tabla 3 se explican cada una de las partes de la palabra de configuración, ésta puede tener más o menos elementos dependiendo de los módulos que se estén configurando, cuando el elemento posee un “NO” antes quiere decir que se está deshabilitado, esta palabra también es requerida por el software de programación (PICkit 2). En el caso de ser omitida la palabra de configuración el software envía un mensaje indicando dicha falencia.
Tabla 2: Nomenclatura para los diferentes tipos de cristales
TIPO
|
DESCRIPCIÓN
|
XT
|
Cristales con frecuencia no superior a 4MHz
|
XTPLL
|
Cristales con frecuencia no superior a 4MHz con PLL activo
|
HS
|
Cristales con frecuencia superior a 4MHz
|
HSPLL
|
Cristales con frecuencias superiores a 4MHz PLL activo
|
EC
|
Reloj externo con FOSC/4 de salida
|
ECIO
|
Reloj externo con I/O en RA6
|
ECPLL
|
Reloj externo con PLL activo
|
ECPIO
|
Reloj externo con PLL activo y con I/O en RA6
|
INTHS
|
Oscilador interno como fuente de reloj del microcontrolador, el oscilador HS utilizado como fuente de reloj del USB
|
INTXT
|
Oscilador interno como fuente de reloj del microcontrolador, el oscilador XT utilizado como fuente de reloj del USB
|
INTIO
|
Oscilador interno como fuente de reloj del microcontrolador, el oscilador EC utilizado como fuente de reloj del USB, con FOSC/4 de salida RA6
|
INTCKO
|
Oscilador interno como fuente de reloj del microcontrolador, el oscilador EC utilizado como fuente de reloj del USB, I/O en RA6
|
Tabla 3: Parámetros de la palabra de configuración
DIRECTIVA
|
DESCRIPCIÓN
|
HSPLL
|
HS puesto que se utiliza un cristal mayor de 4MHz, además se debe configurar el PLL para obtener los 48 MHz necesarios para el módulo USB.
|
MCLR
|
Significa que el pin 1 del microcontrolador cumplirá la función de Master Clear
|
NOWDT
|
Perro guardián deshabilitado.
|
NOPROTECT
|
Código de protección deshabilitado.
|
NOLVP
|
Programación a bajo voltaje deshabilitado.
|
NODEBUG
|
Depuración In-Circuit deshabilitado.
|
PLL3
|
Significa que el PLL prescaler divide en 3 la frecuencia del oscilador principal, esto debido al cristal de 12MHz que utilizamos
|
CPUDIV1
|
el PLL postscaler realiza la división en 2 de la frecuencia de salida del PLL de 96MHZ, con el fin de obtener 48MHz para la ejecución de nuestro programa.
|
ESTRUCTURA BÁSICA DE UN PROGRAMA
Para la elaboración de un programa en C se deben tener en cuenta algunas partes principales, como son las directivas, funciones, instrucciones y comentarios. En la figura 5 se puede observar las partes básicas de un programa.
Figura 5: Estructura básica de un programa
En primer lugar se debe incluir la librería del microcontrolador con que se desea trabajar, ésta carga todas las funciones y características correspondientes a dicho microcontrolador.
La palabra de configuración define varios parámetros necesarios para el buen funcionamiento del microcontrolador, como ya se explico anteriormente.
La función delay es ampliamente utilizada para proporcionar tiempos de retardo, ella debe configurarse a la velocidad con que se está ejecutando el programa del microcontrolador, además debe ser definida al inicio del programa debido a que esta función la utilizan muchas otras funciones.
Las variables denotan una posición de la memoria Ram del microcontrolador, estas se pueden declarar de tipo local y de tipo global, las de tipo local solo se pueden utilizar dentro de la función que se declararon y las de tipo global se pueden utilizar en cualquier función, estas últimas se declaran al inicio del programa como se muestra en la figura 3.
Es aconsejable definir todas las funciones antes de utilizarlas, con fin de evitar inconvenientes en el orden que se ponen las funciones dentro del programa, puesto que para se pueda llamar una función debe ir antes de donde se esta llamando.
DESCARGAR COMPILADOR CCS
DESCARGAR MANUAL CCS Y LIBRO PROGRAMACIÓN EN C