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

Avatar de torres.electronico

D@rio dijo: Ver Mensaje
... me encuentro con el problema de que el mosfet Q3 que en proteus es Q6 del puente, calienta un monton y revisando con el osciloscopio de mi taller, he notado que la señal de control que llega al mosfet, es diferente incluso en el pin del micro, por lo que deje el microcontrolador funcionando solo y efectivamente, la señal que sale del micro tambien es diferente. aca subo el codigo y el diseño en proteus para ver si me dan una mianito. por cierto, la señal se ve normal en proteus pero en el diseño real no es lo mismo, de hecho, ni en proteus ni en el diseño real, la señal de control se parece a lo que deberia ser...
Hola amigo, un gusto saludarte.
Te comento que todos los software de simulacion, si bien son una excelente herramienta de diseño, hay que tener en cuenta que el software desprecia muchos factores, por eso, no hay que confiar un 100%.
El problema que presentas, puede estar dado por la carencia de una proteccion apropiada al semiconductor. Lo que debes hacer, es implementar una red snuber y estaria solucionado en un 50%. No vi el circuito, lo tienes por ahi en formato imagen? mas que nada para ver que consumo tiene la carga y que mosfet implementastes (digo imagen por que no estoy en mi PC y aca no tengo proteus)....
Bien no recuerdo si fuistes vos u otra persona que habia presentado un dimmer con pic, pero en ese mismo caso, tambien carecia de una proteccion y por ende, la respuesta de otro forista,que se le calentaba el triac y se le quemaba...
Para ese caso en particular, la proteccion es una sencilla bobina de autoinduccion, que si se le asocia dos elementos pasivos mas (resistencia y capacitor), se puede controlar hasta un pequeño motor AC.
Saludos


PD: te sumo teoria al respecto
http://pels.edv.uniovi.es/pels/Pels/...20Snubbers.pdf
http://www.uv.es/marinjl/electro/transistores.html
14/08/2011 #1302

Avatar de Dario

torres.electronico dijo: Ver Mensaje
Hola amigo, un gusto saludarte.
Te comento que todos los software de simulacion, si bien son una excelente herramienta de diseño, hay que tener en cuenta que el software desprecia muchos factores, por eso, no hay que confiar un 100%.
El problema que presentas, puede estar dado por la carencia de una proteccion apropiada al semiconductor. Lo que debes hacer, es implementar una red snuber y estaria solucionado en un 50%. No vi el circuito, lo tienes por ahi en formato imagen? mas que nada para ver que consumo tiene la carga y que mosfet implementastes (digo imagen por que no estoy en mi PC y aca no tengo proteus)....
Bien no recuerdo si fuistes vos u otra persona que habia presentado un dimmer con pic, pero en ese mismo caso, tambien carecia de una proteccion y por ende, la respuesta de otro forista,que se le calentaba el triac y se le quemaba...
Para ese caso en particular, la proteccion es una sencilla bobina de autoinduccion, que si se le asocia dos elementos pasivos mas (resistencia y capacitor), se puede controlar hasta un pequeño motor AC.
Saludos


PD: te sumo teoria al respecto
http://pels.edv.uniovi.es/pels/Pels/...20Snubbers.pdf
http://www.uv.es/marinjl/electro/transistores.html
pues muchas gracias amigo por el interes. mira, aca subo unas imagenes de la simulacion en proteus, los codigos en pbp de las dos secuencias que estoy experimentando y las formas de ondas que obtengo con ellas. primero tengo que aclarar que en esta simulacion estoy usando transistores y no mosfets por el hecho de que, asi ahorro recursos en la pc para la simulacion.
vamos con la primera:

esquematico:


codigo sin pwm

Código:
@ DEVICE MCLR_ON,  hs_osc, WDT_OFF, LVP_OFF, BOD_OFF, PWRT_ON, PROTECT_OFF
define osc 20
CMCON=7
TRISA=%11111111 
TRISB=%00000000

pas:
portb=%00000000
high portb.0
high portb.5
pause 10

portb=%00000000
high portb.0
high portb.6
pause 10

portb=%00000000
high portb.1
high portb.6
pause 10

portb=%00000000
high portb.1
high portb.4
pause 10

portb=%00000000
high portb.2
high portb.4
pause 10

