Autor Tema: PWM- en frecuencias bajas 50Hz.  (Leído 6286 veces)

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

Desconectado juanfra

  • PIC12
  • **
  • Mensajes: 74
PWM- en frecuencias bajas 50Hz.
« en: 10 de Abril de 2010, 17:13:53 »
PWM

Mi problema es el siguiente, estoy metido en un proyecto, en el cual necesito una señal PWM de 50hz., es para el manejo de servos.Lógicamente puedo generarlo a base del desarrolo de los tiempos, pero es un problema puesto que necesito un control muy exacto del tiempo, dado que el proyecto tiene que hacer temporizaciones de mas de un mes, un con bastante exactitud, cosa que tengo solucionada (+- 1seg).
El caso es que no se cono generar frecuencias bajas con el modulo CCP, que me seria de muchísima utilidad poderlo usar, además me encuentro con el problema de que solo me funciona el CCP2, pero el CCP1 no da señales de vida, estoy usando en NIPLE 5.5, supongo que seran BUGS que faltara depurar, otro BUG que le encuentro es a la hora de declarar series de registros ,no desde el menú de declaración de registros, si no cuando en cualquier rutina intentas declarar una serie el prograna se cuelga y no te queda mas remedio que reiniciar,tampoco he sido capaz dce abrir projectos genarados con NIPLE5.4, a no ser que lo haga a través de una migracion.

Bueno, ya se que son varias cuestiones en una, pero la mas importante es el tema del PWM.
Seguro que entre todos lo solucionamos.
Grácias.

Juanfra

Conectado Fer_TACA

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 4069
Re: PWM- en frecuencias bajas 50Hz.
« Respuesta #1 en: 10 de Abril de 2010, 18:17:28 »
Para generar señales de PWM de esas frecuencia utilizaria un cristal de una frecuencia mas baja por ejemplo de 1MHz.

Respecto a los problemas con el CCP1 yo hasta la fecha no he tenido problema alguno y a la cracion de series de registro tampoco, pero no digo que no se te hayan producido.

te aconsejaria que te pusieses en contacto con  Jorge Cano y le expliques tu problema, me imagino que en cuanto tenga un huequecito te intentará ayudar al respecto.

¿Tienes la version licenciada?

fermin
Todos los días se aprende algo nuevo.

Conectado Fer_TACA

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 4069
Re: PWM- en frecuencias bajas 50Hz.
« Respuesta #2 en: 10 de Abril de 2010, 18:31:34 »
Debido a las configuraciones actuales de Niple, el oscilador mas bajo a utilizar es de 4MHz y por tanto si utilizas el predivisor maximo (16) y el postdivisor(16) el valor mas bajo de PWM que se puede sacar es de 244HZ.

Una posibilidad seria el generar una PWM de 500HZ y utilizar despues un divisor de x10.

Fermin.
Todos los días se aprende algo nuevo.

Desconectado juanfra

  • PIC12
  • **
  • Mensajes: 74
Re: PWM- en frecuencias bajas 50Hz.
« Respuesta #3 en: 11 de Abril de 2010, 16:49:06 »
OK.
Si claro que tengo la licencia para llave USB.
El caso es que podria usar un cristal mas lento, actualmente uso 20Mhz, pero de todas formas como tu comentas no llego a los 50Hz.
La solucion que encuentro es pasar por una subrutina que sea la del PWM la cual , y ligada a una variable,  hacerle  loops, usarla como bucle de ratardo.

Ademas si que conrtactare co Josrge Cano, pues el proyecto no se me abre, no que que es lo que le pasa al niple.


Conectado Fer_TACA

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 4069
Re: PWM- en frecuencias bajas 50Hz.
« Respuesta #4 en: 12 de Abril de 2010, 16:15:52 »
Esperemos pues el resultado
Todos los días se aprende algo nuevo.

Desconectado juanfra

  • PIC12
  • **
  • Mensajes: 74
Re: PWM- en frecuencias bajas 50Hz.
« Respuesta #5 en: 18 de Abril de 2010, 06:59:29 »
Bueno, pues resuelto.
Al final he optado por no utilizar el modulo PWM, que por cierto FER TACA, me comentabas que si te funcionan los dos, tanto el CCP1 como el CCP2, bueno , pues sera mi niple, pero el CCP1, con el 16f876A no  me funciona.
Lo he resuelto utilizando el TMR1, que unido al pre divisor por 2 da aproximadamente un ciclo de uno 26mseg, que es mas que suficiente para el tema de los servos.
Le mande un privado a Jorge Cano, y me respondió rápidamente, perfecto.
DE todas maneras seria interesante hacer una recopilación de posibles bugs, para que así, entre todos depuremos lo mas posible el NIPLE, tb. detecte que en las teporizaciones por ciclos con una variable como base de tiempos  tampoco acaba de funcionar demasiado bien, pues al parecer, si el resultado es superior al la unidad de tiempo utilizada, empieza desde abajo. En mi caso uso un registro de 8bits y opero con una base de temp de 10Xuseg. pero. si la variable es superior a D"99", el temporizador empieza desde 0 otra vez...., no mola..
Bueno, lo dicho, la cosa anda.


