Autor Tema: Problema con INVERSOR CC/CA de 60Hz  (Leído 37072 veces)

0 Usuarios y 3 Visitantes están viendo este tema.

Desconectado tapi8

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1506
Re: Problemas con PWM e interrupcion externa en pic18f4550 al realizar una onda seno
« Respuesta #45 en: 14 de Septiembre de 2013, 14:38:43 »
Citar
De paso te comento que en mi ciudad no encontre el PS2505-1 ni ningun ps2505, asi que busque opciones y encontre un H11AA1, te dejo el datasheet

http://pdf.datasheetcatalog.com/datasheet/QT/H11AA3.pdf

aun no he hecho las pruebas ya que he estado un poco ocupado pero creo que tiene la misma funcionalidad del ps2505 por lo que he leido en el datasheet, ademas tendria que hacer la prueba con un osciloscopio de laboratorio y no tendre acceso a uno sino hasta dentro de unos 10 dias ya que nuevamente me ire de la ciudad mañana a primera hora....


Si parece exactamente igual, no debe haber problemas.

Citar
Te comento que el mosfet que he encontrado en mi ciudad es STP140NF75 y aqui te dejo su datasheet, me salieron un poquito caros pero creo que valen la pena.

http://pdf.datasheetcatalog.com/datasheet/stmicroelectronics/9231.pdf

En cuanto al driver tuve mala suerte y no encontre el IR2110, y pues se me paso preguntar por si tenian algun otro driver, creo que igualmente en unos 10 dias tendre que preguntar, si puedo conseguire a alguien que me de preguntado entre estos dias que estare fuera de la ciudad....


Con estos conseguiras los 300W que querias, ¿A cuanto te los han cobrado? En la pagina de Digikey mas o menos iguales estaban entre 0.7€ (1$) y 1,2€ (1,5$), pero bueno en las tiendas fisicas siempre cobran un poco mas, aqui en España en mi ciudad tambien pasa, ademas en mi ciudad que es pequeña solo hay un comercio que venda este material.

Citar
exacto, por lo mismo opte por dejarlo asi... mas bien lo que hice es eliminar una instruccion que estaba duplicada, que seria el bsf al puerto de salida en el Positivo 30, y en el Negativo 30, ya que en los 29, ya los seteamos y nunca les damos en bcf jejejeje es algo que se me olvido escribirte pero que si lo hice....

Si ya he visto que lo has hecho asi, te lo iba a decir y se me olvido, pero despues ya vi que lo estabas haciendo bien.

Citar
Pues no se porque amigo pero no pudo ver tampoco las imagenes, ni la pagina a la que manda (o sea de Neoteo) desde el link que me mandaste... segun lei el amigo de ese hilo lo arreglo con un driver.... la verdad no he trabajando con mosfet nunca, pero pues es bueno experimentar o aprender algo nuevo... por ahi me recomendaron que mas bien ponga varios 2n3055 (que hay disponibles en mi ciudad pero no se el precio) en paralelo hasta que cumpla con la potencia que quiera entregar... Ahora mismo ya compre los mosfet que te comente que me costaron un poquitin caros pero si no puedo utilizarlos y me toca comprar los 2n3055 pues ya veremos creo que con las pruebas....

Si es algo extraño, aunque pasa con bastantes circuitos aqui en el foro, al cabo de un tiempo desaparecen y queda una X marcando que hubo un circuito o una imagen pero no se pueden ver. En la web de Neoteo si logre entrar pero hay tantas paginas que no lo encontre y se me acabo la paciencia  :lol: fue una pena porque muchas veces los copio para tenerlos, pero con este no me di cuenta de hacerlo  :5]

Citar
Ahora te comento un problema muy grande que tengo... ya el programa se supone que esta funcionando, le quemo en el pic con el mplab y el pickit3, incluso me verifica que si le quemo en el pic, pero le conecto en un protoboard y no me funciona (al parecer no me funciona verificado con mi osciloscopio que te comente), cuando veo los pines de alimentacion si me da la alimentacion correcta (5V y GND) para VDD y VSS respectivamente, en las entradas del crystal me da un nivel mas o menos estable de voltaje, en la una pata mas grande que en la otra (no me he puesto a medir cuanto voltaje me da y no se si ahi sea el problema... pero en las salidas no me da absolutamente nada... Verifico en el PORTC las salidas 0,1,2 y 3 pero en ninguna me da absulutamente nada... verifico directamente todo en el pic, no lo estoy haciendo en el protoboard asi que pienso que no es falla del protoboard ya que la alimentacion llega al pic y en las patas de salida del pic no sale nada... esto me esta preocupando pero no se si la falla es de pronto el pic, o mas bien puede ser mi instrumento de medicion...

Lo mejor en estos casos que se desconfia de que el PIC este dañado, es grabarle un programa sencillo (encende y apagar un LED) y si con eso tambien falla pues...Otra cosa que a veces da problemas son los FUSES, que alguno este mal configurado.

Citar
Creo que encontre la falla de porque pareciera que no funciona... esq le tenia al PIC sin conectar las patas (incluida la Portb,0) que es la pata de testeo para el cruce por cero, estaba que le metia cabeza pensando pero creo que es eso ya que esa pata debe estar a cero, lo malo es que no puedo probar mi teoria hasta que salga a mi ciudad ya que ahi tengo el pic y demas.... pero creo que ahi vamos a tener un poco de problemas ya como testeamos en cada momento la pata del pic pues puede darse el caso que esta en cero y se forme un bucle mientras esta testeando la pata... creo que hay q poner algo para q cuando se detecte el cruce por cero ya la siguiente onda no la detecte almenos mientras este en positivo la pata del pic... la verdad aun no he podido probar la forma de onda que da el ps2505 (en mi caso h11aa1) al paso por cero, no se si mantiene en 0 por un tiempo (y cuanto) el pulso o solamente es un impulso.... Si tienes idea de como es pues hasmelo saber para de esa manera seguir adecuando el codigo del PIC mientras me encuentro lejos de mi ciudad...

Si nos va a dar 0 casi todo el semiciclo y unos uS antes del cruce por 0 se pondra a 1 y permanecera en 1 unos uS despues, pero cuando detectemos el flanco que se nos pone a 1 por primera vez, tendremos que poner un "FLAG" por sofware que pondremos a 1 mientras este FLAG este a 1 sabremos que no tenemos que hacerle caso al pin del opto, cuando se vuelva a poner a 0 pondremos ese FLAG a 0 y ya le volveremos a hacer caso. En un reg de RAM se le llama FLAGS y se coge un bit por ejemplo el bit 0, si se quiere se puede definir ese bit:

#DEFINE FLAG FLAGS,0

Cuando se chequea el pin si hay un 1 se chequea el FLAG "btfsc FLAG" si hay 0 es la primera vez hay cruce por 0 lo ponemos a 1 las siguientes veces como estara a 1 no hacemos caso, cuando se ponga a 0 el pin pondremos el FLAG a 0 asi la proxima vez como estara a 0 sabremos que es el cruce por 0.

No me di cuenta de decirte antes lo de definir las salidas y entradas, es muy util para hacer el programa mas entendible y tiene una utilidad muy buena, si tienes que cambiar pines no tienes que estar cambiandolos en el todo el programa, solo cambias en el #DEFINE y ya esta, por ejemplo si este programa lo tuvieras que pasar a un 12f que a los pines se les llama GPIO en vez de PORTC:

#DEFINE  PWM_1  PORTC,2

Harias:

#DEFINE  PWM_1  GPIO,2

Despues en el programa haces:

bsf   PWM_1

Y ya no lo tienes que cambiar en los 60 PWMs donde va a estar PORTC,2 ¿Entiendes?, no te digo que lo hagas ahora porque te va a dar mucho trabajo, pero en los proximos programas acostumbrate a hacerlo asi, te sera mas comodo y mas entendible.

Desconectado pgvs25

  • PIC12
  • **
  • Mensajes: 58
Re: Problemas con PWM e interrupcion externa en pic18f4550 al realizar una onda seno
« Respuesta #46 en: 14 de Septiembre de 2013, 16:04:45 »
Citar
Si parece exactamente igual, no debe haber problemas.

Esperemos y sea asi... ya cuando salga para mi ciudad lo probare...


Citar
Con estos conseguiras los 300W que querias, ¿A cuanto te los han cobrado? En la pagina de Digikey mas o menos iguales estaban entre 0.7€ (1$) y 1,2€ (1,5$), pero bueno en las tiendas fisicas siempre cobran un poco mas, aqui en España en mi ciudad tambien pasa, ademas en mi ciudad que es pequeña solo hay un comercio que venda este material.

Pues aca fueron un poco caros... me costaron casi 5 dolares cada uno... he comprado 4...

En mi ciudad hay 3 tiendas medianas y unas 2 pequeñas mas pero solamente en el un local pude conseguir mosfet con esas caracteristicas o similares....

Ademas me nace una duda... me parece que para el tema del puente H, tenemos tambien que utilizar canal P en los mosfet, pero no conseguir de esas caracteristicas ni siquiera similares.... he comprado 4 como te dije pero aun con la duda si me serviran o no...

Alguien me recomendo IGBT pero esos si que nunca los he visto siquiera como son jajajajajajaja

Citar
Si ya he visto que lo has hecho asi, te lo iba a decir y se me olvido, pero despues ya vi que lo estabas haciendo bien.

Jejejeje esque cuando estoy lejos de mi ciudad y si dispongo de algo de tiempo le meto mano al programa a ver que mas se puede hacer jejejejejeje

Citar
Si es algo extraño, aunque pasa con bastantes circuitos aqui en el foro, al cabo de un tiempo desaparecen y queda una X marcando que hubo un circuito o una imagen pero no se pueden ver. En la web de Neoteo si logre entrar pero hay tantas paginas que no lo encontre y se me acabo la paciencia  :lol: fue una pena porque muchas veces los copio para tenerlos, pero con este no me di cuenta de hacerlo  :5]

