El PIC se puede encontrar en diferentes encapsulados, los cuales
son: PDIP, TQFP y QFN
PDIP - 40 Pines
TQFP - 44 Pines
QFN - 44 Pines
Caracteristicas Generales
• Microcontrolador con módulo USB 2.0. Soporta Low speed
1.5Mb/s y full speed 12Mb/s. • 1kB de memoria de doble acceso
vía USB • 35 pines I/O disponibles • Memoria de programa flash
de 32 kB • RAM de 2048 Bytes • EEPROM de datos de 256 Bytes
• Velocidad de la CPU 12 MIPS • Oscilador externo de dos modos
hasta 48 MHz • Oscilador interno selecionable entre 8 frecuencias
desde 31kHz hasta 8MHz • Oscilador secundario con Timer 1 de
hasta 32kHz • Opciones de oscilador dual permiten que la
velocidad de la CPU y del módulo USB sean diferentes • ADC de 10
bits y 13 canales • Tecnología nanoWatt que brinda características
y funciones de bajo consumo y ahorro de energía • Voltaje de
operación 4.2V a 5.5V • 4 Timer. Uno de 8 bits y 3 de 16 bits
• 2 módulos de captura/comparación/PWM • EUSART, SPP, SPI, I²C.
• 20 fuentes de interrupciones (3 externas) • Resistencias de
pull-ups en el puerto B programables • Función del pin MCLR
opcional • Brown-out Reset de valor programable • Power-on Reset
• Power-up Timer y Oscillator Start-up Timer • Soporta 100,000
ciclos de borrado/escritura en memoria flash • Soporta 1,000,000
ciclos de borrado/escritura en memoria EEPROM • Retención de
datos mayor a 40 años • Protección de código y datos programable
Arquitectura
El PIC18F4550 pertenece a la familia 18X de
Microchip es de 8 bits y funciona mediante
una arquitectura Harvard, es decir cuenta con
un bus de datos y un bus de instrucciones por
separado.
Funciones
WatchDog Timer
Producie un reset del microcontrolador PIC
cada cierto período de tiempo con lo cual se
reinicia la ejecución del programa, con la
finalidad de evitar que el dispositivo entre en
un lazo infinito. Usa un oscilador libre RC en el
chip con un período del timeout programable
entre 18ms y 3.0s
Clock
El PIC 18F4550 cuenta con 12 modos diferentes de
configuración en su Reloj. Los cuales son: XT, XTPLL,
HS, HSPLL, EC ,ECIO, ECPLL, ECPIO, INTHS, INTXT,
INTIO, INTCKO. Las distintas configuraciones pueden
mediante componentes internos o externo.
XT
Cristal u Oscilador
XTPLL
Cristal u Oscialador con PLL Activado
HS
Cristal u Oscilador de Alta Velocidad
HSPLL
Cristal u Oscilador de Alta Velocidad con PLL Activado
EC
Señal Externa con frecuencia/4 en RA6
ECIO
Señal Externa con pin de Entrada/Salida en RA6
ECPLL
Señal Externa PLL Activado con frecuencia/4 en RA6
ECPIO
Señal Externa PLL Activado con pin de Entrada/Salida en RA6
INTHS
Oscilador Interno para el PIC. Oscilador tipo HS para el USB
INTXT
Oscilador Interno para el PIC. Oscilador tipo XT para el USB
INTIO
Oscilador Interno para el PIC. Oscilador tipo EC para el USB
INTCKO
Oscilador Interno para el PIC. Oscilador tipo EC para el USB con frecuencia/4 en RA6
Ports
Este Microprocesador cuenta con 35 pines configurables como de
Entradas/Salidas. De estos 13 son configurables como Análogos mediantel
el registro ADCON1. Están divididos en 5 Puertos (A,B,C,D,E) de 8 bits cada
uno, sin embargo no todos tiene todos sus bits implementados
Funciones Adicionales
• Entrada de voltajes de referencia para ADC. • Entradas y
salidas de periféricos (UART, USB, SPI, I 2C, etc.). • Entradas
de contadores de Timers. • Entradas de voltaje analógico. •
Salida de oscilador • Entrada de voltaje y datos de
programación.
Manejo de Puertos
Cada puerto tiene 3 registros asociados: TRISx
PORTx LATx
TRISx
El registro TRISx se usa para configurar el sentido de
datos del puerto, puede ser Entrada (con “1”) o Salida
(con “0”).
PORTx
Por medio del registro PORTx se accede a los datos de los
pines. Cuando se escribe en PORTx, se escribe en el latch del
puerto. Cuando se lee el PORTx, se lee el valor directamente
del pin.
LATx
Este registro está directamente conectado con el latch
del puerto(Normalmente escritura). Cuando se escribe
en el LATx se escribe en el latch del puerto y cuando se
lee el LATx se lee del latch del puerto.
ADC
Este dispositivo cuenta con un Convertidor Análogo - Digital y 13 canales para su uso(Configurables en el registos
ADCON0). Tiene una resolución de 10 bits y es posible indicarle al PIC voltajes de referencia VREF(-) y VREF(+). Cabe
resaltar que es necesario indicar un valor de reloj especial para la adquisición del ADC, esto en función del tiempo de
carga interno, tiempo interno de amplificación y un coeficiente de temperatura.
ADRESH Y ADRESL
Son los registros en los cuales se guarda el numero resultado de la
conversión. Es posible alinear los resultado a la derecha o a la
izquierda. Configuración realizada en el ADCON2
Valor de Bits - Voltaje
Tomando como referencia valores de 0 a 5v y
sabiendo que se dividen en 10 bits (1024). cada bit
valdria en voltaje aproximadamente 5mV (5/1024)
Funciones
Timer
El PIC cuenta con 4 timers internos
(TIMER0,TIMER1,TIMER2, TIMER3), de los cuales
uno es de 8 bits(TIMER0) y el resto son de 16
bits. Estos se puede definir como contadores
que estan conectados al reloj del sistema. Por
defecto la señal que van a contabilizar los timers
corresponde a la frecuencia del oscilador
dividida por cuatro. Las configuraciones
generales del TIMER se realizan mediante el
registro T0CON.
TMR0L y TMR0H
Registros que permiten acceder (lectura/escritura) al
valor del contador (TMR0L para el byte menos
significativo y TMR0H para el más significativo).
INTERRUPCIONES
Es posible realizar interrupciones en el TIMER0,
utilizando el registro INTCON
Interrups
Son llamadas a funciones disparadas por eventos
del Hardware, a dichas funciones no se les puede
pasar parámetros ni tampoco pueden devolver
parámetros. Existen dos tipos, Alta y Baja prioridad.
Para habilitarlo se utiliza el registro INTCON.
Fuentes de Interrupiones
• Externas (INT0-INT3) • PORTB Interrupción por cambio (RB4-RB7) • Timer Rollover/Overflow
• Cambio en la salida del comparador • Final de Conversión A/D • Eventos en el canal de
comunicaciones • Eventos en otros periféricos
PWM
Modulación por ancho de pulso, en esta forma de
trabajo del módulo CCP1 o CCP2, lo que se
logra con el uso del módulo CCPx en modo PWM es
obtener por el pin CCPx una señal periódica, este
pin debe ser configurado como una salida digital
mediante el correspondiente TRISC, con parte de la
señal obtenida en alto y parte de la señal en bajo.
en la señal PWM el tiempo que la señal está en alto
Talto se le conoce como ancho de pulso y si está
expresado en porcentaje como ciclo de trabajo
Variables Importantes
• La frecuencia del oscilador principal Fosc • El
pre-escalador (PRE) o divisor previo del timer
TMR2 • El registro PR2 (0-255) asociado al timer
TMR2
Funcionamiento
El valor del registro CCPxH se compara permanentemente
con el valor que va tomando el registro TMR2 y cuando se
hacen iguales el pin CCPx se pondrá a 0, de esta manera se
fija el ancho de pulso, y como l cual el registro TMR2 se hará
igual a 0 y el ciclo anterior volverá a repel TMR2 seguirá
aumentando de valor hasta que este se haga igual
nuevamente al valor almacenado en el registro PR2,
momento en eetirse.
EUSART
Enhanced Universal Asynchronous Receiver Transceiver es un periférico
que maneja comunicaciones de entrada/salida de tipo serial.
Recordemos que la comunicación serial es una manera de comunica dos
dispositivos utilizando únicamente dos cables.
Configuraciones
Full Duplex
Útil para las comunicaciones con sistemas periféricos,
tales como terminales y ordenadores personales.
Half Duplex
Está destinado a las comunicaciones con dispositivos periféricos, tales
como ADC o DAC, circuitos integrados, memorias EEPROM seriales u
otros microcontroladores.
TXSTA RCSTA BAUDCON
• Transmit Status and Control (TXSTA) - Transmisión de Datos • Receive Status and Control (RCSTA) -
Recepción de Datos • Baud Rate Control (BAUDCON) – Timer controlador de 8 o 16 bits