Sei sulla pagina 1di 13

ndice.

Familia
PIC18.Pag. 3
Organizacin de la memoria del PIC.
Pag. 3
E/S digitales..
MICROCONTROLADORES
Pag. 5
Puertos
Pag. 6

Analgicos..
6EM

Timers
Pag. 8
Interrupciones.
Pag. 9
Programacin
Pag. 10

IN
V
E
S
TI
G
A
CI

ICP.

1. Familia PIC18
Caractersticas fundamentales:
-Arquitectura RISC avanzada Harvard: 16-bit con 8-bit de datos.
-77 instrucciones.
-Desde 18 a 80 pines.
-Hasta 64K bytes de programa (hasta 2 Mbytes en ROM).
-Multiplicador Hardware 8x8.
-Hasta 3968 bytes de RAM y 1KBytes de EEPROM.
-Frecuencia mxima de reloj 40Mhz. Hasta 10 MIPS.
-Pila de 32 niveles.
-Mltiples fuentes de interrupcin.
-Perifricos de comunicacin avanzados (CAN y USB).

2. Organizacin de la memoria del PIC


Hay tres tipos de memoria en los PIC18:

Memoria de programa

RAM de datos

EEPROM de datos

Como dispositivos de arquitectura Harvard, los buses la memoria de


datos y del programa estn separados; esto permite el acceso a la
vez en las dos memorias. La EEPROM de datos, en la prctica, se
puede utilizar como un dispositivo perifrico, puesto que se maneja a
travs de un sistema de registros de control.
2.1. Memoria de programa
Los microcontroladores PIC18 implementan un contador de programa
de 21bits que es capaz de tratar 2Mb memoria de programa.
Accediendo a una localizacin en medio el lmite superior de la
memoria implementada fsicamente y los 2Mb direccionables se leer
todo 0 (una instruccin NOP).

Los PIC18F2455 y los PIC18F4455 cada uno tienen 24kb de memoria


flash y pueden almacenar hasta 12.288 instrucciones de palabra
nica. El PIC18F2550 y PIC18F4550 cada uno tienen 32kb de la
memoria flash y puede almacenar hasta 16.384 instrucciones de
palabra nica. Los dispositivos PIC18 tienen dos vectores de
interrupcin. En un reset, la direccin del vector est en 0000h y los
vectores de interrupcin estn en las direcciones 0008h y 0018h.

2.2. Memoria RAM:


Los bancos 4 a 7 de la memoria de datos estn mapeados a un puerto
dual especial de RAM. Cuando el mdulo USB est desactivado, los
GPRs en estos bancos se utilizan como cualquier otro GPR en la
memoria de datos.
Cuando se permite el mdulo USB, la memoria en stos bancos se
asigna como RAM de almacenamiento intermedio para las
operaciones del USB. Esta rea se comparte entre el ncleo del
microcontrolador y el motor de la interfaz en serie (SIE) del USB y se
utiliza para transferir datos directamente entre los dos.

En teora, se pueden utilizar las reas de la RAM del USB que no se


asignan como Buffers del USB para almacenar variables. En la
prctica, la naturaleza dinmica de la asignacin del almacenamiento
intermedio hace que sea peligroso. Adems, el banco 4 se utiliza para
controlar el almacenamiento intermedio del USB cuando se permite el
mdulo y no se debe utilizar para otros propsitos durante ese
tiempo.

2.3. Memoria EEPROM:


La EEPROM es una matriz de memoria permanente, separada de la
RAM de datos y de la memoria de programa, se utiliza en
almacenamientos de larga duracin de los datos del programa. No
est mapeada directamente en los registros de archivo o en la
memoria del programa, sino que se trata indirectamente a travs de
los registros especiales de la funcin (SFRs). La EEPROM es legible y
escribible durante la operacin normal sobre la gama entera de VDD.
Cuatro SFRs se utilizan para leer y para escribir los datos en la
EEPROM as como la memoria del programa. Son:

EECON1

EECON2

EEDATA

EEADR

Los datos EEPROM permiten la lectura y escritura de bytes. Cuando se


conecta al bloque de la memoria de datos, el EEDATA sostiene los
8bits de datos para la lectura/escritura y el registro EEADR lleva a
cabo el direccionamiento de la localizacin de la EEPROM.
La memoria de datos EEPROM se clasifica como muy resistente a los
ciclos de escritura/borrado. Un byte escribe y automticamente borra
la localizacin y escribe los datos nuevos (borrar-antes-escribir). El
tiempo de escritura se controla por un contador de tiempo en el chip;
variar con la tensin y la temperatura as como de chip a chip.