portb=%00000000
high portb.2
high portb.5
pause 10
goto pas
forma de onda obtenida:


se puede decir que con este codigo, obtengo la señal correcta pero sin pwm por lo que los mosfets calientan muchisimo. (correcto pero no viable)

codigo con pwm:
Código:
@ DEVICE MCLR_ON,  hs_osc, WDT_OFF, LVP_OFF, BOD_OFF, PWRT_ON, PROTECT_OFF
define osc 20
CMCON=7
TRISA=%11111111 
TRISB=%00000000

pas:
portb=%00000000
pwm portb.0,50,1
high portb.5
pause 10

portb=%00000000
pwm portb.0,50,1
high portb.6
pause 10

portb=%00000000
pwm portb.1,50,1
high portb.6
pause 10

portb=%00000000
pwm portb.1,50,1
high portb.4
pause 10

portb=%00000000
pwm portb.2,50,1
high portb.4
pause 10

portb=%00000000
pwm portb.2,50,1
high portb.5
pause 10
goto pas
forma de onda obtenida:

la señal obtenida no es correcta y por lo tanto, no sirve

me gustaria saber como lograr hacer que la señal pwm se presente en la parte positiva de la onda cubriendo todo el tiempo on de la misma y no como dos pulsos que ademas, estan invertidos...
saludos y espero alguien me de una mano con esto...
14/08/2011 #1303
Moderador

Avatar de Chico3001

Me preocupan esos Picos que se ven en las graficas..... casi podria asegurar que son corto-circuitos entre los transistores en la simulacion, y la posible causa de que se calienten en la aplicacion...

Que transistores manejas? y cuales son las caracteristicas de la carga?
15/08/2011 #1304

Avatar de Dario

Chico3001 dijo: Ver Mensaje

Que transistores manejas? y cuales son las caracteristicas de la carga?
hola chico.
Si, ami tambien me llama la atencion esos picos que se ven en la simulacion. te cuento que estoy utilizando mosfets del tipo IRFZ44N que segun el datasheet, se aguantan hasta 49 amper.
tambien estoy utilizando unos pre driver en los mosfets T1, T2, T3, del tipo bc548 Q7,8y9 configurados como inversor. aca subo el puente de transistores que estoy utilizando, en un rar porque la imagen es muy grande jeje... saludos y gracias por contestar ah, el codigo para este puente es algo diferente porque los estados logicos que se necesitan son diferentes al del diagrama anterior.
aca una muestra del codigo sin pwm.

Código:
@ DEVICE MCLR_ON,  hs_osc, WDT_OFF, LVP_OFF, BOD_OFF, PWRT_ON, PROTECT_OFF
define osc 20
CMCON=7
TRISA=%11111111 
TRISB=%00000000

pas:
portb=%00000111
low portb.0
high portb.5
pause 10

portb=%00000111
low portb.0
high portb.6
pause 10

portb=%00000111
low portb.1
high portb.6
pause 10

portb=%00000111
low portb.1
high portb.4
pause 10

portb=%00000111
low portb.2
high portb.4
pause 10

portb=%00000111
low portb.2
high portb.5
pause 10
goto pas
Archivos Adjuntos
Tipo de Archivo: rar puente h.rar (94,5 KB (Kilobytes), 112 visitas)
15/08/2011 #1305
Moderador

Avatar de Chico3001

OK... van unas preguntas por que no se mucho de programacion en bsic...

Veo que defines el oscilador a 20, son 20MHz? por que estudiando la hoja de datos el tiempo de apagado del mosfet es de 44nS y se acerca mucho al ciclo de trabajo del PIC que estimo que es de 200nS, si no se cuida el codigo puede haber un caso donde 2 mosfets (Q1 y Q4 o Q2 y Q5 o Q3 y Q6) pueden estar encendidos al mismo tiempo y provocar un corto...

Es necesario el pre-driver inversor? no podrias encender todos los mosfets directos???
15/08/2011 #1306


Dario:
La verdad es que yo no entiendo lo que necesitas porque nunca he manejado un brushless, pero ya intentaste esto...
Código:
pas:
portb=%00100001
pause 10
portb=%01000001
pause 10
portb=%01000010
pause 10
portb=%00010010
pause 10
portb=%00010100
pause 10
portb=%00100100
pause 10
goto pas
15/08/2011 #1307

