Sie sind auf Seite 1von 51

GAMA ALTA DE MICROCONTROLADORES

COMPILADOR C CCS
SISTEMAS EMBEBIDOS

DI
GIT
AL
ES
III:
1

GAMA ALTA DE MICROCONTROLADORES

MEMORIA EEPROM

PIC18F4550

DIGITALES III:
2

GAMA ALTA DE
MICROCONTROLADORES

MEMORIA EEPROM INTERNA


Los microcontroladores cuentan con memoria EEPROM
interna en la cual se almacenan datos de 8 bits. La
memoria EEPROM permite hasta un millon de ciclos
de lectura y escritura.
La familia 18, en especial el pic18f4550 cuenta con
una capacidad de 256 posiciones. Para acceder a elle
se utilizan funciones como: read_eeprom y
write_eeprom.
READ_EEPROM
Permite leer la memoria del microcontrolador, el
resultado de esta se asigna auna variable de tipo
entero 8, como parmetro se enva la posicion en la
cual se desea leer.
Estructura: variable=READ_EEPROM( Posicin )

GAMA ALTA DE
MICROCONTROLADORES

WRITE_EEPROM
Permite escribir datos en la memoria EEPROM del
microcontrolador, el dato es de tipo entero 8, como
parametro se envia la posicion en la cual se desea
escribir y el dato.
Estructura: WRITE_EEPROM(Posicion, DATO)
Posicin corresponde a un valor entre 0 y 255.
Ejemplo:
Int8 cuenta;
cuenta=read_eeprom(0);
SET_TIMER0(cuenta);
#ROM
Permite insertar datos en la memoria de programa, no
4
se recomienda su uso. Ejemplo:

GAMA ALTA DE MICROCONTROLADORES COMPILADORES

