UNIVERSIDAD DE OVIEDO

Documentos relacionados
Características generales en el PIC16F877

EL módulo conversor A/D. (c) Domingo Llorente

PIC16F88. Características

TEMA 20 EL CONVERSOR A/D

Interrupciones Fuentes de Interrupciones para el PIC16F1787

PROFESOR: Práctica 9. Convertidor Analógico-Digital

Pines de entrada/salida (I/O) de propósito general. Mediante ellos, el micro PIC puede monitorizar y controlar otros dispositivos.

Taller de Firmware. Introducción al PIC16F877. Facultad de Ingeniería Instituto de Com putación

MÓDULO COMPARADOR Y REFERENCIA DE TENSIÓN PARA LA COMPARACIÓN

PROFESOR: Práctica 10. Modulación por ancho de pulso (PWM) Emplea un microcontrolador para procesamiento de señales analógicas y digitales

PIC16F882/883/884/886/ Funcionamiento de Timer1 6 EL MODULO TMR1 CON PUERTA DE CONTROL Selección de Fuente de reloj

PIC 16F87X TEMA LA MEMORIA DE DATOS MEMORIA RAM

PIC 18F45XX EL TIMER 0

LOS PIC16F88X: EEPROM de Usuario

Practica 03: El convertidor analógico digital

PIC 18F45XX CARACTERÍSTICAS GENERALES

Resumen. Palabras clave: PIC18F2550, temporizador, retardo.

MICROCONTROLADORES PIC

17 Con el chorro de agua pequeño, la cubeta se llena en 10 minutos

Maestría en Ciencias área Telemática

Convertidor Analógico Digital ADC

SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO

Proyecto final "Sistema de instrumentación virtual"

2.2-1 Visión Interna PIC16F873/876. SBM

Propuesta para la programación básica del Temporizador 1 del microcontrolador PIC18F2550 con el compilador SDCC

INTRODUCCIÓN. Comunicación Serial.

Temporizadores/Contadores

MANUAL DEL PIC 16F87X v 1.0

Tema 6: Microcontroladores

Práctica 5. Comunicación serie y entradas analógicas

Tema 14. Interrupciones. Las. C. F. G.S. D.P.E. Módulo de Proyectos 1

28/09/2012. Interfaz con Dispositivos de Salida. Interfaz con Dispositivos de Entrada. Port Mapped. Memory mapped. Interfaz con Dispositivos I/O

Cartilla para Microcontrolador PIC16F /40 Pin 8-Bit CMOS FLASH.

PIC 16F87X TRABAJO EXPLICACIÓN

Los PIC 16F88X:Módulo de comunicaciones serie síncrona: MSSP SPI

2.5-1 USART Introducción.

Curso sobre Microcontroladores Familia HC9S08 de Freescale

Resumen de CONVERSORES ANALÓGICO DIGITALES Y DIGITALES ANALÓGICOS

Clase 2: Programación

MICROPROCESADORES II LENGUAJE C EN LOS MICROCONTROLADORES PIC

TARJETA CONVERSORA ANALOGA/DIGITAL (A/D)

PIC16F882/883/884/886/887

CONVERSOR ANALÓGICO DIGITAL DEL PIC16F877 GRUPO A02-A03

El TIMER 0. (c) Domingo Llorente

PRÁCTICA 6: Gobierno del display 7 segmentos

Circuitos Sample & Hold y Conversores. Introducción

Diseño de Microcontroladores

3.6) Repite el problema 3.5 para una frecuencia de reloj de 100KHz.

Alarma 3G por teléfono móvil

Conversión analógico-digital

Tema 4 Microprocesador MCF5282: Hardware

LOS PIC16F88X: LOS PUERTOS DE E/S

SISTEMA DE ADQUISICION DE DATOS DE BAJO COSTO PARA INSTRUMENTACIÓN EN ENERGIA SOLAR

