PWM Duplo.

Software e Hardware para uC PIC

Moderadores: andre_luis, 51, guest2003, Renie

PWM Duplo.

Mensagempor Pask » 30 Mai 2007 09:34

Caros amigos estou precisando de sua ajuda novamente. Estou desenvolvendo uma aplicação com o PIC para gerar um sinal retangular para controle PWM sem utilizar o módulo PWM interno do PIC. Fazer isto é relativamente simples. O problema é que eu preciso gerar duas formas de onda retangulares defasadas de 180° aproximadamente com 60 Hz de freqüência cada uma. A dificuldade está em gerar as duas formas de onda simultaneamente nessas condições! Eu preciso gerar ambas as formas de onda com um ciclo ativo variando de 30%, 40%, 50% e 60%.
Eu estou utilizando um botão no pino RB0 para variar o ciclo ativo a cada toque e as formas de onda estão sendo retiradas respectivamente nos pinos RB1 e RB2. Se fosse para gerar um única forma de onda, eu já teria feito. O problema está em gerar as duas simultaneamente.
DETALHE: Não posso utilizar outro CI. Somente o PIC!
Estou programando em C. Se alguém tiver uma idéia que possa me ajudar, agradeceria bastante.

Pask
Pask
Word
 
Mensagens: 600
Registrado em: 22 Dez 2006 19:19

Re: PWM Duplo.

Mensagempor andre_luis » 30 Mai 2007 09:51

Voce nao mencionou o deadtime. Se isso nao for problema, porque simplesmente nao inverte o sinal ?
E sem usar o PWM interno, voce vai consumir muito processamento para isso.

+++
Avatar do usuário
andre_luis
Dword
 
Mensagens: 5447
Registrado em: 11 Out 2006 18:27
Localização: Brasil - RJ

Mensagempor Pask » 30 Mai 2007 11:18

Sim amigo, a inversão do sinal é exatamente o que eu estou tentando fazer. Preciso que o pino RB1 produza uma forma de onda retangular como expliquei antes e que o pino RB2 produza a mesma forma de onda invertida. A dificuldade está em gerar as duas formas de onda simultaneamente, entende?
Pask
Word
 
Mensagens: 600
Registrado em: 22 Dez 2006 19:19

Mensagempor phophollety » 30 Mai 2007 12:08

Por que não usa simplesmente uma porta not ou um transitor?!
"3 minutes of boring code review means 3 hours less fixing LSD (Little Stupid Detail)" Dr. Mike Smith
"Dê-me um ponto de apoio e uma alavanca e moverei o mundo" Arquimedes
"Quando vejo um Alfa Romeo passar eu tiro o meu chapéu" Henry FORD.
Avatar do usuário
phophollety
Dword
 
Mensagens: 1511
Registrado em: 15 Out 2006 13:00
Localização: Santo André São Paulo, Brasil

Mensagempor fabim » 30 Mai 2007 12:15

quando é necessario simultaniedade em dois pinos.

EX RB1 E RB2
ASM
MOVLW PortB
XORLW B'00000010'
movwf portb
gasta tempoH
agora inverte a logica
MOVLW PORTB
XORLW B'00000100'
MOVWF Portb
gasta tempoL.

Este comando XOR ou OR. pega a logica que a porta esta modifica apenas os pinos que precisa e devolve sem influenciar nos outros" se não me engano é XOR. to cum fome num da pra pensar direito.rs
Mais a lógica é essa

Abraços

Fabim
fabim
Dword
 
Mensagens: 5001
Registrado em: 16 Out 2006 10:18
Localização: aqui uái!!!?

Mensagempor Renie » 30 Mai 2007 12:17

OLá Pask,

Não entendí a dificuldade!

Se você está fazendo o PWM por soft, basta no momento que você
define o pino RB1 em alto ou baixo, fazer o inverso para o pino RB2.
[]'s
Renie
-------------------------------------------------------------------------------------------------------------
Meu velho site com eletrônica praticamente parado http://www.reniemarquet.com
Nosso Blog http://artemadeiraevida.blogspot.com.br
Renie
Word
 
Mensagens: 732
Registrado em: 11 Out 2006 22:35
Localização: RJ - Niterói - Brasil

Mensagempor phophollety » 30 Mai 2007 12:24

A menos que essa diferença de uSegundos seja problemática só setar a porta..
"3 minutes of boring code review means 3 hours less fixing LSD (Little Stupid Detail)" Dr. Mike Smith
"Dê-me um ponto de apoio e uma alavanca e moverei o mundo" Arquimedes
"Quando vejo um Alfa Romeo passar eu tiro o meu chapéu" Henry FORD.
Avatar do usuário
phophollety
Dword
 
