Autor Tema: Modulos CCp y PWM mejorado  (Leído 23148 veces)

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

Desconectado Enigma

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 609
    • www.toroscoleados.com
Modulos CCp y PWM mejorado
« en: 19 de Enero de 2008, 04:28:05 »
Hola chamos.... otra vez me encuentro por aquí con mis dudas... Tengo unas pregunticas, he estado leyendo y bueno se me ha hecho dificil el lenguaje C y unas instrucciones para el modulo CCP y el PWM mejorado del 18F4550...

1) Tengo estás instrucciones en C:
SETUP_TIMER_0(RTCC_DIV_256|RTCC_8_BIT); Que quiere decir...? se que el divisor lo pone en 256, pero el RTCC_8_bit? que significa? :?

2) SET_TIMER0(~195); esto es que está cargando 195 al Timer0???
 
3) SETUP_TIMER_1 (T1_EXTERNAL|T1_DIV_BY_1);  Comol es esto? del T1_external, y porque el divisor se coloca en 1??

4) SET_PWM1_DUTY(ciclo_u); Esto activa el ciclo útil??

5) Algo más general.... Para trabajar el PWM mejorado, estoy haciendo un circuito que me permite controlar la velocidad de un motor... Tengo entendido que para trabajar con el PWM mejorado tengo que usar el CCP1 (corrijanme si me equivoco :?), y para el CCP1, tengo que usar el Timer 2, ahora, aqui viene mi enredo.... osea, creo que el valor que uno le asigna al Timer 2 es para establecer el ciclo util de la PWm, es así?

Ahora, el timer0 lo utilizo para modificar el CCP o algo??? :(

Atte: Enigma... La llanerita de Guayana :-)
No hay nada como cabalgar en la sabana y sentir la brisa con olor a mastranto, bosta y ganado. ¡¡O Fortuna, velut luna, status variabilis, semper crescis, aut decrescis, vita detestabili!! Que viva el coleo, la musica LLanera y la gótica!

Desconectado Cryn

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4169
Re: Modulos CCp y PWM mejorado
« Respuesta #1 en: 19 de Enero de 2008, 04:50:26 »
holas

1) div_256 es el preescaler y _8_bit es que estas configurando el timer0 para que funcione a 8bits y no 16bits

2) si, pero mejor ponlo sin ese guion ondulado (creo que significa complemento)

3) external porque el tmr1 se incrementara con pulsos externos, no con ciclos de instruccion, y div_by_1 ya que como es externo pues indica qeu un pulso incrementa en uno el timer 1 (como sabes si el preescaler, y si se coloca digamos en div_2 dice que cada dos pulsos recien se incrementa en 1 el timer1)

4) en realidad no tan asi, obedee a estas formulas si no me equivoco, usando tmr2:
T=(PR2+1)*4*Tosc*Preescaler (periodo; con desde 500 5000Hz y >18KHz)
D=duty*Tosc*Preescaler  (Ciclo de trabajo; duty es el que va en set_pwm1_duty())

5) aqui ya me raye, quiza por el sueño que traigo :D, pero si usas el pwm con el timer2 las definiciones son asi
   setup_timer_2(t2_div_by_4,0xF0,1);  // modo=div_4,PR2=0xf0,posescaler=1

para modificar el pwm creo que basta con jugar con esas formulas, con el PR2 y el duty

pd. ahora si que me caigo de sueño, por la mañana te cuelgo un ejemplo que hice con pwm, con el tmr2, pero como dato te dejo qeu todo lo saque de aca del foro :mrgreen:

un saludo

EDITO: a que rayos, te lo adjunto, es una miniatura :mrgreen:
.

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: Modulos CCp y PWM mejorado
« Respuesta #2 en: 19 de Enero de 2008, 04:53:40 »
Hola chamos.... otra vez me encuentro por aquí con mis dudas... Tengo unas pregunticas, he estado leyendo y bueno se me ha hecho dificil el lenguaje C y unas instrucciones para el modulo CCP y el PWM mejorado del 18F4550...