Temporizadores y contadores en tiempo real: El módulo Timer0 y el prescaler del PIC

Tema 1. Fundamentos del lenguaje ensamblador

CURSO BÁSICO MICROCONTROLADORES PIC

INTERRUPCIONES Y ENTRADA/SALIDA DE PULSOS EN EL CPM2A/CPM2C

ANEXOS DIAGRAMA DE FLUJO PRINCIPAL

CAPÍTULO 3. Las principales funciones del microcontrolador son: adquirir por medio del A/D y también, mostrar mensajes de pesos y voltaje en el LCD.

PRACTICA 9: Convertidores ADC (1)

Universidad de Alcalá

Características PIC16F84

Dentro del PIC16F877 se distinguen tres bloques de memoria.

5. SECCIÓN DEL MICROCONTROLADOR (PROGRAMACIÓN)

El Microcontrolador PIC16F877. Resumen de hoja de datos

Convertidores analógicos-digitales

Estructura de Microprocesadores. Profesor Ing. Johan Carvajal Godínez

Conversor A/D del PIC16F877

MICROCONTROLADORES PIC16F84 ING. RAÚL ROJAS REÁTEGUI

TEMPORIZADOR 1, 2, 3, 4, 5, 6, 7, 8,... Registro de conteo de pulsos

INSTRUCCIONES DE ENSAMBLADOR

PRACTICA N0.7 UTILIZACIÓN DE UN CONVERTIDOR A/D OBJETIVO ESPECÍFICO: APLICAR EL CONVERTIDOR ADC0804 EN UN CONTROL DE TEMPERATURA

UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO FACULTAD DE INGENIERÍA DIVISIÓN DE INGENIERÍA ELÉCTRICA DEPARTAMENTO DE INGENIERÍA EN COMPUTACIÓN

Dependiendo del dispositivo usado, se tienen hasta 5 puertos de entrada/salida disponibles: PORTA PORTB PORTC PORTD PORTE

RECURSOS FUNDAMENTALES

PIC18 con CCS (PIC18F14K50) Andrés Raúl Bruno Saravia Microchip RTC Argentina

7 CONVERTIDOR ANALÓGICO DIGITAL

TEMA 5 LA MEMORIA DE DATOS MEMORIA RAM D.P.E. DESARROLLO DE PROYECTOS 1

Manual de Usuario TMU-V1

Alarma con Interfaz DTMF de Línea Telefónica basado en PIC16F84

ENTRADAS DE CONTADOR DE ALTA VELOCIDAD

Familias de microcontroladores de 16 bits de Microchip

TUTORIAL PRIMERA PARTE: GENERACIÓN DE UN RETARDO CON TIMER.

Laboratorio de Diseño de Robots Móviles Practica No. 2 Sistema mínimo del microcontrolador PIC16F877

PROFESOR: Práctica 8. Manejo de Puertos de Entrada y salida del Microcontrolador PIC

La familia PIC18 USB posee 4 timers: Timer0, Timer1, Timer2 y Timer3, cada uno de los cuales tiene sus características únicas.

ÍNDICE CAPÍTULO 1 FUNDAMENTOS DE LOS MICROCONTROLADORES

Temporizadores y contadores en tiempo real: El módulo Timer0 del PIC.

Usando los Codificadores Cuadráticos

SISTEMAS DE ADQUISICIÓN DE DATOS. Convertidores D/A Convertidores A/D

DISEÑO Y CONSTRUCCIÓN DE UN PROTOTIPO DE CAPNOGRAFO PORTATIL

Periféricos: Timer. Cesáreo Fernández Martínez Álvaro Sánchez Miralles

PROFESOR: Práctica 5. Manejo de Motores

Características Técnicas del PIC 16F84

ÍNDICE INTRODUCCIÓN...17

Programación en PIC Los primeros pasos

Entrada/salida analógica en los St STM32F

Transcripción:

UNIVERSI E OVIEO 1

Características generales en el PIC16F877 Ocho canales de conversión. Cinco pines E/S de PORT y los tres de PORTE. Convierte la señal analógica en un número digital de 10 bits. Tensión de referencia seleccionable por software. Puede ser V o la tensión aplicada en los pines R2 y/o R3. Posibilidad de seguir funcionando cuando el PIC está en modo SLEEP. Hay 11 registros asociados a este periférico. efinición de pines de entrada TRIS PORT TRISE - PORTE Manejo de interrupciones INTCON PIE1 PIR1 Control del conversor / CON0 CON1 RESH - RESL UNIVERSI E OVIEO 2

Estructura interna R0/N0 R1/N1 R2/N2/V REF- R3/N3/V REF+ R5/N4 RE0/N5 RE1/N6 RE2/N7 000 001 010 011 100 101 110 111 V CHS2:CHS0 PCFG3:PCFG0 Convertidor / V IN (Input Voltage) V REF+ PCFG3:PCFG0 V REF- V SS UNIVERSI E OVIEO 3

Registro CON0 (1Fh) CS1 CS0 CHS2 CHS1 CHS0 GO/ONE - ON bit 7-6 CS1:CS0: Selección del reloj para la conversión / 00 = f OSC / 2 01 = f OSC / 8 10 = f OSC / 32 11 = f RC bit 5-3 CHS2:CHS0: Selección del canal de conversión 000 = Canal 0 001 = Canal 1 010 = Canal 2 011 = Canal 3 100 = Canal 4 101 = Canal 5 110 = Canal 6 111 = Canal 7 bit 2 GO/ONE: Estado de la conversión Si ON=1: 1 = Conversión en progreso 0 = Conversión finalizada bit 0 ON: Bit de encendido del convertidor / 1 = Módulo / encendido 0 = Módulo / apagado UNIVERSI E OVIEO 4

Registro CON1 (9Fh) FM - - - PCFG3 PCFG2 PCFG1 PCFG0 bit 7 FM: Selección de formato del resultado 1 = juste a la derecha 0 = juste a la izquierda bit 3-0 PCFG3:PCFG0: Configuración de las entradas al módulo / PCFG3: PCFG0 N7 RE2 N6 RE1 N5 RE0 N4 R5 N3 R3 N2 R2 N1 R1 N0 R0 0000 0001 0010 0011 0100 0101 011x 1000 1001 1010 1011 1100 1101 1110 1111 UNIVERSI E OVIEO 5

Registro INTCON (0Bh, 8Bh, 10Bh, 18Bh) GIE PEIE T0IE INTE RBIE T0IF INTF RBIF bit 7 bit 6 GIE: Habilitación global de interrupciones PEIE: Habilitación de interrupciones de periféricos Registro PIE1 (8Ch) PSPIE IE RCIE TXIE SSPIE CCP1IE TMR2IE TMR1IE bit 6 IE: Habilitación de la interrupción del convertidor / Registro PIR1 (0Ch) PSPIF IF RCIF TXIF SSPIF CCP1IF TMR2IF TMR1IF bit 6 IF: Flag de la interrupción del convertidor / 1 = Conversión / completada. 0 = Conversión / aún no completada. UNIVERSI E OVIEO 6

Pasos en una conversión / 1. Configurar el módulo /. - efinir entradas analógicas y tensión de referencia. (CON1) - Seleccionar el canal de la conversión. (CON0) - Seleccionar el reloj de la conversión. (CON0) - Encender el módulo /. (CON0) 2. Configurar la interrupción por conversión /. - Bajar el flag IF. (PIR1) - Habilitar la interrupción del convertidor /. (PIE1) - Habilitar las interrupciones de los periféricos. (INTCON) - Habilitar la máscara global de interrupciones. (INTCON) 3. Esperar a que transcurra el tiempo de adquisición. - Tiempo necesario para capturar el valor analógico a convertir. - Los valores típicos del tiempo de adquisición son del orden de 20µs. UNIVERSI E OVIEO 7

