TODOPIC

FORO TÉCNICO => Foro Técnico => Mensaje iniciado por: jeremylf en 30 de Septiembre de 2015, 14:00:53

Título: Enhanced PWM EPWM PIC PIC16F salidas duty independientes
Publicado por: jeremylf en 30 de Septiembre de 2015, 14:00:53
Estoy usando el PIC16F886 y necesito 3 salidas PWM por hardware de la misma frecuencia pero con diferente duty cada una.

Como el modo EPWM tiene 4 salidas independientes (P1A, P1B, P1C y P1D) pense que podría tener control del duty cycle de cada una sin importar que fuera a la misma frecuencia. Pero parece que este modo está más orientado a motores y no permite un control independiente de cada salida. ¿Cierto?
 
Título: Re: Enhanced PWM EPWM PIC PIC16F salidas duty independientes
Publicado por: juaperser1 en 30 de Septiembre de 2015, 14:18:00
Citar
Como el modo EPWM tiene 4 salidas independientes (P1A, P1B, P1C y P1D) pense que podría tener control del duty cycle de cada una sin importar que fuera a la misma frecuencia. Pero parece que este modo está más orientado a motores y no permite un control independiente de cada salida. ¿Cierto?

la verdad es que no lo se, pero ¿por que no los haces por software y arreglado? si el micro va sobrado para la aplicación te lo puedes plantear.
Título: Re: Enhanced PWM EPWM PIC PIC16F salidas duty independientes
Publicado por: KILLERJC en 30 de Septiembre de 2015, 14:31:14
Creo que te confundiste y no son independientes, Si miras el diagrama solamente posee un punto de comparacion que es el modulo CCP1, eso segun si encuentra un match en el periodo o en el duty activa la salida, y luego hay una logica que maneja las salidas segun la señal que le dan estos comparadores, como bien decis esta esta mas pensado por ahi para una fuente o un motor. En el que podes implementar un puente H o medio puente. Pero no para que las 4 salidas sean independientes ( es decir que cada uno tenga un registro comparador de duty al menos)

Si vas con ese micro, entonces no queda otra que ir a un PWM por software.
Título: Re: Enhanced PWM EPWM PIC PIC16F salidas duty independientes
Publicado por: jeremylf en 30 de Septiembre de 2015, 14:42:25
Si pensé en un principio hacerlo por software, pero el EPWM aparentaba tener 4 registros independientes duty pero con frecuencia única.

Ahora confirmado que no es así, lo haré por software. ¡Gracias!
Título: Re: Enhanced PWM EPWM PIC PIC16F salidas duty independientes
Publicado por: cristian_elect en 30 de Septiembre de 2015, 14:55:52
Usa un atmega8 que cuesta menos y tiene los 3 PWM o el atmega88. si busca un pic con mas pwm sale mas caro.
Título: Re: Enhanced PWM EPWM PIC PIC16F salidas duty independientes
Publicado por: jeremylf en 06 de Octubre de 2015, 14:06:53
Usa un atmega8 que cuesta menos y tiene los 3 PWM o el atmega88. si busca un pic con mas pwm sale mas caro.
Gracias, lo tendré en cuenta.
Título: qui
Publicado por: stk500 en 06 de Octubre de 2015, 14:18:34
 :) el Atmega168 tiene 6 PWM y muy baratos.
si busca en el foro nuestros de Atmel alli vera como lo hago ;-)

Aqui te pongo 4pwm del Atmega168
$regfile = "m168def.dat"                                    ' aqui usamos el Atmega168 que posee 6 PWM Hw
$crystal = 8000000                                          'Interne Fuses  Clock Division by 8
$hwstack = 40
$swstack = 16
$framesize = 32
$lib "mcsbyte.lbx "                                         'usaremos la libreria byte para optimatizar el codigo

'Configuration de los puertos
Config Portb.1 = Output                                     ' LED1 Rojo
Config Portb.2 = Output                                     'LED2 Verde
Config Portb.3 = Output                                     'LED3 Azul
Config Portd.3 = Output                                     'LED4 Amarillo
Config Portd.2 = Input                                      ' irR TSOP1738
Config Rc5 = Pind.2                                         'aqui activamos la resistencia interna del puerto D2

'Config Timer1 y Timer2 para PWM . atencion Timer0 trabaja interno con el protocologo GetRC5 de Bascom
'Timer0 trabaja con el protocologo RC5
Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down , Prescale = 1
Config Timer2 = Pwm , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down , Prescale = 1
'Declaration Variable

Dim Pwmval1 As Byte                                         ' Variable para Pwm1(  PortB.1=OC1A )
Dim Pwmval2 As Byte                                         '  Variable para Pwm2( PortB.2-=OC1B)
Dim Pwmval3 As Byte                                         'Variable para Pwm(PortB.3=OC2A)
Dim Pwmval4 As Byte                                         'Variable para Pwm(Port.D=OC2B

cada pwm puede poner el Dusty como quiera.


Saludo
Título: Re: Enhanced PWM EPWM PIC PIC16F salidas duty independientes
Publicado por: RALF2 en 06 de Octubre de 2015, 21:50:23
Tambien puedes utilizar un pic16F767 tiene tres pwm por hardware y resuelto el problema  :mrgreen:

Saludos
Título: Re: Enhanced PWM EPWM PIC PIC16F salidas duty independientes
Publicado por: jeremylf en 07 de Octubre de 2015, 17:55:23
Grandes datos, gracias!