jejejeje ni modo... tocara ver como nos habilitamos entonces jejejeje.....


Citar
Lo mejor en estos casos que se desconfia de que el PIC este dañado, es grabarle un programa sencillo (encende y apagar un LED) y si con eso tambien falla pues...Otra cosa que a veces da problemas son los FUSES, que alguno este mal configurado.

entiendo... cuando regrese por mi ciudad tambien probare el pic de esta manera jejejejejejeje

Y espero qeu los FUSES no esten mal configurados (segun yo si estan bien)

Citar
Si nos va a dar 0 casi todo el semiciclo y unos uS antes del cruce por 0 se pondra a 1 y permanecera en 1 unos uS despues, pero cuando detectemos el flanco que se nos pone a 1 por primera vez, tendremos que poner un "FLAG" por sofware que pondremos a 1 mientras este FLAG este a 1 sabremos que no tenemos que hacerle caso al pin del opto, cuando se vuelva a poner a 0 pondremos ese FLAG a 0 y ya le volveremos a hacer caso. En un reg de RAM se le llama FLAGS y se coge un bit por ejemplo el bit 0, si se quiere se puede definir ese bit:

#DEFINE FLAG FLAGS,0

Cuando se chequea el pin si hay un 1 se chequea el FLAG "btfsc FLAG" si hay 0 es la primera vez hay cruce por 0 lo ponemos a 1 las siguientes veces como estara a 1 no hacemos caso, cuando se ponga a 0 el pin pondremos el FLAG a 0 asi la proxima vez como estara a 0 sabremos que es el cruce por 0.

No me di cuenta de decirte antes lo de definir las salidas y entradas, es muy util para hacer el programa mas entendible y tiene una utilidad muy buena, si tienes que cambiar pines no tienes que estar cambiandolos en el todo el programa, solo cambias en el #DEFINE y ya esta, por ejemplo si este programa lo tuvieras que pasar a un 12f que a los pines se les llama GPIO en vez de PORTC:

#DEFINE  PWM_1  PORTC,2

Harias:

#DEFINE  PWM_1  GPIO,2

Despues en el programa haces:

bsf   PWM_1

Y ya no lo tienes que cambiar en los 60 PWMs donde va a estar PORTC,2 ¿Entiendes?, no te digo que lo hagas ahora porque te va a dar mucho trabajo, pero en los proximos programas acostumbrate a hacerlo asi, te sera mas comodo y mas entendible.

Entiendo... voy a intentar hacerlo a ver como me va.... lo de los flag nunca habia utilizado pero como siempre digo, nunca es tarde para aprender....

en cuanto a los #define si consigo un poco mas de tiempo tambien lo implemente sino pues quedara asi hasta encontrar un poco mas de tiempo....

Y pues luego de adaptar lo del flag revisare si tengo que ajustar o no el tiempo nuevamente jejejejejeje por suerte ya me indicaste como hacerlo jajajajajaja

Saludos, Pedro.

Desconectado tapi8

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1506
Re: Problemas con PWM e interrupcion externa en pic18f4550 al realizar una onda seno
« Respuesta #47 en: 15 de Septiembre de 2013, 05:42:18 »
Citar
Pues aca fueron un poco caros... me costaron casi 5 dolares cada uno... he comprado 4...

Si, lo que se dice baratos baratos, no fueron  :lol:, pero bueno en las tiendas es habitual que les metan estos margenes, hay que pagar el local, sueldos de empleados, gastos de seguros sociales etc. ¿No podeis comprar por internet, digikey, farnel etc? aunque si es poco material con los gastos de envio...


Citar
Ademas me nace una duda... me parece que para el tema del puente H, tenemos tambien que utilizar canal P en los mosfet, pero no conseguir de esas caracteristicas ni siquiera similares.... he comprado 4 como te dije pero aun con la duda si me serviran o no...

Los mosfet de canal P son mas dificiles de encontrar, hay menos variedad y son mas caros. Si se ponen mosfet P en la parte superior no se necesita driver, el driver se pone para cebar los superiores de tipo N a la V de alimentacion +10 o 15V (segun mosfet) y que hagan la misma funcion que los tipo P.

Citar
Alguien me recomendo IGBT pero esos si que nunca los he visto siquiera como son jajajajajajaja

Los IGBTs hacen la misma funcion que los mosfet pero son para V mas altas, suelen ser para 600V y 1200V algunos incluso mas. Trabajan casi igual que los mosfet e incluso valen los mismos drivers.

Citar
jejejeje ni modo... tocara ver como nos habilitamos entonces jejejeje.....

Si, a ver como hacemos, ya lo conseguiremos...

Citar
Entiendo... voy a intentar hacerlo a ver como me va.... lo de los flag nunca habia utilizado pero como siempre digo, nunca es tarde para aprender....

Es algo que se usa bastante, para distinguir entre partes de programa en que las condiciones coinciden pero hay que hacer cosas distintas.

Citar
en cuanto a los #define si consigo un poco mas de tiempo tambien lo implemente sino pues quedara asi hasta encontrar un poco mas de tiempo....

Yo te aconsejaria que ahora que lo tienes hecho no te pongas a modificarlo, el programa va a funcionar igual, no vas a conseguir ninguna mejora. Si algun amigo te encarga que le hagas uno y le pones un 12f (que mas o menos llegaria y es mas pequeño y mas barato) te tocara cambiar los 120 PWMs uno a uno, o para un 16f de 18 pines igual ya que no tiene PORTC

Desconectado pgvs25

  • PIC12
  • **
  • Mensajes: 58
