El microcontrolador pic

Preview:

DESCRIPTION

Introducción al microControlador PIC

Citation preview

Sist. Comunicación SCADAIng. Fernando Monrroy

UAGRM, agosto 2010

Características generales de los MCU

Recursos comunes en microcontroladores:• Procesador o CPU• Memoria:• Memoria no volátil (ROM, Flash, EEPROM…) para almacenamiento del programa.• Memoria volátil (RAM) para almacenamiento de los datos.• No existen sistemas de almacenamiento masivo

Características generales de los MCU

• Reloj principal• Los mC suelen disponer circuitos osciladores, que necesitan redes RC o cristales de cuarzo para su funcionamiento

Características generales de los MCU

• Perro guardián (“watchdog”)Contador que resetea al mC cada vez que se desborda.• Evita fallos de funcionamiento• Es necesario inicializarlo antes de su desbordamiento

Características generales de los MCU

• Protecciones ante fallos de alimentación (“brownout”)• Circuitos que resetean al mC cuando la tensión de alimentación se ubica por debajo de un valor crítico.

Características generales de los MCU

Periféricos:• Puertos E/S digital (DIO).• Temporizadores.• Convertidores A/D y D/A.• Comparadores analógicos• Moduladores de anchura de impulso (PWM)• Puertos de comunicación:

• USART• I2C

Características generales de los PIC

Arquitectura Harvard:• Dos buses de direcciones,

•Memoria de programa •Memoria de datos.

• Permite acceso simultaneo a memoriaSegmentación de instrucciones:• Ejecuta instrucciones en un solo ciclo Formato de longitud constante:• Simplifica la realización de ensambladores

y compiladores

Características generales de los PIC

RISC (“Computadora con Conjunto de Instrucciones Reducido”)Instrucciones ortogonales:• Todas las instrucciones pueden manejar cualquier elemento de la arquitecturaArquitectura basada en registros

Familia PIC16xxx

92 modelos; 14 a 64 pines•frecuencia de reloj 40 MHz max.• Hasta 8 Kpalabras de programa• Hasta 368 bytes de datos (RAM)• E/S digitales, temporizadores, CD/A de hasta 12 bits, PWM, comparadores analógicos, comunicación serie, memoria de datos EEPROM...• Hasta 1 vector de interrupciones• 33 ó 35 instrucciones

Juego de instrucciones

Se pueden dividir en cuatro grupos:• Sobre registro orientadas a bytes.• Sobre registro orientadas a bits.• Operaciones con literales.• Instrucciones de control.Todas tienen un ancho de 14 bits.Entre unas y otras varían sus campos

Juego de instrucciones

Instrucciones orientadas a bytes.

Juego de instrucciones

Instrucciones orientadas a bits.

Juego de instrucciones

Orientación a literales y de control.

• Son los periféricos más sencillos. Permiten monitorizar y actuar sobre dispositivos digitales.• Tienen multiplexadas otras funciones alternativas asociadas a otros periféricos de los PIC.• En total existen 7 puertos de E/S, aunque no aparecen todos en todos los modelos.• Es necesario consultar las características eléctricas de los puertos de E/S para verificar las tensiones y corrientes máximas a través de los puertos y de cada una de las patillas

Puertos de E/S

Puerto A

• Puerto de E/S de hasta 6 pines (en funcióndel modelo). De RA5:RA0• Las patillas RA5 y RA3:RA0: Pueden actuar como E/S digital compatible TTL y CMOS.• Como entrada para el CA/D (caso en el queexista).

Puerto B

• Está formada por 8 pines de E/S configurado a través de TRISB.• Se puede configurar una carga activa implementada con un CMOS:• Se activa siempre que:• El pin esté trabajando como entrada.• El flag NOT_RBPU del registro de opciones, bit 7, esté a 0.• Cuando se configura la carga activa, ésta actúa en todos los pines configurados como entrada.• Se desactiva siempre que se trabaje como salida o con un POR.

Temporizador TMR0

• Contador/Temporizador ascendente de 8 bits.• Puede leerse y escribirse en cualquier momento.• Dispone de un predivisor de frecuencia programable de 8 bits.• La fuente de reloj puede ser interna o externa.• Puede generarse una interrupción de overflow (0xFF a 0x00).• Si el reloj es externo, el flanco de incremento deTMR0 es seleccionable.

Temporizador TMR0

• Los bits de configuración son:• T0CS (OPTION_REG<5>): Selección de fuente de reloj.

„1‟, transición por RA4/T0CKI.„0‟, transición por Tosc.

• T0SE (OPTION_REG<4>): Selección para flanco por RA4/T0CKI (Siempre que T0CS = 1).

„1‟, incremento con flanco descendente.„0‟, incremento con flanco ascendente.

• PSA (OPTION_REG<3>): Asignación del predivisor.„1‟, predivisor asignado a WDT.„0‟, predivisor asignado a TMR0.

• PS2:PS0 (OPTION_REG<2:0>): Razón de división.

Temporizador TMR0

• Cuando TMR0 actúa como temporizador (T0CS=0), se produce un incremento del temporizador por cada ciclo de instrucción (Tcy) siempre que la división de frecuencia sea 1:1.• Cuando se realiza una escritura (movwf TMR0), elincremento se inhibe durante los dos siguientesciclos de instrucción.• En el caso de que el divisor de frecuencias estéhabilitado, al escribir algún valor en TMR0, se ponea „0‟. Debido a esto el incremento de TMR0 se inibedurante dos ciclos más el tiempo definido en elpreescáler.

Temporizador TMR0

• Si TMR0 está configurado como contador(T0CS=1), se produce un incremento por cadaflanco de subida o bajada (en función de T0SE) enRA4/T0CKI.• La señal de salida del divisor de frecuencia sesincroniza con la señal de reloj interna. Ésta serealiza muestreando la señal en Q2 y Q4.• Esto obliga a que la señal tenga un ancho mínimopara que pueda ser detectada.• Debido a la sincronización existe un retardo desde que aparece la señal en RA4/T0CKI hasta que se incrementa TMR0.

Temporizador TMR0

• Las interrupciones en TMR0 se producen enel momento del desbordamiento (0xFF → 0x00).• Los flag asociados son:

T0IE (INTCON<5>).T0IF (INTCON<2>).