PWM 50KHz com resolução de 100 pnts.

Software e Hardware para uC PIC

Moderadores: andre_luis, 51, guest2003, Renie

PWM 50KHz com resolução de 100 pnts.

Mensagempor denis neves » 12 Mar 2010 08:48

Olá,
estou querendo fazer um PWM com o 16F877A que tenha 50KHz e 100 pontos de resolução para variação do duty-cicle para acionamento de motor dc. Tentei usar o módulo PWM do próprio uC mas ele só chega aos 19KHz por causa do TIMER A !!!... :cry:

Voces saberiam como fazer esse PWM de 50KHz com 100 pnts de resolução por software ???

Ah...estou usando o CCS...

Muito obrigado,

Denis.
HEY HO LET'S GO !!!
denis neves
Byte
 
Mensagens: 117
Registrado em: 25 Jul 2007 17:16

Mensagempor MOR_AL » 12 Mar 2010 10:53

Denis.
Se a sua frequência for de 50kHz, o período será de 20us.
Se dentro deste período você desejar 100 possibilidades de Ton, então cada variação será de:
20us / 100 = 0,2us.
Em 0,2us você deverá calcular e setar o novo valor do seu Ton do PWM. Em ASM já seria impossível, pois com um xtal de 20MHz já possui um período de instrução de 0,2us. Em outra linguagem de programação, nem se fala.
Tente aumentar o período T = 1 / f.
MOR_AL
"Para o triunfo do mal só é preciso que os bons homens não façam nada." Edmund Burke.
"Nunca discutas com pessoas estúpidas. Elas irão te arrastar ao nível delas e vencê-lo por possuir mais experiência em ser ignorante". Mark Twain
Avatar do usuário
MOR_AL
Dword
 
Mensagens: 2934
Registrado em: 19 Out 2006 09:38
Localização: Mangaratiba - RJ

Mensagempor renatokodaira » 12 Mar 2010 15:51

Como o amigo Moral disse, por software fica dificil. Mas usando o modulo PWM e clock de 20MHz, tente setar o registrador PR2 com valor 99 (decimal), o prescaler do Timer2 em 1, os bits 4 e 5 do CCP1CON em zero. Com essa configuracao seu PWM vai funcionar com 50kHz e ao variar o valor de CCPR1L de 0 a 100, voce consegue variar o duty cycle em passos de 1%.

Com clock de 4MHz, o PR2 precisa ter valor 19, mas voce soh consegue 80 passos de variacao (0 a 20 no CCPR1L e mais 0 a 3 nos bits do CCP1CON)
renatokodaira
Byte
 
Mensagens: 402
Registrado em: 11 Out 2006 15:15

Mensagempor MOR_AL » 12 Mar 2010 16:23

renatokodaira escreveu:Como o amigo Moral disse ... Mas usando o modulo PWM e clock de 20MHz, tente setar o registrador PR2 com valor 99 (decimal), o prescaler do Timer2 em 1, os bits 4 e 5 do CCP1CON em zero. Com essa configuracao seu PWM vai funcionar com 50kHz e ao variar o valor de CCPR1L de 0 a 100, voce consegue variar o duty cycle em passos de 1%.
...


É isso aí!
A taxa de atualização não precisa ser de 0,2us. Nem seu motor poderia responder. Uma taxa de atualização (de Ton) em cerca de 1ms é bem rápida para a inércia do motor. Logo, teria tempo mais que suficiente.
Em tempo:
Você poderia baixar um pouco esta frequência (50kc/s), aí não precisaria usar o PIC no limite.
Outro detalhe é que à medida que o Ton diminui, o torque não diminui proporcionalmente. Se a tensão cai à metade (Ton = T/2), a corrente também. A potência no motor cai à 1/4 da moninal.
MOR_AL
"Para o triunfo do mal só é preciso que os bons homens não façam nada." Edmund Burke.
"Nunca discutas com pessoas estúpidas. Elas irão te arrastar ao nível delas e vencê-lo por possuir mais experiência em ser ignorante". Mark Twain
Avatar do usuário
MOR_AL
Dword
 
Mensagens: 2934
Registrado em: 19 Out 2006 09:38
Localização: Mangaratiba - RJ

Mensagempor jorgeluiz » 13 Mar 2010 00:50

tambem nao entendi o porque de usar uma frequencia tao alta. Se for indispensavel, faça com 555. Muito mais simples.
Avatar do usuário
jorgeluiz
Byte
 
Mensagens: 448
Registrado em: 26 Mar 2007 02:26

Mensagempor denis neves » 15 Mar 2010 21:22

Olá a todos,

em primeiro lugar muito obrigado pelas respostas...fico muito grato !!!

Renatokodaira um amigo meu fez exatamente o que vc propôs!!!...ficou redondinhooo !!!...a frequencia de 50KHz é conforme as especificações que estão no datasheet do motor, por isso resolvi usar o que o motor pede !!!...eu preciso de 100 pnts de resolução (no minimo) pq eu quero partir o motor beeeeeeeeemmmmmmmmmmm de vagar !!!...no meu caso os 555 não daria certo pois faço leituras de dados externos com o PIC e, dependendo como for, mexo no PWM do motor!!!...(controle digital).

Agradeço a todos mais uma vez pela ajuda preciosa !!!

Estou à disposição no que precisar,

Denis.
HEY HO LET'S GO !!!
denis neves
Byte
 