Avatar de Dario

hola chico.
si, el oscilador es de 20mhz pero la pausa entre conmutaciones es de 10 milisegundos osea que eso esta bien lejos del ciclo de trabajo del pic.

puede haber un caso donde 2 mosfets (Q1 y Q4 o Q2 y Q5 o Q3 y Q6) pueden estar encendidos al mismo tiempo y provocar un corto...
mi sospecha es justamente esa ya que, he visto por ahi en una pagina de bicicletas electricas que para controlar un motor trifacico de contina, usan un pic16f84 y pic basic para su programacion y las bobinas son conmutadas directamente sin pwm. segun su diseñador, el codigo es totalmente funcional, pero yo lo he modificado para un f628, lo he cargado y sin pwm los mosfets hierven hasta su ruptura. y eso que estoy usando un motor de una cd rom sin modificar. este es el sitio http://bicicletaselectricas.wordpres...ta-con-un-pic/
edit2. (claro, el sujeto utilizo reles para la conmutacion, eso explica su funcionamiento, de otra manera le hubiese pasado lo mismo que ami )
si lubeck ya lo intente... pero el resultado es el mismo...
saludosss
15/08/2011 #1308
Moderador

Avatar de Chico3001

Ya revise la secuencia y es correcta... asi que el problema debe estar en otro lado.... no sera que tienes algun cable mal conectado? que motor estas usando y cuantos cables tiene?

tambien comenzaria por quitar el predriver... y hacer todo positivo...
15/08/2011 #1309

Avatar de torres.electronico

Hola amigo, perdon por tardar.... como no me llega notificaciones a mi correo, me olvido. Respecto a tu tema, si es esa la configuracion que estas implementando en tu etapa de potencia, esta claro el problema, es como te comentaba al principio (te estaria faltando la protecciones adecuadas para los transistores)... Yo en tu caso, en vez de usar los npn, implementaria un array con entrada ttl. .. si no le pifio, creo que el TTL era el uln2803...
Te digo de implementar el array, ya que este ya viene con sus propias protecciones internas.
De ultima, si queres usar ese mismo, implementa un zener segun la carga o quizas, si es pequeñó el motor, con un simple diodo en paralelo al transistor ya tendria que funcionar perfecto en frecuencias bajas... en altas frecuencias no sabria decirte...
15/08/2011 #1310

Avatar de Dario

no sera que tienes algun cable mal conectado?
jeje... ya revise las conexiones y nada... esta todo ok.
que motor estas usando y cuantos cables tiene?
estoy usando un motor de una cd rom
tambien comenzaria por quitar el predriver... y hacer todo positivo...
ya he probado eso y nada...

Hola amigo, perdon por tardar.... como no me llega notificaciones a mi correo, me olvido.
jeje... pues no hay problemas amigo, no te preocupes

Respecto a tu tema, si es esa la configuracion que estas implementando en tu etapa de potencia, esta claro el problema, es como te comentaba al principio (te estaria faltando la protecciones adecuadas para los transistores)...
¿ya viste el rar? estoy utilizando mosfets. les cuento que esta etapa de potencia, esta copiada de un variador brushles que funciona y por lo tanto, no tengo dudas al respecto. aca lo pueden ver en el diagrama del rar se me pasaron por alto 3 resistencias que van a masa jeje...
saludos y gracias por responder. PD:(seria muy facil hacer este variador pero yo quiero aprender como hacerlo yo mismo desde cero )
16/08/2011 #1311

Avatar de Dario

hola gentes yo por aqui de nuevo para dejarles mis avances en esto del blmc. bueno, al final me decidi por generar una señal PWM maestra por hardware con el pic y luego inyectarla al puente mediante puertas AND. la señal que obtuve es la siguiente:

como veran, la señal es correcta y todo de maravillas en la siguiente simulacion con transistores:

pero el verdadero problema se da en el diseño real y se da porque la conmutacion de los mosfets, inserta demasiado ruido en la alimentacion del micro haciendo que este, conmute erraticamente y por lo tanto, se da el calentamiento extremo de los mismos. ese ya es un problema que no se soluciona con programacion sino con el diseño de algun filtro para la tension de la circuiteria logica. aqui dejo el diseño final del inversor trifacico que voy a utilizar. obviamente el tema de la programacion del micro no se termina aqui ya que, todavia falta la deteccion de cruce por cero y su posterior procesado, asi que estense listos para una nueva consulta de mi parte jejeje saludos a todos y gracias por ayudarme amigos