1) Tengo estás instrucciones en C:
SETUP_TIMER_0(RTCC_DIV_256|RTCC_8_BIT); Que quiere decir...? se que el divisor lo pone en 256, pero el RTCC_8_bit? que significa? :?
Según la data del 18F: "Software selectable operation as a timer or counter in both 8-bit or 16-bit modes"

2) SET_TIMER0(~195); esto es que está cargando 195 al Timer0???
Exacto


3) SETUP_TIMER_1 (T1_EXTERNAL|T1_DIV_BY_1);  Comol es esto? del T1_external, y porque el divisor se coloca en 1??
Los pulsos que harán correr al Timer1 pueden ser del reloj interno del PIC o pulsos externos recibidos por un pin. En este caso se configura para pulsos externos. Y el divisor está en 1 porque así lo ha querido quien hizo ese programa, o lo que es lo mismo, no divide con preescaler.


4) SET_PWM1_DUTY(ciclo_u); Esto activa el ciclo útil??
Yes, my friend


5) Algo más general.... Para trabajar el PWM mejorado, estoy haciendo un circuito que me permite controlar la velocidad de un motor... Tengo entendido que para trabajar con el PWM mejorado tengo que usar el CCP1 (corrijanme si me equivoco :?), y para el CCP1, tengo que usar el Timer 2, ahora, aqui viene mi enredo.... osea, creo que el valor que uno le asigna al Timer 2 es para establecer el ciclo util de la PWm, es así?
Yes, my friend


Ahora, el timer0 lo utilizo para modificar el CCP o algo??? :(
Esta pregunta no la entiendo

Disculpa Cryn, cuando lo tenía escrito te me has adelantado, así que repito muchas cosas.

Desconectado Enigma

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 609
    • www.toroscoleados.com
Re: Modulos CCp y PWM mejorado
« Respuesta #3 en: 19 de Enero de 2008, 05:08:26 »
Ahh!! o.k... más fiino!! ya estoy entendiendo estos modulos... Gracias a los dos, son lo máximo!! :mrgreen:

Ahora, a ver, aja, por lo que  he estudiado, para el ccp1, pues escribo en el ccpr1l y luego cuando el timer2 se desborda, pues lo que estaba en ccpr1l pasa a ccpr1h para cargar así el ciclo útil no?.... Ahora suponganse que yo quisiera modificar ese ciclo util via lo que sea, via teclado, por pulsadores o lo que sea, yo modificaria los registros CCR1L y CCPR1H o al timer2???

Atte: Enigma... La llanerita de Guayana :?
No hay nada como cabalgar en la sabana y sentir la brisa con olor a mastranto, bosta y ganado. ¡¡O Fortuna, velut luna, status variabilis, semper crescis, aut decrescis, vita detestabili!! Que viva el coleo, la musica LLanera y la gótica!

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: Modulos CCp y PWM mejorado
« Respuesta #4 en: 19 de Enero de 2008, 05:10:50 »
Para cambiar el ciclo útil tú misma lo pusiste antes:
SET_PWM1_DUTY(ciclo_u);

Desconectado Enigma

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 609
    • www.toroscoleados.com
Re: Modulos CCp y PWM mejorado
« Respuesta #5 en: 19 de Enero de 2008, 12:41:12 »
Ahh entiendo, osea que tendría que escribir solo en la variable ciclo_u, a través del teclado?? ah o.k.... jejeje rayos!!! gracias muchachos... nos estamos viendo pronto!!! jejeje :-)


Atte: Enigma... La llanerita de Guayana  :-)
No hay nada como cabalgar en la sabana y sentir la brisa con olor a mastranto, bosta y ganado. ¡¡O Fortuna, velut luna, status variabilis, semper crescis, aut decrescis, vita detestabili!! Que viva el coleo, la musica LLanera y la gótica!

