Autor Tema: hasta donde llega el pic32? y que limita el control de fase  (Leído 5936 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado brutto

  • PIC10
  • *
  • Mensajes: 44
hasta donde llega el pic32? y que limita el control de fase
« en: 21 de Julio de 2011, 17:33:12 »
hola, estoy realizando un programa en un pic18f8722, despues de ir añadiendo mas y mas cosas al programa a la hora de implementar un control de fase para un disparo de triac veo que el micro parece que no da mas de si. Uso interrupciones para calculo de tiempo, pulsadores, etc y todo esta en el bucle principal excepto pocas variables para los timers, el problema es que el micro envia tramas cada 1 segundo por puerto serie (unas 25 tramas) y ADC (de 100 muestras) pero al hacer el control de fase parece que le afecta,... asi que me veo en la situacion de comunicar este pic con otro para que realice el solo el control de fase. Parece que el micro no da mas de si en cuanto a tiempos tan pequeños como para controlar tantas variables y hacer un control de fase.


Bueno, lo que queria preguntar es si un pic32 puedes controlar disparos por triac controlando la fase y a parte comunicar via usb, ethernet, controlar LCD, sin ver afectado el control de fase (que creo que es lo mas crítico).

PD: hasta ahora el control de fase solo lo he probado dandole la señal de cruce por cero y haciendo una salida toggle de un pin, si en el programa quito el ADC y la comunicacion serie parece ir ok, pero si le agrego el ADC y la comunicacion serie la salida de disparo triac ya no es correcta, alarga las señales, no dispara desde el cruce por cero exacto, etc. (visto desde el osciloscopio)

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: hasta donde llega el pic32? y que limita el control de fase
« Respuesta #1 en: 21 de Julio de 2011, 20:49:28 »
Y porque no reaoizar el control de fase con microcontrolador mas pequeño comunicado serialmente con el principal?  Por ahi un pic12 es suficiente....


Saludos
No contesto mensajes privados, las consultas en el foro

Desconectado brutto

  • PIC10
  • *
  • Mensajes: 44
Re: hasta donde llega el pic32? y que limita el control de fase
« Respuesta #2 en: 22 de Julio de 2011, 04:19:33 »
si el tema es que lo tengo asi ahora, es mas tengo 3 micros comunicando el 18f8722 como principal un 18f pequeño para convertir rs232 a usb y un 16f para el control de fase, pero queria saber si un pic32 me ahorra un par de micros. Aunque lo mismo cambiando la programacion y enviando por serie en momentos en que el control de fase ya lo haya detectado varia todo, y en cada control de fase lanzar un "objeto", es decir, le llega el paso por cero, lo detecta y entre paso por cero y paso por cero enviar x tramas, cuando tenga todas enviadas entre paso por cero y paso por cero obtener datos del ADC, y asi hasta volver a tener que enviar tramas, no se que tal seria eso.

Desconectado Tisco

  • PIC16
  • ***
  • Mensajes: 108
Re: hasta donde llega el pic32? y que limita el control de fase
« Respuesta #3 en: 22 de Julio de 2011, 10:21:05 »
Envias serialmente por interrupcion? Usas el AD por interrupcion?
Si empleas interrupciones no deberias tener problemas, por lo menos para la UART, AD y Triac. La verdad es que con ese micro y sobre todo con el 18f87k22 nunca he tenido problemas y tengo ocupado toda su memoria.

Un saludo!

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: hasta donde llega el pic32? y que limita el control de fase
« Respuesta #4 en: 22 de Julio de 2011, 12:02:03 »
Si ya utilizas otros microcontroladores para tareas como usb y el control de fase, entonces debe ser otro problema que causa que falle. Debes programarlo aprovechando las interrupciones, un sistema multi-tarea, ect... Yo implemente un sistema implementando DNP3 y control de fase, entre otras cosas con un 18F4620 y no dio ningún problema.

Si usas uart, aumenta la velocidad de transmisión, y repito utiliza las interrupciones, tanto para recibir como para enviar.


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado brutto

  • PIC10
  • *
  • Mensajes: 44
Re: hasta donde llega el pic32? y que limita el control de fase
« Respuesta #5 en: 22 de Julio de 2011, 17:04:50 »
no es que falle utilizando 3 micros, sino que si me puedo ahorra 2 micros y hacer todo con uno, no he usado nunca un pic32 y no se que capacidad puede tener para utlizar tantos recursos a la vez. Supongo que con un micro solo me da problemas porque tengo 2 ADC ahora (quiero ampliarlo a 4), pulsadores, LCD, comunicacion serie, PWM y le quiero añadir el control de fase en el mismo micro, pero este me genera problemas al activar la comunicacion y las conversiones ADC (100 muestras). Supongo que sera dificil implementar el control de fase con todo esto a la vez, no se si al enviar tramas por usart retarda la interrupcion externa, o si al hacer conversiones tambien la retarda, el caso es que si desactivo el ADC y la comunicacion usart funciona ok. Pongo como prioridad alta las interrupciones de entrada externa (cruce por cero) y timer (para el valor de disparo triac) y hace lo mismo.

Quizas tenga que poner menos muestras para conversion ADC e intentar mandar datos por usart una vez detectado un cruce por cero, calcular las que puedo mandar hasta el siguiente cruce por cero y asi. Ahora lo tengo puesto que cada segundo mande 25 mensajes de 8 caracteres.

Pero lo que quiero saber es si un pic32 es suficientemente potente para no tener que ajustar tanto todo.

Pense en subir la velocidad de comunicacion tambien porque la tengo en 9600 pero al darme tambien fallo con el ADC empece a implementar la comunicacion con un micro auxiliar para que este se encarge solo del control de fase.

PD: muchas gracias por tu tiempo suky.

Desconectado brutto

  • PIC10
  • *
  • Mensajes: 44
Re: hasta donde llega el pic32? y que limita el control de fase
« Respuesta #6 en: 22 de Julio de 2011, 17:10:50 »
Tisco: la comunicacion serial la mando cada segundo, pero no por interrupcion ya que 25 tramas se me demoran demasiado (a 9600 baudios, probare al maximo del micro a ver que tal), bueno hago una interrupcion para contar tiempo pero las tramas las envio desde el bucle principal cuando la interrupcion de tiempo ha llegado a 1 segundo, es decir no envio las tramas dentro de la interrupcion.

El ADC hago mas o menos lo mismo, detecto 200ms por interrupcion y compruebo los 2 ADC.

Gracias por la ayuda.

PD: el 18f87k22 va a 68Mhz el 18f8722 a 40mhz. No he usado nunca una eeprom externa por eso no escogi el 18f87k22, a ver si tengo tiempo y me pongo a practicar con eeproms externas.
« Última modificación: 22 de Julio de 2011, 17:12:59 por brutto »

Desconectado Tisco

  • PIC16
  • ***
  • Mensajes: 108
Re: hasta donde llega el pic32? y que limita el control de fase
« Respuesta #7 en: 22 de Julio de 2011, 18:20:56 »
Tisco: la comunicacion serial la mando cada segundo, pero no por interrupcion ya que 25 tramas se me demoran demasiado (a 9600 baudios, probare al maximo del micro a ver que tal), bueno hago una interrupcion para contar tiempo pero las tramas las envio desde el bucle principal cuando la interrupcion de tiempo ha llegado a 1 segundo, es decir no envio las tramas dentro de la interrupcion.

El ADC hago mas o menos lo mismo, detecto 200ms por interrupcion y compruebo los 2 ADC.

No se si habre entendido bien, pero entonces lo que haces es tener un timer que causa desborde cada segundo para en el programa principal testear su bit de IF y asi proceder a enviar los datos? e igual con el ADC pero con otro timer a 200ms?
Si haces esto y el cruce por cero y la sensibilizacion del triac lo tienes en el vector de interrupcion de alta prioridad no deberias de tener ningun problema, pues si se interrumpe cuando esta enviando datos o muestreando el ADC saltaria a la interrupcion y dejaria dichos procesos parados hasta volver de la interrupcion. No tendras algo que te impida que salte al vector de interrupcion en estos casos?
De todas formas, por experiencia, mira tambien el LCD, pues a mi son los que mas quebraderos de cabeza me dan muchas veces pues requieren bastante tiempo de CPU (depende de la LCD claro).

PD: el 18f87k22 va a 68Mhz el 18f8722 a 40mhz. No he usado nunca una eeprom externa por eso no escogi el 18f87k22, a ver si tengo tiempo y me pongo a practicar con eeproms externas.
Si, el K22 es mas rapido (vamos es mejor en todo menos en RAM y en que tiene una I/O menos...) pero ambos tienen internamente 1KB de EEPROM.

Un saludo!

Desconectado brutto

  • PIC10
  • *
  • Mensajes: 44
Re: hasta donde llega el pic32? y que limita el control de fase
« Respuesta #8 en: 23 de Julio de 2011, 22:41:54 »
el timer lo hago cada 1ms para emplearlo para varias cosas, ya que el pic que uso solo tiene 4 (mi uso: 1 para contar ms, otro para contar 5 segundos, otro para PWM y el otro para el triac). El de 5 segundos tiene que ser independiente al resto por eso lo uso. Con el de 1ms hago las banderas para ADC, Tiempo real, PID, muestreo LCD, envio USART.
Quizas sea el problema este timer de 1ms, que dentro de lo 50hz de red ya hago 8-10 interrupciones.
Tengo que probar a abarcar mas tiempo con el a ver si va mejor o chequear mejor el programa a ver si como dices me para por algun lado las interrupciones.

Tambien estoy probando todo en protoboard y quizas tambien me deriven de aqui problemas.

Una pregunta, el K22 le programas con pickit3? ahora creo recordar que no use este porque en la version que tengo de mplab me aparece en amarrillo este micro para el pickit3, ya que es mas barato que el 18f8722 incluso con mas velocidad, 12bits ADC, 10 timers...

Gracias por responder y ayudar.

Desconectado Tisco

  • PIC16
  • ***
  • Mensajes: 108
Re: hasta donde llega el pic32? y que limita el control de fase
« Respuesta #9 en: 24 de Julio de 2011, 06:34:39 »
Pues con interrupciones cada 1ms no deberias tener problemas, yo he usado interrupciones cada 600us sin problemas (aunque en este caso si tuve que tener cuidado con el guardado que pueden llegar a ser mas de 50 instrucciones...)
Cuanto tiempo le lleva al uC atender la interrupcion en el peor de los casos? igual el problema esta ahi...

El K22 lo he programado tanto con el pickit3 como con el ICD2, eso si, con el ICD2 hay que prestar atencion de que a la patilla VPP no llegen mas de 9V, asi que coloque una resistencia de 270R con un zener de 8.1V y funciono perfectamente.

Un saludo!

Desconectado brutto

  • PIC10
  • *
  • Mensajes: 44
Re: hasta donde llega el pic32? y que limita el control de fase
« Respuesta #10 en: 24 de Julio de 2011, 10:46:30 »
pues voy a ver si me hago con un k22 que me ahorro la mitad y tiene el mismo patillaje, ya que uso pickit3.

En el peor de los casos la interrupcion rtcc de 1ms me ocupa 9us, segun mplab sim a 40mhz. El guardado lo tengo cada 1 minuto asi que no deberia de afectar hasta alcanzar ese tiempo. Y la interrupcion ext3 que uso para el cruce por cero solo tiene: output_toggle(salida_triac);

No se realmente donde puede estar el problema, subi la velocidad del usart a 115200 para descartar y ahora si dejo usart y quito ADC y LCD me va ok (solo haciendo toggle en la salida triac al paso por cero), si añado LCD y ADC empieza a variar el toggle del paso por cero, añada LCD y ADC al mismo tiempo o con añadir uno de ellos. No se realmente por que, quizas porque el LCD entro tiene rutinas delay_us y me afecte o por el tiempo de conversion del ADC, porque el resto de operaciones matematicas del micro no me afectan para nada. Estoy programando en CCS y tambien puede ser este un problema.

Voy a ir a la opcion de emplear otro micro como esclavo y asi tambien puedo añadir mas salidas controladas por triac, porque si ya me esta afectando y lo tengo con el cable de rs232 quitado cuando le conecte y empiece a comunicar y recibir se puede armar mas jaleo todavia jeje.