Re: Problemas con PWM e interrupcion externa en pic18f4550 al realizar una onda seno
« Respuesta #48 en: 15 de Septiembre de 2013, 10:14:41 »
Citar
Si, lo que se dice baratos baratos, no fueron  :lol:, pero bueno en las tiendas es habitual que les metan estos margenes, hay que pagar el local, sueldos de empleados, gastos de seguros sociales etc. ¿No podeis comprar por internet, digikey, farnel etc? aunque si es poco material con los gastos de envio...

Aja... por todo eso y sobre todo por las importaciones (en caso de que las traigan del exterior) pues son mas caros...

Y como tu mismo dices pues es muy poco material como para los gastos de envio y a la final creo que hasta posiblemente me salen costando mas debido a los impuestos que se pagan de ingreso al pais.... ademas que aca en Aduanas es un problemon y demora mucho en llegar... entonces son muchos factores por lo cual no se compra por internet... Solamente se lo hace siesque realmente no hay disponible en el Pais y se necesita...


Citar
Los mosfet de canal P son mas dificiles de encontrar, hay menos variedad y son mas caros. Si se ponen mosfet P en la parte superior no se necesita driver, el driver se pone para cebar los superiores de tipo N a la V de alimentacion +10 o 15V (segun mosfet) y que hagan la misma funcion que los tipo P.

Mmmmm entiendo, pero para poner un mosfet de canal P en la parte superior deberia de tener por lo menos las mismas caracteristicas de corriente (que es lo que mas necesitamos) verdad??, porque me parece que me dijeron que hay unos de 75A en canal P, pero no recuerdo exactamente, ahi no se si sera o no suficiente para lo que necesito, tu que opinas?? te pregunto porque si asi evitamos el diver pues seria mejor ya que como te indique no encontre el IR2110, y pues se me paso preguntar por otro driver...


Citar
Los IGBTs hacen la misma funcion que los mosfet pero son para V mas altas, suelen ser para 600V y 1200V algunos incluso mas. Trabajan casi igual que los mosfet e incluso valen los mismos drivers.

Entiendo... a nosotros no nos serviran de mucho ya que manejariamos mas corriente que voltaje...

Citar
Si, a ver como hacemos, ya lo conseguiremos...

Tenemos que...

ahora estaba cambiando en algo el programa pero me nacio una duda.... no se si tienes alguna imagen de como se veria la salida del opto ya que como no la he visto me esta creando muchas dudas jejejejeje, ya quiero salir para mi ciudad a ver como es la forma de onda ya que pienso que talves asi podre saber en donde mismo meter la programacion para la flag....


Citar
Es algo que se usa bastante, para distinguir entre partes de programa en que las condiciones coinciden pero hay que hacer cosas distintas.

Ah ok... gracias


Citar
Yo te aconsejaria que ahora que lo tienes hecho no te pongas a modificarlo, el programa va a funcionar igual, no vas a conseguir ninguna mejora. Si algun amigo te encarga que le hagas uno y le pones un 12f (que mas o menos llegaria y es mas pequeño y mas barato) te tocara cambiar los 120 PWMs uno a uno, o para un 16f de 18 pines igual ya que no tiene PORTC

Ok, pero igual si tengo tiempo lo hare como quien practico jejejejeje...

De paso te comento que estoy pensando en hacer una Demora_2 y una Demora_3 que serian 2 y 3 Demora_1... a ver si de algo me sirve y consigo ganar algo de espacio ya que veo que lo voy a necesitar.

Saludos, Pedro.

Desconectado tapi8

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1506
Re: Problemas con PWM e interrupcion externa en pic18f4550 al realizar una onda seno
« Respuesta #49 en: 17 de Septiembre de 2013, 13:44:48 »
Citar
Mmmmm entiendo, pero para poner un mosfet de canal P en la parte superior deberia de tener por lo menos las mismas caracteristicas de corriente (que es lo que mas necesitamos) verdad??, porque me parece que me dijeron que hay unos de 75A en canal P, pero no recuerdo exactamente, ahi no se si sera o no suficiente para lo que necesito, tu que opinas?? te pregunto porque si asi evitamos el diver pues seria mejor ya que como te indique no encontre el IR2110, y pues se me paso preguntar por otro driver...

Si, los P se usan muy poco porque son mas caros y hay menos variedad, ahorran el driver eso si, 75A bueno para 250W mas o menos valdrian??? Es raro que no encuentres el driver IR2110, casi todos los montajes con mosfet lo llevan, supongo que habra alguno similar.

Citar
Entiendo... a nosotros no nos serviran de mucho ya que manejariamos mas corriente que voltaje...

Aqui no sirven de nada, ya que aqui con un mosfet de 20V ya valdria, lo importante es la intensidad, estos se usan con baterias de 400V(coches electricos) o variadores industriales que trabajan con trifasica de 400V.

La señal que da el opto te la puse aqui:

http://imageshack.us/photo/my-images/255/cruceporcerofu1.jpg/

Lo que hay que saber es cuantos uS de ancho tiene ese pulso, para saber donde nos coincide ese flaco ascendente si en POSITIVO_55 (o 54 o 53) y asi saber a donde lo tenemos que mandar cuando este fuera de su sitio.
« Última modificación: 17 de Septiembre de 2013, 14:34:23 por tapi8 »

Desconectado tapi8

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1506
Re: Problemas con PWM e interrupcion externa en pic18f4550 al realizar una onda seno
« Respuesta #50 en: 18 de Septiembre de 2013, 13:40:31 »
El primer cruce por 0 no debe de estar nunca fuera del rango POSITIVO_55 y NEGATIVO_4 ambos inclusive, y el segundo entre NEGATIVO_55 y POSITIVO_4, bueno esto en teoria  :lol: me refiero al cruce por 0 cuando la corriente sea buena, si es mala tampoco se debe desviar mucho de estos margenes, con esto quiero decir que se podria chequear entre POSITIVO_50 y NEGATIVO_9 el primero y entre NEGATIVO_50 y POSITIVO_9, si esta fuera de estos rangos lo mejor es matar a los ingenieros de la red electrica de tu pais  :D :D Sabiendo donde cruza exactamente cuando es buena, se pone ahi una etiqueta que podria ser "CRUCE_0_1" como ya lo mandas en el programa y la onda empezaria a generar en ese punto y estaria en sincronismo con la de red.

Lo del FLAG he hecho esto asi muy rapido (ando un poco liado esta temporada) seguramente es mejorable, posiblemente haciendo una rutina con el chequeo del FLAG y llamando esa rutina cada vez que el pin de un 1 se ahorre programa:

btfsc   PORTB,0       ;chequeamos si cruzo por cero la  senoidal de la red
       goto   $+4         ;ya cruzo por cero
   btfss   INTCON,T0IF      ;chequeamos si desbordo
   goto   $-3            ;todavia no pasaron los 138,8uS, esp
   goto   $+5         ;para que continue ejecutando siguiente PWM ya que TMR0 desbordo
   btfsc   FLAG         ;miramos si FLAG esta a 0
   goto   $-4         ;esta a 1, no hacemos caso
   bsf   FLAG         ;esta a 0, lo ponemos a 1
   goto   CRUCE_0_1      ;y mandamos programa a punto de sincronismo

Si se mete el chequeo del FLAG antes del desborde del TMRO creo que no nos fastidia el tiempo del PWM. Por cierto si el TMR0 lo cargas antes de hacer bsf PORTC,X creo que tambien ahorras en poner los "nop" y los "goto" ¿Entiendes?.

Citar
De paso te comento que estoy pensando en hacer una Demora_2 y una Demora_3 que serian 2 y 3

Tambien puede que sirva.

« Última modificación: 18 de Septiembre de 2013, 13:43:31 por tapi8 »

