82
Taller de Firmware Facultad de Ingeniería Instituto de Computación Técnicas de Manejo de E/S

1 por hoja

  • Upload
    lynhu

  • View
    228

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 1 por hoja

Taller de Firmware

Facultad de Ingeniería

Instituto de Computación

Técnicas de Manejo de E/S

Page 2: 1 por hoja

Introducción (1/1)

• Los distintos tipo de dispositivos de hardware con los que se debe interactuar tienen particularidades que debemos contemplar.

• También los recursos de interfaz muchas veces son escasos por lo que hay que aprovecharlos al máximo y reutilizarlos de ser posible.

• Todo esto lleva al desarrollo de técnicas de manejo de dispositivos que deberán estar implementadas adecuadamente en el software.

Page 3: 1 por hoja

Contenido

• Efecto Rebote

• Optimización de Entradas

• Optimización de Salidas

• Modulación por Ancho de Pulso

Page 4: 1 por hoja

• Aspectos Mecánicos

• Efecto Rebote

• Ataque por hardware

• Ataque por software

Efecto Rebote

Page 5: 1 por hoja

Aspectos Mecánicos (1/3)

• Las llaves y botones (incluyendo las “teclas”) son, normalmente, dispositivos mecánicos que cierran un circuito poniendo en contacto dos láminas metálicas.

• En el caso de las teclas actualmente se utilizan también otros tipos de métodos (ej: el capacitivo) que no presentan el fenómeno estudiado.

Page 6: 1 por hoja

Aspectos Mecánicos (2/3)

Tomado del Catálogo de Cherry Corporation

Page 7: 1 por hoja

Aspectos Mecánicos (3/3)

Tomado del Catálogo de Cherry Corporation

Page 8: 1 por hoja

Efecto Rebote (1/3)

• Las láminas metálicas utilizadas en la

construcción de las llaves/botones poseen,

inherentemente, elasticidad.

• Por ello al intentar ponerlas en contacto se

genera un choque que produce un movimiento

en sentido contrario que aleja las láminas.

• Este proceso se repite hasta disipar la energía

cinética adquirida por la lámina móvil.

Page 9: 1 por hoja

Efecto Rebote (2/3)

• Este fenómeno es conocido como efecto

rebote.

• El efecto se manifiesta en el hecho que el cierre

(apertura) del circuito no es instantáneo.

• Durante un cierto tiempo la llave (ó el botón)

oscila entre cerrado y abierto.

• El fenómeno se puede dar tanto al cerrar el

circuito como al abrirlo.

Page 10: 1 por hoja

Efecto Rebote (3/3)

t

ON

OFF

Page 11: 1 por hoja

Ataque por Hardware (1/4)

• La forma mas sencilla de minimizar el problema por hardware es mediante el uso de un circuito RC.

Tomado de www.embedded.com

Page 12: 1 por hoja

Ataque por Hardware (2/4)

• El circuito RC si bien no evita el rebote, logra que no haya una oscilación entre cerrado y abierto.

• Esto se logra porque el condensador debe perder (ó ganar) su carga (a través de la resistencia) lo que demora un cierto tiempo.

• Esto “suaviza” la evolución en el tiempo del nivel de la entrada de la compuerta y permite que su salida no siga los vaivenes de la apertura y cierre de la llave.

Page 13: 1 por hoja

Ataque por Hardware (3/4)

• Los valores de R1, R2 y C se eligen de forma que la constante de tiempo del circuito de carga ((R1+R2) * C) y descarga (R2 * C) sean similares al tiempo de establecimiento del contacto (el que demora la lámina móvil en detenerse).

Page 14: 1 por hoja

Ataque por Hardware (4/4)

t

ON

OFF

0

1

Vin

Page 15: 1 por hoja

Ataque por Software (1/5)

• Una de las formas de resolver el problema por software es con una técnica de “cambio de estado demorado”.

• Esta técnica consiste en cambiar el estado de la entrada conectada a la llave un cierto tiempo después que se haya detectado el primer cambio e ignorando todo cambio intermedio que haya.

