pwmgen - generación PWM/PDM por software
loadrt pwmgen output_type=type0[,type1 ...]
pwmgen se utiliza para generar señales PWM (modulación de ancho de pulso) o PDM (modulación de densidad de pulso). La frecuencia máxima de PWM y la resolución es bastante limitada en comparación con los enfoques basados en hardware, pero en muchos casos el software PWM puede ser muy útil. Si se necesita un mejor rendimiento, un generador de PWM hardware es una mejor opción.
pwmgen
admite un máximo de ocho canales. El
número de canales realmente cargados depende
del número de valores type dados. El
valor de cada type determina las salidas para ese
canal.
tipo 0: salida única
Un pin de salida único, pwm, cuyo ciclo de trabajo está determinado por el valor de entrada para entradas positivas, y que está apagado (o en min-dc) para entradas negativas. Adecuado para circuitos âsingle endedâ.
tipo 1: pwm/dirección
Dos pines de salida, pwm y dir. El ciclo de trabajo en pwm varÃa en función del valor de entrada. dir es bajo para entradas positivas y alto para entradas negativas.
tipo 2: arriba/abajo
Dos pines de salida, up y down. Para entradas positivas, la forma de onda PWM/PDM aparece en up, mientras que down es baja. Para entradas negativas, la forma de onda aparece en down, mientras que up es baja. Adecuado para manejar los dos lados de un puente H para generar una salida bipolar.
pwmgen.make-pulses (no de punto flotante)
Genera las formas de onda PWM reales, utilizando información calculada por update. Debe llamarse con la mayor frecuencia posible, para maximizar la frecuencia y resolución PWM alcanzables y minimizar la fluctuación de fase. Funciona en todos los canales a la vez.
pwmgen.update (usa punto flotante)
Acepta un valor de entrada, realiza comprobaciones de escalado y lÃmite, y lo convierte en una forma utilizable por make-pulses para la generación PWM/PDM. Se puede (y se debe) llamar con menos frecuencia que make-pulses. Funciona en todos los canales a la vez.
pwmgen.N.enable bit in
Habilita el generador PWMN: cuando es FALSE, todas los pines de salidas pwmgen.N son bajos.
pwmgen.N.value float in
Valor ordenado. Cuando value = 0.0, el ciclo de trabajo es 0%, y cuando value = ±scale, el ciclo de trabajo es ± 100%. (Sujeto a las limitacionesmin-dc y max-dc.)
pwmgen.N.pwm bit out (solo tipos de salida 0 y 1)
Forma de onda PWM/PDM.
pwmgen.N.dir bit out (solo salida tipo 1)
Salida de dirección: baja para avance, alta para retroceso.
pwmgen.N.up bit out (solo salida tipo 2)
Forma de onda PWM/PDM para valores de entrada positivos, bajo para entradas negativas.
pwmgen.N.down bit out (solo salida tipo 2)
Forma de onda PWM/PDM para valores de entrada negativos, bajo para entradas positivas.
pwmgen.N.curr-dc float out
El ciclo de trabajo actual, después de que se hayan aplicado todos los escalados y lÃmites. El rango es de-1.0 a +1.0.
pwmgen.N.max-dc float io
El ciclo de trabajo máximo. Un valor de 1.0 corresponde al 100%. Esto puede ser útil cuando se utilizan controladores de transistores con fuentes de alimentación con bootstrapp, ya que el suministro requiere algun tiempo para recargarse.
pwmgen.N.min-dc float io
El ciclo de trabajo mÃnimo. Un valor de 1.0 corresponde al 100%. Tenga en cuenta que cuando el generador pwm está desactivado, las salidas son constantemente bajas, independientemente de la configuración de min-dc.
pwmgen.N.scale
float io
pwmgen.N.offset float io
Estos parámetros proporcionan una escala y un offset desde el pin value al ciclo de trabajo real. El ciclo de trabajo se calcula de acuerdo con dc = (valor / escala) + offset, donde 1.0 significa 100%.
pwmgen.N.pwm-freq float io
Frecuencia PWM en Hz. El lÃmite superior es la mitad de la frecuencia a la que se invocamake-pulses, y los valores por encima de ese lÃmite se bajaran al lÃmite. Si dither-pwm es FALSE, el valor se cambiará al submúltiplo entero más cercano de la frecuencia make-pulses. Un valor de cero produce modulación de densidad de pulso en lugar de modulación de ancho de pulso.
pwmgen.N.dither-pwm bit io
Debido a que el PWM generado por software utiliza una base de tiempo bastante lenta (de varios a muchos microsegundos), tiene una resolución limitada. Por ejemplo, si se llama make-pulses a una velocidad de 20KHz y pwm-freq es de 2KHz, solo hay 10 ciclos de trabajo posibles. Si dither-pwm es FALSE, el ciclo de trabajo ordenado se redondeará al más cercano de esos valores. Asumiendo que value permanece constante, la misma salida repetirá cada ciclo PWM. Si dither-pwm es TRUE, el ciclo de trabajo de salida se dividirá entre los dos valores más cercanos, de modo que el promedio a largo plazo esté más cerca del nivel deseado. dither-pwm no tiene efecto si pwm-freq es cero (modo PDM), ya que PDM es un proceso inherentemente dithered.