Desconectado pgvs25

  • PIC12
  • **
  • Mensajes: 58
Re: Problemas con PWM e interrupcion externa en pic18f4550 al realizar una onda seno
« Respuesta #51 en: 18 de Septiembre de 2013, 15:26:08 »
Citar
El primer cruce por 0 no debe de estar nunca fuera del rango POSITIVO_55 y NEGATIVO_4 ambos inclusive, y el segundo entre NEGATIVO_55 y POSITIVO_4, bueno esto en teoria  :lol: me refiero al cruce por 0 cuando la corriente sea buena, si es mala tampoco se debe desviar mucho de estos margenes, con esto quiero decir que se podria chequear entre POSITIVO_50 y NEGATIVO_9 el primero y entre NEGATIVO_50 y POSITIVO_9, si esta fuera de estos rangos lo mejor es matar a los ingenieros de la red electrica de tu pais  :D :D Sabiendo donde cruza exactamente cuando es buena, se pone ahi una etiqueta que podria ser "CRUCE_0_1" como ya lo mandas en el programa y la onda empezaria a generar en ese punto y estaria en sincronismo con la de red.

Lo del FLAG he hecho esto asi muy rapido (ando un poco liado esta temporada) seguramente es mejorable, posiblemente haciendo una rutina con el chequeo del FLAG y llamando esa rutina cada vez que el pin de un 1 se ahorre programa:

btfsc   PORTB,0       ;chequeamos si cruzo por cero la  senoidal de la red
       goto   $+4         ;ya cruzo por cero
   btfss   INTCON,T0IF      ;chequeamos si desbordo
   goto   $-3            ;todavia no pasaron los 138,8uS, esp
   goto   $+5         ;para que continue ejecutando siguiente PWM ya que TMR0 desbordo
   btfsc   FLAG         ;miramos si FLAG esta a 0
   goto   $-4         ;esta a 1, no hacemos caso
   bsf   FLAG         ;esta a 0, lo ponemos a 1
   goto   CRUCE_0_1      ;y mandamos programa a punto de sincronismo

Si se mete el chequeo del FLAG antes del desborde del TMRO creo que no nos fastidia el tiempo del PWM. Por cierto si el TMR0 lo cargas antes de hacer bsf PORTC,X creo que tambien ahorras en poner los "nop" y los "goto" ¿Entiendes?.


La verdad lo estaba haciendo de otra manera pero me estaba fastidiando los tiempo asi que tenia que volverlos a recalcular, asi q demoraba aun mas.... lo de la rutina lo intente pero de la forma que lo estaba haciendo fastidiaba aun mas el tiempo asi que tenia que ajustar aun mas por lo tanto ocupar mas intrucciones, intentare hacer lo que me dices y de esa forma ver como me va... te dejo el como lo estaba haciendo solo para que lo veas... pero como te digo me estaba tomando mucho tiempo...

POSITIVO_0               ;este es el primer PWM que no tiene dutty, es el paso por 0

   bsf    PWM_1_AUX      ;pin para positivo del Puente H         
   bcf    INTCON,T0IF
   movlw   .86            ;valor del offset del TMR0 para 136,0uS; Temporización = Ciclo de instrucción*(256-TMR0)*Divisor de Frecuencia
   movwf   TMR0         ;aqui empieza a contar
   goto   $+1
   goto   $+1
   nop
   btfsc   CRUCE_CERO     ;chequeamos si cruzo por cero la  senoidal de la red
   btfsc   FLAG         ;chequeamos si la bandera esta en alto
   goto   $+3            
   bsf      FLAG
    goto   CRUCE_0         ;ya cruzo por cero
   btfss   INTCON,T0IF      ;chequeamos si desbordo
   goto   $-6            ;todavia no pasaron los 138,8uS, esperamos

ahora se supone que esta configuracion del testeo del cruce por cero, me da a ambos cruces por cero, es decir de negativo a positivo y de positivo a negativo??
Porque si es asi pues creo que esto tambien debemos considerar en el programa.... justamente esa duda es la que tenia y por eso te pedia una imagen de como es la onda que sale del opto, al ser de esa forma no podriamos diferenciar cual es  el cruce por cero de positivo a negativo y cual es de negativo a positivo... y eso seria otro problema mas a afrontar.... si vi la imagen que pusiste en jpg antes pero ahi justamente no indica mi duda... y como te dije propuse 300W pero si no hay como pues me tendre que conformar con lo que pueda... pero si intentare sacar los 300W, vere si hay otro driver o si consigo los otros transistores... cualquiera de las dos opciones....

Ah de la subrutina empece a hacerlo asi pero desisti porque tendria que llamar a la subrutina y poner otra bandera para salir de ahi... testear esa bandera al salir y de ahi si poner un goto ya que si hago un goto dentro de un call pues me va a desbordar la pila en cualquier momento y como nosotros testeamos muchisimas veces pues seguramente eso sera muy muy rapido... con todo ya pensare como hacer eso sin problema....

PD.: Algo que me olvidaba es preguntarte si mejor cambio el nombre del hilo ya que ya no es ese el problema o el hilo, ahora mas bien seria algo como "Problema con INVERSOR CC/CA de 60Hz" o simplemente "INVERSOR CC/CA de 60Hz"...

Otra cosa que me estoy dando cuenta es que si movemos el bsf tenemos que calcular el tiempo del PWM en alto, pero si siempre lo ponemos pegado a las demoras, pues ya no haria falta la demora "DEMORA", con la "DEMORA_1" sera suficiente... ademas de que los nop o goto servirian para ajustar tanto el tiempo del TMR0 asi como los tiempos del bcf jejejejeje... ire aplicando todo esto en el programa a ver como me va... voy a demorar bastantito pero creo que vale la pena...

Saludos, Pedro.
« Última modificación: 18 de Septiembre de 2013, 18:34:05 por pgvs25 »

Desconectado tapi8

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1506
Re: Problemas con PWM e interrupcion externa en pic18f4550 al realizar una onda seno
« Respuesta #52 en: 19 de Septiembre de 2013, 14:32:49 »
Citar
La verdad lo estaba haciendo de otra manera pero me estaba fastidiando los tiempo asi que tenia que volverlos a recalcular, asi q demoraba aun mas.... lo de la rutina lo intente pero de la forma que lo estaba haciendo fastidiaba aun mas el tiempo asi que tenia que ajustar aun mas por lo tanto ocupar mas intrucciones, intentare hacer lo que me dices y de esa forma ver como me va... te dejo el como lo estaba haciendo solo para que lo veas... pero como te digo me estaba tomando mucho tiempo...

Tal y como lo tienes tu no te debe influir en el tiempo, miralo en el simulador y veras que te da los 138uS igual, sino variamos el OFFSET del TMR0, ya que esta dentro del tiempo del TMR0, igualmente si lo cargas asi:


 bcf    INTCON,T0IF
movlw   .86            ;valor del offset del TMR0 para 136,0uS; Temporización = Ciclo de instrucción*(256-TMR0)*Divisor de Frecuencia
   movwf   TMR0         ;aqui empieza a contar, antes del "bsf    PWM_1_AUX"
bsf    PWM_1_AUX 

En los siguientes ponlo antes del PWM asi consigues que el TMR empiece a contar antes.

Citar
ahora se supone que esta configuracion del testeo del cruce por cero, me da a ambos cruces por cero, es decir de negativo a positivo y de positivo a negativo??

No es necesario, con que lo sincronicemos cada ciclo completo es suficiente, yo en el mensaje anterior te queria explicar donde deben estar mas o menos los cruces, pero no quise decir que los tuvieras que chequear, posiblemente me explique mal, cosa bastante normal en mi  :lol: :lol: creo que lo mejor es chequear el cruce de - a +.