Desconectado Enigma

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 609
    • www.toroscoleados.com
Re: Modulos CCp y PWM mejorado
« Respuesta #6 en: 19 de Enero de 2008, 14:02:12 »
Chamos otra pregunta....

Aja para configurar el Pwm, bueno he leido y me he encontrao con estás formulas:

Para el periodo de la PWM mejorada:

PWM periodo=[(PR2) + 1]*4*Tosc*(Preescaler del TMR2)

y para el ciclo útil:

PWM ciclo útil= (CCPR1L:CCP1CON<5:4>)*Tosc*(Preescaler del TMR2)

He sacado ambas cuentas para un cristal de 4Mhz, un preescaler de 4 y para 10 bits de resolución (1024)....

PWM periodo= 1024 seg.
PWM ciclo útil= 1024 seg.

Aja e aquí mi enredo.... como es esto...??? osea que el ciclo útil va a ser igual que el periodo....??? ahora es necesario, que el preescaler de ambas formulas tengan el mismo valor para poder sacar el ciclo útil y el periodo...? No verdad... Osea, como yo quiero un ciclo útil más grande podría colocar el preescaler en 16 para el periodo, y en 4 para el ciclo util?? o no??? o disminuyo el PR2 en el ciclo util para que este se haga menor que el periodo....

Esto me tiene enredada!!!! :? Ayuda por fa!!!!!

Atte: Enigma... La llanerita de Guayana :-)

No hay nada como cabalgar en la sabana y sentir la brisa con olor a mastranto, bosta y ganado. ¡¡O Fortuna, velut luna, status variabilis, semper crescis, aut decrescis, vita detestabili!! Que viva el coleo, la musica LLanera y la gótica!

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: Modulos CCp y PWM mejorado
« Respuesta #7 en: 19 de Enero de 2008, 14:42:43 »
Con esa fórmula has calculado el máximo valor que podría tomar el ciclo útil. En tu caso, podría ir de 0 a 1024 y, si le pones un valor más alto, será lo mismo que si le pones 1024.
Veámoslo gráficamente:


En ese gráfico la variable period equivale a tu fórmula PWM periodo. La variable pulse width equivale al PWM ciclo útil tuyo. Como ves, el pulse width puede tener cualquier valor entre 0 y period.

Desconectado Enigma

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 609
    • www.toroscoleados.com
Re: Modulos CCp y PWM mejorado
« Respuesta #8 en: 19 de Enero de 2008, 14:56:48 »
Si, vi un gráfico de esos y lo entendi, pero me enrede a la hora de aplicar las formulas.... Porque no se de quien depende mi ciclo util.... me explico... Osea, en la formula del ciclo útil, para modificarlo, moverlo, variarlo, lo hago con el preescaler o con el PR2?? es decir, quien de los dos se mantiene fijo, y quien de los dos se mueve??

Al igual que para el calculo del periodo, quien se mueve? el preescaler o los bits de resolución...?? de quien depende este??? :?

No se, si me explico??? :?

Atte: Enigma... La llanerita de Guayana :-)
No hay nada como cabalgar en la sabana y sentir la brisa con olor a mastranto, bosta y ganado. ¡¡O Fortuna, velut luna, status variabilis, semper crescis, aut decrescis, vita detestabili!! Que viva el coleo, la musica LLanera y la gótica!

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: Modulos CCp y PWM mejorado
« Respuesta #9 en: 19 de Enero de 2008, 14:58:16 »
Utiliza el mismo prescaler en ambos y en el Duty Cicle juega con CCPR1L:CCP1CON

Desconectado Enigma

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 609
    • www.toroscoleados.com
Re: Modulos CCp y PWM mejorado
« Respuesta #10 en: 19 de Enero de 2008, 15:17:35 »
Ahhh O.k... rayos!!!!  :?

