convertidor digital pwm
TRANSCRIPT
-
8/18/2019 Convertidor Digital PWM
1/7
Convertidor Digital-Analógico con PWMPublicado el 3 de agosto de 2015 por Argos
Hay proyectos en los que tenemos que controlar el nivel de voltaje como: la
referencia de una fuente regulada la salida de audio o bien queremos
!acer nuestro generador de funciones" Pero estas se#ales son anal$gicas y
la mayor%a de los microcontroladores de gama baja y media &P'(s A)*s
etc+ no tienen un convertidor ,A("
-na soluci$n muy frecuente es usar un circuito ,A( &convertidor digital
anal$gico+ aparte del micro controlador lo que es muy .til pero tiene dos
inconvenientes: es un circuito mas lo que es mas espacio y costo aparte
de que puede requerir muc!as lineas de se#ales por parte de nuestroprocesador en el caso de que la interfa/ sea paralela"
Pero todos los microcontroladores tienen por lo menos un timer y en la
mayoria de los casos se puede usar como un modulador de anc!o de pulso
&P+
n el caso de que se cuente con estos recursos" se puede usar el
timerP para !acer conversiones de digital a analogico usando un
arreglo de una resistencia un capacitor y un ampli4cador operacional"
https://nomadaselectronicos.wordpress.com/2015/08/03/convertidor-digital-analogico-con-pwm/https://nomadaselectronicos.wordpress.com/author/argosweb/https://nomadaselectronicos.wordpress.com/author/argosweb/https://en.wikipedia.org/wiki/Digital-to-analog_converterhttps://en.wikipedia.org/wiki/Digital-to-analog_converterhttps://es.wikipedia.org/wiki/Modulaci%C3%B3n_por_ancho_de_pulsoshttps://nomadaselectronicos.wordpress.com/author/argosweb/https://en.wikipedia.org/wiki/Digital-to-analog_converterhttps://en.wikipedia.org/wiki/Digital-to-analog_converterhttps://es.wikipedia.org/wiki/Modulaci%C3%B3n_por_ancho_de_pulsoshttps://nomadaselectronicos.wordpress.com/2015/08/03/convertidor-digital-analogico-con-pwm/
-
8/18/2019 Convertidor Digital PWM
2/7
l circuito es un 4ltro pasabaja de primer orden y el ampli4cador
operacional sirve para evitar que se caiga el voltaje de salida debido a la
carga que le coloquemos"
in adentrarnos muc!o en el tema los 4ltros pasabaja dejan pasar las
se#ales con frecuencia menor a la frecuencia de corte" n pocas palabras
de la frecuencia de corte para abajo" Para calcular la frecuencia de corte en
este caso se puede usar la siguiente formula
sta frecuencia de corte es importante ya que nos da la pauta de las
frecuencias que podemos suministrar como se#al de salida anal$gica" s
decir si nuestra frecuencia de corte es de 1000H/ con nuestro dac p6m
https://en.wikipedia.org/wiki/Low-pass_filterhttps://en.wikipedia.org/wiki/Low-pass_filter
-
8/18/2019 Convertidor Digital PWM
3/7
podemos sacar frecuencias menores de 1000H/ por ejemplo podemos
sacar senoidales a 700H/ sin problema"
A!ora bien ya tenemos la frecuencia de corte pero !ace falta otra
frecuencia importante a considerar que es la frecuencia del P" 8afrecuencia del p6m es la que usara el timer para generar la se#al de salida
anal$gica" 9o podemos elegir una frecuencia de p6m menor que la
frecuencia de corte del 4ltro ya que prcticamente solo ver%amos la se#al
del timer" ;ampoco podemos igualarla con la de corte ya que la se#al de
salida presentar%a muc!o ruido debido a que la atenuaci$n empie/a en la
frecuencia de corte es decir todav%a ver%amos la se#al del timer en la
salida anal$gica"
Asi debemos elegir una frecuencia de p6m muc!o mayor que la frecuencia
de corte para asegurar que la frecuencia del timer no llegue a la salida de
nuestro convertidor ya que estar%a muy atenuada seg.n nuestro 4ltro"
n lo personal me !a funcionado bien el convertidor cuando !e elegido
frecuencias de p6m por lo menos 20 veces mas alta que la frecuencia de
corte" ,e !ec!o generalmente empe/aremos viendo cual es la frecuencia
m
l procesador tendr una frecuencia de operaci$n de = H/ que pueden
ser generados internamente o de preferencia a trav?s de un cristal" sto
signi4ca que el timer que elijamos tendr una frecuencia de operaci$n
-
8/18/2019 Convertidor Digital PWM
4/7
tambi?n de = H/" 8os timers del avr tienen un @prescaler que en otras
palabras es un divisor de la frecuencia principal" ,ejaremos que trabaje al
m
-
8/18/2019 Convertidor Digital PWM
5/7
arreglo de resistencias es mas fcil de armar que un arreglo de capacitores"
;a formula entonces ser y si proponemos un valor de
capacitancia de 100nC la resistencia resultante es de 101="5G o!m"
*edondeando esta cantidad a 1 o!m la frecuencia que resultar%a es de
15G1"5 H/ que no esta mal ni muy alejado de lo que pretend%amos como
ideal"
Iien ya tenemos los valores de resistencia y capacitancia de 1 o!m y
100nC respectivamente" 8o siguiente es el ampli4cador operacional" l
detalle es que un ampli4cador operacional com.n como el clsico 835=
no satura !asta )cc es decir que por mas que aumentemos el voltaje de
entrada el voltaje de salida no alcan/ar )cc para solucionar esto
tenemos de dos sopas: o alimentamos al ampli4cador operacional con un
poco mas de voltaje o bien alimentamos al procesador con un poco menos
de voltaje" Por sencille/ !ar? la segunda opci$n alimentar? al A)* con
3"3) as% no saturaremos al 835= y la se#al de salida sera lo que
esperamos" si desean alimentar al operacional con voltaje mas alto que
sea por lo menos 1"5) mas que lo que alimentan el procesador &al 4nal
depende del operacional+"
Iueno ya estn todos los clculos" A!ora a ensusiarnos las manos" Aqu%
dejo el diagrama el c$digo fuente y un video con los resultados"
-
8/18/2019 Convertidor Digital PWM
6/7
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
1819
20
21
22
23
24
25
// Inicializacion del timer2
// Clock source: System Clock// Clock value: 8000.000 kHz// Mode: Fast PM to!"0#FF// $C2 out!ut: %on&Inverted PM// 'imer Period: 0.0(2 ms
// $ut!ut Pulse)s*:// $C2 Period: 0.0(2 ms idt+: 0.0,-0-( msSS"0S21'CC2"),PM2* ),C$M2,* )0C$M20* ),C'C2* )0CS22* )0CS2,'C%'2"0#001$C2"0#801
...
...
//loo! !rinci!al )PM " $C2*
3+ile ),*
4 //minimo PM " 01 delay5ms)2000*1 //ma#imo PM " 2661 delay5ms)2000*1 //diente sierra
7or)i"01 i601 i* 7or) PM " 01 PM 2661 PM*
-
8/18/2019 Convertidor Digital PWM
7/7
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
4 delay5ms),*1
9 // senoidal 7"0.01 7or)i"01 i601 i* 7or)7 " 0.01 7 )2(.,;,6.0 sin)7* * 1 delay5us),00*1 9
9