Citar
Porque si es asi pues creo que esto tambien debemos considerar en el programa.... justamente esa duda es la que tenia y por eso te pedia una imagen de como es la onda que sale del opto, al ser de esa forma no podriamos diferenciar cual es  el cruce por cero de positivo a negativo y cual es de negativo a positivo... y eso seria otro problema mas a afrontar....

Si, llevo una semana dandole vueltas a esto y preguntandole a gente que sabe mas que yo, pero nadie me sabe dar una respuesta convincente. Creo que la unica manera es chequeando la direccion de la corriente, esto habria que hacerlo con optos normales, ya que solo conducen en una direccion, cuando los dos conducen quiere decir que la tensiones son del mismo signo + o - nos da igual el caso es que sean del mismo signo, porque si son de sigo contrario se restarian, si de la red tenemos 300W y le metemos 300W del inverter de signo contrario tenemos 0W???

Citar
Ah de la subrutina empece a hacerlo asi pero desisti porque tendria que llamar a la subrutina y poner otra bandera para salir de ahi... testear esa bandera al salir y de ahi si poner un goto ya que si hago un goto dentro de un call pues me va a desbordar la pila en cualquier momento y como nosotros testeamos muchisimas veces pues seguramente eso sera muy muy rapido... con todo ya pensare como hacer eso sin problema....

Otra manera es hacerlo como tu decias al principio, con interrupcion, nos evitaria estar chequeando el pin, pero en la interrupcion solo activariamos el FLAG y despues lo tendriamos que chequear en el programa??? No se si vamos a ganar mucho.

Citar
Ah de la subrutina empece a hacerlo asi pero desisti porque tendria que llamar a la subrutina y poner otra bandera para salir de ahi... testear esa bandera al salir y de ahi si poner un goto ya que si hago un goto dentro de un call pues me va a desbordar la pila en cualquier momento y como nosotros testeamos muchisimas veces pues seguramente eso sera muy muy rapido... con todo ya pensare como hacer eso sin problema....

Si, si te sales de la subrutina sin ejecutar el return, la octaba vez que lo hagas se te desbordara el stack y se te perdera el programa.

Citar
PD.: Algo que me olvidaba es preguntarte si mejor cambio el nombre del hilo ya que ya no es ese el problema o el hilo, ahora mas bien seria algo como "Problema con INVERSOR CC/CA de 60Hz" o simplemente "INVERSOR CC/CA de 60Hz"...

Pues si quieres hazlo, no se si puedes hacerlo tu o tiene que hacerlo un moderador, pero vamos no creo que haya problema.

Citar
Otra cosa que me estoy dando cuenta es que si movemos el bsf tenemos que calcular el tiempo del PWM en alto, pero si siempre lo ponemos pegado a las demoras, pues ya no haria falta la demora "DEMORA", con la "DEMORA_1" sera suficiente... ademas de que los nop o goto servirian para ajustar tanto el tiempo del TMR0 asi como los tiempos del bcf jejejejeje... ire aplicando todo esto en el programa a ver como me va... voy a demorar bastantito pero creo que vale la pena...

Lo de las dos demoras era porque en una descontabamos los tiempos de activacion para que saliera mas exacto el tiempo en alto, son solo 400nS de diferencia no seria problema, pero tampoco vas a ganar mucho ya que se escribe una sola vez y ocupa 6 Bytes.

Desconectado pgvs25

  • PIC12
  • **
  • Mensajes: 58
Re: Problema con INVERSOR CC/CA de 60Hz
« Respuesta #53 en: 19 de Septiembre de 2013, 19:47:37 »
Citar
Tal y como lo tienes tu no te debe influir en el tiempo, miralo en el simulador y veras que te da los 138uS igual, sino variamos el OFFSET del TMR0, ya que esta dentro del tiempo del TMR0, igualmente si lo cargas asi:


 bcf    INTCON,T0IF
movlw   .86            ;valor del offset del TMR0 para 136,0uS; Temporización = Ciclo de instrucción*(256-TMR0)*Divisor de Frecuencia
   movwf   TMR0         ;aqui empieza a contar, antes del "bsf    PWM_1_AUX"
bsf    PWM_1_AUX 

En los siguientes ponlo antes del PWM asi consigues que el TMR empiece a contar antes.

Mejor lo hice como tu me indicabas jejejejejeje ya he realizado el codigo, lo que aun me falta es lo que comentaba de la Demora_2 y Demora_3 pero creo que lo voy a dejar por ahora ahi ya que me quede aun con bastante espacio jajajajajaja si consigo algo de tiempo extra lo hago... ya vas a darte cuenta del espacio que he ahorrado jajajajaja...

Citar
Citar
ahora se supone que esta configuracion del testeo del cruce por cero, me da a ambos cruces por cero, es decir de negativo a positivo y de positivo a negativo??

No es necesario, con que lo sincronicemos cada ciclo completo es suficiente, yo en el mensaje anterior te queria explicar donde deben estar mas o menos los cruces, pero no quise decir que los tuvieras que chequear, posiblemente me explique mal, cosa bastante normal en mi  :lol: :lol: creo que lo mejor es chequear el cruce de - a +.

Lo que preguntaba es si me da 1 (5V) a la salida siempre que hay cruce por cero ya sea de positivo a negativo y viceversa... y segun lo que me dices pues parece que es asi...

Yo se que la sincronizada creo que suficiente seria cada ciclo completo, lo q no sabia es si daba un 1 cada cruce por cero el opto, y segun veo si es asi y tu me lo confirmas con lo siguiente...


Citar
Si, llevo una semana dandole vueltas a esto y preguntandole a gente que sabe mas que yo, pero nadie me sabe dar una respuesta convincente. Creo que la unica manera es chequeando la direccion de la corriente, esto habria que hacerlo con optos normales, ya que solo conducen en una direccion, cuando los dos conducen quiere decir que la tensiones son del mismo signo + o - nos da igual el caso es que sean del mismo signo, porque si son de sigo contrario se restarian, si de la red tenemos 300W y le metemos 300W del inverter de signo contrario tenemos 0W???

asi que creo que es mejor utilizar un opto normal... he simulado y mira como sale la onda

http://prntscr.com/1sa6tg

asi que pienso que asi como esta la cosa y si es real esta imagen (ya probare cuando salga) es mejor testear en el cruce por cero de positivo a negativo ya que ahi es cuando te dara el 1 logico... ademas de que ahi es cuando empieza a conducir antes del cruce por cero.... en el cruce por cero de negativo a positivo llega a la tension del diodo y es un 0 logico... pero no se si me dara antes o despues del cruce por cero la señal, segun pareciera en la imagen que te pongo antes pues da despues del cruce por cero...

Citar
Otra manera es hacerlo como tu decias al principio, con interrupcion, nos evitaria estar chequeando el pin, pero en la interrupcion solo activariamos el FLAG y despues lo tendriamos que chequear en el programa??? No se si vamos a ganar mucho.

Creo que eso ya esta solucionado siesque miras el programa te daras cuenta...

Citar
Si, si te sales de la subrutina sin ejecutar el return, la octaba vez que lo hagas se te desbordara el stack y se te perdera el programa.

Exacto, por lo mismo utilice una bandera o flag.... mira el programa

Citar
Pues si quieres hazlo, no se si puedes hacerlo tu o tiene que hacerlo un moderador, pero vamos no creo que haya problema.

Ya lo cambie... espero y no haya problema por el cambio

Citar
Lo de las dos demoras era porque en una descontabamos los tiempos de activacion para que saliera mas exacto el tiempo en alto, son solo 400nS de diferencia no seria problema, pero tampoco vas a ganar mucho ya que se escribe una sola vez y ocupa 6 Bytes.

