Fuente de alimentación con micro.

Estoy realizando un proyecto en el que necesito controlar una fuente de alimentación conmutada con un microcontrolador PIC16C782 (PWM, control de los diferentes lazos, etc.). Estoy un poco perdido en el tema de la programación en ensamblador.

1 Respuesta

Respuesta
1
Si tu primer proyecto desde la nada es hacer esto, vamos mal. Se trata de algo bastante complejo como para explicar por este medio.
Peor aún si no conoces del tema micros.
De todos modos un lazo de corriente se traduce en tensión mediante un conversor ad. Esa conversión le indicará al módulo PWM si debe incrementar o reducir su ancho de pulso.
Me imagino un arranque con un ciclo activo bastante bajo y lo iría incrementando de a poco hasta llegar al valor de tensión que me interesa.
También es necesario medir la tensión de salida y realimentarla hacia el microcontrolador. Esto se puede hacer con otra entrada AD.
Bueno, lo de realizar el código fuente es difícil. Hay que comenzar con algo más simple para entender los micros y las instrucciones.
Mi problema es que no controlo los lenguajes de programación, en concreto el ensamblador, que es el que tengo que utilizar. La idea del programa es atacar al mosfet de potencia desde la salida PWM del micro, pero para ello hay que controlar el lazo de tensión y el de corriente, para así variar la anchura de pulso del PWM y tener en todo momento la misma tensión en la carga. LA verdad es que no se como realizar el código fuente.
Ok, fantástico, pero no veo cual es tu pregunta.
Podrías ser más específico o preguntarme directamente que es lo que no entendés.
Suerte
La tensión obtenida de la conversión del lazo de corriente y la del alzo de tensión, ¿deben ser comparadas con la misma tensión de referencia?
No necesariamente. Puede usarse la mismatensión de referencia u otra distinta.
El pic tiene varias entradas a/d. Si una no alcanza se puede usar otra más. Todo tiene que ver con la idea que tengas en mente, de que modo controlar y que controlar.
Necesito generar una salida PWM utilizando solo el micro, sin ninguna entrada.
¿Podrías ayudarme con el código?
Te recomiendo que leas las hojas de datos del microcontrolador y la parte de las funciones especiales donde habla del módulo PWM.
Hay unos registros y flags que hay que setear de acuerdo al funcionamiento que uno desea.
Luego de esto podemos charlar un poco del tema. Suerte.
He conseguido solucionar el problema anterior. He conseguido generar un PWM, poniendo una tensión de referencia exterior y comparándola ( con el comparador C1 ) con otra, pero el duty cicle solo varia cuando la tensión de entrada iguala a la de referencia, y después cae a cero.
¿Tengo qué realizar alguna conversión AD o DA?
He realizado un programa en el que primeroinicializo el puertoB, poniendo el pin del PSMCA como salida, y después configuro los registros del modulo PSMC, para trabajar en modo PWM, pero al comprobar la salida de este con el osciloscopio, me sale una tansión continua de 1 voltio.
¿A qué puede ser debido esto?
Se supone que la fuente de alimentación posee una tensión de salida X. Tu debes controlar esa tensión y tratar de mantenerla. La estrategia para hacer esto es monitorearla mediante una entrada AD y actuar con el duty de manera de elevarla si está baja o bajarla si está alta.
Esto es al margen de tener que generar PWM.
¿Desmagnetizar el núcleo? ¿Para qué?
Se desmagnetiza solo con el consumo de corriente. No es una tarea que haya que controlar y forzar. Cuando circula corriente por una bobina primaria el núcleo se magnetiza, al dejar de circular, las lineas de campo generan una corriente en las bobinas primaria y secundaria.
No se quedan eternamente en el éter. No es un imán. Desaparecen solas inmediatamente.
Ya he conseguido generar PWm, pero ahora tengo que controlar la desmagnetización del núcleo mediante el micro. ¿Cómo podría hacerlo?
Gracias.
Tengo conectado el micro a una fuente conmutada, pero no consigo arrancar el mosfet. El programa corre, pero no tengo ninguna señal del lazo de corriente, por tanto no puedo variar la anchura del pulso. ¿Alguna sugerencia?
Pero vamos por partes.
¿El mosfet no funciona? ¿Está bien polarizado? ¿Hay señal cuadrada en el gate del mosfet?
¿Circula corriente por gare source?, ¿Se genera tensión en el secundario?
Todo esto se debe observar con un osciloscopio. Si no lo tienen nunca sabrás que es lo que sucede en verdad.
Fíjate en todo esto como para ir descartando variables, suerte
Ya he conseguido arrancar la fuente. Era un problema de alimentación. Gracias de todas formas.
Si tengo alguna duda me volveré a poner en contacto.
Gracias por la ayuda prestada hasta el momento.
Ok, todo bien, pero no olvides de valorar las respuestas si te ha sido de utilidad. Suerte
¿Usando timer e interrupciones o sin usarlo?
Puedes hacer un delay con instrucciones y listo.
Nunca hallarás un prescaler tan justo como para que te de el valor exacto que necesitas. Lo que se hace es precargar el TMR0 con un valor como por ejemplo .250.
Le llevará 5 ciclos hacer el overflow. Suerte

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas