8 Saídas PWM

Software e Hardware para uC PIC

Moderadores: andre_luis, 51, guest2003, Renie

8 Saídas PWM

Mensagempor fabio_ » 11 Jan 2008 10:09

Colegas do Fórum,

Preciso gerar 8 saídas PWM, Frequencia 200Hz com controle do ciclo ativo de 0 a 90% de acordo com a leitura de 8 entradas analógicas de 0 a 5V.

De preferência, gostaria continuar usando o PIC16F877A pois tenho vários aqui. Mas se não tiver opção, posso trocá-lo.

Pensei em utilizar CIs específicos para geração de PWM. Li o datasheet
do SG3524 e SG3525 mas não consegui entender direito o seu funcionamento, como alterar o ciclo ativo e calcular a frequencia.

Voces podem me ajudar com os CIs específicos? Se sim, qual e como utilizar?
Voce tem outras sugestões?

desde já agradeço.
fabio_
Byte
 
Mensagens: 177
Registrado em: 13 Jun 2007 12:08

Mensagempor LeandroPIC » 11 Jan 2008 11:21

vc pode tentar fazer assim..............

pega um timer, fassa gerar uma int na frequencia de 200Hz, ai vc faz 8 PWM por SOFTWARE, le o canal AD do PIC, e quando gerar a int o PIC atualiza todos os PWM, assim todos os PWM vao ter a mesma frequencia..........
Avatar do usuário
LeandroPIC
Byte
 
Mensagens: 163
Registrado em: 06 Jul 2007 12:19

Mensagempor ze » 11 Jan 2008 12:21

"fassa" !!! ai!!! pelamordedeus, use o firefox e coloque o complemento de correção ortográfica!!

rsrsrs - brincadeira, favor não se ofenda, foi só desabafo!!!

Voltando, sua ideia do pwm por sw é mui boa. Poderá me ser útil tbém.

e não mate mais as aulas de português na sua próxima encarnação(*)!!!!(rsrsrs)

(*)mesmo se fosse verdade eu não acreditaria.
abrç
Avatar do usuário
ze
Dword
 
Mensagens: 1655
Registrado em: 05 Jun 2007 14:32

Mensagempor fabio_ » 11 Jan 2008 14:43

lellis, eu já pensei em utilizar o PWM por software, mas estou evitando para não ter que ficar fazendo cálculos com o tempo gasto na execução das outras rotinas ....
fabio_
Byte
 
Mensagens: 177
Registrado em: 13 Jun 2007 12:08

Mensagempor ze » 11 Jan 2008 15:02

fábio, se você tem vários 877 use 1 só pra o pwm e outro pras demais tarefas "importantes" fazendo-os comunicar entre si. (complicadinho né?)
infelizmente desconheço uContr com varios pwm's por hw.
se você fosse colocar hw de pwm externo (3524 p.ex) seria 1 pra cada canal. o uContr iria perder + tempo ainda (acho) para controlar cada 1.

Se me aparecer alguma iluminação, eu lhe falo (precisei deste fdp de pwn múltiplo 1 dia tbém) ou aguarde alguma orientação dos experts.
abrç II
Avatar do usuário
ze
Dword
 
Mensagens: 1655
Registrado em: 05 Jun 2007 14:32

Mensagempor MOR_AL » 11 Jan 2008 15:49

Olá Fábio_

Se os períodos Ton de seus PWM variam entre 0% e 90%, você tem pelo menos 10% (durante Toff) para trabalhar, correto?. 10% de T = 1/200 dão 500us. Se o seu PIC16F877 trabalhar com cristal de 20MHz, você tem cerca de 2000 instruções dentro deste intervalo para atualizar o Ton.

Use um timer para gerar os pulsos de 200Hz e 8 bytes para guardar os instantes de mudança de cada PWM de '1' para '0'. Seu sistema deverá ficar monitorando o timer e verificando se a contagem foi maior (ou menor) que os valores guardados nos 8 registros. Estes registros podem possuir um fator de escala múltiplo de 2. Assim você consegue comparar o contador de 16 bits com o seu valor gravado no byte. Leia o valor do contador e shifte os dois bytes, para a direita, tantas vezes quantas forem necessárias e faça a operação de subtração com 8 bits "SUBWF". Se o resultado for positivo ou negativo (dependendo do contador. Acho que a contagem é sempre de incremento), então o pino de saída deve ser "zerado". Na interrupção do timer todos os pinos do PWM tem que ir para '1'. Em tempo, o limite inferior do delta nos PWMs não chega a ir para zero, né?
Se as 2000 instruções não forem suficientes para atualizar, procure fazer a rotina de atualização em assembler, que não é difícil. Caso ainda assim não for possível, não atualize todos os PWMs dentro deste intervalo. Atualize apenas 4 e deixe para atualizar os outros 4 no ciclo seguinte. Se, ainda assim não der tempo, atualize apenas um PWM por ciclo. Esta solução tem seu preço. A velocidade de atualização.

Por fim, você pode fazer um PWM com um 555 e um operacional. A entrada é um sinal analógico e a saída é um PWM.
Para esta frequência que você quer, me parece que não há necessidade de tanta precisão, né? Talvez uma destas opções lhe ajudem.

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 LeandroPIC » 12 Jan 2008 17:54

lellis escreveu:"fassa" !!! ai!!! pelamordedeus, use o firefox e coloque o complemento de correção ortográfica!!

e não mate mais as aulas de português na sua próxima encarnação(*)!!!!(rsrsrs)

(*)mesmo se fosse verdade eu não acreditaria.
abrç


vc tem razão nunca gostei de aula de portugues...............

mas deu pra intender não deu..........!!!!!!
Avatar do usuário
LeandroPIC
Byte
 
Mensagens: 163
Registrado em: 06 Jul 2007 12:19

Mensagempor ze » 14 Jan 2008 08:14

mas deu pra intender não deu..........!!!!!!

demorei um pouco, mas acho que a tradução seria:
"Foi possível compreender apesar de meu engano????"
se sim:
entender
faltou vírgula.
seria ponto de interrogação "?????" e não "!!!!!!"
o principal: entendi e não dei!
o objetivo não é poluir o tópico e sim perfumá-lo. (que boiolice!!)
caso eu esteja incomodando, basta mo dizer!

atente-se em ser bom como o é em micro/eletrônica!! abraço!!
Avatar do usuário
ze
Dword
 
Mensagens: 1655
Registrado em: 05 Jun 2007 14:32

Mensagempor LeandroPIC » 14 Jan 2008 12:09

Ha.....

descumpe é que estou em um PC que não é meu, eo teclado esta todo desconfigurado e a pessoa já se acostumou assim e não quer arrumar...
Avatar do usuário
LeandroPIC
Byte
 
Mensagens: 163
Registrado em: 06 Jul 2007 12:19

Mensagempor Sergio38br » 15 Jan 2008 07:15

bom dia,

Estava ajudando um antigo camarada da faculdade sobre o dsPIC e descobrir que a alguns da linha dsPIC30F6XXX possuem 8 canais PWM, infelizmente o preço....


G.A.

Sergio
Avatar do usuário
Sergio38br
Word
 
Mensagens: 759
Registrado em: 22 Nov 2007 13:39
Localização: São Paulo - SP

Mensagempor fabim » 16 Jan 2008 07:21

potenciometro digital da micoxip... o Jeanfernandes sabe de uns, eu não lembro mais.

não vou dar o peixe frito não..

ó Procura na net sobre o 555 usado como pwm e o "pino 5" dele para controle de ciclo ativo.

8 X 555 + 8 X potenciômetro.

http://www.dprg.org/tutorials/2005-11a/index.html


fabim
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 fabio_ » 16 Jan 2008 09:31

Até que enfim uma luz .....

Agradeço as outras idéias mas achei meio confuso gerar tantos PWMs por software. Até comecei a fazer uns testes mas não estava ficando muito legal porque para gerar um PWM de 200Hz não dá para usar o cristal de 20Mhz como sugerido pelo Mo_ral, só consegui os 200Hz com um cristal de 2MHz. Então o cálculo to tempo gasto na execução das instruções está ficando meio confuso e muito trabalhoso.

Já estava quase usando 3 PICs ....

Assim que testar o circuito eu coloco o resultado.

Valeu Chará!
Editado pela última vez por fabio_ em 16 Jan 2008 09:39, em um total de 1 vez.
fabio_
Byte
 
Mensagens: 177
Registrado em: 13 Jun 2007 12:08

Mensagempor proex » 16 Jan 2008 09:35

Pessoal, uma das grandes vantagens dos Microcontroladores é a capacidade de substituir funções analógicas complexas com a utilizaçao dos periféricos internos do chip ou com a criaçao de programas que venham executar as funçoes necessarias.

Uma das soluçoes propostas acima, onde além do PIC, usa-se 8 CIs 555, potenciometros digitais etc, vai contra a filosofia acima mencionada, além de demonstrar uma grande incapacidade de prover soluçoes inteligentes e baratas.

O problema proposto pode ser facilmente resolvido com o Pic e um programa de geraçao de PWM facilmente elaborado, bastando apenas um pouco de paciência, testes e criatividade.


Deixem a preguiça de lado.
proex
Dword
 
Mensagens: 2101
Registrado em: 11 Out 2006 14:05
Localização: São Paulo

Mensagempor fabim » 16 Jan 2008 11:56

bom pirex..
tudo bem que ele ja disse que não queria perder tempo com calc´s.. maisss

http://www.e-sonic.com/whatsnew/Microch ... /AN654.pdf

isso aí deve ajudar o menino

abraços

fabim
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 fabio_ » 16 Jan 2008 12:39

Calma é proex .... não precisa ficar bravo!!

Realmente eu não estou com muito tempo sobrando e preciso terminar este projeto rápido porque já tenho outro encaminhado.

Chará, mais uma vez voce me ajudou bastante.
Procurei no site da microchip por mais de 1 hora e não achei muita coisa ... aí voce tira este AN do fundo do baú (1997).
Eu até resolvi tentar mais uma vez pois achei bem legal a aplicação e está gastando menos instruções do que a que criei, embora gerar 1 ou 2 PWMs é moleza. Vamos ver com 8 saídas.

Voces acham que eu realmente terei problema com o tempo gasto na execução do programa ou ele será desprezível em função da velocidade de execução?
A única coisa que o PIC fará é ler 8 entradas analógicas de 0-5V e gerar as saídas PWMs com ciclo ativo de 0 a 90%, ou talvez 100%, dependendo dos testes em campo.

A frequencia não precisa ser exatamente 200Hz. Com uma tolerância +- 5% estará ótimo. As saídas PWMs irão comandar 8 solenóides proporcionais.

Se não der certo vou partir para as soluções de hardware mesmo usando 2 PICs e duas saídas controladas pelo 555.

valeu.
fabio_
Byte
 
Mensagens: 177
Registrado em: 13 Jun 2007 12:08

Próximo

Voltar para PIC

Quem está online

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

x