Si pero incluso eso hacia que me confunda... te comento que en los programas anteriores habiamos estado ignorando el PWM con 29 ciclos positivos y 1 negativo (nunca lo haciamos), ahora mismo ya solucione eso, pero he hecho que en la cresta de la onda PWM de 100% sea de un solo ciclo y igualmente he dividido el PWM de 0% en dos que a la final por tiempo viene a ser uno solo... aqui tengo una duda... Es necesario que en el cambio de signo de la onda enseguida que se desactive el un transistor se active el otro? es decir una instruccion luego de la otra?? ahora mismo estoy dando un tiempo de 69,4us entre lo que se desactiva el un transistor y lo que se activa el otro pero si hay que hacerlo uno tras otro pues es cuestion de acomodar el codigo, es mas por ahi lei que para los mosfet es mejor dejar un tiempo en el cambio de sentido del puente H, pero no se si es correcto dejar tanto tiempo.... tu sabes algo al respecto talves??

Ah algo que me olvidaba de comentarte, aca la frecuencia es 60Hz, a partir de 59,86Hz y hasta 60,14Hz es normal aunque normalmente oscila entre 59,95 y 60Hz, por debajo de 59,85Hz y por encima 60,15Hz ya es considerado un evento de frecuenca, es decir es algo que se debe evitar y eso lo hace el organismo de control de generacion en mi pais... Asi que pienso yo que no hay que hacerles aun nada a los ingenieros en mi pais jajajajajaja... en tiempos seria como

59,85Hz       0,0167084377610693 segundos
60Hz            0,0166666666666667 segundos
60,15Hz       0,0166251039068994 segundos

asi que si mis calculos no me fallan tendriamos un margen de 41,56275976718188 usegundos para cada lado en total seria 8,312551953436376 usegundos de variacion

es decir que el calculo para que se sincronice seria de hacerlo en el mismo ciclo en donde caiga el cruce por cero o uno antes o despues ya que mas que eso no creo que tendria sentido... ahora hay que ver cuando es que nos da ese cruce por cero el opto...

Corrigeme si estoy equivocado ya que yo tambien soy peligroso con la calculadora jejejejejeje

PD.: Te dejo el codigo para que lo chequees

Saludos, Pedro.

Desconectado tapi8

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1506
Re: Problema con INVERSOR CC/CA de 60Hz
« Respuesta #54 en: 20 de Septiembre de 2013, 14:25:29 »
Citar
Mejor lo hice como tu me indicabas jejejejejeje ya he realizado el codigo, lo que aun me falta es lo que comentaba de la Demora_2 y Demora_3 pero creo que lo voy a dejar por ahora ahi ya que me quede aun con bastante espacio jajajajajaja si consigo algo de tiempo extra lo hago... ya vas a darte cuenta del espacio que he ahorrado jajajajaja...

Si ya esta en 1703 Bytes, si señor, te estas haciendo un experto en exprimir PICs  :lol: :lol:

Citar
asi que creo que es mejor utilizar un opto normal... he simulado y mira como sale la onda

http://prntscr.com/1sa6tg

asi que pienso que asi como esta la cosa y si es real esta imagen (ya probare cuando salga) es mejor testear en el cruce por cero de positivo a negativo ya que ahi es cuando te dara el 1 logico... ademas de que ahi es cuando empieza a conducir antes del cruce por cero.... en el cruce por cero de negativo a positivo llega a la tension del diodo y es un 0 logico... pero no se si me dara antes o despues del cruce por cero la señal, segun pareciera en la imagen que te pongo antes pues da despues del cruce por cero...

Si asi es como sale la onda con un opto normal, como lo tienes ahi nos marca los semiciclos negativos (fijate que en semiciclo - da un 1) si la salida en vez de sacarla del colector la sacas del emisor (la que va a masa) marcara los semiciclos +, eso es como mejor vaya en cada aplicacion, fijate que un poco despues de que empieza el semi + da un 0 (0V) y unos uS antes de que termine semi + se pone a 1 (5V), no se si nos conviene mas uno u otro, de todas maneras solo es cambiar una conexion.

Citar
Es necesario que en el cambio de signo de la onda enseguida que se desactive el un transistor se active el otro? es decir una instruccion luego de la otra?? ahora mismo estoy dando un tiempo de 69,4us entre lo que se desactiva el un transistor y lo que se activa el otro pero si hay que hacerlo uno tras otro pues es cuestion de acomodar el codigo, es mas por ahi lei que para los mosfet es mejor dejar un tiempo en el cambio de sentido del puente H, pero no se si es correcto dejar tanto tiempo.... tu sabes algo al respecto talves??

Es totalmente imprescindible dejar un tiempo entre la desactivacion de uno y la activacion de otro si no haces un corto, el tiempo es mejor un PWM completo aunque no obligatorio, si miras el data del mosfet veras que conmutan en nS, les lleva mas tiempo cortar conduccion que ponerse en conduccion, un valor tipico Ton=20nS  Toff=100nS, como nuestro PIC a 20MHz tarda 200nS cada instruccion casi no necesitamos dejar tiempo, pero es mejor asegurarse antes de poner uno a conducir, que el otro esta apagado, pero como ves puedes hacerlo como quieras, te llegaria incluso:

bcf   PORTC,0
nop
nop
bsf   PORTC,1

Citar
Ah algo que me olvidaba de comentarte, aca la frecuencia es 60Hz, a partir de 59,86Hz y hasta 60,14Hz es normal aunque normalmente oscila entre 59,95 y 60Hz, por debajo de 59,85Hz y por encima 60,15Hz ya es considerado un evento de frecuenca, es decir es algo que se debe evitar y eso lo hace el organismo de control de generacion en mi pais... Asi que pienso yo que no hay que hacerles aun nada a los ingenieros en mi pais jajajajajaja... en tiempos seria como

59,85Hz       0,0167084377610693 segundos
60Hz            0,0166666666666667 segundos
60,15Hz       0,0166251039068994 segundos

asi que si mis calculos no me fallan tendriamos un margen de 41,56275976718188 usegundos para cada lado en total seria 8,312551953436376 usegundos de variacion

Bueno si cumplen con estos tiempos los dejaremos vivir  :D :D  Realmente cuando vuelcas tension a la red te exigen que la frec y la V cumplan unas condiciones, el problema es que despues los consumidores, sobre todo industriales, con las cargas inductivas (motores, electrovalvulas, contactores) deterioran esas ondas, y lo que llega a cada hogar es una incognita, aunque no siempre.

El programa asi en principio parece que va bien, los tiempos van bien, ¿Has mirado todas los PWMs?  :lol: ya se que es un poco coñazo  :lol:  El fin de semana lo mirare con mas calma.

¿Que tal andas de matematicas?  :lol: Encontre esta pagina donde trae al final un par de ejercicios resueltos para calcular la V instantanea de una senoide, te digo esto porque nosotros la estamos haciendo aumentando y bajando V de una forma bastante lineal (que creo que es una buena onda) pero las senoides como se generan con generadores electromecanicos van dando las tensiones segun la proximidad del rotor a los estatores en cada momento (son trifasicos) si tienes curiosidad por saber como son de verdad pues aqui te dejo esta pagina que lo explica de forma bastante sencilla:

http://e-ducativa.catedu.es/44700165/aula/archivos/repositorio//2750/2961/html/111_valores_de_una_onda_senoidal.html

Saludos.


Desconectado pgvs25

  • PIC12
  • **
  • Mensajes: 58
Re: Problema con INVERSOR CC/CA de 60Hz
« Respuesta #55 en: 20 de Septiembre de 2013, 23:26:26 »
Citar
Si ya esta en 1703 Bytes, si señor, te estas haciendo un experto en exprimir PICs  :lol: :lol:

Gracias... :-)  ahora le mejore un poco mas... ahi te dejare el codigo para que lo chequees....

Citar
Si asi es como sale la onda con un opto normal, como lo tienes ahi nos marca los semiciclos negativos (fijate que en semiciclo - da un 1) si la salida en vez de sacarla del colector la sacas del emisor (la que va a masa) marcara los semiciclos +, eso es como mejor vaya en cada aplicacion, fijate que un poco despues de que empieza el semi + da un 0 (0V) y unos uS antes de que termine semi + se pone a 1 (5V), no se si nos conviene mas uno u otro, de todas maneras solo es cambiar una conexion.

Entiendo.... sip... solo es cambiar una conexion y en el programa direccionarlo a otro lado, esto es todo.... y realmente no se cual cojer, creo que lo mas comun es coger el cambio de - a +, asi que creo que asi lo hare jejejeje, solamente que no se si darle demora para que sea en el cruce por cero que impiece mi onda o siemplemente mandarle a el ciclo que toque... creo que eso va a depender del tiempo que me de el opto antes del cruce por cero ya que si no hay como ajustarle para que se de exacto en el un ciclo pues tocara empezar mi onda en 0 obviamente dando la demora...


Citar
Es totalmente imprescindible dejar un tiempo entre la desactivacion de uno y la activacion de otro si no haces un corto, el tiempo es mejor un PWM completo aunque no obligatorio, si miras el data del mosfet veras que conmutan en nS, les lleva mas tiempo cortar conduccion que ponerse en conduccion, un valor tipico Ton=20nS  Toff=100nS, como nuestro PIC a 20MHz tarda 200nS cada instruccion casi no necesitamos dejar tiempo, pero es mejor asegurarse antes de poner uno a conducir, que el otro esta apagado, pero como ves puedes hacerlo como quieras, te llegaria incluso:

bcf   PORTC,0
nop
nop
bsf   PORTC,1

Asi tal como esta, esta en 69,4us, es decir la mitad de un PWM ente la desactivacion del uno y la activacion del otro.... Creo que asi esta bastante seguro.... ahora si te parece mejor pues le doy solamente 2 nop asi como me dejaste el pequeño codigo...


Citar
Bueno si cumplen con estos tiempos los dejaremos vivir  :D :D  Realmente cuando vuelcas tension a la red te exigen que la frec y la V cumplan unas condiciones, el problema es que despues los consumidores, sobre todo industriales, con las cargas inductivas (motores, electrovalvulas, contactores) deterioran esas ondas, y lo que llega a cada hogar es una incognita, aunque no siempre.

El programa asi en principio parece que va bien, los tiempos van bien, ¿Has mirado todas los PWMs?  :lol: ya se que es un poco coñazo  :lol:  El fin de semana lo mirare con mas calma.

¿Que tal andas de matematicas?  :lol: Encontre esta pagina donde trae al final un par de ejercicios resueltos para calcular la V instantanea de una senoide, te digo esto porque nosotros la estamos haciendo aumentando y bajando V de una forma bastante lineal (que creo que es una buena onda) pero las senoides como se generan con generadores electromecanicos van dando las tensiones segun la proximidad del rotor a los estatores en cada momento (son trifasicos) si tienes curiosidad por saber como son de verdad pues aqui te dejo esta pagina que lo explica de forma bastante sencilla:

http://e-ducativa.catedu.es/44700165/aula/archivos/repositorio//2750/2961/html/111_valores_de_una_onda_senoidal.html

Saludos.

como te digo esos son los limites en mi pais para que se considere evento de frecuencia... o sea que muy rara ves se llega a esos limites.... pero bueno... eso de las cargas sobre todo en las fabricas es cierto pero tambien hay correctores como bancos de condensadores que se me ocurren en este momento.... en fin, creo que no se tendra mucho problema con el codigo que estamos haciendo...

Antes de optimizar vi una por una aunq no me habia dado cuenta que faltaba el PWM_29, ahora en estas dos ultimas versiones no la vi uno por uno, solamente vi que se cumpla el tiempo asignado a cada PWM, no al positio y al negativo... por cierto para verificar los tiempos lo he hecho de bsf a bsf que se le da al PWM....

Espero el fin de semana darme un tiempito para revisar el link, aunque ahora le heche un vistazo rapido.... por ahora me dedicare el resto de la noche a mi esposa y a mi hija (aun es peque) que tambien tengo que prestarles atencion...

Por cierto hice tambien los cambios que me dijiste de definirle al inicio los puertos con otro nombre para cuando si se presenta cambiar a otro pic pues sea mas sencillo jejejejejejeje

y al utilizar el opto normal habira que poner a cero la bandera de chequeo de cruce por cero en el semiciclo contrario al que decidimos testear... es decir si decidimos testear en el semiciclo -, en el semiciclo + debemos mandar a cero la bandera, y viceversa.... creo que eso lo podemos hacer en cualquier momento en el semiciclo contrario ya que ahi tendriamos 0 en el opto, por lo cual ya no habria riesgo de que quede en un bucle infinito y no haga nada el pic jejejejeje... ya una ves que me decida cual mismo testear coloco tambien a cero la bandera jejejejeje, por ahora creo que asi estara bien...

Ah otra cosa, es que ahora como va a estar tambien testeando el cero y la bandera, pues no se si haya algun cambio en el tiempo de cada ciclo de PWM, habria que revisar eso tambien supongo... Pero creo que eso lo hare durante el transcurso del fin de semana...

Sin mas que decir pues te dejo lo que seria hasta el momento la ultima version jejejejeje

Saludos, Pedro.

Desconectado tapi8

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1506
Re: Problema con INVERSOR CC/CA de 60Hz
« Respuesta #56 en: 23 de Septiembre de 2013, 13:33:56 »
Ayer te mire los IR2110 en Digi key, bueno tan caros no son, echales un vistazo:

http://www.digikey.es/product-search/en?k=IR2110&mnonly=0&newproducts=0&ColumnSort=0&page=1&quantity=0&ptm=0&fid=0&pageSize=25

Tambien he visto este esquema de un inverter que me llamo bastante la atencion, te lo adjunto abajo, o eso creo, como ves no lleva puente H, solo dos mosfet, con un IR2110, asi tambien ves como va conectado.
« Última modificación: 23 de Septiembre de 2013, 13:36:25 por tapi8 »

Desconectado tapi8

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1506
Re: Problema con INVERSOR CC/CA de 60Hz
« Respuesta #57 en: 23 de Septiembre de 2013, 17:04:35 »
Citar
Gracias...   ahora le mejore un poco mas... ahi te dejare el codigo para que lo chequees....

1368 BYTES  :shock: como lo has hecho  ((:-)) si sigues asi nos llegara un PIC de 1K  :lol:

Citar
solamente que no se si darle demora para que sea en el cruce por cero que impiece mi onda o siemplemente mandarle a el ciclo que toque...

Una vez sepamos donde se produce lo mejor es enviarlo a ese punto y listo, creo que es mas sencillo chequear el cruce de + a -, pero bueno ya veremos...

Citar
Asi tal como esta, esta en 69,4us, es decir la mitad de un PWM ente la desactivacion del uno y la activacion del otro.... Creo que asi esta bastante seguro.... ahora si te parece mejor pues le doy solamente 2 nop asi como me dejaste el pequeño codigo...

Asi esta bien, si quieres ponerle menos aumentaras un poco la V eficaz, pero no mucho.

Citar
por ahora me dedicare el resto de la noche a mi esposa y a mi hija (aun es peque) que tambien tengo que prestarles atencion...

Yo ahi lo tengo mas facil, no tengo hijos y a la esposa me la atienden los vecinos  :D :D :D

