Re: Controlando PWM

Tambien puedes emplear alguno de los contadores TMR0 o TMR1(en el caso del F877 el TMR2 lo emplea para las 2 salidas PWM) para generar las señales PWM, si lo que quieres es emplear un circuito externo a mi me parece que podrias hacerlo con un CPLD. Por cierto esto de 6 PWM me huele como que quieres construirte un inversor para motor.

Saludos

Reply to
FlyBoy
Loading thread data ...

Pues mira, el microcontrolador que estoy usando últimamente, el ATMEL ATmega48, dispone precisamente de eso, de 6 canales PWM hardware prácticamente independientes. El precio orientativo para unas 5 kuds/año es de 1.10 EUR/ud, aunque yo lo estoy comprando a 2.08 EUR/ud en es.digikey.com.

- El ciclo de trabajo es independiente para cada uno de los 6 canales PWM.

- La resolución va por parejas. 2 canales son de 16 bits, y 4 son de 8 bits.

- La frecuencia de repetición de pulsos va también por parejas. Es decir, puedes elegir 3 frecuencias diferentes.

- Todos los canales son "phase correct". Puedes cambiar cuando quieras el ciclo de trabajo, y no vas a producir nunca un glitch.

- Los 2 canales de 16 bits son además "frequency correct". Puedes cambiar cuando quieras la frecuencia, y no vas a producir nunca un glitch.

Si no quieres cambiar de familia, lo entiendo, pero este "engendro" es bueno (para el precio que tiene).

Existen "digital PWM controllers", como el IXYS IXDP610, que incluye 1 canal PWM digital de 8 bits, pero dudo mucho que 6 integrados de esos cuesten menos de 2 euros.

Otra solución sería hacerte uno con un PLD o FPGA. Una experiencia muy instructiva, pero también bastante más cara.

Saludos,

Reply to
Mochuelo

877

trabajar

sobre

pasa es

muy

Si me referia a la logica programable, CPLD -> Complex PLD seria lo mismo que un PLD pero "extendido". No se que experiencia tengas en logica programable pero son unos cuantos detalles: programacion en VHDL. Sintesis, programador para el CPLD (hay esquemas en la red) que afectarian el tiempo de diseño. Por otro lado creo que hay algunos micros de ATMEL que tienen 6 salidas PWM y podrian valerte.

Saludos

Reply to
FlyBoy