Mensagens: 1511
Registrado em: 15 Out 2006 13:00
Localização: Santo André São Paulo, Brasil

Mensagempor Pask » 30 Mai 2007 13:14

Caros amigos, realmente cheguei à conclusão que a geração do sinal PWM - neste caso em particular - via soft é um tanto quanto complexa. Estou trabalhando com o PIC16F628A que só possui um módulo PWM interno. Agora, vou adquirir o PIC16F876A de 28 pinos que possui dois módulos PWM independentes internos. Assim, através da ferramenta embutida pelo fabricante será mais fácil atingir o meu objetivo. Futuramente, conto a vocês o que se sucedeu. Obrigado por enquanto...

Pask.
Pask
Word
 
Mensagens: 600
Registrado em: 22 Dez 2006 19:19

Mensagempor Adauto sampaio » 30 Mai 2007 14:04

Boa tarde Pask. Se a quantidade de pinos puder ser menor, vc pode usar o PIC16F684. Tem dois PWMs, onde vc pode usar juntos, separados (half bridge) e ponte completa (con 4 fets), só configurar no soft. Também to tentando um PWM half-bridge com o 873A usando os dois módulos CCP e não acertei ainda. Espero ter ajudado.
Abraços!!!
É tudo uma questão de sorte; pergunte a qualquer perdedor
Adauto sampaio
Byte
 
Mensagens: 123
Registrado em: 07 Jan 2007 16:02

Mensagempor Renie » 30 Mai 2007 21:57

Olá Pask,

Se você consegue gerar PWM por sof, fazer em 2 pinos do mesmo port em níveis invertidos é super simples.

Pense apenas em um pino, você terá um contador para nível alto e outro
para o nivel baixo, sabendo com qual nível você inicializa o ciclo, quando o
contador estourar você apenas inverte o nível do pino e passa para o
outro contador.

Digamos que você começa no nível alto, então começa com RB1 = 1 e
RB2 = 0, todas as vezes que for inverter, basta apenas fazer um XOR do valor b"00000110" com o portb que inverterá ambos os pinos ao mesmo
tempo.
[]'s
Renie
-------------------------------------------------------------------------------------------------------------
Meu velho site com eletrônica praticamente parado http://www.reniemarquet.com
Nosso Blog http://artemadeiraevida.blogspot.com.br
Renie
Word
 
Mensagens: 732
Registrado em: 11 Out 2006 22:35
Localização: RJ - Niterói - Brasil

Mensagempor Pask » 01 Jun 2007 09:54

Amigos, gerar a forma de onda retangular é fácil via soft. Na verdade, o que eu fiz foi gerar duas formas de onda: uma saíndo no pino RB1 e outra no pino RB2. O motivo de eu estar aqui é devido a um probleminha que surgiu. As formas de onda têm que ter freq. de 60Hz cada uma e estarem defasadas uma da outra de uns 8 milissegundos, mas, sendo geradas ao mesmo tempo! A minha dificuldade está em manter esta freq. e fazer a defasagem entre elas. Estou programando em C e se alguém tiver uma dica, agradeceria muito.
Pask
Word
 
Mensagens: 600
Registrado em: 22 Dez 2006 19:19

Mensagempor fabim » 01 Jun 2007 10:16

neste caso em questão..
os 180° defasados nada mais é que dois sinais pwm sendo um pra nivel 1 quando o outro estiver em zero..

Acho que vc não esta se expressando muito bem sobre a sua idéia.

De uma breve introdução do circuito que vc vai usar isso. as vezes entender do avesso é mais facil. Diz TRAIz pra Frenti.

Fabim
fabim
Dword
 
Mensagens: 5001
Registrado em: 16 Out 2006 10:18
Localização: aqui uái!!!?

Mensagempor Pask » 01 Jun 2007 11:20

É isso mesmo Fabim, é uma defasagem de 180° entre elas. Estou tentando desenvolver uma aplicação para um no-break experimental. Quero acionar o inversor com o PIC. Vc poderia me ajudar agora?
Pask
Word
 
Mensagens: 600
Registrado em: 22 Dez 2006 19:19

Mensagempor fabim » 01 Jun 2007 11:35

bom num serve pra nobeak esta idéia...

fabim
fabim
Dword
 
Mensagens: 5001
Registrado em: 16 Out 2006 10:18
Localização: aqui uái!!!?

Mensagempor Pask » 01 Jun 2007 12:52

Quero deixar claro que este projeto também prevê o uso do ajuste de ciclo ativo da onda. Qual seria então a boa idéia para no-break?
Pask
Word
 
Mensagens: 600
Registrado em: 22 Dez 2006 19:19

Próximo

Voltar para PIC

Quem está online

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

x