Citar
Ah otra cosa, es que ahora como va a estar tambien testeando el cero y la bandera, pues no se si haya algun cambio en el tiempo de cada ciclo de PWM, habria que revisar eso tambien supongo... Pero creo que eso lo hare durante el transcurso del fin de semana...

En un segundo entero da 1.000200 seg es decir 200nS de desviacion en 120 ciclos de 120 PWMs cada ciclo, esta perfecto ¿No?.

Creo que me van a dar un inverter que no funciona, a ver si hacemos un poco de ingenieria inversa.  :mrgreen:

Desconectado pgvs25

  • PIC12
  • **
  • Mensajes: 58
Re: Problema con INVERSOR CC/CA de 60Hz
« Respuesta #58 en: 26 de Septiembre de 2013, 12:50:19 »
Citar
Ayer te mire los IR2110 en Digi key, bueno tan caros no son, echales un vistazo:

http://www.digikey.es/product-search/en?k=IR2110&mnonly=0&newproducts=0&ColumnSort=0&page=1&quantity=0&ptm=0&fid=0&pageSize=25

Tambien he visto este esquema de un inverter que me llamo bastante la atencion, te lo adjunto abajo, o eso creo, como ves no lleva puente H, solo dos mosfet, con un IR2110, asi tambien ves como va conectado.

Gracias, no habia armado con IR2110 asi que no sabia como conectar... ahora mismo ya consegui el IR2110 en mi ciudad... lastima que ya solamente estare hoy en la ciudad... Ahora mismo hice una pruba a ver si me daba algo el PIC, pero lamentablemente no me da nada, voy a ver si hago prender un led a ver como me va, con todo ya he comprado otro pic por si el problema es el PIC....


Citar
1368 BYTES  :shock: como lo has hecho  ((:-)) si sigues asi nos llegara un PIC de 1K  :lol:

He agrupado las demoras, y ahi se me comprimio bastante el programa, por el momento creo que lo dejare ahi, ahora mismo lo que quiero es que me funcione para probar.... luego incluso podre ver si vale la pena hacer mas PWM o no jejejejejeje


Citar
Una vez sepamos donde se produce lo mejor es enviarlo a ese punto y listo, creo que es mas sencillo chequear el cruce de + a -, pero bueno ya veremos...

ok, ahora mismo hice la la pruba en un laboratorio y me dio un tiempo de 1,4ms... para ello he tenido q mandar a dos NOT con trigger smith (creo que se escribe asi), ya que solamente el opto me daba una rampa y era imposible saber con exactitud cual seria la demora... asi que con la NOT ya se me hizo sencillo el verificarlo jejejejejejeje lo hice con dos NOT puesto que el mi ciudad solamente hay el 74ls14 que tiene 6 NOT asi que no hay problema en utilizar 2 de ellos... te dejare las imagenes de lo que me salio segun las configuraciones que me dijiste pero sigo pensando que lo mas conveniente es  tomar el cambio por cero de + a -... y es mas ahi es cuando me da los 1,4ms...


Citar
Asi esta bien, si quieres ponerle menos aumentaras un poco la V eficaz, pero no mucho.

Ok, entonces creo que por el momento asi esta muy bien... y es mas si me animo a hacer mas PWM pues seguro bajara ese tiempo pero ya veremos eso jejejejejejeje

Citar
Yo ahi lo tengo mas facil, no tengo hijos y a la esposa me la atienden los vecinos  :D :D :D

Pues un hijo es una bendicion jajajajajaja..... y pues que suerte que tienes jajajajaja


Citar
En un segundo entero da 1.000200 seg es decir 200nS de desviacion en 120 ciclos de 120 PWMs cada ciclo, esta perfecto ¿No?.

Creo que me van a dar un inverter que no funciona, a ver si hacemos un poco de ingenieria inversa.  :mrgreen:

si, eso en funcionamiento normal, pero cuando sense que esta cruzando por cero no se si tambien dara ese tiempo ya que habra mas instrucciones en el bucle de testeo para el desborde del TMR0....

Ahora mismo te dejo las imagenes de lo que me dio el osciloscopio (ocupare el 2)... el programas ahora mismo no le he hecho ningun cambio ya que andaba un poco ocupado y pues ademas quiero que me funcione por lo menos asi como esta....

Y pues si sabes algo mas con respecto a esto pues me lo haces saber... por ahora intentare hacer los cambios en el programa para el cruce por cero....

Saludos, Pedro.

Desconectado tapi8

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1506
Re: Problema con INVERSOR CC/CA de 60Hz
« Respuesta #59 en: 29 de Septiembre de 2013, 06:18:56 »
Citar
Gracias, no habia armado con IR2110 asi que no sabia como conectar... ahora mismo ya consegui el IR2110 en mi ciudad... lastima que ya solamente estare hoy en la ciudad... Ahora mismo hice una pruba a ver si me daba algo el PIC, pero lamentablemente no me da nada, voy a ver si hago prender un led a ver como me va, con todo ya he comprado otro pic por si el problema es el PIC....

¿Has comprado otro igual? Mirate el FUSE LVP, segun como estes programando tiene que estar habilitado o no.

Vaya ya has encontrado el IR2110, era muy raro que no lo hubiera, ya que es comun en montajes con mosfet.

Citar
He agrupado las demoras, y ahi se me comprimio bastante el programa, por el momento creo que lo dejare ahi, ahora mismo lo que quiero es que me funcione para probar.... luego incluso podre ver si vale la pena hacer mas PWM o no jejejejejeje

Si, una vez que sepas que funciona puedes probar con mas niveles, cuantos mas niveles mejor es la onda, mas se parece a una senoide pura, aunque yo creo que esta de 30 niveles ya es bastante buena, no se cuantos tendran los comerciales, dentro de los comerciales los hay con onda trapezoidal que son mas baratos, pero parece ser que calientan los trafos de las fuentes de alimentacion de los aparatos que alimentan.

Citar
ok, ahora mismo hice la la pruba en un laboratorio y me dio un tiempo de 1,4ms... para ello he tenido q mandar a dos NOT con trigger smith (creo que se escribe asi), ya que solamente el opto me daba una rampa y era imposible saber con exactitud cual seria la demora... asi que con la NOT ya se me hizo sencillo el verificarlo jejejejejejeje lo hice con dos NOT puesto que el mi ciudad solamente hay el 74ls14 que tiene 6 NOT asi que no hay problema en utilizar 2 de ellos... te dejare las imagenes de lo que me salio segun las configuraciones que me dijiste pero sigo pensando que lo mas conveniente es  tomar el cambio por cero de + a -... y es mas ahi es cuando me da los 1,4ms...

¿A ver si entiendo bien?  ¿Hay 1,4ms entre el flanco ascendente y el cruce real por 0? Vaya pense que seria menor ese tiempo, en realidad da igual sabiendo cual es el tiempo se manda a ese punto del programa y listo.

Citar
y pues que suerte que tienes jajajajaja

Si, no hay como tener buenos vecinos  :D :D :D En realidad soy soltero  :lol: :lol:

Citar
si, eso en funcionamiento normal, pero cuando sense que esta cruzando por cero no se si tambien dara ese tiempo ya que habra mas instrucciones en el bucle de testeo para el desborde del TMR0....

Si, cuando cruce por 0 seguramente demorara un poco mas, eso se puede simular en el MPLAB, abres en Debugger el "Stimulus"-"New workbook" donde pone Pin/SFR pones el RB0 (donde recibe el pulso) en "Action" pones "set hight" lo vuelves a poner abajo y le pones "set low" asi puedes ponerlo a 0 y a 1 cuando quieras, como ya sabes el tiempo que demora le das en ese punto un 1 y ese sera el flanco ascendente. Segun donde este, se dejara correr el programa o se enviara a ese punto cuando este desfasado.

Saludos Tapi.



 

anything