4. Comenzar la conversión. - Poner a 1 el bit GO/ONE. (CON0) No activar este bit a la vez que se enciende el convertidor / 5. Esperar a que se complete la conversión /. a) Controlando cuándo el bit GO/ONE se pone a 0. b) Esperando a que llegue la interrupción del convertidor. 6. Leer el resultado de la conversión. - isponible en los registros RESH:RESL. - Bajar el flag IF si se están usando interrupciones. 7. Llevar a cabo la siguiente conversión. - Volver al paso 1 ó 2, según convenga. - Espera mínima antes de empezar la siguiente adquisición: 2 T. T : Tiempo necesario para la conversión de un bit. UNIVERSI E OVIEO 8

Tiempo de adquisición Tiempo necesario para cargar el condensador de mantenimiento (C HOL ). V R S N X R IC 1K SS R SS V C PIN 5pF I FUGS ±500n C HOL 120pF V SS Máxima impedancia recomendada para la fuente: 10K. En estas condiciones, T CQ 20µs. Mientras no se complete la conversión, no empieza otra adquisición. Esperar T CQ : a) tras una conversión; b) tras seleccionar un nuevo canal; c) tras encender el módulo /. UNIVERSI E OVIEO 9

Tiempo de conversión La conversión de 10 bits dura 12 T. T ciclo T T T T T T T T T T T T b9 b8 b7 b6 b5 b4 b3 b2 b1 b0 GO/ONE 1 Comienza la conversión Se abre SS (típ. 100ns) Se carga RES Se pone GO/ONE a 0 Se levanta el flag IF C HOL conectado a entrada analógica T configurable en CON0 (reloj de la conversión). T =2 T OSC - T =8 T OSC - T =32 T OSC - T =2µs 6µs (típ. 4µs) Para un funcionamiento correcto se necesita un valor mínimo de T =1,6µs. UNIVERSI E OVIEO 10

1 LSb 2 LSb 3 LSb 4 LSb 1021 LSb 1022 LSb 1023 LSb 1024 LSb Función de transferencia La primera transición tiene lugar cuando la tensión analógica de entrada alcanza el valor V REF- + (V REF+ - V REF- )/1024 1LSb. FFh FEh Fh FCh 04h 03h 02h 01h 00h (V REF- ) (V REF+ ) UNIVERSI E OVIEO 11

Conversión / en el compilador C de CCS Configuración del módulo conversor / setup_adc (modo); modo: C_OFF (CON0 00h) C_CLOCK_IV_2 (CON0 01h) C_CLOCK_IV_8 (CON0 41h) C_CLOCK_IV_32 (CON0 81h) C_CLOCK_INTERNL (CON0 C1h) UNIVERSI E OVIEO efinición de entradas analógicas setup_adc_ports (valor); valor: NO_NLOGS (CON1 86h) LL_NLOG (CON1 80h) NLOG_R3_REF (CON1 81h) _NLOG (CON1 82h) _NLOG_R3_REF (CON1 83h) R0_R1_R3_NLOG (CON1 84h) R0_R1_NLOG_R3_REF (CON1 85h) 12

efinición de entradas analógicas (cont.) setup_adc_ports (valor); valor: NLOG_R3_R2_REF (CON1 88h) NLOG_NOT_RE1_RE2 (CON1 89h) NLOG_NOT_RE1_RE2_REF_R3 (CON1 8h) NLOG_NOT_RE1_RE2_REF_R3_R2 (CON1 8Bh) _NLOG_R3_R2_REF (CON1 8Ch) R0_R1_NLOG_R3_R2_REF (CON1 8h) R0_NLOG (CON1 8Eh) R0_NLOG_R3_R2_REF (CON1 8Fh) set_adc_channel (canal); Selección del canal analógico canal: 0 (N0) 4 (N4) 1 (N1) 5 (N5) 2 (N2) 6 (N6) 3 (N3) 7 (N7) UNIVERSI E OVIEO 13

