Página 1 de 2

8 Saídas PWM

MensagemEnviado: 11 Jan 2008 10:09
por fabio_
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.

MensagemEnviado: 11 Jan 2008 11:21
por LeandroPIC
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..........

MensagemEnviado: 11 Jan 2008 12:21
por ze
"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ç

MensagemEnviado: 11 Jan 2008 14:43
por fabio_
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 ....

MensagemEnviado: 11 Jan 2008 15:02
por ze
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

MensagemEnviado: 11 Jan 2008 15:49
por MOR_AL
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

MensagemEnviado: 12 Jan 2008 17:54
por LeandroPIC
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..........!!!!!!

MensagemEnviado: 14 Jan 2008 08:14
por ze
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!!

MensagemEnviado: 14 Jan 2008 12:09
por LeandroPIC
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...

MensagemEnviado: 15 Jan 2008 07:15
por Sergio38br
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

MensagemEnviado: 16 Jan 2008 07:21
por fabim
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

MensagemEnviado: 16 Jan 2008 09:31
por fabio_
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á!

MensagemEnviado: 16 Jan 2008 09:35
por proex
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.

MensagemEnviado: 16 Jan 2008 11:56
por fabim
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

MensagemEnviado: 16 Jan 2008 12:39
por fabio_
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.