EJERCICIO EN CLASE
El siguiente ejercicio guarda en memoria el valor de
la cuenta en RA4:
lcd_init();
contador=0;
printf(lcd_putc,"\fmodulo
contador");
if (read_eeprom(0)==255)
{
write_eeprom(0,0);
SET_TIMER0(0);
}
else
{
cuenta=read_eeprom(0);
SET_TIMER0(cuenta);
}

for(;;)
{
contador=get_timer0();
write_eeprom(0,contador);
printf(lcd_putc,"\nContador=
%u",contador);
delay_ms(1000);
}

GAMA ALTA DE MICROCONTROLADORES Diagrama COMPILADORES


de conexiones

GAMA ALTA DE MICROCONTROLADORES

PWM

PWM
MODULACION POR ANCHO DE PULSO
Aplicaciones: Controlar La Velocidad De Giro De
Motores, Intensidad De Brillo De Bombillas
Algenas,
GENERADOR DE FRECUENCIA.

PIC18F4550

DIGITALES III:
7

GAMA ALTA DE MICROCONTROLADORES

Genera una salida de 10 bits de resolucin


La salida PWM se compone de un ciclo en alto denominado
DUTTY y un ciclo en bajo, el tiempo del ciclo se denomina
periodo.
La velocidad de un motor depende del ciclo DUTY, entre mas
pequeo el motor gira a menor velocidad, con duty mas
grande que el tiempo en bajo, el motor gira a mayor
velocidad. Los clculos de tiempo y periodo se describen a
continuacin
Las PWMs tendrn la misma
frecuencia y tasa de actualizacin
(interrupcin TMR2)
DIGITALES III: 8

GAMA ALTA DE MICROCONTROLADORES

Pasos a seguir para definir una onda PWM


Cuando se utilizaba el ensamblador se definian
los siguientes pasos:
1. Establecer el periodo T escribiendo en el
registro PR2.
2. Establecer el ciclo de trabajo D en CCPRxL y en
CCPxCON<5:4>.
3. Configurar el pin CCPx como salida.
4. Fijar el prescaler de TMR2 y activar el
temporizador.
5. Configurar el mdulo CCP para funcionar en
modo PWM.

DIGITALES III: 9

GAMA ALTA DE MICROCONTROLADORES

Clculos de PR2
T = (PR2 + 1) 4 TOSC PRESCALERTMR2
1. Establecer el periodo T escribiendo en el
registro PR2.
Primero debemos calcular el periodo en PWM, para ello
se aplica la siguiente formula:
PWM period = [(PR2)+1] 4 TOSC (TMR2 prescaler
value)
Ejemplo: deseamos obtener una frecuencia de salida
de 320 Hz, con ello aplicamos la formula anterior, pero
es importante recordar que:
El periodo PWM es igual a : 1 / frecuencia solicitada
DIGITALES III: 10

GAMA ALTA DE MICROCONTROLADORES

Clculos de PR2
T = (PR2 + 1) 4 TOSC PRESCALERTMR2
TOSC, es el periodo del oscilador, y recuerde en este
caso que es igual a: 1 / frecuencia del oscilador
Una vez aclarados estos dos valores la funcin se
puede expresar como:
1/frecuencia = (PR2+1). 4 . (1/fosc) * Prescaler TMR2
1/frecuencia = (PR2+1). (4/fosc) * Prescaler TMR2
Con oscilador de fosc=4MHz y un Prescaler TMR2
= 16, se obtiene
que para 320Hz, se debe asignar PR2 el valor d194
DIGITALES III: 11

GAMA ALTA DE MICROCONTROLADORES

2. Establecer el ciclo de trabajo D en CCPRxL y en


CCPxCON<5:4>.
El segundo paso consiste en calcular DUTY, para ello se
aplica la siguiente formula:
duty cycle =(CCPR1L:CCP1CON<5:4>) TOSC (TMR2
prescaler)
Ejemplo: deseamos que la frecuencia de salida de 320
Hz, tenga un ciclo DUTY del 50%, para ello aplicamos la
formula anterior, pero es importante recordar que:
TOSC, es el periodo del oscilador, y recuerde en este
caso que es igual a: 1 / frecuencia del oscilador
DIGITALES III: 12

GAMA ALTA DE MICROCONTROLADORES

2. Establecer el ciclo de trabajo D en CCPRxL y


en CCPxCON<5:4>.
Una vez aclarados este dato es importante mencionar
que el ancho de pulso (tiempo en estado alto) es
la mitad del periodo de la seal, por ello la
funcin se puede expresar como:
1/(2*frecuencia) = (CCPR1L&2bits de CCP1CON)
*(1/fosc) * Prescaler TMR2
Es decir que (2 * frecuencia solicitada) es: 2 *
320 = 640, este valor indica la mitad del periodo
para una frecuencia inicial de 320 Hz

DIGITALES III: 13

GAMA ALTA DE MICROCONTROLADORES

2. Establecer el ciclo de trabajo D en CCPRxL y en CCPxCON<5:4>.

Remplazamos los valores en la formula y tenemos:


1/(2*frecuencia) = (CCPR1L&2bits de CCP1CON) *(1/fosc)
* Prescaler TMR2
El circuito tiene un cristal de 4MHz y se trabaja con un
preescaler de 16 en TMR0.
1/(2*320) = (CCPR1L&2bits de CCP1CON) *(1/4000.000) *
16
1/640
= (CCPR1L&2bits de CCP1CON) *(16/4000.000)
1 * 4000000/640 * 16= (CCPR1L&2bits de CCP1CON)
4000000/10240 = (CCPR1L&2bits de CCP1CON)
390=(CCPR1L&2bits de CCP1CON)
391= 0110 0001 10 =(CCPR1L&2bits de CCP1CON)

Los dos bits de menor peso se asignan a CCP1CON,


esto debido a que el valor de resolucin se debe
ajustar a 10 bits, luego:
CCPR1L
= 0110 0001 base 2= 97 base 10
DIGITALES
CCP1CON<5:4>=
10 base 2 = 2 en base
10 III:

14

GAMA ALTA DE MICROCONTROLADORES

PWM en CCS
Cuando se trabajaba en ensamblador era necesario
escribir un cdigo extenso para realizar el control del
PWM, CCS simplifica esta operacin, pero Usted debe
conocer que PWM desea generar, para ello ya debi
calcular el valor de carga del registro para establecer el
periodo y el calculo para establecer el Dutty.
El PICWIZARD le permite seleccionar la frecuencia
deseada y el porcentaje del ciclo Dutty, esta opcin se
selecciona en la etiqueta rotulado como: Otros, esta
pantalla desplegada por CCS se observa a
continuacin:
DIGITALES III: 15

GAMA ALTA DE MICROCONTROLADORES

16
DIGITALES III: 16

GAMA ALTA DE MICROCONTROLADORES

CCS cuenta con las siguientes funciones para controlar


el modulo PWM as:
SETUP_CCPx()
Permite establecer el modo de trabajo, ya sea como
PWM, comparador o captura. Este es similar a los bits 0
a 3 del registro CCPxCON, x puede ser 1 o 2. Este
registro se ilustra en la figura siguiente.
Para establecer CCP en modo PWM se carga el
valor:
CCP_PWM y otras opciones para Habilitar el
Pulse Width Modulator
Ejemplo:
setup_ccp1(CCP_PWM);
DIGITALES III: 17

GAMA ALTA DE MICROCONTROLADORES

18
DIGITALES III: 18

GAMA ALTA DE MICROCONTROLADORES

set_pwm1_duty(valor)
Permite establecer el valor asignado a los registros
CCPRxL y en CCPxCON<5:4> este valor se obtiene de
la formula ya mencionada en secciones anteriores.
Valor puede ser una constante o una variable de 8 o 16
bits. Este valor se establece teniendo en cuenta el
preescaler del timer 2
Ejemplo:
set_pwm1_duty(391);
Para ello se establecer el timer2 con un preescaler de 16
y un postscale de 1

DIGITALES III: 19

GAMA ALTA DE MICROCONTROLADORES

setup_timer_2()
La sintaxis es: setup_timer_2 (modo, periodo,
postscale)
El modo puede ser una de las siguientes
opciones:
T2_DISABLED
T2_DIV_BY_1
T2_DIV_BY_4
T2_DIV_BY_16

El periodo es un entero entre 0 a 255 que


determina cuando el valor del reloj se resetea.
postscale
es un nmero de 1 a 16 que
determina cuantos desbordamientos del timer se
ejecutan antes de una interrupcin. Para PWM
este se debe fijar en 1.

DIGITALES III: 20

GAMA ALTA DE MICROCONTROLADORES

Para observar la validez de las formulas, se desea


obtener una frecuencia de 320 Hz por C2, el ciclo
Dutty es del 50%, para un pic18f4550 con un
cristal de 4Mhz y un preescaler de 16 en TMR0.
Las
formulas
permiten
establecer
que
PR2 debe valer
194 y que los
registros
para
Duty deben ser
iguales a 391.
El cdigo que se
programa es el
siguiente:
DIGITALES III: 21

GAMA ALTA DE MICROCONTROLADORES

La
siguiente
grafica
funcionamiento:

ilustra

su

correcto

22
DIGITALES III: 22

GAMA ALTA DE MICROCONTROLADORES

Ejercicio en clase:
Desarrolle un programa que lea un canal de
conversin anloga a digital y segn esta
se afecte el duty de PWM, observe la
siguiente grfica para un pic 16f870:

DIGITALES III: 23

GAMA ALTA DE MICROCONTROLADORES

CONTROL REMOTO POR


INFRARROJO

PIC18F4550

DIGITALES III:
24

GAMA ALTA DE MICROCONTROLADORES


MODULOS DE CONTROL REMOTO POR INFRARROJO
MODULOS DE CONTROL REMOTO POR INFRARROJO
Modulador receptor de infrarrojo diseado para aplicaciones de
control remoto sintonizado a 40Khz. Incluye amplificador de
entrada, limitador, varios filtros pasabandas, demodulador,
integrador y comparador.
Existen diversos modelos entre ellos encontramos el:
TFM5360SHARP S26 GP1UM28YK

2
3
GP1UM27XK Series

GP1UM27XK Series
DIGITALES III: 25

GAMA ALTA DE MICROCONTROLADORES


MODULOS DE CONTROL REMOTO POR INFRARROJO

MODULOS DE CONTROL REMOTO POR INFRARROJO


GP1UM28YK Series

2
1

GP1UM27XK Series GP1UM27XK Series


DIGITALES III: 26

GAMA ALTA DE MICROCONTROLADORES


MODULOS DE CONTROL REMOTO POR INFRARROJO

DIAGRAMA DE BLOQUES INTERNOS

DIGITALES III: 27

GAMA ALTA DE MICROCONTROLADORES


MODULOS DE CONTROL REMOTO POR INFRARROJO
MODELOS SHARP

Parmetros de funcionamiento

Voltaje de alimentacin tpico

DIGITALES III: 28

GAMA ALTA DE MICROCONTROLADORES


MODULOS DE CONTROL REMOTO POR INFRARROJO
Sistema ptico estndar
http://pablob86.elapco.net/2010/05/tr
ansmisor-infrarrojo-ir-con-pic16f87.html

http://www.puntoflotante.net/MODEXP
ANSION4.htm

DIGITALES III: 29

GAMA ALTA DE MICROCONTROLADORES


MODULOS DE CONTROL REMOTO POR INFRARROJO
Formato de trama

DIGITALES III: 30

GAMA ALTA DE MICROCONTROLADORES


MODULOS DE CONTROL REMOTO POR INFRARROJO
Para transmitir se requiere:
-control PWM de 30 Khz a 50 Khz y con la seal acoplada
de la lnea de transmisin rs232 permite encender el led
infrarrojo

DIGITALES III: 31

GAMA ALTA DE MICROCONTROLADORES


MODULOS DE CONTROL REMOTO POR INFRARROJO
Diagrama de bloques:

Tx

MICRO
PIC16F877

MICRO
PIC16F628

Rx

DIGITALES III: 32

GAMA ALTA DE MICROCONTROLADORES


MODULOS DE CONTROL REMOTO POR INFRARROJO
- TRANSMISOR

1
1

0
0

Enciende
No Conduce pulsos
NPN
3904

parpadea
Conduce pulsos
1

NPN
3904

El anterior anlisis hace necesario agregar otra compuerta para que


se pague cuando no hay que transmitir.
DIGITALES III: 33

GAMA ALTA DE MICROCONTROLADORES


MODULOS DE CONTROL REMOTO POR INFRARROJO
- TRANSMISOR

No Enciende
No Conduce PWM

1
1

NPN
3904

El receptor ante la ausencia hace salida igual a 1


Enciende
Conduce PWM
0
0

1
X

X X

NPN
3904

El receptor ante la presencia hace salida igual a 0

DIGITALES III: 34

GAMA ALTA DE MICROCONTROLADORES


MODULOS DE CONTROL REMOTO POR INFRARROJO
MODULOS RECEPTOR

PNP
3906

DIGITALES III: 35

GAMA ALTA DE MICROCONTROLADORES

MODULOS DE CONTROL REMOTO POR


INFRARROJO
CONEXIONADO DEL TRANSMISOR MODO
SERIAL ORIGINAL
Construya en clase un modulo que transfiera por
medio de infrarrojos datos

DIGITALES III: 36

GAMA ALTA DE MICROCONTROLADORES


PROGRAMANDO LOS MICROCONTROLADORES

ODULOS DE TRANSMISION Y RECEPCION ADAPTACION MODO SERIAL OR

Antes de programar debemos tener en cuenta los


tiempos mximos de alto y bajo, para la clase he
modificado la librera RS232 debido a que el tiempo
en alto no supera de 1200 Us y el tiempo en bajo no
supera 900 uS; el tiempo del bit se ajusta a 500us,
para no exceder los limites,
pero es necesario
recordar que no puede enviar mas de 50 pulsos
continuos.
El tiempo apropiado es 833.33 uS para una velocidad
de 1200 bps, el cual se ajusta a los parmetros de
mximo y mnimo tiempo

DIGITALES III: 37

GAMA ALTA DE MICROCONTROLADORES


PROGRAMANDO LOS MICROCONTROLADORES
MODULOS DE TRANSMISION RS232 MODIFICADO
Pero antes de continuar hay que recordar que el sensor recibe
mximo una seal en bajo de 900 us y 1200 us en alto, el
problema es que pasa si se enva la letra A utilizando RS232,
es decir el valor binario B'0100 0000', solo existe un uno, en
consecuencia el sensor no responde y si enva mas de un 1
consecutivo , por ejemplo el numero 255 tambin se presenta
el problema; la solucin es asignar un tiempo en bajo y un
tiempo en alto enviar el bit y la negacin del mismo en el
protocolo.
Ejemplo de negacin del bit:
ASCCI de A=0 1 0 0
0 0 0 0 Byte a enviar,
pero se debe transmitir el siguiente valor:
A=01 10 01 01
01 01 01 01
Lo anterior requiere que el protocolo RS232 debe trabajar
como si configurara a un bit de parada.
En internet se encuentran otros sensores de infrarrojo que
cuando detectan la seal sin importar el tiempo esta asigna
cero a su salida.
DIGITALES III: 38

GAMA ALTA DE MICROCONTROLADORES


MODULOS DE CONTROL REMOTO POR INFRARROJO
CONEXIONADO DEL TRANSMISOR MODO SERIAL MODIFICADO

DIGITALES III: 39

GAMA ALTA DE MICROCONTROLADORES


PROGRAMANDO LOS MICROCONTROLADORES

Se requiere modificar o crear sus propias libreras de


comunicaciones tanto en el receptor como en el transmisor
y en el receptor el programa debe ser capaz de determinar
si una comunicacin se obstruyo para reiniciar.
Aplicaciones :
Desde enlazar dispositivos de entrada o salida a un
microcontrolador, hasta transferir datos de un PC a otro. En
el rea de domtica piense en disear un control remoto
para apagar o encender luces, atenuar el brillo de una
lmpara o incluso abrir una chapa electrnica.
Tambin si se implementa un transmisor o un receptor por
dispositivo se puede consultar datos y establecer una
comunicacin entre diferentes mdulos.
Si se considera que el acabado del mdulo transmisor es
muy artesanal, puede usted comprar un control universal
de televisin y construir el receptor que sea capaz de
decodificarlo.
DIGITALES III: 40

GAMA ALTA DE MICROCONTROLADORES


PROTOCOLOS DE INFRARROJOS

La siguiente es la documentacin que se encuentra en


pginas
web
disponibles
entre
ellas:
http://
www.ucontrol.com.ar/Articulos/protocolo_de_los_controles_
remotos_philips_RC5/protocolo_de_los_controles_remotos_ph
ilips_RC5.htm
,esta fue consultada el 18 de mayo de 2011 a las 07:40
a.m.; en ella se encuentra la siguiente informacin que es
de utilidad en la decodificacin del protocolo philips RC5.
Caractersticas:
5 bits de direccin y 6 bits para el comando (7, en el caso
del RC5X)
Codificacin tipo Manchester (Bi-phase coding)
Frecuencia portadora de 36KHz.
Tiempo constante para cada bit, de 1.778ms (64 ciclos a
36KHz.)

DIGITALES III: 41

GAMA ALTA DE MICROCONTROLADORES


PROTOCOLOS DE INFRARROJOS

El protocolo consiste en un tren de pulsos cuadrados de


36Khz (la denominada "portadora"). Cada "1" esta
codificado como 889 microsegundos de pulsos, y 889
microsegundos de "silencio". El "0" se codifica como 889
microsegundos de "silencio" y 889 microsegundos de
pulsos. La longitud total del "0" y del "1" es idntica, y son
1778 microsegundos (o 1,778 milisegundos).

Para la practica se encuentra en el comercio algunos mdulos


receptores para infrarrojo, entre ellos el GP1U587Y, el cual
trabaja a 56800 hz, su costo es de 1500 pesos colombianos.
DIGITALES III: 42

GAMA ALTA DE MICROCONTROLADORES


GP1U587Y
Las siguientes son las caractersticas del modulo receptor
GP1U587Y que se encuentran en las tiendas de electrnica de la
ciudad

De ellas se puede establecer que se debe trabajar con mximo


600us en bajo y en alto, la informacin se debe codificar en
Manchester.
DIGITALES III: 43

GAMA ALTA DE MICROCONTROLADORES


GP1U587Y
Su forma fsica es:

DIGITALES III: 44

GAMA ALTA DE MICROCONTROLADORES


PROTOCOLOS DE INFRARROJOS

La siguiente descripcin se toma de la pgina


web en mencin:
Para que el receptor sepa que le esta
"diciendo" el emisor remoto, debe poder
interpretar las "tramas" de ceros y unos que
este le enva. Cada trama es un comando, y esta
compuesto por 14 bits (15 en el caso del RC5X).
De esos 14 bits, los primeros 2 bits son de
"start" (arranque): siempre son "1". El tercer bit
se invierte cada vez que una tecla se pulsa y se
suelta nuevamente, para poder distinguir si una
tecla permanece presionada o se ha presionado
mas de una vez. Los siguientes 5 bits
corresponden a la direccin del dispositivo
receptor, y los ltimos 6 al comando trasmitido.
DIGITALES
III: 45
Esto permite utilizar un mismo control
remoto

GAMA ALTA DE MICROCONTROLADORES


PROTOCOLOS DE INFRARROJOS

Hay una variacin del cdigo RC5 llamada RC5X que dispone
de 7 bits para determinar el comando (lo que permite 128
comandos diferentes vs. los 64 comandos del RC5 tradicional).
La forma de la trama es la misma, pero el segundo bit de start
(S2) es utilizado como el bit 7 del comando.
Actividad en clase:
ACTIVIDAD EN CLASE
Realice el montaje correspondiente en clase y construya el
protocolo en CCS.
El montaje se ilustra en la siguiente imagen:
DIGITALES III: 46

GAMA ALTA DE MICROCONTROLADORES


INFRARROJOS CON MICROCONTROLADORES

Las pantallas de virtual terminal solo funcionan si trabajara con


un protocolo RS232 sobre infrarrojos, pero por sus
caractersticas esto no funciona.
DIGITALES III: 47

GAMA ALTA DE MICROCONTROLADORES

El siguiente es el segmento de cdigo que permite


calcular la frecuencia en PWM de 56800hz con un duty
del 50%, debe Usted construir la funcin que enve por el
puerto el dato, teniendo en cuenta los unos y ceros.
Recuerde que segn las caractersticas no deben enviarse
mas de dos unos o ceros en forma consecutiva.

DIGITALES III: 48

GAMA ALTA DE MICROCONTROLADORES

DIGITALES III: 49

GAMA ALTA DE MICROCONTROLADORES


INFRARROJOS CON MICROCONTROLADORES
DECODIFICADOR DE CONTROL IR UNIVERSAL

Imagen de otra fuente

DIGITALES III: 50

51

Das könnte Ihnen auch gefallen