jUANFRA


Conectado Fer_TACA

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 4069
Re: PWM- en frecuencias bajas 50Hz.
« Respuesta #6 en: 21 de Abril de 2010, 15:58:15 »
Hola Juanfra:

perdona por las preguntas, porque hya algo que no entiendo en lo que planteas en tu ultimo post y es referente a que al pasar de 99 se empieza desde 0 y quizas sea por el desconocimiento del programa que tienes.

Entiendo que si usas un registro de 8 bits para guardar la variable, entonces con ese registro podras contar hasta 255. Si la temorizacion es por ciclos,me imagino que se cargará un valor determinado en ese registro para que empiece la cuenta desde 0 hasta el valor de registro y cuando llega a ese valor realizaras alguna accion determinada.
Si el ciclo se debe repetir n veces,  lo normal será volver a iniciar la variable a allgun valor determinado y vuelta a contar. Por eso no entiendo lo que despues de 99 empieza desde 0.
Podrias explicarmelo un poco mejor?

Fermin
Todos los días se aprende algo nuevo.

Desconectado juanfra

  • PIC12
  • **
  • Mensajes: 74
Re: PWM- en frecuencias bajas 50Hz.
« Respuesta #7 en: 25 de Abril de 2010, 15:32:55 »
OK, no me he explicado correctamente.
Te cuento.
Niple, como bien sabes, en cuanto a los temporizadores por ciclos, tiene dos posibilidades.

A)  tiempo fijo--- simplemente le introduces la cantidad de useg, mseg o seg y ya esta.

B)  tiempo variable---- en este caso esta sujeto a un registro de 8 bit (255 max), cuyo valor tiene que multiplicar por la unidad de tiempo, puede se useg, 10x useg, mseg. 10 mseg, ahora es cuando viene el problema, si el resultado de la multiplicacion de la base de tiempos por la unidad de tiempo excede de 999useg( que seria 1 mseg) NIPLE no asigna 1 mseg, si no que se va a 0, con lo que  a la hora de  realizar un pwm de .3 mseg a 2 mseg, la cosa se complica , puesto que:

base de tiempo    unidad de tiempo       total

d'30'                                  x10useg         300useg   .3 mseg       todo perfecto
d'99'                                  x10useg         999useg   .9 mseg       todo perfecto
d'200'                                x10useg        2000useg    2 mseg       este debería de ser el resultado, pues no- al sobrepasar los 999useg se va a 0, con el consiguiente rollo de programación, como ya te comente no es que sea un gran problema , pero si que entorpece el desarrollo del proyecto.

Bueno, creo que ahora si me he explicado, a por cierto, estoy en contacto con Jorge Cano , y la verdad es que da gusto tener a un FENOMENO como el de apoyo, no tardo ni 30 minutos en responderme, y la verdad, se ha esforzado en solucionar todo lo que le planteo, y es que es el padre un un gran programa.

Juanfra






Conectado Fer_TACA

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 4069
Re: PWM- en frecuencias bajas 50Hz.
« Respuesta #8 en: 25 de Abril de 2010, 18:14:50 »
Pero si tienes la opcion de la base de tiempos de milisegundos. Si quieres obtener 2 milisegundos, por que no utilizar la base de tiempos de "milisegundos" y multiplicar por un valor de 2 en una variable yse obtienen los 2milisegundos.

¡¡ Que serte respuesta en 30'!!! Con la diferencia horaria debiste contactar en la hora de curro de alli.
Bueno la verdad es que si siempre responde, al menos a mi hasta ahora siempre ha sido  asi y espero que siga igual, aun con la diferencia horaria.

Esperemos que entre todos sigamos dando motivos para que el programa avance mejorando en su funcionamiento y prestaciones.

F.
« Última modificación: 25 de Abril de 2010, 18:20:01 por Fer_TACA »
Todos los días se aprende algo nuevo.

Desconectado juanfra

  • PIC12
  • **
  • Mensajes: 74
Re: PWM- en frecuencias bajas 50Hz.
« Respuesta #9 en: 26 de Abril de 2010, 07:31:33 »
Si correcto, tengo la opción de 2 mseg, pero como te comete en el anterior post, necesito una ventana de tiempo  de .3 mseg a  2 mseg  en función de una variable,  por lo que me vendría muy bien esta técnica, la solución es sencilla,te la adjunto. 


juanfra


 

anything