3. E/S digitales.
Podemos disponer de hasta 35 lneas de E/S digital. Para poder
configurar un puerto se utiliza el registro TRISX, donde X puede ser
uno de los puertos A, B, C, D o E del pic. Cada bit con un 1 del
registro configura el pin como entrada y un 0 como salida.
Los puertos A, B y E tienen asignados como funcin secundaria las
entradas analgicas AN0..AN12. Para poder utilizar estos puertos
como e/s digital primero hay que configurar el registro ADCON1.
ADCON1=0x0F; // Todos los pines e/s digital.
Ej1: Configurar RD0..RD3 como entradas y RD4..RD7 como salidas.
TRISD=0x0F; o bien TRISD=0b00001111;
Ej2: Configurar RB7 como salida y no modificar el resto de pines.
TRISB&=0x7F; o bien TRISB&=0b01111111;
Ej3: Configurar RA3 y RA4 como entradas sin modificar el resto.
TRISA|=0x03; o bien TRISA|=0b00000011;

4. Puertos Analgicos.

El mdulo conversor Analgico-Digital (ADC) del pic 18F4550 dispone


de 13 entradas y es capaz de medir la tensin analgica en cada una
de ellas y convertirla en un valor digital de 10bits. Los pines
susceptibles de ser configurados como entradas analgicas son:
-PORTA (5) => AN0:RA0, AN1:RA1, AN2:RA2, AN3:RA3, AN4:RA5
-PORTB (5) => AN8:RB2, AN9:RB3, AN10:RB1, AN11:RB4, AN12:RB0
-PORTE (3) => AN5:RE0, AN6:RE1, AN7:RE2
Los registros asociados al conversor ADC son:
-ADRESH: Contiene la parte alta de la conversin
-ADRESL: Contiene la parte baja de la conversin
-ADCON0: Registro de control 0 del ADC
-ADCON1: Registro de control 0 del ADC
-ADCON2: Registro de control 0 del ADC

5. Timers.

El PIC18F4550 posee cuatro temporizadores: TIMER0 a TIMER3, al


igual que los dems mdulos especiales, cada uno de los
temporizadores es controlado por un registro de configuracin.

Temporizador

Registro de control

TIMER0

T0CON

TIMER1

T1CON

TIMER2

T2CON

TIMER3

T3CON

El TIMER0 posee las siguientes caractersticas:


Modo de operacin de 8 y 16 bits: El modo de operacin de 8 y
16 bits determina la cantidad de conteos mxima que puede
realizar el timer. Si es de 8 bits contar hasta 255, si es de 16
bits hasta 65535.
Registros de control de lectura y escritura.
Prescaler dedicado de 8 bits: el timer incrementa el valor del
conteo cada Fosc / 4 pulsos de reloj. Para un microcontrolador
que opera a 20Mhz, significa que el incremento se realiza 5
millones de veces en un segundo. Esta cantidad puede ser
demasiado alta para ciertas aplicaciones en donde las bases de
tiempo son bastante grandes. Para solucionar este
inconveniente, se dispone del prescaler que es bsicamente un
divisor de frecuencia, la frecuencia se puede dividir entre: 2, 4,
8, 16, 32, 64, 128 y 256.
Fuente de reloj seleccionable (interna / externa).
Interrupcin por desbordamiento: cada vez que el valor del
conteo llega a su lmite se genera un desbordamiento
(overflow) que genera una interrupcin interna que activa el bit
TMR0IF del registro INTCON.

6. Interrupciones.

Temporizadores/Contadores (TMR0, TMR1, TMR2, TMR3): La


interrupcin se produce al rebosar y pasar por 0 los contadores
asociados.

Cambios en pines (INT0, INT1, INT2, RB): INTx: La interrupcin


se produce con un cambio en el nivel de los pines RB0, RB1 y RB2
respectivamente. Es posible establecer si la interrupcin se produce
en el flanco ascendente o descendente.
RB: se produce ante cualquier cambio en los pines RB4 a RB7. Al
contrario que las anteriores no es posible especificar un pin o una
transicin determinada.
Puerto serie (Rx,Tx): RX, interrupcin producida con la recepcin
de un carcter. TX, interrupcin de transmisin que nos avisa cuando
el buffer de transmisin est libre para mandar un nuevo carcter.
Conversor Analgico/Digital (AD): AD, nos avisa cuando se ha
completado una conversin Analgica-Digital.
Rutinas de servicio de interrupciones (ISRs): Como hemos
visto, para que una interrupcin se produzca, los siguientes bits
deben estar a 1:
-GIE -> Habilita todas las interrupciones
-PEIE -> Necesario (adems de GIE) para las interrupciones
perifricas.
-El bit IE (int enable) de la interrupcin deseada, habilitando dicha
interrupcin en particular.
-El bit IF (int flag) de la interrupcin, indicando que la condicin de la
interrupcin se ha producido.

7. Programacin ICP

Estos PIC se programan usando un protocolo serial propio. No es


posible conectarlos directamente a una interface "usual".
Afortunadamente, las exigencias de timing son poco estrictas. Esto da
la posibilidad de usar algunos pines de un puerto paralelo o serie de
la PC para generar la secuencia de programacin con un software
especializado.

Adems del voltaje operativo, se necesitan otras tres seales: el