Atte: Enigma... La llanerita de Guayana :?
No hay nada como cabalgar en la sabana y sentir la brisa con olor a mastranto, bosta y ganado. ¡¡O Fortuna, velut luna, status variabilis, semper crescis, aut decrescis, vita detestabili!! Que viva el coleo, la musica LLanera y la gótica!

Desconectado Cryn

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4169
Re: Modulos CCp y PWM mejorado
« Respuesta #11 en: 19 de Enero de 2008, 15:45:41 »
holas, te fijaste en mi ejemplo que te adjunte, ahi yo mantengo constante todo, lo unico qeu varia es el set_pwm1_duty(x)
y creo qeu hasta le puse osciloscopio, con los pulsadores incremetnas o decrementas el duty :mrgreen:

un saludo
.

Desconectado Enigma

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 609
    • www.toroscoleados.com
Re: Modulos CCp y PWM mejorado
« Respuesta #12 en: 19 de Enero de 2008, 16:02:29 »
Si, lo vi y lo simule.... pero tengo unas preguntas....

Porque tu variable count llega hasta 8??? sino, lo devuelvo hasta 7??, es un número arbitrario que le pusiste?? Y luego lo multiplicas por 32?? Porque por 32 exactamente!!!!?? :?


Y disculpa mi ignorancia!!!! :(

Atte: Enigma... La llanerita de Guayana  :?
« Última modificación: 19 de Enero de 2008, 16:14:43 por Enigma »
No hay nada como cabalgar en la sabana y sentir la brisa con olor a mastranto, bosta y ganado. ¡¡O Fortuna, velut luna, status variabilis, semper crescis, aut decrescis, vita detestabili!! Que viva el coleo, la musica LLanera y la gótica!

Desconectado Cryn

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4169
Re: Modulos CCp y PWM mejorado
« Respuesta #13 en: 19 de Enero de 2008, 16:28:14 »
ahh peqeuños detalles, faciles de comprender :mrgreen:

count se encarga de contar los pulsos que se le de ya sea de inc o dec (incremetno o decremento), y yo lo limite a eso para poder ver solo 8 estados, ocho velocidades digamos, que se incremetan y decrementan con los pulsadores, lo de las condiciones a 7 y 0 es porque son mis limites, si ya estan 7 lo mantengo en 7 (cuando se incremente a 8 ) y lo mismo en el -1

ahora lo multiplico por 32 porque en el set_pwm1_duty(x); x debe ser de 8 bits para fijar el duty, osea 256 maximo 0 minino 128 mitad, nose si se entendio... entonces dividi 256 entre mis 8 estados posibles (por los pulsadores) y 256/8=32, de ahi esos numeros magicos :D claro que puedes hacer con otros valores para obtener mayor cantidad de "velocidades" (254/16=16, por ejemplo) o idear una mejor forma, ya que ahi tuve algunos problemillas con los limites superiores, porque no lo hice llegar a tope (osea duty=100%) :( habria que afinar eso, o como te dije si se te idea algo mejor seria genial :mrgreen:
.

Desconectado Enigma

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 609
    • www.toroscoleados.com
Re: Modulos CCp y PWM mejorado
« Respuesta #14 en: 19 de Enero de 2008, 16:44:18 »
Ahhhhhhhhhhh!!!!!! :D O.k... ya entendi!!!! jejeje naguara que ingenio!!! jejejee :-) ahora si está claro.... Bueno voy a empezar a programar el diseño que tengo que hacer y voy dando detalles jejeje :mrgreen: Porque se, que se me van a presentar dudillas!!! gracias Cryn!!! :D

Atte: Enigma... La llanerita de Guayana  :-)
No hay nada como cabalgar en la sabana y sentir la brisa con olor a mastranto, bosta y ganado. ¡¡O Fortuna, velut luna, status variabilis, semper crescis, aut decrescis, vita detestabili!! Que viva el coleo, la musica LLanera y la gótica!