Mensagens: 117
Registrado em: 25 Jul 2007 17:16

PWM duvidas

Mensagempor BolhaDigital » 15 Mar 2010 22:57

Oi galera,

é o seguinte:

Eu estou querendo gerar uma frequencia de 22.050 +/- isso, tô utilizando um cristal de 20mhz num pic877A, e também tô usando o modulo PWM do pic.
Eu quero utilizar a resolução de 8 bits e assim eu dava um clear nos bits CPx e y salvo engano...Como eu vou reproduzir um sinal de audio necessido desta frequencia, ok, assim sendo eu teria que por a interrupção do tmr2 ativa...será que eu acertei?


MInha dúvida é: Só explicando mais um pouquinho, eu quero utilizar o modulo pwm como se fosse um conversor D/A...minha dúvida é: será que eu posso jogar valores de 0 a 255 no buffer relativo ao pwm que o mesmo irá me gerar/preencher corretamente o duty cicle da coisa?

Muito obrigado,

NOTA: ainda vou fazer os testes, tá, eu só tô colhendo o maximo de informação antes de iniciar os testes...
BolhaDigital
Bit
 
Mensagens: 47
Registrado em: 07 Mar 2010 12:20

Mensagempor wandersonrainer » 17 Mar 2010 17:28

Aproveitando o tópico, gostaria de saber se é possível implementar um sinal PWM de 3MHz com o PIC16F877A utilizando um cristal oscilador de 20MHz.
Alguém já o fez com uma frequência dessa magnitude?
wandersonrainer
Bit
 
Mensagens: 31
Registrado em: 09 Abr 2007 17:00

Mensagempor fabim » 17 Mar 2010 18:36

Olha eu tenho um inversor de frequencia, para motores mono.
Eu uso um 16F876 com cristal de 20mhz, to com um pwm de 3.255mhz e resolução de 1.5 bit.

Da sim, é muito simples isto..
Mano, ve só.
Sou responsável pelo que escrevo!!! E não pelo que você entende !!!
fabim
Dword
 
Mensagens: 5001
Registrado em: 16 Out 2006 10:18
Localização: aqui uái!!!?

Mensagempor proex » 17 Mar 2010 18:54

fabim escreveu:Olha eu tenho um inversor de frequencia, para motores mono.
Eu uso um 16F876 com cristal de 20mhz, to com um pwm de 3.255mhz e resolução de 1.5 bit.

Da sim, é muito simples isto..


Mas 1.5 bit corresponde a 2,75 graus de relação I/Seno*V. O ideal é 2,48 que é um numero divisivel por 3. Assim o motor nao dá tranco na partida.

Se em vez de 3.255mhz vc programar o PIC para gerar 3.737288mhz vc conseguirá 1,78 bit de resolução. Dividindo isso por 5,47, que é a relaçao ideal, vc consegue chegar a uma senoide de 480 graus da tangente que passa pelo ponto de disparo.

.
proex
Dword
 
Mensagens: 2101
Registrado em: 11 Out 2006 14:05
Localização: São Paulo

Mensagempor proex » 17 Mar 2010 18:58

wandersonrainer escreveu:Aproveitando o tópico, gostaria de saber se é possível implementar um sinal PWM de 3MHz com o PIC16F877A utilizando um cristal oscilador de 20MHz.
Alguém já o fez com uma frequência dessa magnitude?



Que magnitude, 3Mhz ou 20Mhz?

.
proex
Dword
 
Mensagens: 2101
Registrado em: 11 Out 2006 14:05
Localização: São Paulo

Mensagempor fabim » 17 Mar 2010 19:05

proex escreveu:
fabim escreveu:Olha eu tenho um inversor de frequencia, para motores mono.
Eu uso um 16F876 com cristal de 20mhz, to com um pwm de 3.255mhz e resolução de 1.5 bit.

Da sim, é muito simples isto..


Mas 1.5 bit corresponde a 2,75 graus de relação I/Seno*V. O ideal é 2,48 que é um numero divisivel por 3. Assim o motor nao dá tranco na partida.

Se em vez de 3.255mhz vc programar o PIC para gerar 3.737288mhz vc conseguirá 1,78 bit de resolução. Dividindo isso por 5,47, que é a relaçao ideal, vc consegue chegar a uma senoide de 480 graus da tangente que passa pelo ponto de disparo.

.


Putz, por isso deu pau aqui então sempre na partida. froid.. Bom agora ja foi não vou fazer recall nem a pau.
Mano, ve só.
Sou responsável pelo que escrevo!!! E não pelo que você entende !!!
fabim
Dword
 
Mensagens: 5001
Registrado em: 16 Out 2006 10:18
Localização: aqui uái!!!?

Mensagempor jeanfernandes » 17 Mar 2010 19:13

Se for pra fazer o pic falar... ehehehehehehe

vai na cika e compra por 0,99 dolar, um chip da APLUS. Da pra fazer por ADPCM fica meia boca, mas eh melhor que o sinal do pics ......

Se for pra motor , ai ve a ideia do Pirex/Fabim.
Jean P. Fernandes - Eng. Eletrônico - (83) 2102-2116 - APEL - www.apel.com.br - Campina Grande - PB
jeanfernandes
Word
 
Mensagens: 539
Registrado em: 11 Out 2006 15:36
Localização: Campina Grande - PB


Voltar para PIC

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

cron

x