voltaje de programacin Vpp (aprox. 13V), la seal de reloj (clk = PGC
= ICSPCLK) y la seal de datos (data = PGD = ICSPDAT).
Como la mayora de los PIC tolera un voltaje de programacin Vpp
algo menor que el de la especificacin, se pueden aprovechar los
niveles de seales de 12V del puerto serie de una PC Desktop y
"quemar" el PIC sin necesidad de una fuente de alimentacin
adicional.
La conversin de niveles puede ser lograda con pocos componentes.
Sin embargo, este circuito simple tiene sus limitaciones y permite slo
lectura y programacin del PIC. No hay garanta de que funcione con
todos los controladores, ya que cumple con las especificaciones de
programacin slo parcialmente.
(Circuito impreso lado pistas (invertido), lado componentes).
ICP ofrece la posibilidad de programar un microcontrolador en un
circuito de aplicacin. Esto es especialmente ventajoso en mbitos
educativos o de desarrollo, donde es necesario pasar repetidamente
de programar el PIC a testear el circuito, y viceversa. Adems de
ahorrar tiempo, ICP evita riesgos al mover el PIC entre zcalos
distintos
Para poder usar ICP, el circuito no debe distorsionar las seales de
programacin, ni las seales de programacin deberan afectar el
circuito.

10

Las condiciones principales para programar un PIC son:


1. El voltaje de programacin Vpp aplicado a /MCLR debe cambiar
entre cero y 13 voltios en pocos microsegundos.
2. Las seales de reloj y de datos deben alcanzar los niveles
extremos (Vdd o GND) en menos de un microsegundo.
3. Algunos PIC usan un pin (RB3 o RB4) como seal PGM para el
modo LVP (Low Voltage Programming). Este pin debe
permanecer en Low durante la programacin.
4. Algunos PIC requieren que el voltaje de programacin Vpp se
aplique antes del voltaje operativo Vdd. En este caso Vdd debe
ser controlado por el mdulo de programacin.
La manera ms simple de satisfacer las dos primeras condiciones es
no usar los pines correspondientes para el circuito de aplicacin. Si se
quiere usar el depurador,
esto
es
incluso
una
necesidad.
Recomendaciones:
Nunca
conectar
circuitos activos al
pin /MCLR.

Si /MCLR es usado
para resetear el PIC,
debera
conectarse
un
resistor
ms
grande
de
56k
entre /MCLR y Vdd.
Se puede combinar
con un capacitor pequeo de menos de 100 pF conectado
a GND (Vss).

No debe haber ninguna carga inductiva o capacitiva en los


pines de las seales de programacin. Se puede conectar un
circuito de alta impedancia (>10k).

Cuando el voltaje operativo Vdd est controlado por el mdulo


de programacin, eventualmente se debe aislar el pin Vdd del
PIC, del resto del circuito de aplicacin durante la programacin.
Este puede ser el caso, por ejemplo, cuando el circuito de
aplicacin:
Contiene su propia regulacin de voltaje para Vdd.

1
1

Posee un capacitor grande de desacople, que el mdulo


de programacin no puede cargar lo suficientemente
rpido,

Est diseado para un voltaje operativo de 3,3V y el PIC


necesita por lo menos 4,5V para la programacin.

En lugar de un aislamiento completo, posiblemente se pueda usar


tambin un diodo Schottky.
Para mantener el pin PGM en Low durante la programacin,
conectarlo con un resistor de aprox. 2,2k a 10k a GND.

Siempre activar el "Power-Up Timer" en la palabra de


configuracin, porque produce un retardo de ms de 40ms que
da suficiente tiempo para alcanzar un Vdd estable antes del
inicio de cualquier operacin en el PIC, y evita la ejecucin no
deseada del programa antes de entrar en el modo de
programacin.

Durante la programacin, los dems pines de puertos


permanecen en el modo de entrada, es decir, tienen una
impedancia muy alta. El circuito de aplicacin debe tolerar este
estado y permanecer lo ms inactivo posible. Para evitar
"efectos colaterales" no deseados se pueden poner resistores
a Vdd o GND.

Para poder re-programar un PIC con un Vdd inferior a 4,5V, la


memoria no debe estar protegida, ya que el "Chip Erase" que
es la nica manera de remover la proteccin de cdigo o datos
requiere de un Vdd superior a 4,5V en casi todos los PIC.

Referencias Bibliogrficas:
1.- PIC18F2455_2550_4455_4550 Data Sheet, 2009[ONLINE]:
http://www.microchip.com/wwwproducts/en/en010300.
2.- PIC Microcontroller: An Introduction to Software & Hardware
Interfacing, Huang, Editorial Thompson.
3.- 08 Temporizador de 16 bits del PIC18F4550, Guia para
Principiantes, 2016[ONLINE]
https://unasguiasmas.wordpress.com/2016/01/08/08-temporizador-de16-bits-del-pic18f4550/.
4.- Cmo programar un PIC 12Fxxx/16Fxxx, 2009[ONLINE]:

http://webs.uolsinectis.com.ar/nancy/pic/index.html.

Potrebbero piacerti anche