• Ese tiempo debe ser superior al de establecimiento de la llave.

Page 16: 1 por hoja

Ataque por Software (2/5)

• Ejemplo de código de implementación:

if (in(LLAVE) != valor_llave) {

delay(T_ESTABLECIMIENTO);

valor_llave = !valor_llave;

}

Page 17: 1 por hoja

Ataque por Software (3/5)

• Otra forma de resolver el tema es por la técnica de “cambio de estado confirmado”.

• Consiste en cambiar de estado solamente luego que un cierto número de muestras periódicas y consecutivas de la entrada coincidan en un nuevo valor.

• El número de muestras se debe elegir en función de la frecuencia de muestreo y del tiempo de establecimiento de la llave.

Page 18: 1 por hoja

Ataque por Software (4/5)

• Ejemplo de código de implementación (polling):if (in(LLAVE) != valor_llave){

cont = 0;

while ((in(LLAVE) != valor_llave) && (cont < MAX_CONT_REBOTE)) {

delay(T_MUESTRA);

cont++;

}

if (cont >= MAX_CONT_REBOTE)

valor_llave = !valor_llave;

}

Page 19: 1 por hoja

Ataque por Software (5/5)

• Ejemplo de código de implementación (interrupción):void interrupt timer() {

if ((in(LLAVE) != valor_llave)&& (cont != 0)) {cont++;if (cont >= MAX_CONT_REBOTE) {

valor_llave = !valor_llave;cont = 0;

}} else {

if (in(LLAVE) != valor_llave)cont = 1;

elsecont = 0;

}

Page 20: 1 por hoja

Resumen (1/1)

• El efecto rebote aparece en toda llave o botón (switch) implementado por medios mecánicos.

• Puede ser resuelto por hardware (típicamente mediante un circuito RC).

• Puede ser resuelto por software– por “cambio demorado”– por “cambio confirmado”

Page 21: 1 por hoja

Optimización de Entradas

• Escasez de Puertos de E/S

• Codificación de Entradas

• Multiplexado en el tiempo

• Organización Matricial

• Precauciones a considerar

Page 22: 1 por hoja

Escasez de Puertos de E/S (1/2)

• Los puertos de E/S son, normalmente, un recurso escaso en los microcontroladores.

• Es poco común encontrar microcontroladores que tengan más de algunas decenas de puertos.– 8, 16, 32 son números habituales

• Son además compartidos entre entrada y salida.– muchos microntroladores permiten elegir la

función de cada puerto por programación.

Page 23: 1 por hoja

Escasez de Puertos de E/S (2/2)

• El problema es cuando tengo más señales lógicas de entrada a considerar que los puertos disponibles.

• Por ejemplo consideremos el caso de un teclado.– Aún si el teclado es solamente numérico se

necesitarían 10 entradas (una para cada tecla asociada a un dígito) y un par más para “aceptar” y “borrar”, por ejemplo.

– Un teclado de PC tiene más de 100 teclas.

Page 24: 1 por hoja

Codificación de Entradas (1/5)

• Una forma directa de resolver el problema

sería la codificación de las entradas.

• De esta forma si tenemos N señales de

entrada precisaríamos:

puertos = log2 (N+1)

nota 1: α = parte entera superior de αnota 2: el 1 es para reservar un código (ej: el 0) para cuando no hay señal activa

Page 25: 1 por hoja

Codificación de Entradas (2/5)

Mic

roco

ntro

lad

or

Co

dific

ado

r

PE1

PE0

D7

PE2 c

ba

D6D5D4D3D2D1

Señales

Page 26: 1 por hoja

Codificación de Entradas (3/5)

• El problema fundamental de esta técnica es

que solamente puede identificar una señal de

entrada por vez.

• Si más de una señal de entrada se activa al

mismo tiempo la codificación que aparecerá

en los puertos de entrada dependerá de

cómo se realice el codificador, pero

probablemente sea errónea.

Page 27: 1 por hoja

Codificación de Entradas (4/5)

• El siguiente es un circuito codificador sencillo,

pero que falla si hay dos señales activas a la

vez:

Page 28: 1 por hoja

Codificación de Entradas (5/5)

• Este circuito codificador es más elaborado y

resuelve el problema de la simultáneidad

asignando jerarquía.

Page 29: 1 por hoja

Multiplexado en el Tiempo (1/3)

• Una forma habitual de resolver el problema

de la escasez de puertos es reutilizando las

mismas entradas para distintas señales en

momentos de tiempo distinto.

• Esto se logra multiplexando las señales en

el tiempo.

• De esta forma un puerto de entrada estará

asociado a una señal diferente en cada

instante.

Page 30: 1 por hoja

Multiplexado en el Tiempo (2/3)

• El ahorro se comprueba de la siguiente forma:– Supongamos que tengo 8 señales.

– Si no las multiplexara precisaría 8 puertos (de entrada) para manejarlas.

– Pero si las multiplexo me alcanza con 4 puertos• 3 de salida para seleccionar la señal a presentar

• 1 de entrada para recibir el valor

– Otra forma sería:

• 2 de salida para seleccionar una pareja de señales

• 2 de entrada para recibir los valores

Page 31: 1 por hoja

Multiplexado en el Tiempo (3/3)

• En general para N señales se necesitan:

puertos = log2 N + 1

Mic

roco

ntr

olad

or

Mul

tiple

xorPS1

PS0

D7PS2

PE0 S

c

ba

D6D5D4D3D2D1D0

Señales

Page 32: 1 por hoja

Organización Matricial (1/3)

• Para el caso particular de los teclados se

suelen emplear estrategias intermedias, en

función de la cantidad de puertos disponibles.

• El objetivo es simplificar el circuito externo,

evitando el uso de mutiplexores y/o

codificadores.

• Se utiliza el arreglo matricial de las teclas.

puertos = m + n, con m.n ≥ N

Page 33: 1 por hoja

Organización Matricial (2/3)

• Veamos el ejemplo del teclado numérico:

– 10 teclas de dígitos

– 1 tecla de “Aceptar” y 1 tecla de “Borrar”

• Son 12 teclas en total.

• Se precisarían:

– 12 entradas (método directo)

– 4 (codificado)

– 5 (multiplexado en el tiempo estándar)

Page 34: 1 por hoja

Organización Matricial (3/3)

• En el caso de la organización matricial vamos a

requerir 7 puertos en el ejemplo.

Mic

roco

ntro

lad

or

PS1

PS0

PS2

PE0

PS3

PE1

PE2

321

654

987

0 AB

Page 35: 1 por hoja

Precauciones a Considerar (1/1)

• En el caso de utilizar codificación hay que

recordar que no se pueden detectar distintas

señales en forma simultánea, por lo que está

reservado a unos pocos casos particulares.

• En el caso de multiplexado en el tiempo, el

problema de simultaneidad no se da, pero la

frecuencia de muestreo debe ser

significativamente superior a la frecuencia

más alta de las señales de entrada.

Page 36: 1 por hoja

Resumen (1/1)

• Los puertos de un microcontrolador son un

recurso escaso a cuidar.

• Para optimizar su uso se puede recurrir a

técnicas de codificación, multiplexado en el

tiempo ú organización matricial de las entradas.

• Cada técnica tiene sus limitaciones y

condiciones de aplicabilidad.

Page 37: 1 por hoja

Optimización de Salidas• Escasez de Puertos de E/S

• Codificación de Codificación

• Multiplexado en el tiempo

– Latch Externo

– Ciclo de Trabajo

• Organización Matricial

• Precauciones a considerar

Page 38: 1 por hoja

Escasez de Puertos de E/S (1/1)

• Al igual que en el caso de las entradas el

problema de contar con un número limitado

de puertos también se da con las salidas.

• El tipo de soluciones pasa más o menos por

los mismos lugares ya vistos, con algunas

particularidades por tratarse, en este caso, de

salidas.

Page 39: 1 por hoja

Codificación de Salidas (1/3)

• Al igual que en las entradas es posible la

codificación de las salidas.

• De esta forma si tenemos N señales de

salida precisaríamos:

puertos = log2 (N+1)

nota 1: α = parte entera superior de αnota 2: el 1 es para reservar un código (ej: el 0) para cuando no hay ninguna salida activa

Page 40: 1 por hoja

Codificación de Salidas (2/3)

Mic

roco

ntro

lad

or

Dec

odifi

cad

or

PS1

PS0

D7

PS2 c

ba

D6D5D4D3D2D1

Señales

Page 41: 1 por hoja

Codificación de Salidas (3/3)

• El problema fundamental de esta técnica es

que solamente puede identificar una señal de

salida por vez.

• Si bien en este caso no hay problema de

error de codificación, la restricción de no

simultaneidad es mucho más restrictiva: sólo

puede haber una salida activa en cada

instante del tiempo.

Page 42: 1 por hoja

Multiplexado en el Tiempo (1/3)

• En el caso de las salidas también es factible

el multiplexado en el tiempo.

• En este caso en cada instante un puerto de

salida tendrá el valor de una determinada

señal de salida.

• El principal problema aquí es cuando las

señales de salida deben ser persistentes en

el tiempo, o sea deben tener un nivel

constante.

Page 43: 1 por hoja

Multiplexado en el Tiempo (2/3)

Mic

roco

ntro

lad

or

Dem

ulti

plex

or

PS1

PS0

D7PS2 c

ba

D6D5D4D3D2D1

Señales

PS3 G

Page 44: 1 por hoja

Multiplexado en el Tiempo (3/3)

• Por esto es que normalmente la técnica de

multiplexado se acompaña de mecanismos

complementarios que viabilicen su uso:

- Latch Externo

- Ciclo de Trabajo

Page 45: 1 por hoja

Multiplexado en el Tiempo

Latch Externo (1/2)

• En este caso se procede a colocar Flip-Flops

externos al microcontrolador para guardar los

estados de las señales de salida.

• Se puede usar el reloj del sistema para

sinronizar o se puede generar un flanco de reloj

mediante un puerto de salida del

microcontrolador

Page 46: 1 por hoja

Multiplexado en el Tiempo

Latch Externo (2/2)M

icro

cont

rola

dor

Dec

odifi

cad

or

PS1

PS0

D7

PS2 c

ba

D6D5D4D3D2D1

Señales

D0

CE

D Q

CE

D Q

PS3

CLK

Page 47: 1 por hoja

Multiplexado en el Tiempo

Ciclo de Trabajo (1/7)

• Otra forma muy habitual de multiplexar salidas

en el tiempo es utilizar algunas características

físicas de los fenómenos que se quieren

manipular con las señales de salida.

• Típicamente:

– constantes de tiempo térmicas en fenómenos de

transferencia de energía.

– persistencia de las retinas de los seres humanos.

Page 48: 1 por hoja

Multiplexado en el Tiempo

Ciclo de Trabajo (2/7)

• Las mencionadas características están vinculadas al denominado “ciclo de trabajo”.

• Este parámetro caracteriza una onda cuadrada (o mejor dicho rectangular) y establece la relación entre la duración del estado “alto” respecto a la del ciclo completo en un período.

• Una onda cuadrada “perfecta” tiene un ciclo de trabajo del 50%.

Page 49: 1 por hoja

Multiplexado en el Tiempo

Ciclo de Trabajo (3/7)

• El multiplexado en el tiempo con ciclo de

trabajo compensado, busca generar el mismo

valor medio de la señal en el ciclo completo.

• Si estoy multiplexando N señales, entonces el

valor de salida deberá ser N veces más grande

durante el “time-slot” que le corresponda a la i-

ésima señal, para compensar su falta en el

resto del ciclo.

Page 50: 1 por hoja

Multiplexado en el Tiempo

Ciclo de Trabajo (4/7)

• Como muchos fenómenos físicos responden al

valor medio (o a la integral en el tiempo) de la

señal, entonces no ven afectado su efecto por

el uso del multiplexado.

• Ejemplo:– supongamos que tengo que entregar 50 Joules a

una resistencia para calentar un horno de precisión, usando una fuente de 5 Volts.

Page 51: 1 por hoja

Multiplexado en el Tiempo

Ciclo de Trabajo (5/7)

– La forma directa es entregarle 10 A en forma constante en el tiempo.

• P = V.I = 5 V . 10 A = 50 Watts

• E = ∫ P dt = 50 Joules (en cada segundo)

– Si multiplexo en el tiempo la señal de “activación” del horno con otras 4, entonces ahora la función potencia tiene un valor P durante 200 ms y 0 durante 800 ms.

– Para que la integral siga valiendo lo mismo, entonces debe ser P = 250 W, lo que significa un valor 5 veces mas alto de corriente, I = 50 A.

Page 52: 1 por hoja

Multiplexado en el Tiempo

Ciclo de Trabajo (6/7)

• Esto es efectivamente equivalente y funciona,

porque lo que importa es la integral en el

tiempo y no el valor instantáneo de la señal de

salida.

• Y esto es así en los fenómenos físicos que

impliquen capacidad de acumulación por parte

de los elementos intervinientes.

Page 53: 1 por hoja

Multiplexado en el Tiempo

Ciclo de Trabajo (7/7)

• En el caso de lámparas y/o LEDs el fenómeno que se utiliza es similar, basado en la cracterística de persistencia del ojo humano.

• El ojo humano no es capaz de seguir el parpadeo de una fuente de luz que destelle a más de 20 y tantas veces por segundo.

• Esta característica es la que permite, entre otras cosas, la técnica del cine.

Page 54: 1 por hoja

Organización Matricial (1/4)

• En algunos casos se utiliza la organización

matricial de las salidas, típicamente junto a la

técnica de multiplexado en el tiempo.

• Un ejemplo clásico es el de los displays de 7

segmentos, que se manejan con 7 salidas para

los segmentos y M salidas de activación, una

por cada display. – usa el hecho que los display son un conjunto de

LEDs con cátodo común.

Page 55: 1 por hoja

Organización Matricial (2/4)

• En el caso de la organización matricial vamos a

requerir 10 puertos en el ejemplo.

Mic

roco

ntro

lad

or

PS1PS0

PS2

PS7

PS3

PS8

PS9

PS4PS5PS6

Page 56: 1 por hoja

Organización Matricial (3/4)

• Un ejemplo más “radical” de organización

matricial y multiplexado en el tiempo es el que

utilizan los letreros en base a LEDs (usados en

aplicaciones de anuncios, por ej. en algunas

líneas de transporte colectivo).

• En este caso se codifican las columnas de LED

(se activa una por vez).– Al igual que en el caso anterior no se muestran las

resistencias limitadoras de corriente

Page 57: 1 por hoja

Organización Matricial (4/4)

Mic

roco

ntro

lad

or

PS1PS0

PS2

PS8

PS3

PS9

PS10

PS4PS5PS6PS7

PS11PS12PS13PS14PS15

De

codi

fica

dor

Page 58: 1 por hoja

Precauciones a Considerar (1/2)

• En el caso de utilizar manejo del ciclo de

trabajo se deben cuidar los valores máximos

de corriente que acepten los dispositivos

involucrados.

• Si bien en materia de disipación de calor no

hay cambio, el valor de pico de corriente es

mucho más alto, lo que puede no ser

soportado por los dispositivos.

Page 59: 1 por hoja

Precauciones a Considerar (2/2)

• En el caso particular de LEDs ó lámparas

también hay que cuidar que la frecuencia de

muestreo sea superior a 25 Hz, de forma de

utilizar la persistencia del ojo.

• En términos generales la frecuencia de

muestreo debe ser coherente con las

constantes de tiempo de los sistemas

involucrados.

Page 60: 1 por hoja

Resumen (1/1)

• Lo mismo que se ha analizado para los puertos

que actúan vale para los de salida.

• Las técnicas para su optimización son similares,

aunque su aplicación es más restrictiva.

• El muestreo con compensación del ciclo de

trabajo es una técnica muy utilizada que se

basa en la existencia de “inercia” en la

naturaleza, incluyendo el ojo humano.

Page 61: 1 por hoja

Modulación Ancho de Pulso• Introducción a PWM

• Implementación Hardware

• Implementación Software

• Aplicaciones PWM– transmisión de información

– control de potencia

Page 62: 1 por hoja

Introducción a PWM (1/5)

• La Modulación por Ancho de Pulso (PWM =

Pulse Width Modulation) es una técnica de

modulación que utiliza la modificación del

ciclo de trabajo de una onda rectangular.

• Esa alteración del ciclo de trabajo resulta en

la modificación del valor medio de la onda, en

forma proporcional a ese cambio.

Page 63: 1 por hoja

Introducción a PWM (2/5)

t

V

00 TαT

Page 64: 1 por hoja

Introducción a PWM (3/5)

• El valor medio de la señal es:

dada la forma de la onda:

1

0

( )T

Ts s t dt= ∫

1s TV V

Tα α = =

Page 65: 1 por hoja

Introducción a PWM (4/5)

• Es decir el valor medio de la señal es

proporcional a la relación on-off de su ciclo

de trabajo (el “ancho” del pulso).

• Esta propiedad me permite, entre otras

cosas, codificar información en ese ancho.

Page 66: 1 por hoja

Introducción a PWM (5/5)

• Existen tres tipos de PWM:

– Centrada: el pulso está centrado en la ventana de

tiempo correspondiente a un ciclo de la onda.

– Flanco Inicial: el pulso comienza junto con la

ventana de tiempo correspondiente al ciclo.

– Flanco Final: el pulso termina junto con la ventana

de tiempo correspondiente al ciclo.

Page 67: 1 por hoja

Implementación Hardware (1/2)

• Es muy común que los microcontroladores dispongan de circuitos “timer” programables.

• Estos timers muchas veces permiten ser configurados como generadores de PWM.

• Para ello se le configuran los parámetros:

– período

– relación on/off

Page 68: 1 por hoja

Implementación Hardware (2/2)

• Una forma de utilizarlos es programandolos

para que generen una interrupción cada vez

que lleguen al período.

• En la rutina de atención se procede a

escribirles un nuevo valor de relación on/off,

generando así la variación en el ancho del

pulso que se desee.

Page 69: 1 por hoja

Implementación Software (1/3)

• Cuando no se dispone de un timer con PWM se puede recurrir a técnicas de software, ya sea “puras” o con el soporte de un “timer” común (sin PWM).

• Sin “timer”aux = in(SALIDA);

out(SALIDA, aux | 1);

ancho = (valor / VALOR_MAX) * T;

delay (ancho);

out(SALIDA, aux & 0xFE);

delay (T - ancho);

Page 70: 1 por hoja

Implementación Software (2/3)

• Con “timer” en Programa Principalvoid interrupt timer() {

tics++;

}

tics_ancho = (valor / VALOR_MAX) * (T / Ptimer);

aux = in(SALIDA);

out(SALIDA, aux | 1);

tics = 0;

while (tics < tics_ancho);

out(SALIDA, aux & 0xFE);

while (tics < (T / Ptimer);

Page 71: 1 por hoja

Implementación Software (3/3)

• Con “timer” en Rutina Interrupciónvoid interrupt timer() {

if (tics == 0) { aux = in(SALIDA);out(SALIDA, aux | 1);

}tics++;if (tics == (valor / VALOR_MAX) * (T / Ptimer)){

aux = in(SALIDA);out(SALIDA, aux & 0xFE);

}if (tics > (T / Ptimer))

tics = 0;}

Page 72: 1 por hoja

Aplicaciones PWM (1/1)

• La técnica de modulación por ancho de pulso se aplica en diversas áreas.

• Si bien por ser una técnica de modulación se la puede utilizar para transmitir información, sus aplicaciones más habituales están en el campo de la electrónica de control, aplicada típicamente a motores y otro tipo de dispositivos que puedan ser controlados variando el valor medio de una magnitud (ej: la corriente o la diferencia de potencial).

Page 73: 1 por hoja

Aplicaciones PWM

Transmisión de Información (1/3)

• Esta aplicación es la “directa” asociada al

concepto de modulación.

• La forma de onda transporta en sí misma

información codificada en el ancho del pulso.

• La forma de codificarla es la vista para generar

el pulso del ancho requerido (en función del

“valor” a codificar).

Page 74: 1 por hoja

Aplicaciones PWM

Transmisión de Información (2/3)

• La decodificación requiere determinar el

comienzo del pulso y calcular el ancho relativo

del pulso respecto al período de la onda

rectangular original.

• Una forma sencilla de hacerlo es alimentar la

señal a decodificar a un puerto de entrada que,

además, genere una interrupción por flanco

ascendente.

Page 75: 1 por hoja

Aplicaciones PWM

Transmisión de Información (3/3)

void interrupt senial() {tics = 0;termino_pulso = FALSE;

}void interrupt timer() {

if (((in(ENTRADA) & 1) == 0) && (!termino_pulso)) {valor = VALOR_MAX * (tics / (T / Ptimer));termino_pulso = TRUE;

}}

Page 76: 1 por hoja

Aplicaciones PWM

Control de Potencia (1/5)

• En este caso se utiliza la proporcionalidad del

valor medio de la señal al ancho del pulso, para

controlar la potencia que se le aplica a un

dispositivo.

• La forma mas sencilla de pensar esto es

suponer que con la señal atacamos una “llave

electrónica” (ej. un transistor) para permitir el

pasaje de corriente solo durante el pulso.

Page 77: 1 por hoja

Aplicaciones PWM

Control de Potencia (2/5)

• Esto generará que la reacción del dispositivo sea proporcional a la energía que está recibiendo y por tanto adapte su comportamiento a la misma.

• Ejemplos:– un calentador generará más ó menos calor

– un LED brillará más ó menos

– un motor girará más ó menos rápido (aplica a determinados tipos de motores)

Page 78: 1 por hoja

Aplicaciones PWM

Control de Potencia (3/5)

• Para que esto sea efectivamente así se debe cumplir que la frecuencia de trabajo del PWM sea convenientemente alta.

• La mayoría de los sistemas físicos se comportan como un “pasabajos”, reaccionando al valor medio de la señal y no siguiendo los cambios instantáneos que se produzcan.

• La frecuencia de trabajo debe ser superior a la “frecuencia de corte” equivalente.

Page 79: 1 por hoja

Aplicaciones PWM

Control de Potencia (4/5)

• En aplicaciones de precisión se debe tener presente que las curvas de comportamiento de los dispositivos muchas veces no son lineales.

• Ejemplo:– la iluminación de un LED no es siempre proporcional

a la corriente que lo circula, ya que su curva de respuesta no es una recta perfecta.

• Por esto si se requiere precisión se deben implementar factores de corrección.

Page 80: 1 por hoja

Aplicaciones PWM

Control de Potencia (5/5)

• Los factores de corrección muchas veces son formulas en función del ancho relativo del pulso (α), del estilo:

f = cos(α . π/4)• Estas funciones se implementan como

tablas estáticas numéricas para no despediciar preciosos recursos de CPU haciendo el cálculo cada vez.

Page 81: 1 por hoja

Resumen (1/1)

• La Modulación por Ancho de Pulso (PWM) es

una técnica muy utilizada a nivel de

microcontroladores.

• Permite tanto transmitir información (en

formato “digital”) como realizar el control de la

potencia aplicada a dispositivos que acepten

“filtrar” los cambios rápidos y reaccionen sólo

siguiendo los valores medio (de potencia,

corriente, voltaje, etc).

Page 82: 1 por hoja

Preguntas