edit2: me olvidaba de dejarles tambien el codigo que utilice jeje...

@ DEVICE MCLR_ON, hs_osc, WDT_OFF, LVP_OFF, BOD_OFF, PWRT_ON, PROTECT_OFF
define osc 20
CMCON=7
TRISB.3 = 0 ' RB.3=PWM output
PR2 = 25 ' Set PWM for approximately 38KHz
CCPR1L = 255 ' Set PWM Duty-Cycle to 50%
CCP1CON = %00001100 ' Mode select = PWM
T2CON = %00000100 ' Timer2 ON + 1:1 prescale
TRISA=%11111111
TRISB=%00000000

paso2:
hpwm 2,175,2700
portb=%00100001
pause 10
portb=%01000001
pause 10
portb=%01000010
pause 10
portb=%00010010
pause 10
portb=%00010100
pause 10
portb=%00100100
pause 10
goto paso2
end
Imágenes Adjuntas
Tipo de Archivo: jpg diagrama and.JPG (39,5 KB (Kilobytes), 390 visitas)
Tipo de Archivo: jpg pwm hard.JPG (73,0 KB (Kilobytes), 388 visitas)
Archivos Adjuntos
Tipo de Archivo: rar hpuente.rar (113,3 KB (Kilobytes), 86 visitas)
17/08/2011 #1312

Avatar de torres.electronico

Dario, como te comente desde un principio, el problema que persistes, es justamente problemas por carencia de una proteccion apropiada, de ahi mi recomendacion de que miraras la teoria sobre redes snuber...
Una vez mas, te recomiendo que leas aunque sea este documento, que es un poco mas practico qu8e el resto, y notaras que con la asociacion de un par de elementos mas, tu problema se va
http://es.scribd.com/doc/54810284/Di...rsor-trifasico
Saludos
17/08/2011 #1313

Avatar de Meta

D@rio dijo: Ver Mensaje
hola gentes yo por aqui de nuevo para dejarles mis avances en esto del blmc. bueno, al final me decidi por generar una señal PWM maestra por hardware con el pic y luego inyectarla al puente mediante puertas AND. la señal que obtuve es la siguiente:

como veran, la señal es correcta y todo de maravillas en la siguiente simulacion con transistores:

pero el verdadero problema se da en el diseño real y se da porque la conmutacion de los mosfets, inserta demasiado ruido en la alimentacion del micro haciendo que este, conmute erraticamente y por lo tanto, se da el calentamiento extremo de los mismos. ese ya es un problema que no se soluciona con programacion sino con el diseño de algun filtro para la tension de la circuiteria logica. aqui dejo el diseño final del inversor trifacico que voy a utilizar. obviamente el tema de la programacion del micro no se termina aqui ya que, todavia falta la deteccion de cruce por cero y su posterior procesado, asi que estense listos para una nueva consulta de mi parte jejeje saludos a todos y gracias por ayudarme amigos

edit2: me olvidaba de dejarles tambien el codigo que utilice jeje...

Hola:

Como curiosidad. ¿Realmente hace falta usar las puertas que has puesto?

http://www.educaplus.org/play-164-Pu...3gica-AND.html
18/08/2011 #1314

Avatar de Dario

Dario, como te comente desde un principio, el problema que persistes, es justamente problemas por carencia de una proteccion apropiada, de ahi mi recomendacion de que miraras la teoria sobre redes snuber...
perdon por mi ignorancia es que yo no conocia esa clase de proteccion con el nombre de SNUBBER ahora estoy viendo la forma de implementarla en mi circuito

Como curiosidad. ¿Realmente hace falta usar las puertas que has puesto?
pues generando una sola señal pwm si...
se que se puede hacer que el micro genere una señal pwm independiente por cada salida pero ya me canse de experimentar... lo que todavia no entiendo, es porque cuando diseñe el controlador brushless discreto, no tube problemas. sin embargo con micro deberia ser mas facil pero no es asi para mi sorpresa...
saludosss
18/08/2011 #1315
Moderador

