Manual de Especificacines de Los Pic de La Familia 16f
December 20, 2022 | Author: Anonymous | Category: N/A
Short Description
Download Manual de Especificacines de Los Pic de La Familia 16f...
Description
“MANUAL
DE ESPECIFICACINES DE LOS PIC’S DE LA FAMILIA 16F”
MEMORIA DEL PROGRAMA EEPROM: también se graba eléctricamente, pero su borrado es mucho EEPROM: más sencillo, ya que también es eléctrico. No se pueden conseguir grandes capacidades y su tiempo de de escritura y su consumo es elevado. EEPROM: EEPROM responde a “Erasable Programmable Read Only EEPROM: Memory ” que se puede traducir como Memoria programable borrable de solo lectura. También se la conoce como E-2-PROM. Como su nombre sugiere, una EEPROM puede ser borrada y programada con impulsos eléctricos. Al ser una pieza que se puede gestionar por estos impulsos eléctricos, podemos realizar todas estas operaciones de reprogramación sin tener que desconectarla de la placa a la cual va conectada. La EEPROM también se conoce como “non-volatile memory” o memoria no volátil y es debido a que cuando se desconecta la energía, los datos almacenados en la EEPROM no serán eliminados quedando intactos. Las EEPROM más nuevas no tiene datos almacenados en ellas y deben ser primero configuradas con un programador antes de ser usadas. La información almacenada dentro de este dispositivo puede permanecer durante años sin una fuente de energía eléctrica. Son usadas para almacenar información programable de usuario, como por ejemplo:
Información de programación VCR
Información de programación de CD
Información de usuario de productos instalados en el equipo
La EEPROM en el monitor realiza dos funciones:
Cuando encendemos un monitor se copiarán todos los datos o información desde la EEPROM al microprocesador. Por ejemplo, la EEPROM dejará al microprocesador conocer las frecuencias en las cuales el monitor funcionará.
La EEPROM se utiliza para guardar la configuración mas reciente del
monitor. La configuración del monitor no desaparecerá aunque el monitor sea apagado. Cuando se haga un cambio en dicha configuración, el microprocesador actualiza estos cambios en la EEPROM. Cuando el monitor vuelve a encenderse, los datos ya actualizados son usados para poner el monitor operativo.
FLASH: se trata de una memoria no volátil, de bajo consumo, que se FLASH: puede escribir y borrar en circuito al igual que las EEPROM, pero que suelen disponer de mayor capacidad que estas últimas. Son recomendables aplicaciones en las que es necesario modificar el programa a lo largo de la vida del producto. Por sus mejores prestaciones, está sustituyendo a la memoria EEPROM para contener instrucciones. De esta forma Microchip comercializa dos microcontroladores prácticamente iguales que sólo se diferencian en que la memoria de programa de uno de ellos es tipo EEPROM y la del otro tipo Flash. Se trata del PIC16C84 y elPIC16F84, el PIC16F84, respectivamente. De este modo la tarjeta logra guardar la información que el usuario requiere. Mientras más compacta esté distribuida su estructura, mayor información almacena, y asimismo también aumentan los costos en la fabricación de estos dispositivos. La otra forma de almacenar toda esta información es a través de un disco duro, y la gran diferencia que tienen con las tarjetas de memoria flash, es que estas últimas no cuentan con partes móviles, sino que están formadas por una sola pieza fabricada en un material semiconductor. De este modo se configura como un dispositivo de tamaño muy reducido que no pierde los datos cuando sufre de movimientos fuertes y/o golpes. Generalmente son de forma cuadrada o rectangular y se pueden conectar al computador a través de un puerto USB.
En comparación con los l os discos duros convencionales, las tarjetas de memoria flash resultan ser bastante caras, ya se eleva la relación preciocapacidad de almacenaje. Sin embargo, vale la pena el gasto debido a lo cómodas que son, ocupando muy poco espacio y teniendo un peso bastante menor. En esta parte del manual veremos de mayor a menor según la cantidad de memoria eeprom y flash que tiene cada uno de los 10 pic’s que manejamos en este manual:
MEMORIA EEPROM 300 200 100 0
BYTES BYTES
MEMORIA FLASH 16 14 12 10 8 6
KB
4 2 0
MEMORIA RAM
RAM son las siglas de random access memory, un tipo de memoria de ordenador a la que se puede acceder aleatoriamente; es decir, se puede acceder a cualquier byte de memoria sin acceder a los bytes precedentes. La memoria RAM es el tipo de memoria más común en ordenadores y otros dispositivos como impresoras. Hay dos tipos básicos de memoria RAM
RAM dinámica (DRAM)
RAM estática (SRAM)
Los dos tipos de memoria RAM se diferencian en la tecnología que utilizan para guardar los datos, la memoria RAM dinámica es la más común. La memoria RAM dinámica necesita actualizarse miles de veces por segundo, mientras que la memoria RAM estática no necesita actualizarse, por lo que es más rápida, aunque también más cara. Ambos tipos de memoria RAM son volátiles, es decir, que pierden su contenido cuando se apaga el equipo. Coloquialmente el término RAM se utiliza como sinónimo de memoria principal, la memoria que está disponible para los programas, por ejemplo, un ordenador con 8M de RAM tiene aproximadamente 8 millones de bytes de memoria que los programas puedan utilizar.
MEMORIA RAM 600 500 400 300 200
BYTES
100 0
OSCILADOR INTERNO En electrónica un oscilador es un circuito que es capaz de convertir la corriente continua en una corriente que varía de forma periódica en el tiempo (corriente periódica); estas oscilaciones pueden senoidales, cuadradas, triangulares, etc., dependiendo de la forma queser tenga la onda producida. Un oscilador de onda cuadrada suele denominarse multivibrador y por lo tanto, se les llama osciladores sólo a los que funcionan en base al principio de oscilación natural que constituyen una bobina L (inductancia) y un condensador C (Capacitancia), mientras que a los demás se le asignan nombres especiales.
Un oscilador electrónico es fundamentalmente un amplificador cuya señal de entrada se toma de su propia salida a través de un circuito de realimentación. Se puede considerar que está compuesto por:
Un circuito cuyo desfase depende de la frecuencia. Por ejemplo: o Oscilante eléctrico (LC) o electromecánico (cuarzo). o Retardador de fase RC o puente de Wien elemento amplificador Un elemento amplificador Un circuito de realimentación.
A pesar de no ser un oscilador electrónico tal y como se ha definido antes, la primera oscilación a tener en cuenta es la producida por un alternador, el cual, al estar compuesto por una espira que gira alrededor de su eje longitudinal en el interior de un campo magnético, produce una corriente eléctrica inducida en los terminales de la espiral. Esta corriente eléctrica, si el campo magnético es homogéneo, tiene forma senoidal. Así, si la espira gira a 3000 rpm, la frecuencia de la corriente corri ente alterna inducida es de 50 Hz.
El circuito integrado oscilador más usado por principiantes, es el 555, también el 4069 y otros.
En un oscilador electrónico lo que se pretende es obtener un sistema de oscilación que sea estable yPara periódico, frecuencia y una forma de onda constante. ello semanteniendo aprovecha eluna proceso natural de oscilación amortiguada que poseen los circuitos compuestos por elementos capacitivos o inductivos. Estos elementos tienen la capacidad de almacenar carga eléctrica en su interior (cargarse eléctricamente) y descargarse cuando la carga que los alimentaba ha desaparecido.
El ejemplo más simple de oscilador es el compuesto por una bobina, un condensador, una batería y un conmutador. Inicialmente el conmutador se halla en su posición izquierda, de forma que el condensador C se carga con la corriente que proporciona la batería V. Transcurrido cierto tiempo el conmutador se pasa a la posición derecha. Como la bobina no posee ninguna carga y el condensador está totalmente cargado, este último se descarga completamente hacia la bobina, una vez que el condensador se ha descargado completamente es ahora la bobina la que se descarga sobre el condensador, no parándose hasta que la carga en la bobina es cero y el condensador por lo tanto vuelve a estar cargado. Este proceso se repite hasta que la energía almacenada por uno y otro se consume en forma de calor. Este proceso puede representarse gráficamente empleando un eje cartesiano X-Y en el que el eje X representa el tiempo y el eje Y el valor de la corriente eléctrica que circula por la bobina y las tensiones en los bornes del condensador. Si se lo dibuja se puede apreciar como se produce un continuo intercambio de energía entre el condensador y la bobina. La substracción de energía producida por la resistencia de la bobina y el condensador (lo que provoca el calentamiento de los componentes) es lo que hace que este proceso no sea infinito.
En la gráfica se puede apreciar cómo el defase de tensiones existente entre bornes de la bobina es siempre de sentido opuesto a la existente en el condensador. Este defase es de 180º entre tensiones, existiendo un defase de 90º entre la corriente que circula por la bobina y la tensión existente.
Esta señal se va amortiguando con el tiempo, hasta que acaba extinguiéndose transcurrido un período bastante corto. Un circuito electrónico que sea capaz de volver a cargar eléctricamente uno de los componentes permitirá hacer un proceso de oscilación constante.
Serie 1 40 30 20 10 0
Serie 1 Serie 1
ADC (Convertidor de analógico a digital)
La conversión analógica-digital (CAD) consiste en la transcripción de señales analógicas en señales digitales, con el propósito de facilitar su procesamiento (codificación, (codificación, compresión, compresión, etc.) etc.) y hacer la señal resultante que es la digital más inmune al ruido y otras interferencias otras interferencias a las que son más sensibles las señales analógicas.
Procesos de la conversión A/D.
Digitalización La digitalización o conversión analógica-digital consiste básicamente en realizar de forma periódica medidas de la amplitud (tensión) de una señal por ejemplo, la que proviene de un micrófono si se trata de registrar sonidos, sismógrafo para si se cualquier trata de registrar vibraciones o de una sonda dedeununosciloscopio nivel variable de tensión de interés, al cambiar las medidas de la tensión se van redondear sus valores a un conjunto finito de niveles preestablecidos de tensión y registrarlos como números enteros en cualquier tipo de memoria o soporte. La conversión A/D también es conocida por el acrónimo inglés ADC (analogue to digital converter). En esta definición están patentes los cuatro procesos que intervienen en la conversión analógica-digital:
1.Muestreo: 1.Muestreo: el muestreo (sampling) consiste en tomar muestras periódicas de la amplitud de onda. La velocidad con que se toma esta muestra, es decir, el número de muestras por segundo, es lo que se conoce como frecuencia de muestreo. 2.Retención (hold): las muestras tomadas han de ser retenidas por un 2.Retención circuito de retención, el tiempo suficiente para permitir evaluar su nivel. Desde el punto de vista matemático este proceso no se contempla, ya que se trata de un recurso técnico debido a limitaciones prácticas, y carece, por tanto, de modelo matemático. 3.Cuantificación: en el proceso de cuantificación se mide el nivel de 3.Cuantificación: voltaje de cada una de las muestras. Consiste en asignar un margen de valor de una señal analizada a un único nivel de salida. Incluso en su versión ideal, añade, como resultado, una señal indeseada a la señal de entrada: el ruido de cuantificación. 4.Codificación: la codificación consiste en traducir los valores obtenidos 4.Codificación: durante la cuantificación al código binario. Hay que tener presente que el código binario es el más utilizado, pero también existen otros tipos de códigos que también son utilizados.
Durante el muestreo y la retención, la señal aún es analógica, puesto que aún puede tomar cualquier valor. No obstante, a partir de la cuantificación, cuando la señal ya toma valores finitos, la señal ya es digital. Los cuatro procesos tienen lugar en un conversor analógico-digital.
Ventajas de la señal digital 1. Cuando una señal digital es atenuada o experimenta perturbaciones leves, puede ser reconstruida y amplificada mediante sistemas de regeneración de señales.
2. Cuenta con sistemas de detección y corrección de errores, que se utilizan cuando la señal llega al receptor; entonces comprueban la señal, primero para detectar algún error, y, algunos sistemas, pueden luego corregir alguno o todos los errores detectados previamente. 3. Facilidad para el procesamiento de la señal. Cualquier operación es fácilmente realizable a través de cualquier software de edición o procesamiento de señal. 4. La señal digital permite la multigeneración infinita sin pérdidas de calidad. 5. Es posible aplicar técnicas de compresión de datos sin pérdidas o técnicas de compresión con pérdidas basados en la codificación perceptual mucho más eficientes que con señales analógicas.
Inconvenientes de la señal digital 1. Se necesita una conversión analógica-digital previa y una decodificación posterior, en el momento de la recepción. 2. Si no se emplean un número suficientes de niveles de cuantificación en el proceso de digitalización, la relación señal a ruido resultante se reducirá con relación a la de la señal analógica original que se cuantificó. Esto es una consecuencia de que la señal conocida como error de cuantificación que introduce siempre el proceso de cuantificación sea más potente que la del ruido de la señal analógica original, en cuyo caso, además, se requiere la adición de un ruido conocido como "dither" más potente aún con objeto de asegurar que dicho error sea siempre un ruido blanco y no una distorsión. En los casos donde se emplean suficientes niveles de cuantificación, la relación señal a ruido de la señal original se conservará esencialmente porque el error de cuantificación quedará por debajo del nivel del ruido de la señal que se cuantificó. Esto, naturalmente, es lo normal. 3. Se hace necesario emplear siempre un filtro activo analógico pasa bajo sobre la señal a muestrear con objeto de evitar el fenómeno conocido
como aliasing, que podría hacer que componentes de frecuencia fuera de la banda de interés quedaran registrados como componentes falsos de frecuencia dentro de la banda de interés. Asimismo, durante la reconstrucción de la señal en la posterior conversión D/A, se hace también necesario aplicar un filtro activo analógico del mismo tipo (pasa bajo) conocido como filtro de reconstrucción.
1)
28 canales -10 bits
16f1517
2)
12 canales -10 bits
16f690
3)
12 canales -10 bits
16f677
4)
12 canales -10 bits
16F685
5)
8 canales -10 bits
16f946
6)
8 canales -10 bits
16f1824
7)
8 canales -10 bits
16f877
8)
NO CONTIENE ADC
16f628
9)
NO CONTIENE ADC 10)
16f648A
10)
NO CONTIENE ADC
16f84A
PINES (pinout) Pinout es un término anglosajón que, en traducción libre, significa patillaje, o más correctamente asignación de patillaje. Es usado en electrónica para determinar la función de cada pin en un circuito integrado, o bien en un dispositivo electrónico discreto. En informática, para describir cómo un conector es cableado. Cada patica del conector tiene un propósito que se describe brevemente en el pinout.
El pinout puede ser mostrado como una simple tabla o puede incluir un diagrama. Es importante dejar claro cómo ver el diagrama, indicar si éste muestra la parte posterior del conectador (donde se unen los alambres a él) o la "cara de acoplamiento" del conectador. Los pinout´s publicados son particularmente importantes cuando diferentes fabricantes desean interconectar sus productos usando estándares abiertos.
Igualmente se emplea para saber la correlación de patillas en las clavijas situadas en ambos extremos del cable.
16f690
16f84A
16f877
16f628
16f1517
16f1824
16f648A
16f677
16f685
16f946
PUERTOS I/O (ENTRADA/SALIDA)
En computación y en la electrónica, entrada/salida, también abreviado E/S o I/O (del original en inglés input/output), es la colección de interfaces interf aces que usan las distintas unidades funcionales (subsistemas) de un sistema de procesamiento de información para comunicarse unas con otras, o las señales (información) enviadas a través de esas interfaces. Las entradas son las señales recibidas por la unidad, mientras que las salidas son las señales enviadas por ésta.
El término puede ser usado para describir una acción; "realizar una entrada/salida" se refiere a ejecutar una operación de entrada o de salida. Los dispositivos de E/S los usa una persona u otro sistema para comunicarse con una computadora. De hecho, a los teclados y ratones se los considera dispositivos de entrada de una computadora, mientras que los monitores e impresoras son vistos como dispositivos de salida de una computadora. Los dispositivos típicos para la comunicación entre computadoras realizan las dos operaciones, tanto entrada como salida, y entre otros se encuentran los módems y tarjetas de red.
Es importante notar que la designación de un dispositivo, dispositivo , sea de entrada o de salida, cambia al cambiar la perspectiva desde el que se lo ve. Los teclados y ratones toman como entrada el movimiento físico que el usuario produce como salida y lo convierten a una señal eléctrica que la computadora pueda entender. La salida de estos dispositivos es una entrada para la computadora. De manera análoga, los monitores e impresoras toman como entrada las señales que la computadora produce como salida. Luego, convierten esas señales en representaciones inteligibles que puedan ser interpretadas por el usuario. La interpretación será, por ejemplo, por medio de la vista, que funciona como entrada.
En arquitectura de computadoras, a la combinación de una unidad central de procesamiento (CPU) y memoria principal (aquélla que la CPU puede escribir o leer directamente mediante instrucciones individuales) se la considera el corazón de la computadora y cualquier movimiento de información desde o hacia ese conjunto se lo considera entrada/salida. La CPU y su circuitería complementaria proveen métodos de entrada/salida que se usan en programación de bajo nivel para la implementación de controladores de dispositivos.
Los sistemas operativos y lenguajes de programación de más alto nivel brindan conceptos y primitivas de entrada/salida distintos y más abstractos. Por ejemplo, un sistema operativo brinda aplicativos que manejan el concepto de archivos. El lenguaje de programación C define funciones que les permiten a sus programas realizar E/S a través de streams, es decir, les permiten leer datos desde y escribir datos hacia sus programas.
Una alternativa para las funciones primitivas especiales es la mónada de E/S, que permite que los programas describan su E/S y que las acciones se lleven a cabo fuera del programa. Esto resulta interesante, pues las funciones de E/S introducirían un efecto colateral para cualquier lenguaje de programación, pero ahora una programación puramente funcional resultaría práctica. Los dispositivos de E/S están formados por una parte mecánica y una parte electrónica, esta última se denomina controlador de dispositivo y generalmente la interfaz entre ambas partes es de bajo nivel.
Por ejemplo el controlador de un disco duro convierte el flujo de bits recibido a los bloques necesarios para la operación a realizar.
Para diferenciar los dispositivos tenemos dos enfoques posibles, el primero de ellos se centra en el modo de almacenar la información (clasificando los dispositivos como de bloque o de carácter)1 y el segundo enfoque se centra en el destinatario de la comunicación (usuario, maquina, comunicadores)
Un dispositivo de bloque almacena la información en bloques de tamaño fijo. Al ser el bloque la unidad básica de almacenamiento, todas las escrituras o lecturas se realizan mediante múltiplos de un bloque. Es decir escribo 3 o 4 bloques, pero nunca 3,5 bloques. El tamaño de los bloques suele variar entre 512 Bytes hasta 32.768 Bytes. Un disco duro entraría dentro de esta definición. A diferencia de un dispositivo de bloque un dispositivo de carácter, no maneja bloques fijos de información sino que envía o recibe un flujo de caracteres. Dentro de esta clase podemos encontrar impresoras o interfaces de red.
Entre cada categoría y dispositivo, hay grandes diferencias: Velocidad de transferencia de datos: varios órdenes de magnitud para transferir los datos, según las necesidades de cada dispositivo Aplicación: la funcionalidad para la que está diseñado un dispositivo tiene influencia sobre el software por ende lo tendrá sobre el sistema operativo. Complejidad de control: cada dispositivo tiene una complejidad asociada, no es lo mismo controlar un ratón que gestionar un disco duro. Unidad de transferencia: datos transferidos como un flujo de bytes/caracteres o en bloques de tamaño fijo Representación de datos: cada dispositivo puede usar su propia codificación de datos Condiciones de error: el porqué del error, su manera de notificarlo así como sus consecuencias difiere ampliamente entre los dispositivos
Un ejemplo de programación de los puertos de entrada y salida son: Para poder configurar los puertos del PIC es necesario conocer la tabla de registros de la memoria de datos, la cual como dijimos, está dividida en el BANCO 0 0 y BANCO 1. 1. Los registros importantes en la configuración de los puertos son: STATUS STATUS PORTA PORTA PORTB PORTB TRISA TRISA TRISB TRISB
dirección dirección dirección dirección dirección
0x3 0x3 0x5 0x5 0x6 0x6 0x5 0x5 0x6 0x6
Por defecto el PIC tendrá todos los I/O port's (es decir los puertos RA y RB), colocados como entrada de datos, y si queremos cambiarlos habrá que configurarlos. Al
configurar
los
puertos
deberás
tener
en
cuenta
que:
Si asignas un CERO (0) (0) a un pin, éste quedará como salida salida y... Si le asignas un UNO (1), (1), quedará como entrada entrada Esta
asignación
se
TRISA TRISA para los pines del TRISB para TRISB para los pines del PUERTO B (8 B (8 bits)
hace PUERTO
A A
en: (5
bits)
Por ejemplo: Si TRISA TRISA es igual a 11110 todos sus pines serán entradas salvo RA0 que esta como salida Si TRISB TRISB es es igual a 00000001 todos sus pines serán salidas salvo RB0 que esta como entrada Cuando el PIC arranca se encuentra en el BANCO 0, como TRISA y TRISB están en el BANCO 1 no 1 no queda otra, deberemos cambiar de banco. Esto se logra a través del Registro STATUS STATUS STATUS es STATUS es un Registro de 8 bits u 8 casillas, en el cual la Nº 5 ( RP0 RP0)) define
la
posición
del
banco
en
donde
nos
encontramos
Si pones un CERO (0) (0) a RP0 estaremos en el Si le pones un UNO (1) ya (1) ya ves, estaremos en el BANCO 1 1
BANCO
0 0
REGISTRO STATUS STATUS 7
6
5
4
3
IRP RP1 IRP RP1 RP0 RP0 TO TO PD PD
2
1
0
Z
DC DC
C
Listo, ahora ya se sabe cómo configurar los puertos, pero lo aclararemos con un ejemplo completo. Luego vamos a escribir un código que configure todos los pines del puerto A como entrada y todos los del puerto B como salida.
;---------------Encabezado---;--------------Encabezado--------------------list radix
p=16f84 hex
; usaremos el PIC 16f84 ; y la numeración hexadecimal
;------------mapa ;-----------mapa de memoria--------estado equ los trisa equ trisb equ
0x03
; Aquí le asignamos nombres a
0x05 0x06
; registros indicando la posición ; en la que se encuentran
;-------Configuración de puertos------reset org comenzaré goto org
0x00
; origen del programa, aquí
inicio 0x05
; siempre que ocurra un reset ; salto a "inicio" ; origen del código de programa
inicio bsf banco1 movlw movwf movlw movwf bcf al banco0
estado,5
; pongo rp0 a 1 y paso al
b'11111' ; cargo W con 11111 trisa ; y paso el valor a trisa b'00000000' ; cargo W con 00000000 trisb ; y paso el valor a trisb estado,5 ; pongo rp0 a 0 y regreso
;-----------------------------------------end ; se acabó ;-----------------------------------------Descripción del código: Todo lo que escribas luego de un "; " ;" ( punto punto y coma) coma) será ignorado por el ensamblador, estos son los comentarios, y sirve para saber qué hace cada línea de código. Dicho esto no queda más que describir el código, así que vamos por partes. ;---------------Encabezado---;--------------Encabezado--------------------list radix
p=16f84 hex
; usaremos el PIC 16f84 ; y la numeración hexadecimal
Aquí se le indica al ensamblador para que microcontrolador estas codificando. Y cuál será el sistema de numeración que utilizarás (hexadecimal). Nota que hay tres columnas, en este caso la primera está vacía. Respeta las tabulaciones para no confundir al ensamblador. ;------------mapa ;-----------mapa de memoria--------estado equ
0x03
; Aquí le asignamos nombres a
los trisa
0x05
; registros indicando la posición
equ
trisb
equ
0x06
; en la que se encuentran
Recuerdas lo de la memoria de datos...? Bien, al registro STATUS, que está en la posición 0x03 de la memoria de datos le puse la etiqueta "estado" "estado".. equ es equ es lo mismo que igual igual . . (Es decir, le estoy asignando el nombre estado al registro que está en la posición 0x03 de la memoria de datos). Luego hice lo mismo con trisa y trisb. ;-------Configuración de puertos------reset org comenzaré
inicio banco1
goto org bsf
movlw movwf movlw movwf bcf al banco0
0x00
; origen del programa, aquí
; siempre que ocurra un reset inicio ; salto a "inicio" 0x05 ; origen del código de programa estado,5 ; pongo rp0 a 1 y paso al b'11111' ; cargo W con 11111 trisa ; y paso el valor a trisa b'00000000' ; cargo W con 00000000 trisb ; y paso el valor a trisb estado,5 ; pongo rp0 a 0 y regreso
La directiva org org indica indica el sitio de la memoria en donde se escribe una parte del programa. este caso el contador a la dirección 0x00 En (reset (reset ) entonces ejecutará de la programa instrucciónapuntará que sigue a continuación, (saltar a la etiqueta inicio) y nuestro código de programa comienza en la dirección de memoria 0x05 (aquí salto por encima de la interrupción 0x04) BSF (SET FILE REGISTER), BSF REGISTER), es la instrucción que pone un uno en el bit del registro especificado, en este caso pone a uno el bit 5 del registro STATUS (el rp0), rp0), para pasar al banco 1. movlw es algo así como... mueve el siguiente literal al Registro W. movlw W es el Registro de Trabajo, y lo usamos para almacenar
momentáneamente los datos que queremos mover. una vez hecho esto pasamos el dato a trisa, o a trisb, según el caso. movwf es es algo así como... mueve el contenido del registro W al registro f, en este caso f sería trisa o trisb. BCF (BIT CLEAR FILE REGISTER), BCF REGISTER), ésta instrucción limpia el bit del registro especificado, o lo pone a cero, en este caso pone a cero el bit 5 del registro STATUS para regresar al banco 0. ;-----------------------------------------end ; se acabó ;------------------------------------------
PUERTO A PUERTO B PUERTO C
PUERTO A PUERTO B
PUERTO A PUERTO B PUERTO C PUERTO D PUERTO E
PUERTO A PUERTO B
PUERTO A PUERTO B PUERTO C
PUERTO A PUERTO B PUERTO C
PUERTO A PUERTO B
PUERTO A PUERTO B PUERTO C
PUERTO A PUERTO B PUERTO C
PUERTO A
PUERTO B PUERTO C PUERTO D PUERTO E
MODULACION POR ANCHO DE PULSOS (PWM) Modulación de ancho de pulso (PWM) , o la duración de pulso de modulación (PDM) , es una técnica muy utilizada para controlar el poder inercial de los aparatos eléctricos, hizo prácticas por los modernos interruptores electrónicos de potencia.
El valor medio de tensión (y corriente) alimenta a la carga se controla girando el interruptor entre la oferta y la carga dentro y fuera a un ritmo acelerado. Cuanto más tiempo el interruptor está en comparación con los períodos de descanso, mayor es la potencia suministrada a la carga.
La frecuencia de conmutación PWM tiene que ser mucho más rápido que lo que afecta a la carga, es decir, el dispositivo que utiliza el poder. Por lo general conmutaciones tienen que hacer varias veces por minuto en una estufa eléctrica, 120 Hz en un regulador regulador de la lámpara, de unos pocos kilohercios (kHz) a decenas de kHz para una unidad de motor y también a las decenas o cientos de kHz en los amplificadores de audio y computadora fuentes de alimentación.
El término del ciclo de trabajo describe la proporción de tiempo 'on' en el intervalo regular o "período" de tiempo, un ciclo de trabajo bajo corresponde a la energía baja, porque el poder está apagado durante la mayor parte del tiempo. El ciclo de trabajo se expresa en porcentaje, 100% es completamente en.
La principal ventaja de PWM es que la pérdida de potencia en los dispositivos de conmutación es muy baja. Cuando un interruptor está apagado no hay prácticamente ninguna corriente, y cuando está encendido, casi no hay caída de voltaje en el interruptor. Pérdida de potencia, siendo el producto del voltaje y la corriente, por lo tanto, en ambos casos cercano a cero. PWM también funciona bien con controles
digitales, que, debido a su naturaleza en / apagado, puede configurar fácilmente el ciclo de trabajo necesario.
PWM también se ha utilizado en algunos sistemas de comunicación que ha sido su ciclo de trabajo utilizado para transmitir información inf ormación a través de un canal de comunicación. En el pasado, cuando sólo el poder parcial que se necesitaba (por ejemplo, para una máquina de coser de motor), un reóstato (que se encuentra en el pedal de la máquina de coser es) conectado en serie con el motor ajustado la cantidad de corriente que fluye a través del motor, pero perdió también de energía en forma de calor en el elemento de resistencia. Era un esquema ineficiente, pero tolerable, porque la potencia total es baja. Este fue uno de varios métodos de control de potencia. Hubo otrosalgunos todavía en uso-como variable de autotransformadores , incluyendo la marca registrada "Autrastat 'para la iluminación teatral, y el Variac , por general, ajuste eléctrico de CA. Estos eran muy eficientes, pero también relativamente costoso.
Durante casi un siglo, algunos motores de velocidad variable eléctrica han tenido la eficiencia decente, pero eran algo más complejo que motores de velocidad constante, ya veces requiere voluminosos aparatos eléctricos externos, tales como un banco de resistencias de potencia variable o un convertidor rotativo, como la sala unidad de Leonard.
Sin embargo, además de unidades de motor para ventiladores, bombas y robótica servos, había una gran necesidad de medios compactos y de bajo costo para la aplicación de ajuste eléctrico para muchos dispositivos, como las cocinas eléctricas y reguladores de la lámpara.
Una aplicación inicial de PWM se encontraba en el Sinclair X10, un amplificador de 10 W de audio disponibles en forma de kit en la l a década de
1960. En la misma época PWM comenzó a ser utilizado en motores de corriente alterna de control. Muchos circuitos digitales pueden generar señales PWM (por ejemplo, muchos microcontroladores tienen salidas PWM). Se suele utilizar un contador que se incrementa de forma periódica (que se conecta directa o indirectamente con el reloj del circuito) y se pone a cero al final de cada periodo de la PWM. Cuando el valor del contador es mayor que el valor de referencia, la salida PWM cambios de estado de mayor a menor (o de bajo a alto). Esta técnica se conoce como la dosificación del tiempo, especialmente en lo que el tiempo de dosificación de control, que proporción fija de un ciclo de tiempo se gasta en el estado alto.
El contador se incrementará y restablecer periódicamente es la versión discreta de diente de sierra es el método de intersección. El comparador analógico del método de intersección se convierte en una simple comparación entero entre el valor actual del contador y el valor de referencia digital (posiblemente digitalizados). El ciclo de trabajo sólo podrán modificarse en pasos discretos, en función de la resolución del contador. Sin embargo, un contador de alta resolución puede proporcionar un rendimiento bastante satisfactorio.
Tipos Hay tres tipos de señales PWM (azul): la modulación de punta (arriba), del borde de salida de modulación (centro) y las legumbres centrada (los dos bordes están abajo modulada). Las líneas verdes son la forma de onda de diente de sierra (primer y segundo caso) y una forma de onda triangular (tercer caso) que se utiliza para generar las formas de onda PWM utilizando el método de interjectivo.
Hay tres tipos de modulación por ancho de pulso (PWM) son posibles: 1. El centro del pulso que se establezca en el centro de la ventana de tiempo y ambos bordes del pulso se trasladó a comprimir o expandir el ancho. 2. El borde de ataque se hace en el borde delantero de la ventana y el borde de la cola modulada. 3. El borde de la cola puede ser fijo y modulan el borde del papel.
PIC 16F690 CONTIENE PWM
PIC 16F84A
No contiene PWM incluido pero se puede programar
PIC 16F877 CONTIENE PWM
PIC 16F628 CONTIENE PWM
PIC 16F1824 CONTIENE PWM
PIC 16F648A CONTIENE PWM
NO CONTIENE PWM, PERO SE PUEDE PROGRAMAR
PIC 16F677
NO CONTIENE
PIC 16F685
PWM, PERO SE PUEDE PROGRAMAR
PIC 16F946 CONTIENE PWM
TIMERS Un temporizador es un tipo especial de reloj. A timer can be used to control the sequence of an event or process. Un contador de tiempo se puede utilizar para controlar la secuencia de un evento o proceso. Mientras que un cronómetro cuenta arriba de cero para medir el tiempo transcurrido, un temporizador de cuenta atrás de un intervalo de tiempo especificado, como un reloj de arena. Los temporizadores pueden ser mecánicos, electromecánicos, electrónicos (cuarzo), o incluso el software como todos los modernos ordenadores incluyen temporizadores digitales de una forma u otra. Cuando expire el plazo establecido algunos temporizadores se limitan a indicar que (por ejemplo, mediante una señal audible), mientras que otros funcionan los interruptores eléctricos, tales como un interruptor de tiempo, que los cortes de energía eléctrica. Temporizadores electrónicos Temporizadores electrónicos son esencialmente los relojes de cuarzo con una electrónica especial, y puede alcanzar una mayor precisión que los temporizadores mecánicos. Temporizadores electrónicos que la electrónica digital, pero puede tener un analógica o pantalla digital. Circuitos integrados han hecho la lógica digital tan barato que un temporizador electrónico es ahora más barato que muchos contadores mecánicos y electromecánicos. Temporizadores individuales se implementan como un simple chip único sistema informático, similar a un reloj y por lo general con el mismo, producido en masa, la tecnología. Los controladores modernos utilizan un controlador lógico programable en lugar de una caja llena de piezas electromecánicas. La lógica es usualmente concebida como si se tratara de relés, usando un lenguaje de programación especial llamada lógica de escalera. En PLCs, contadores de tiempo son por lo general simulada por el software integrado en el controlador. Cada temporizador es más que una entrada en una tabla mantenida por el software. Temporizadores digitales se utilizan en el dispositivo de seguridad como un temporizador de gas.
TEMPORIZADORES PC Sistemas de computadoras por lo general tienen al menos un temporizador. Estos suelen ser digitales contadores que, o bien aumentar o disminuir a una tasa fija de frecuencia , que a menudo es configurable, y que interrumpe el procesador al llegar a cero, o un contador con un tamaño de palabra lo suficientemente grande que no llegará a su límite de contador antes de fin de vida útil del sistema.
Temporizador más sofisticado puede tener la lógica de comparación para comparar el valor del temporizador con un valor específico, por software, que desencadena una acción cuando el valor del temporizador coincide con el valor preestablecido. Esto podría ser utilizado, por ejemplo, para medir los eventos o generación de ancho de pulso modulado formas de onda para controlar la velocidad de los motores (con una clase D digital amplificador electrónico).
Como el número de temporizadores de hardware en un sistema informático o un procesador es finito y limitado, sistemas operativos y sistemas embebidos suelen utilizar un temporizador de hardware único para poner en práctica un conjunto ampliable de temporizadores software. En este escenario, la rutina del temporizador de hardware de servicio de interrupción se ocuparía de la casa de mantenimiento y gestión de software como temporizadores que sean necesarias, y el temporizador de hardware se configura para que caduque cuando el temporizador de software es la próxima a expirar. Al vencimiento, la rutina de interrupción que actualizar el temporizador de hardware que expire cuando el temporizador de software es la próxima, ya cualquier acción que se pondría en marcha para los temporizadores de software que acababa de expirar. Temporizadores caducados que son continuas también se pone a un nuevo tiempo de caducidad en función de su intervalo de tiempo, y de una sola vez temporizadores sería deshabilitar o quitar de la serie de
temporizadores. Aunque el concepto es simple, se debe tener cuidado con la implementación de software temporizador si temas como la deriva y las interrupciones del temporizador retraso se debe minimizar.
2 DE 8 BITS Y 1 DE 16 BITS PIC 16F690
1 DE 8 BITS
PIC 16F84A
2 DE 8 BITS Y 1 DE 16 BITS PIC 16F877
2 DE 8 BITS Y 1 DE 16 BITS PIC 16F1517
4 DE 8 BITS Y 2 DE 16 BITS PIC 16F1824
2 DE 8 BITS Y 1 DE 16 BITS PIC 16F648A
1 DE 8 BITS Y 1 DE 16 BITS PIC 16F677
2 DE 8 BITS Y 1 DE 16 BITS PIC 16F685
2 DE 8 BITS Y 1 DE 16 BITS PIC 16F946
TEMPORIZADOR DE RESGUARDO (WATCHDOG, WDT)
El watchdog timer es un temporizador de 16 bit que puede ser usado como watchdog o por intervalos de tiempo. Al iniciarse un programa, el watchdog timer está activo y configurado por defecto con un intervalo de reset de ~32 [ms]. Para evitar esto el usuario debe configurar o detener el WDT antes de la expiración del intervalo inicial. La principal función del watchdog timer (WDT) es reiniciar el procesador después de que ocurra una falla o problema de software, o después de un intervalo de tiempo determinado generado por el programador, en cuyo caso se reinicia el procesador o el programa en ejecución. Si el watchdog timer no se emplea en ninguna subrutina puede ser configurado como un temporizador de intervalos y puede generar interrupciones en los intervalos de tiempo seleccionados. Podemos presentar las siguientes características del módulo watchdog timer: • Ocho intervalos de tiempos seleccionables por software. • Modo Watchdog. • Modo intervalo. • Acceso al registro de control WDT con contraseña protegida. • Pin de control de la función NMI/RST. • Fuente de reloj seleccionable. • Puede ser detenido para conservar la potencia.
OPERACIÓN El watchdog timer (WDT) se configura como watchdog o como temporizador de intervalos con el registro r egistro WDTCTL. El registro WDTCTL es de 16 bits, protegido por contraseña y es de lectura y escritura. El acceso de escritura o lectura debe ser manejado por instrucciones de palabras y el acceso a escritura incluir la contraseña 05Ah en el byte superior, en cambio el acceso a lectura es con el valor 069h en el byte superior. CONTADOR WATCHDOG TIMER El contador watchdog timer (WDTCNT) es un contador ascendente de 16 bit no directamente accesible vía software. El WDTCNT es controlado y selecciona los intervalos de tiempos a través del registro de control WDTCTL del watchdog timer. El WDTCNT puede ser alimentado por las
señales de reloj ACLK o SMCLK. La fuente de reloj es seleccionada con el bit WDTSSEL. MODO WATCHDOG Después de una condición PUC, el watchdog timer es configurado con un intervalo de reset inicial de ~32 [ms] usando la instrucción DCOCLK. El programador debe configurar, detener el WDT antes de la expiración del intervalo de reset inicial u otro PUC será generado. Cuando el WDT es configurado para operar en modo watchdog, tanto una escritura a WDTCTL con una clave incorrecta, o una expiración de intervalo de tiempo seleccionado dispara un PUC. Un PUC reinicia el WDT a su condición por defecto y configura en pin NMI/RST al modo reset. MODO DE TEMPORIZADOR DE INTERVALOS Seteando ó dejando en alto el bit WDTTMSEL en 1 selecciona el modo de temporizador de intervalos. Este modo puede ser usado para producir interrupciones periódicas. En el modo de temporizador de intervalos, el flag WDTIFG se setea en el momento en que expira el temporizador de intervalos seleccionado. Un PUC no es generado en el modo de temporizador de intervalos en el momento en que expira el temporizador de intervalos seleccionado y el WDTIFG habilita el bit WDTIE que permanece sin cambio. Cuando el bit WDTIE y el bit GIE son seteados, el flag WDTIFG requiere una interrupción. El flag de interrupciones WDTIFG es automáticamente peseteado cuando su requerimiento de interrupción es atendido, o puede ser peseteado por software. La dirección del vector de interrupciones en el modo temporizador de intervalos es diferente que en modo watchdog. Modificando el temporizador Watchdog El intervalo WDT debería ser cambiado junto con WDTCNTCL = 1 en una única instrucción a fin de evitar un PUC inmediato o interrupción. El WDT debería ser detenido antes de cambiar la fuente de reloj a fin de evitar un posible intervalo incorrecto.
INTERRUPCIONES DEL TEMPORIZADOR WATCHDOG El WDT usa dos bits de control en el SFRs para controlar interrupciones. • La interrupción del flag WDT, WDTIFG, localizado en IFG1.0 • La interrupción habilitada por el WDT, WDTIE, localizado en IE1.0
Cuando se usa el WDT en el modo watchdog, el flag WDTIFG origina un reset del vector de interrupciones. El WDTIFG puede ser usado por la rutina de servicio que atiende la interrupción de reset para determinar si el watchdog causó el reset del dispositivo. Si el flag es seteado, entonces el watchdog timer es iniciado con una condición de reset ya sea porque se terminó el tiempo o por una violación de seguridad. Si WDTIFG es limpiado, el reset fue causado por una fuente diferente. Cuando se usa el WDT en modo de temporizador de intervalo, el flag WDTIFG es seteado después del intervalo de tiempo seleccionado y requiere una interrupción del temporizador de intervalo WDT si los bits WDTIE y GIE están seteados. El vector de interrupción del temporizador de intervalo es diferente al vector de reset usado en el modo watchdog. En el modo de temporizador de intervalo, el flag WDTIFG es resteado automáticamente cuando es servida la interrupción, o puede ser reseteado vía software.
REGISTROS DEL WATCHDOG TIMER Tabla de registros del watchdog timer
WDTCTL, Watchdog Timer Register
IE1 , Interrupt Enable Register 1
IFG1, Interrupt Flag Register 1
Ejemplo.
A continuación se muestra un ejemplo con un fragmento de un programa donde se inicializan los osciladores
En los siguientes casos que estamos revisando todo contienen watchdog.
CONTIENE WDT PIC16F690
CONTIENE WDT PIC16F84A
CONTIENE WDT PIC16F877
CONTIENE WDT PIC16F628
CONTIENE WDT PIC16F1517
CONTIENE WDT PIC16F1824
CONTIENE WDT PIC16F648A
CONTIENE WDT PIC16F677
CONTIENE WDT PIC16F685
CONTIENE WDT PIC16F946
COMUNICACIÓN DIGITAL PERIFÉRICOS
COMUNICACIÓN CIRCUITOS INTER-INTEGRADOS (Inter-Integrated , I²C) I²C es un bus de comunicaciones en serie. Su nombre viene de InterIntegrated Circuit (Circuitos Inter-Integrados). La versión 1.0 data del año 1992 y la versión 2.1 del año 2000, su diseñador es Philips. La velocidad es de 100Kbits por segundo en el modo estándar, aunque también permite velocidades de 3.4 Mbit/s. Es un bus muy usado en la industria, principalmente para comunicar microcontroladores y sus periféricos en sistemas integrados (Embedded Systems) y generalizando más para comunicar circuitos integrados entre sí que normalmente residen en un mismo circuito impreso. Este sistema de intercambio de información a través de tan solo dos cables permite a circuitos integrados y módulos OEM interactuar entre sí a velocidades relativamente lentas. Emplea comunicación serie, utilizando un conductor para manejar el timming (pulsos de reloj) y otro para intercambiar datos. Este bus se basa en tres señales:
SDA (System Data) por la cual viajan los datos entre los dispositivos.
SCL (System Clock) por la cual transitan los pulsos de reloj que
sincronizan el sistema.
GND
(Masa) Interconectada "enganchados" al bus.
entre
todos
los
dispositivos
Las líneas SDA y SCL son del tipo drenador abierto, similares a las de colector abiertoponer peroenasociadas a un transistor efecto de por campo (ó FET). Se deben estado alto (conectar a lade alimentación medio
de resistores Pull-Up) para construir una estructura de bus tal que se permita conectar en paralelo múltiples entradas y salidas.
En el diagrama se observa la configuración eléctrica básica del bus. Las dos líneas de comunicación disponen de niveles lógicos altos cuando están inactivas. Inicialmente el número de dispositivos que se puede conectar al bus es ilimitado, pero obsérvese que las líneas tienen una especificación máxima de 400pF en lo que respecta a capacidad de carga. La máxima velocidad de transmisión de datos que se puede obtener es de aproximadamente 100Kbits por segundo.
Las definiciones o términos utilizados en relación con las funciones del bus I2C son las siguientes:
Maestro (Master): Dispositivo que determina la temporización y la dirección del tráfico de datos en el bus. Es el único que aplica los pulsos de reloj en la línea SCL. Cuando se conectan varios dispositivos maestros a un mismo bus la configuración obtenida se denomina "multi-maestro".
Esclavo (Slave): Cualquier dispositivo conectado al bus incapaz de generar pulsos de reloj. Reciben señales de comando y de reloj proveniente del dispositivo maestro.
Bus Desocupado (Bus Free): Estado en el cual ambas líneas (SDA y SCL) están inactivas, presentando un estado lógico alto. Únicamente en este momento es cuando un dispositivo maestro puede comenzar a hacer uso del bus.
Comienzo: Sucede cuando un dispositivo maestro hace ocupación del bus, generando esta condición. La línea de datos (SDA) toma un estado bajo mientras que la línea de reloj (SCL) permanece alta.
Parada: Un dispositivo maestro puede generar esta condición dejando libre el bus. La línea de datos toma un estado lógico alto mientras que la de reloj permanece también en ese estado.
Dato Válido: Sucede cuando un dato presente en la línea SDA es estable mientras la línea SCL está a nivel lógico alto.
Formato de Datos: La transmisión de datos a través de este bus consta de 8 bits de datos (ó 1 byte). A cada byte le sigue un noveno pulso de reloj durante el cual el dispositivo receptor del byte debe generar un pulso de reconocimiento, conocido como ACK. Esto se logra situando la línea de datos a un nivel lógico bajo mientras transcurre el noveno pulso de reloj.
Dirección (Address): Cada dispositivo diseñado para funcionar en este bus dispone de su propia y única dirección de acceso, que viene preestablecida por el fabricante. Hay dispositivos que permiten establecer externamente parte de la dirección de acceso. Esto permite que una serie del mismo tipo de dispositivos se puedan conectar en un mismo bus sin problemas de identificación. La dirección 00 es la denominada "de acceso general", por la cual responden todos los dispositivos conectados al bus.
Lectura/Escritura (Bit R/W): Cada dispositivo dispone de una dirección de 7 bits. El octavo bit (el menos significativo ó LSB) enviado durante la operación de direccionamiento corresponde al bit que indica el tipo de operación a realizar. Si este bit es alto el dispositivo maestro lee información proveniente de un dispositivo esclavo. En cambio, si este bit fuese bajo el dispositivo maestro escribe información en un dispositivo esclavo.
Protocolo del Bus
Como es lógico, para iniciar una comunicación entre dispositivos conectados al bus I2C se debe respetar un protocolo. Tan pronto como el bus esté libre, un dispositivo maestro puede ocuparlo generando una condición de inicio. El primer byte transmitido después de la condición de inicio contiene los siete bits que componen la dirección del dispositivo de destino seleccionado y un octavo bit correspondiente a la operación deseada (lectura o escritura). Si el dispositivo cuya dirección se apuntó en los siete bits está presente en el bus éste responde enviando el pulso de reconocimiento ó ACK. Seguidamente puede comenzar el intercambio de información entre los dispositivos.
Cuando la señal R/W está previamente a nivel lógico bajo, el dispositivo maestro envía datos al dispositivo esclavo hasta que deja de recibir los
pulsos de reconocimiento, o hasta que se hayan transmitido todos los datos. En el caso contrario, es decir cuando la señal R/W estaba a nivel lógico alto, el dispositivo maestro genera pulsos de reloj durante los cuales el dispositivo esclavo puede enviar datos. Luego de cada byte recibido el dispositivo maestro (que en este momento está recibiendo datos) genera un pulso de reconocimiento.
El dispositivo maestro puede dejar libre el bus generando una condición de parada (Stop). Si se desea seguir transmitiendo, el dispositivo maestro puede generar otra condición de inicio el lugar de una condición de parada. Esta nueva condición de inicio se denomina "inicio repetitivo" y se puede emplear para direccionar un dispositivo esclavo diferente ó para alterar el estado del bit de lectura/escritura (R/W). Ejemplo En este ejemplo se muestra como leer y grabar datos en una memoria EEPROM Externa desde un PIC utilizando el lenguaje C y el compilador CCS, concretamente la memoria a utilizar será la 24LC256A .
Incluimos en nuestro programa por medio de la directiva #include: #include
"24256.c"
//Incluimos
librería
24256
Nota: por defecto la librería define los pines RB1 y RB0 como SDA y SCL, como en nuestro ejemplo RB0 ya está ocupado. Hay que modificar esos valores en la librería y sustituirlos por RC4 y RC3, de la siguiente manera.
Donde pone: #define EEPROM_SDA PIN_B1 #define EEPROM_SCL PIN_B0 poner: #define EEPROM_SDA PIN_C4 #define EEPROM_SCL PIN_C3 Las funciones que incluye esta librería son:
init_ext_eeprom(); //llamada a la función de inicialización. Debe de init_ext_eeprom(); //llamada ir antes que las dos de abajo write_ext_eeprom(a,, d); write_ext_eeprom(a d); //Escribe //Escribe el byte d byte d en en la dirección a d = read_ext_eeprom( read_ext_eeprom(a); a); // // lee el valor que hay en la dirección a y se lo asigna a la variable d
CONTIENEN COMUNICACIÓN I²C pic16f877 pic16f1517 pic16f690 pic16f1824 pic16f946 NO CONTIENEN COMUNICACIÓN I²C pic16f648a pic16f685 pic16f628 pic16f677 pic16f84a
RECEPTOR
ASÍNCRONO UNIVERSAL / TRANSMISOR Y RECEPTOR SÍNCRONO UNIVERSAL / TRANSMISOR Un transmisor receptor asíncrono universal /, abreviado UART, es un tipo de "transmisor asíncrono / receptor", una pieza de equipo de hardware que traduce los datos entre el paralelo el paralelo y serial formas. UART ssee utilizan en combinación con los estándares de comunicación, tales como EIA como EIA RS-232 RS-232 , RS-422 o RS-485 . La designación universal indica indica que el formato de datos y velocidades de transmisión son configurables y que los niveles reales de señalización eléctrica y los métodos (como la (como la señalización diferencial , etc) por lo general son manejadas por un circuito de control especial externa a la UART. Una UART es generalmente un individuo (o parte de una) de circuitos integrados utilizados para comunicaciones en serie en un ordenador u otro dispositivo periférico puerto serie . UARTs ahora son comúnmente incluidos en los microcontroladores. A dos UART, UART, o Duart, combina dos UART en un solo chip. Muchos circuitos circuitos integrados modernos vienen ahora con una UART que también se puede comunicar de forma sincrónica, estos dispositivos son llamados USARTs (universal síncrono / asíncrono receptor / transmisor). El asíncrono universal receptor / transmisor (UART) se bytes de datos y transmite los bits individuales de una manera secuencial. secuencial. [1] En el destino, un segundo segundo UART re-ensambla los bits en bytes completos. completos. Cada uno contiene un UART registro de desplazamiento que es el método fundamental de la conversión entre las formas en serie y paralelo. Transmisión en serie de la información digital (bits) a través de un solo cable u otro medio es mucho más rentable que la transmisión en paralelo a través de múltiples cables. La UART por lo general no genera directamente o recibir las señales externas utilizadas entre los diferentes elementos de los equipos. Dispositivos separados de interfaz se utilizan para convertir el nivel el nivel lógico de las señales de la UART y de los n niveles iveles externos d dee señalización. Las señales externas pueden ser de muchas muchas formas diferentes. Ejemplos de
normas para la señalización de tensión son RS-232 son RS-232 , RS-422 y RS-485 de la EIA . Históricamente, la corriente (en bucles (en bucles de corriente ) fue utilizado en los circuitos de telegrafía. Algunos esq esquemas uemas de señalización no utilizan cables eléctricos. Ejemplos de este tipo son de fibra óptica , IrDA ( infrarrojos ), y (sin cables) Bluetooth en su perfil de puerto serie (SPP). Algunos esquemas de señalización utilizar la modulación de una señal portadora (con o sin cables). Ejemplos de ello son la modulación modulación de las señales de audio con una línea telefónica módem , RF modulación con radios de datos, y el DC-LIN el DC-LIN para la para la línea de comunicación de energía . La comunicación puede ser "full duplex" (enviar y recibir al mismo tiempo) o "half duplex" (dispositivos de turnos de transmisión y recepción). enmarcar caracteres
Cada personaje es enviado como un poco la lógica de comenzar con dosis bajas, un número configurable de bits de datos (por lo general 7 u 8, a veces 5), una opción bit de paridad , y uno o más bits altamente lógicos parar. El bit de de inicio indica al receptor que que un nuevo personaje que viene. Los próximos cinco a ocho bits, bits, dependien dependiendo do del conjunto d dee códigos empleados, representan el ccarácter. arácter. Después de los bits de datos puede ser un bit de paridad. Los próximos uno o dos bits están están siempre en la marca (lógico alto, es decir, '1 ') y llamó a la condición de bit de parada (s). Que la señal del receptor que el personaje se ha completado. Dado que el bit de inicio es lógico bajo (0) y el bit de parada es lógico alto (1) entonces siempre hay una clara demarcación entre el carácter anterior y la siguiente. RECEPTOR Todas las operaciones del hardware UART son controladas por una señal de reloj que funciona a un múltiplo (por ejemplo, 16) de la velocidad de datos - cada bit de datos es tan largo como como 16 pulsos de reloj. El receptor
comprueba el estado de la señal entrante en cada pulso de reloj, buscando el comienzo de de la bit de inicio. Si el bit de inicio aparente aparente dura por lo menos la mitad de las veces poco, es válido y señala el comienzo de un nuevo personaje. Si no es así, el pulso falso es ignorado. Después de esperar un poco más de tiempo, el estado de la línea es de nuevo la muestra y el consiguiente nivel registrado en un registro de desplazamiento. Después de q que ue el número requerido de períodos de bits para la longitud de caracteres (5 a 8 bits, por lo general) que hayan transcurrido, el contenido del registro de desplazamiento está disponible (en paralelo) al sistema sistema de recepción. La UART se establece un indicador que muestra nuevos datos están disponibles, y también puede generar un procesador de interrumpir de interrumpir para pedir que el procesador central transfiere los datos recibidos. En algunos tipos comunes comunes de UART, una pequeña primero en entrar, primero en salir FIFO buffer de memoria se inserta entre el registro de desplazamiento del receptor y la interfaz del sistema host. Esto permite permite que que el tiempo del procesador central más para para manejar una interrupción de la UART y evita la pérdida de los datos recibidos a tasas elevadas. TRANSMISOR Funcionamiento de la transmisión es más sencilla, ya que está bajo el control del sistema de transmisión. Tan pronto como los datos se deposita en el registro de desplazamiento después de completar el carácter anterior, el hardware UART genera un bit de inicio, cambia el número necesario de bits de datos a la línea, genera y añade el bit de paridad (si se utiliza), y añade los bits de parada. Dado que la transmisión transmisión de un solo carácter puede tomar mucho tiempo en relación con las velocidades de la CPU, la UART mantendrá una bandera que muestra el estado ocupado por lo que el sistema de acogida no se deposita un nuevo personaje para la transmisión hasta que el anterior se haya completado, lo que también también puede ser hecho con una interrupción. Desde full-duplex requiere caracteres para ser enviados y recibidos al mismo tiempo, el uso práctico UARTs dos turnos diferentes registros de los caracteres transmitidos y los caracteres recibidos.
APLICACIÓN UARTs de transmisión y recepción debe estar configurado para la velocidad de bits misma longitud de caracteres, la paridad y los bits de parada para el ccorrecto orrecto funcionamiento. La recepción UART puede puede detectar algunos ajustes no coinciden, y establecer un "error de trama" bit bandera para el sistema de acogida, en casos excepcionales, la recepción UART producirá un flujo irregular de personajes mutilados y transferirlos al sistema host. Típico de los puertos de serie utilizado con computadoras personales conectadas a módems utilizan ocho bits de datos, sin paridad y un bit de parada, porque esta configuración, el número de caracteres ASCII por segundo es igual a la tasa de bits dividido por 10. Algunos de muy bajo costo costo ordenadores o sistemas embebidos prescindir de una UART y se utiliza la ordenadores CPU para probar el estado de un puerto de entrada o manipular directamente un puerto de salida para la transmisión de datos. Si bien es muy intensivo de de la CPU, ya que el tiempo d dee la CPU es fundamental, estos sistemas evitan la compra de un costoso chip UART. La técnica se conoce como un bit-golpeando un bit-golpeando el puerto serie. TRANSMISIÓN SINCRÓNICA Fichas USART tiene dos modos sincrónicos y asincrónicos.
En la
transmisión síncrona, datos se recupera porseseparado la corriente desíncrona, datos y no nlos o los bitsdel dereloj arranque / parada utilizan. de Esto mejora la eficiencia de la transmisión en los canales adecuados, ya que más de los bits enviados son datos utilizables y no la elaboración de caracteres. Una transmisión asíncrona asíncrona no envía más de los personajes de la interconexión cuando el dispositivo de transmisión no tiene nada que enviar, pero una interfaz sincrónica debe enviar "pad" personajes para mantener la sincronización entre el receptor y el ttransmisor. ransmisor. El relleno habitual es el ASCII el ASCII "SYN" carácter. carácter. Esto pu puede ede hacerse automáticamente por el dispositivo de transmisión.
COMUNICACIÓN COMUNICACIÓ N UART CONTIENE
NO CONTIENE pic16f877 pic16f1517 pic16f690 pic16f1824 pic16f648a pic16f685 pic16f946 pic16f628 pic16f677 pic16f84a
COMUNICACIÓN USART CONTIENE pic16f877 pic16f1517 pic16f690 pic16f1824 pic16f648a pic16f685 pic16f946 pic16f628
NO CONTIENEN pic16f677 pic16f84a
View more...
Comments