contar (

16f628,

necesito 3

programacion del

me

tanto

%

me van

salida

controles.

Me has sacado las palabras de la boca, iva a proponerte lo mismo: poner un micro mas economico que este exclusivamente dedicado a generar las señales PWM. Pero yo digo que podrias poner a contar alguno de los contadores internos del micro o empleando interrupciones y por soft llevar la cuenta , no veo necesidad de conectar un contador externo (lo digo porque sugieres que necesitarias 8 lineas para contador).

Saludos

Reply to
FlyBoy

Correcto, faltaba la opción esa de generar el PWM por software.

Si no necesitas frecuencias diferentes, te bastaría un sólo contador, que fuese contando indefinidamente entre 0 y un valor TOP, y tantas variables "umbral" como salidas PWM quisieras. En cada "intervalo de resolución" deberías comparar el valor de ese contador con cada uno de los umbrales, y poner a 1 ó a 0 la salida PWM correspondiente.

Sí que necesitas tantos pins como salidas PWM, pero no has de sumarle a eso los bits del contador, puesto que todo quedaría dentro de un microcontrolador. El valor del contador no necesitaría sacarse al exterior.

Tampoco te haría falta, pues todo quedaría dentro de un microcontrolador.

Si quieres controlar ese MCU desde otro MCU, puedes usar I2C, por ejemplo (2 líneas + masa). O incluso, si te basta comunicación unidireccional, puedes usar una única línea serie tipo USART.

¿Con "60 kHz" te refieres a la frecuencia de PWM? Si es así, no creo que puedas emular eso por software, usando un sólo MCU. Haciendo números: aún con un cuarzo de 20 MHz, y dedicando 20 ciclos de instrucción (número muy optimista) a cada uno de los "intervalos" en los que la señal PWM puede ser 0 ó 1, podrías tener un intervalo de esos cada 1 us. Si quieres 8 bits, 256 intervalos suponen 256 us, o sea 3.9 kHz de frecuencia de PWM.

Si con 60 kHz te refieres a la frecuencia del contador que generaría la señal PWM, sí que es viable. Eso sería un intervalo cada 17 us, y 8 bits te supondrían una frecuencia PWM de 234 Hz, que puede ser suficiente para muchas aplicaciones (motores, por ejemplo). Para conversores dc-dc incluso la de 3.9 kHz se quedaría corta. En 17 us te "caben" 333 ciclos de instrucción (a 20 MHz), lo cual es más que suficiente.

Saludos.

Reply to
Mochuelo
74592

"RooT" escribió en el mensaje news: snipped-for-privacy@uni-berlin.de...

con sus

plantearia un

a

este,

0

Sí. Mira los 74LS592 y 74LS593.

todos

imaginaros

Ni idea. ¿Para qué?

claramente

escribir

paso por

Da igual. Normalmente tienen una salida de acarreo o desbordamiento, para poder poner varios en cascada, que puedes aprovechar para eso. De todas formas la lógica de control de un sistema así no es precisamente simple, y te van a salir bastantes integrados, y no excesivamente baratos. Hay integrados específicos para eso, como el DS1052. Este es de 5 bits y una sola salida PWM, y la comunicación con el micro es por I2C, pero seguro que hay otros que se adapten mejor a tus necesidades. También hay unos para controlar el brillo de varios LEDs, que usan PWM síncronos con dutys distintos. He buscado y ahora sólo me salen los de Dallas, para entre 8 y 28 salidas PWM, pero en estos se configura el duty mediante 8 bits, 4 independientes para cada salida, y 4 comunes a todas las salidas, con lo que no te serviría, pero estoy seguro de que los hay de otras marcas con un control más completo, lo que pasa que ahora no los encuentro.

Bueno, pues puestos a dar sugerencias raras... ¿qué tal un sistema analógico? Todo depende de la precisión que necesites, claro, pero es una posibilidad que no hay que desdeñar. A ver, imagina que tienes un generador de onda triangular de 60kHz, por ejemplo de 5Vpp, y su salida la llevas a 6 restadores independientes, que le restan la tensión de 6 salidas de un DAC de 8 canales con salidas de 0 a 5V. La salida de cada restador la llevas a un detector de paso por cero y listo. Calculo que se podría hacer con 4 integrados de cuatro operacionales y un DAC de, al menos, 6 canales (esto es facil de encontrar y samplear en TI).

El sistema digital cableado, como tú quieres, con contadores, depende de algunos datos que no has dado. Por ejemplo, cada cuanto tiempo vas a cambiar el duty de cada salida. Como idea, podrías usar 7 contadores, al menos 6 de ellos programables, como el 74LS593, todos con un clock de 15.36MHz. Uno te servirá de referencia de tiempo, es decir cotará siempre de 0 a 255 y vuelta a empezar. Su salida de acarreo lo reseteará a él, y activará la recarga del valor contenido en el registro de los 6 contadores programables (mira el data-sheet del 74LS592 y lo entenderás). La salida de acarreo de cada uno de los 6 contadores programables irá conectada a su entrada Clock Enable, de forma que contarán desde el valor que hayas puesto en su registro hasta 255, y entonces dejarán de contar hasta que se active la salida de acarreo del contador de referencia. Por tanto, el tiempo que está activa la salida de acarreo de cada contador programable será (255 - valor cargado en su registro) ciclos de clock. En principio, para cargar los registros de los 6 contadores necesitas 8 salidas del PIC para datos (las entradas A - H de los 6 74LS592 irían en paralelo a este bus de datos), y 6 salidas más para los RCKEN (clock del registro de entrada) de cada 74LS593. Si 14 salidas es mucho, puedes usar un codificador de binario a decimal, con lo que sólo necesitarías 3 salidas para el control, o incluso reducirlo a 2, usando un contador decimal (una para el clock y otra para el reset), con lo que en total sólo necesitarías

10 salidas del PIC.
--


Saludos de Jose Manuel Garcia
jose.mgg@terra.es
http://213.97.130.124
Reply to
Pepitof

Los restadores no harían falta. Bastaría comparar la triangular con cada una de las tensiones generadas por los DAC. Es decir, un comparador por cada salida DAC.

Saludos.

Reply to
Mochuelo

Cierto, cierto. La verdad es que queda un sistema bastante compacto, unos 3 integrados (2 de 4 operacionales más el DAC). Y eligiendo bien las amplitudes de las señales puedes usar una alimentación simple.

--

Saludos de Jose Manuel Garcia snipped-for-privacy@terra.es http://213.97.130.124

"Mochuelo" escribió en el mensaje news: snipped-for-privacy@4ax.com...

Reply to
Pepitof

A ver, para esos tiempos de refresco del ciclo de trabajo, no te hacen falta ni los DACs. Puedes generar esas tensiones analógicas directamente desde el MCU, usando 6 pins, un filtro RC en cada uno de ellos, y generando 6 señales PWM de baja frecuencia, por software. Usando números fáciles: cuarzo 16 MHz, 100 ciclos de instrucción por intervalo de resolución, 8 bits ==> 625 Hz de frecuencia PWM, para generarl esas tensiones analógicas. Yo creo que eso te basta y sobra...

... aunque, si como dices, es para controlar motores, directamente la solución PWM todo digital por software también te basta y sobra. ¿No te parecen suficientes 625 Hz para la PWM de un motor?

Incluso más fácil. Si quieres 1%, 7 bits te sobran. Podrías generar

1.25 kHz de PWM fácilmente, todo digital.

Referente también a atacar motores, piensa también que cuanto menor escojas la frecuencia PWM, más probabilidad tendrás de no necesitar MOSFET drivers, y de poder atacar los MOSFETs directamente desde el MCU, y eso es una delicia. En uno de mis circuitos, ataco MOSFETs directamente desde el MCU, porque la frecuencia (122 Hz) lo permite.

Saludos.

Reply to
Mochuelo

Hmmm... no lo sabía. Mi experiencia práctica con motores es mínima. Yo sólo pensaba en la inercia del rotor (que es mucho más lenta que esos

625 Hz), pero sí, los cambios bruscos de corriente van a producir ruidos. Sin embargo, he leído en
formatting link
que ralentizando los flancos de subida y bajada se reducen dramáticamente el ruido de PWM y el "inductive kick". No lo he probado.

Pero vaya, estoy de acuerdo en que parece ser preferible una frecuencia superior a las audibles.

Saludos.

Reply to
Mochuelo

Bueno, la diferencia entre un AO y un comparador viene a ser como la diferencia entre un transistor trabajando en amplificación y un transistor trabajando en saturación. La salida de un comparador viene a ser como una salida lógica en colector abierto, así que si pones una resistencia de pull-up, tendras un 1 cuando la tensión en la entrada positiva sea mayor que en la negativa, y un 0 cuando sea al revés. Es decir, algo parecido a un operacional trabajando en lazo abierto, pero con una velocidad de respuesta normalmente mayor, o dicho de otro modo, con un precio muy inferior al de un AO de la misma velocidad.

--


Saludos de Jose Manuel Garcia
jose.mgg@terra.es
http://213.97.130.124


"RooT"  escribió en el mensaje
news:2sigbnF1m0sujU1@uni-berlin.de...

> Es una pregunta tonta seguro, pero es algo que no ma kedado claro nunca,
que
> diferencia ahi entre un comparador y un operacional, no es la misma cosa
donde
> cada una tiene ciertas caracteristicas que lo hacen mas adecuado para su
campo?
> o cambia algo mas?
>
Reply to
Pepitof

Se me olvidaba, otra ventaja es que puede comparar tensiones entre 0 y la tensión de alimentación, es decir, que en tu caso, podrías trabajar sin problemas con una alimentación simple a 5V.

--

Saludos de Jose Manuel Garcia snipped-for-privacy@terra.es http://213.97.130.124

"RooT" escribió en el mensaje news: snipped-for-privacy@uni-berlin.de...

que

donde

campo?

Reply to
Pepitof

"RooT" escribió en el mensaje news: snipped-for-privacy@uni-berlin.de...

Sí, eso es. Un comparador (lm 339, 324...) es un operacional con un slew rate mejorado, mucho más rápido. Pero para ello se sacrifica estabilidad. Como sólo importa si una entrada es mayor que otra (Si/No), está optimizado para cambiar rápido entre dos estados, donde no habrá autooscilaciones y no tiene porqué ser lineal. El operacional está pensado más como dispositivo lineal, con una ganancia en lazo abierto controlada. O sea, puedes usar un comparador como un (mal) AO y un AO como un (más lento) comparador. Si asocias comparador=digital, AO=analógico.

Reply to
Franois

"RooT" escribió en el mensaje news: snipped-for-privacy@uni-berlin.de...

increiblemente este

entra

segun el

quiera

archivos a

Eso me suena a que no lo estás conectando bien. Ya sabes que a la salida tienes que poner una resistencia de pull-up, y es imprescindible poner un condensador de desacoplo entre las patillas de alimentación (ten en cuenta que es una commutación rápida).

seran

lleva un

ventiladores de

A ver, si la frecuencia PWM se escucha en el motor, quiere decir que de alguna manera, el motor está convirtiendo esa señal en sonido, como un altavoz, y me parece extraño que pueda hacerlo a frecuencias por encima de 2 o 3 kHz. Que no digo que no, pero que resulta extraño, teniendo en cuenta la inercia que tiene un motor.

--


Saludos de Jose Manuel Garcia
jose.mgg@terra.es
http://213.97.130.124
Reply to
Pepitof

Acabo de ver unos PICs que no conocía. Mira los 18F2331 y familia. Tienen 6 y 8 salidas PWM independientes (según modelo). Le he hechado un vistazo, y si no me equivoco, con el PIC corriendo a 40MHz podrías sacar los 6 PWM a

78kHz con una resolución de 9 bits, y todo lo hace el hard. Además tienen algunas virguerías más peara el control de motores, como modos con pares de salidas PWM complementarias, con control de dead-time configurable, entradas de realimentación en corriente con filtros ya integrados, y muchas cosas más. Creo que te interesaría echarles un vistazo.
--


Saludos de Jose Manuel Garcia
jose.mgg@terra.es
http://213.97.130.124
Reply to
Pepitof

Con el Pspice de las versiones actuales, de OrCAD, la cosa es relativamente simple, y el manual te explica paso a paso como hacer una simulación de cualquier tipo. Luego ya si te metes en virguerías, y a escribir modelos en modo texto y cosas raras, ya se complica mucho, pero simulaciones como las que permiten los programitas cutrecillos, son muy fáciles de hacer, y la precisión y aproximación a la realidad, en cambio, son infinitamente mejores.

--


Saludos de Jose Manuel Garcia
jose.mgg@terra.es
http://213.97.130.124


"RooT"  escribió en el mensaje
news:2sna9eF1nljk6U1@uni-berlin.de...
> Churretoso ? no te lo imaginas... es el multisim worchbench este que da
mas
> problemas que ilusiones pero es que en pspice no me aclaro ni media... y
la
> verdad... para la cantidad que simulo rara vez me falla pero esto es
mortal.. no
> entiendo como coño pasa esto.
Reply to
Pepitof

El Fri, 08 Oct 2004 23:14:40 +0200, RooT escribió:

No, si no tienes que buscarlo en España, si lo que tienes que hacer es pedírselo amablemente como sample... ;-)

Microchip se tira bastante el rollo.

Saludos.

Reply to
Francis Perea

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.