Presentacion_1 PDF - Universidad Tecnológica de Chihuahua
Document Details
![WarmerElectricOrgan661](https://quizgecko.com/images/avatars/avatar-17.webp)
Uploaded by WarmerElectricOrgan661
Universidad Tecnológica de Chihuahua
2008
M.C. Mariano Carrillo Romero
Tags
Summary
This document is a presentation about the types of variables in C programming, oscillators, and different types of restarts for microcontrollers. It's from the Universidad Tecnológica de Chihuahua in March 2008.
Full Transcript
M.C. Mariano Carrillo Romero Marzo 2008 TIPOS DE VARIABLES This section describes what the basic data types and specifiers are and how variables can be declared using those types. In C all the variables should be declared before they are used. They can be defined inside a function (local) or o...
M.C. Mariano Carrillo Romero Marzo 2008 TIPOS DE VARIABLES This section describes what the basic data types and specifiers are and how variables can be declared using those types. In C all the variables should be declared before they are used. They can be defined inside a function (local) or outside all functions (global). This will affect the visibility and life of the variables. OSCILADOR DE RELOJ Como se muestra en la siguiente figura, la señal de reloj se genera por uno de los dos osciladores integrados. Un oscilador externo está instalado fuera del microcontrolador y conectado a los pines OSC1 y OSC2. Es denominado 'externo' porque utiliza componentes externos para generar una señal de reloj y estabilizar la frecuencia. Estos son: cristal de cuarzo, resonador cerámico o circuito resistor - capacitor. El modo de funcionamiento del oscilador se selecciona por los bits, que se envían durante la programación, denominados Palabra de Configuración. El oscilador interno consiste en dos osciladores internos separados: El HFINTOSC es un oscilador interno de alta frecuencia calibrado a 8MHz. El microcontrolador puede utilizar una señal de reloj generada a esta frecuencia o después de haber sido dividida en el pre-escalador. El LFINTOSC es un oscilador interno de baja frecuencia calibrado a 31 kHz. Sus pulsos de reloj se utilizan para funcionamiento de los temporizadores de encendido y perro guardián, asimismo puede utilizarse como fuente de señal de reloj para el funcionamiento de todo el microcontrolador. El bit System Clock Select (bit de selección del reloj del sistema - SCS) del registro OSCCON determina si una fuente de señal de reloj del microcontrolador será interna o externa. Registro OSCCON El registro OSCCON gobierna el microcontrolador y las opciones de selección de frecuencia. Contiene los siguientes bits: bits de selección de frecuencia (IRCF2, IRCF1, IRCF0), bits de estado de frecuencia (HTS, LTS), bits de control de reloj del sistema (OSTA, SCS). IRCF2-0 - Internal Oscillator Frequency Select bits. (bits de selección de frecuencia del oscilador interno). El valor del divisor de frecuencias depende de la combinación de estos tres bits. La frecuencia de reloj del oscilador interno se determina de la misma manera. IRCF2. IRCF1 IRCF0 Frecuencia OSC. 1 1 1 8 MHz HFINTOSC 1 1 0 4 MHz HFINTOSC 1 0 1 2 MHz HFINTOSC 1 0 0 1 MHz HFINTOSC 0 1 1 500 kHz HFINTOSC 0 1 0 250 kHz HFINTOSC 0 0 1 125 kHz HFINTOSC 0 0 0 31 kHz LFINTOSC MODOS DE RELOJ INTERNO El circuito del oscilador interno consiste en dos osciladores separados que se pueden seleccionar como la fuente del reloj del microcontrolador: El oscilador HFINTOSC está calibrado de fábrica y funciona a 8Mhz. La frecuencia de este oscilador se puede configurar por el usuario por medio de software utilizando los bits del registro OSCTUNE. El oscilador LFINTOSC no está calibrado de fábrica y funciona a 31kHz. Similar al oscilador externo, el interno también puede funcionar en varios modos. El modo de funcionamiento se selecciona de la misma manera que en el oscilador externo - por medio de los bits que forman Palabra de configuración. En otras palabras, todo se lleva a cabo dentro del software de PC antes de escribir un programa en el microcontrolador. OSCILADOR INTERNO EN MODO INTOSC En este modo, el pin OSC1 está disponible para ser utilizado como pin de E/S de propósito general. La señal de frecuencia del oscilador interno dividida por 4 está disponible en el pin OSC2. OSCILADOR INTERNO EN MODO INTOSCIO En este modo, los dos pines están disponibles como pines de E/S de propósito general. CONFIGURACIÓN DEL OSCILADOR INTERNO El oscilador interno de alta frecuencia HFINTOSC está conectado al post-escalador (divisor de frecuencias). Está calibrado de fábrica y funciona a 8 Mhz. Al utilizar el post-escalador, este oscilador puede producir una señal de reloj a una de siete frecuencias. La selección de frecuencia se realiza dentro del software utilizando los pines IRCF2, IRCF1 y IRCF0 del registro OSCCON. El HFINTOSC está habilitado al seleccionar una de siete frecuencias (entre 8 Mhz y 125 kHz) y poner a uno el bit de la fuente de reloj del sistema (SCS) del registro OSCCON. Como se muestra en la siguiente figura , todo el procedimiento se realiza por medio de los bits del registro OSCCON. ¡REINICIO! ¿BLACK-OUT, BROWN-OUT O RUIDOS? Al producirse un reinicio el microcontrolador detiene su funcionamiento inmediatamente y borra sus registros. Una señal de reinicio se puede generar externamente en cualquier momento (nivel lógico bajo en el pin MCLR). Si se necesita, una señal también puede ser generada por la lógica de control interna. Al encender una fuente de alimentación siempre se produce un reinicio. Por muchos eventos de transición que ocurren al encender una fuente de alimentación (centelleos y fogonazos de contactos eléctricos en interruptores, subida de voltaje lenta, estabilización de la frecuencia de señal de reloj graduada etc.) es necesario proporcionar un cierto tiempo muerto antes de que el microcontrolador se ponga a funcionar. Dos temporizadores internos PWRT y OST se encargan de eso. El PWRT puede estar habilitado/ deshabilitado durante el proceso de escribir un programa. Vamos a ver cómo funciona todo Cuando el voltaje de la fuente de alimentación alcanza entre 1.2 y 1.7V, un circuito denominado temporizador de arranque (Power-up timer) mantiene al microcontrolador reiniciado durante unos 72mS. Tan pronto como transcurra el tiempo, otro temporizador denominado temporizador de encendido del oscilador (Oscillator start-up timer) genera otra señal de reinicio durante la duración de 1024 períodos del oscilador de cuarzo. Al expirar el tiempo muerto (marcado con Reset T en la Figura) y al poner a alto el pin MCLR, todas las condiciones se han cumplido y el microcontrolador se pone a ejecutar la primera instrucción en el programa. Aparte de este reinicio "controlado" que ocurre al encender una fuente de alimentación, hay dos tipos de reinicio denominados Black-out y Brown-out que pueden producirse durante el funcionamiento del microcontrolador así como al apagar una fuente de alimentación. REINICIO BLACK-OUT El reinicio black out ocurre al apagar una fuente de alimentación correctamente. El microcontrolador no tiene tiempo para hacer nada imprevisible puesto que el voltaje cae muy rápidamente por debajo de su valor mínimo. En otras palabras, ¡se apaga la luz, las cortinas bajan y el espectáculo ha terminado! REINICIO BROWN-OUT Cuando el voltaje de la fuente de alimentación cae lentamente (un ejemplo típico es descarga de baterías, aunque el microcontrolador experimentaría unas caídas mucho más rápidas como un proceso lento) los componentes internos detienen su funcionamiento gradualmente y ocurre el así llamado reinicio Brownout. En tal caso, antes de que el microcontrolador detenga su funcionamiento completamente, hay un peligro real de que los circuitos que funcionan a frecuencias altas se pongan a funcionar de forma imprevisible. El reinicio brown-out puede causar cambios fatales en el programa ya que se almacena en la memoria flash incorporada en el chip. RUIDO ELÉCTRICO Es un tipo especial del reinicio Brownout que ocurre en un ambiente industrial cuando voltaje de alimentación “parpadea” por un momento y cae por debajo del valor mínimo. Aunque es corto, este ruido producido en una línea de conducción eléctrica puede afectar desfavorablemente al funcionamiento del dispositivo. EUSART El módulo Transmisor/Receptor Universal Síncrono/Asíncrono mejorado (Enhanced Universal Synchronous Asynchronous Receiver Transmitter - EUSART) es un periférico de comunicación serie de entrada/salida. El EUSART integrado en el PIC16F887 posee las siguientes características: Transmisión y recepción asíncrona en modo Full-duplex; Caracteres de anchura de 8 – 9 bits programables; Detección de dirección en modo de 9 bits; Detección de errores por saturación del búfer de entrada; y Comunicación Half Duplex en modo síncrono. EUSART EN MODO ASÍNCRONO El EUSART transmite y recibe los datos utilizando la codificación de no retorno a cero - NRZ (non-return-to-zero). Como se muestra en la siguiente figura, no se utiliza una señal de reloj y los datos se transmiten de forma muy simple: Cada dato se transmite de la siguiente forma: En estado inactivo la línea de datos permanece en estado alto (1); Cada transmisión de datos comienza con un bit de arranque (START), el cual, siempre es cero (0); Cada dato tiene un ancho de 8 o 9 bits (primero se transmite el bit menos significativo - LSB); y Cada transmisión de datos termina con un bit de parada (STOP), el cual, siempre es uno (1) La siguiente figura muestra cómo conectar de manera habitual un microcontrolador PIC que utiliza el módulo EUSART. El circuito RS-232 se utiliza como un convertidor de nivel de voltaje.