valor = read_adc (); Lectura del resultado valor: Entero de 16 bits según la directiva #device adc= empleada. La influencia de dicha directiva se recoge en la siguiente tabla #device adc=8 adc=10 adc=11 adc=16 8 bits 00-FF x x 0-FF00 10 bits 11 bits 16 bits 00-FF 00-FF 00-FF 0-3FF x x x 0-7FF x 0-FFC0 0-FFE0 0-FFFF El fichero 16f877.h incluye como primera directiva #device PIC16F877. Es necesario incluir información del tipo de conversor /. Por ello los ficheros C que usen este módulo deberán comenzar por #include 16f877.h #device adc=10 UNIVERSI E OVIEO 14

Ejemplo setup_adc_ports (_NLOG); setup_adc (C_CLOCK_INTERNL); set_adc_channel (3); delay_us (20); valor = read_adc (); W 10000010 Banco 1 CON1 W Banco 0 W CON0 W W & 00111000 W W 11000001 CON0 W W CON0 W W & 11000111 W W 00011000 CON0 W setup_adc (C_OFF); UNIVERSI E OVIEO W CON0 W W & 00111000 CON0 W GO/ONE 1 Espera a GO/ONE=0 W RESH TEMP W Banco 1 W RESL Banco 0 REGL W Comentario W TEMP REGH W 15

Registro CON1 (9Fh) FM 1 - - - PCFG3 0 PCFG2 0 PCFG1 1 PCFG0 0 bit 7 FM: Selección de formato del resultado 1 = juste a la derecha 0 = juste a la izquierda bit 3-0 PCFG3:PCFG0: Configuración de las entradas al módulo / PCFG3: PCFG0 N7 RE2 N6 RE1 N5 RE0 N4 R5 N3 R3 N2 R2 N1 R1 N0 R0 0000 0001 0010 0011 0100 0101 011x 1000 1001 1010 1011 1100 1101 1110 1111 UNIVERSI E OVIEO 16

Registro CON0 (1Fh) CS1 1 CS0 1 CHS2 0 CHS1 1 CHS0 1 GO/ONE 0 - ON 1 bit 7-6 CS1:CS0: Selección del reloj para la conversión / 00 = f OSC / 2 01 = f OSC / 8 10 = f OSC / 32 11 = f RC bit 5-3 CHS2:CHS0: Selección del canal de conversión 000 = Canal 0 001 = Canal 1 010 = Canal 2 011 = Canal 3 100 = Canal 4 101 = Canal 5 110 = Canal 6 111 = Canal 7 bit 2 GO/ONE: Estado de la conversión Si ON=1: 1 = Conversión en progreso 0 = Conversión finalizada bit 0 ON: Bit de encendido del convertidor / 1 = Módulo / encendido 0 = Módulo / apagado UNIVERSI E OVIEO 17

El código ensamblador recogido en este ejemplo supone que valor es una variable de tipo long int y que se ha llevado a cabo una conversión / de 10 bits, para lo cual el código C deberá comenzar como se indica: #include "16F877.h" #device C=10 // Selecciona conversión / de 10 bits Si no se incluye la directiva #device C=10, el compilador considera que se debe hacer una conversión / de 8 bits. En este caso, y considerando ahora que valor es una variable de tipo int, el código ensamblador que se genera difiere del visto. setup_acd_ports (_NLOG); valor = read_adc(); W 00000010 GO/ONE 1 Banco 1 justa resultado Espera GO/ONE=0 CON1 W de conversión W RESH Banco 0 a la izquierda REG W El contenido de valor se obtiene de un solo registro: RESH (ajuste a la izda) UNIVERSI E OVIEO 18