Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

14/12/2010 #1


Aumentar la resolución PWM
Hola a todos, tengo que aumentar la resolucion de un pwm el cual trabaja de 0 a 50%, desperdiciando el otro 50% que podria usar para aumentar la resolucion, utilizo el adc a 10 bits. Aca dejo el codigo:

if(input(PIN_A7))
{
delay_ms(100);
// (input(PIN_A7))
// delay_ms(20);
count++;
if(count==512)//
count=511;//

}
if(input(PIN_A6))
{
//delay_ms(20);
//while(input(PIN_A6))
delay_ms(100);
count--;
if(count<1)
count=1;
}

x=count;
set_pwm1_duty(x); //cargo el valor 0-1024 al PWM

ct=(x)*10/102.4;
lcd_gotoxy(1,2);
printf(LCD_PUTC"Val=%01.1f",ct);

Gracias por su ayuda.
14/12/2010 #2

Avatar de 1jabato1

Hola.
Código:
if(count==1024)//
             count=1023;//
Saludos!!
14/12/2010 #3

Avatar de Black Tiger1954

No entiendo mucho, y si estoy diciendo una burrada, perdón, pero un conversor AD significa analógico/digital, y un PWM es una disposición para obtener una salida analógica en función a una entrada digital (varía el ancho del pulso en función de x). El PWM no está limitado por la cantidad de bits. El conversor AD sí.
Podrías subir un esquema de lo que querés hacer?
14/12/2010 #4

Avatar de Dr. Zoidberg

Black Tiger1954 dijo: Ver Mensaje
El PWM no está limitado por la cantidad de bits
No Black, si lo está, por que digitalmente es un contador de N bits que se precarga a un valor X y desde ahí cuenta hasta cero...y queda en cero hasta el próximo pulso de precarga.

Cuanto mas alto el valor X, mas tiempo está en alto la señal. Como el PWM tiene 10 bits de resolución, tenés entonces 1024 valores de ancho de pulso posibles...y por supuesto, el reloj que excita al contador debe tener una frecuencia 1024 más alta que la frecuencia del PWM...

Saludos!
14/12/2010 #5


Gracias a todos.
1jabato1, con eso aumento el porcentaje del pwm, yo no necesito que llegue al 100%, con el 50 estoy sobrado. Quiero que con esos 1024 llegue maximo hasta el 50%, por lo tanto con 1024 pasos estare al 50% y no como ahora con 512. Me explico?
14/12/2010 #6

Avatar de Dr. Zoidberg

Leíste lo que puse arriba sobre como opera un modulador digital de PWM????
Y como harías vos para cambiar el módulo de conteo para que de 1024 valores pase a 2048...que es eso lo que pretendés hacer....
Si solo querés la mitad del maximo ancho posible - el 50% - pues entonces tenés 512 cuentas disponibles. Si querés usar 1024, vas a tener que hacer uan regla de 3...pero eso es lo mismo que decir:
1024 equivale a 512
1000 equivale a 500...y así...con lo cual no aumentás ninguna resolución...

Creo que vas a tener que estudiar un poco....
14/12/2010 #7


Ahora me doy cuenta que dividiendo x=count /2 obtendria el 50% del pwm con 1024 pasos.
14/12/2010 #8

Avatar de Black Tiger1954

ezavalla tenés razón, solo pensé en un pwm analógico, sorry.
14/12/2010 #9

Avatar de Dr. Zoidberg

marcelo2112 dijo: Ver Mensaje
Ahora me doy cuenta que dividiendo x=count /2 obtendria el 50% del pwm con 1024 pasos.

Y cual es la diferencia a como lo has hecho? Al PWM no podés darle valores fraccionarios de ancho de pulso, así que 1022 / 2 es lo mismo que 1023 / 2....y además es división entera...

Black Tiger1954 dijo: Ver Mensaje
ezavalla tenés razón, solo pensé en un pwm analógico, sorry.
OK. No problem!
16/12/2010 #10

Avatar de electroconico

La resolución la calculas con la formula que viene en el datasheet.

Si te va perfecto de 0-50% deberías replantear la frecuencia de operación pwm.
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.