Avatar de Chico3001

Lo que meta trata de decirte es que el circuito se puede simplificar aun mas.... siento que quieres correr antes de aprender a caminar...

Primero elimina esas AND que salen sobrando, solo invierte los bits desde dentro del codigo del programa, el PIC puede hacer eso sin problemas... Despues te recomendaria que probaras el motor con un puente de transistores normales y revisaras que todo funciona bien... para posteriormente hacer el mismo intento cambiando los transistores por los MOSFETS

Asi vas eliminando errores y vas asegurando que cada etapa anterior funciona bien antes de pasar a la siguiente...
18/08/2011 #1316

Avatar de reyvilla

hola que tal, estuve viendo tu idea y esta muy buena he conseguido algo de información que te puede ayudar no se si ya la has visto te la coloco para que lo revises, estuve viendo que si necesitas de un filtro para el circuito a la final.

http://www.neoteo.com/Default.aspx?s...%3E%3E+buscar+
18/08/2011 #1317

Avatar de torres.electronico

D@rio dijo: Ver Mensaje
...ahora estoy viendo la forma de implementarla en mi circuito ...
Implementa un sencillo diodo en el transistor, y si vemos despues con el oscillooscopio en la placa que estas experimentando que mejora la señal, con los datos de corriente del motor, le sumamos un capacitor y una resisitencia... necesitas un diagrama para ver como va el diodo?chiflame cualquier cosa, saludos
18/08/2011 #1318

Avatar de Dario

Implementa un sencillo diodo en el transistor
¿te referis a algo como esto?
los irfz44n, tienen diodo interno...


Primero elimina esas AND que salen sobrando, solo invierte los bits desde dentro del codigo del programa, el PIC puede hacer eso sin problemas
perdon si estoy entendiendo mal pero,esas AND no estan ahi para invertir bits, estan ahi para distribuir la señal PWM a cada mosfet. la señal pwm, no son bits, es una señal de onda cuadrada de anchura variable con la que se puede variar el torque del motor.

hola que tal, estuve viendo tu idea y esta muy buena he conseguido algo de información que te puede ayudar no se si ya la has visto te la coloco para que lo revises, estuve viendo que si necesitas de un filtro para el circuito a la final.

http://www.neoteo.com/Default.aspx?s...%3E%3E+buscar+
gracias reyvilla. esta muy interesante, lo voy a estudiar un poco, talves me sirva.
saludosss
Imágenes Adjuntas
Tipo de Archivo: jpg Dibujo.JPG (4,6 KB (Kilobytes), 407 visitas)
18/08/2011 #1319

Avatar de Meta

Esas AND las puedes quitar y hacer los PWM en cada pin del PIC. Si es más fácil hacerlo como dices ya que en un sólo pin del PIC, puedes generar tres PWM iguales para los transistores. Por un lado es buena idea, si lo haces directamente con el PIC y te ahorra electrónica, mejor que mejor, aunque tengas que programar mucho.

Cuanto más complejo es el circuito, más posibilidad hay de tener errores, más cuesta encontrarlos, más caro, etc.

Usted decide campeón.
18/08/2011 #1320

Avatar de Dario

Meta dijo: Ver Mensaje
Esas AND las puedes quitar y hacer los PWM en cada pin del PIC. Si es más fácil hacerlo como dices ya que en un sólo pin del PIC, puedes generar tres PWM iguales para los transistores. Por un lado es buena idea, si lo haces directamente con el PIC y te ahorra electrónica, mejor que mejor, aunque tengas que programar mucho.

Cuanto más complejo es el circuito, más posibilidad hay de tener errores, más cuesta encontrarlos, más caro, etc.

Usted decide campeón.
el problema es que cuando genero el pwm en cada pin del pic, al parecer ocurre un retraso que termina deformando la señal como habras visto en los post anteriores. al final de tanto intentar hacerlo asi, me canse y decidi aumentar un componenta mas. aparte de eso, generar el pwm asi, me ahorra proceso del micro ya que es generada por hardware interno del pic. si conoces alguna manera de que el comando PWM del pbp funcione sin deformar la señal, me avisas gracias amigo .
saludosss
¿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 - 2016, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.