Ir ao conteúdo
  • Cadastre-se

Comunicação entre 18F4550 e 16F628A. AJUDA!


Luuizc

Posts recomendados

Eai pessoal, tudo bem?

Anteriormente eu havia pedido a ajuda de vocês na comunicação do 18F4550 via USB, e depois de um tempo eu consegui fazer o que eu estava precisando. Agora estou com um problema que não consigo resolver e eu preciso entregar meu projeto daqui a menos de 2 semanas! Se alguém puder me ajudar fico muito agradecido!

Meu problema está na comunicação do PIC 18F4550 com um 16F628A, meu projeto consiste em receber os dados via USB pelo 18F e nele estão as instruções de controle do 16F, este que já esta programado também para controle de motores de passo.

Então eu programei o 16F de maneira a receber 2 sinais de entrada no RB5 e RB6, assim quando um destes receber um sinal digital alto, 1 (5v) o 16F manda uma sequencia de sinais(pulsos) nas portas Rb0, Rb1, Rb2 e Rb3 que são ligadas ao motor de passo.

Fiz o teste colocando 2 botões nas entradas do 16f e acionei e os motores funcionaram! Ok

Já quando ao 18F eu já aprendi a controlar a comunicação usb HID dele, enviar e receber sinais, apesar disso, eu programei ele apenas para enviar um sinal na porta Rb0, para testar o acionamento do 16F, então eu liguei a saida do Rb0 do 18F na entrada do Rb5 do 16F, porém não funcionou!! :(:confused:

Eu acho que pode ser as ligações do circuito!

Mas já testei de quase tudo...

Os motores de passo usam uma fonte regulada em 9V e o 16F eu estou usando de uma fonte de 5V, então eles usam fontes separadas, porém para que os motores funcionassem eu tive que ligar o terra do 16F junto com o terra dos motores!!

Já o 18F é alimentado pela USB, eu testei ligando um led na saida e funcionou, porém quando eu ligo a saida do 18F na entrada do 16F e ligo na USB a tensão que antes saida 5v, agora sai por volta de 0,7V.

Como o 18F eu fica em uma placa de desenvolvimento eu tenho as saidas (+) e (-) dele, então resolvi ligar o (-) do 18F no mesmo terra do 16F e motor, porém também não funcionou!:angry:

Se alguém puder me ajudar, me dar uma luz, apontar um caminho! Agradeço muito!

Aqui o desenho do circuito esboçando +/- como está as ligações

http://imageshack.us/photo/my-images/542/circuitodrive18fx16f.jpg/

Sei que o texto ficou grande e é chato ler, mas estou precisando muito de ajuda!

Obrigado

Link para o comentário
Compartilhar em outros sites

Os pinos do 16F estão como entrada, eu configurei eles como I/O de entrada, e até testei.

Eu acho que pode ser isso que você falou dos 'terras' estarem na mesma referência, eu já liguei todos os terras juntos, porém não tem problema virem de alimentações diferentes?

Pois quando eu ligo o terra do 18F que é alimentado via USB no terra das fontes que alimentam o 16F e motores simplesmente o sinal que antes era de 5V entre saida do 18F e terra do 18F, vai para 0,7V

Não sei se estou me perdendo nisso, mas agora comprei um LM7805 e vou usar a mesma fonte de 9V que alimenta os motores para alimentar o 16F e testar..

:S

http://img217.imageshack.us/img217/6914/circuitodrive18fx16f.jpg

Link para o comentário
Compartilhar em outros sites

voce não poderia alimentar o 16Fe o 18Fpela USB,ja que ás saidas estão isoladas pelo Optoaclopadores?

voce alimentaria apenas os dois Micros pela USB e o circuito dos transistores e motores voce usaria outra fonte externa e terras separados.

Qual compilador usou?

Ja tem exepriencia em iniciar as portas do 16F628(desabilitando os comparadores)?

Link para o comentário
Compartilhar em outros sites

Já tentei alimentar o 16F pela usb do 18F, mas não deu certo também! :S

Para compilar o código do 18F usei o Mplab e para o 16F usei o mikroC

Não tenho muita experiencia não! Somente usei o trisb para colocar as portas como entrada ou saida, funcionou normal quando liguei um botão na entrada simulando um sinal.

Link para o comentário
Compartilhar em outros sites

O circuito está todo no protoboard ! Ja fiz o circuito do driver em uma placa separada, mas como comprei o Lm7805 agora ainda preciso incluir nele.

Ah, testei o LM7805 alimentando o 16F e o 18F, vindo da fonte de 9v...ou seja...todos os terras juntos...e não funcionou :S

não sei mais o que faço =\

Link para o comentário
Compartilhar em outros sites

se voce colocar um botão entre o terra e o pino RB5,o circuito funciona?

PS:Relí e vi que funciona,então da uma 'apelada'.

Experimente usar um transistor BC548.

Ligue na saida RB0 do 18F um resistor entre 4k7 a 10k ligado na base do 548,ligue o emissor no terra e o coletor no RB5 do 16F.

Link para o comentário
Compartilhar em outros sites

Ahhhh, sei não.

Tem algo de errado nesse circuito. Talvez um mal contato, um pino defeituoso na protoboard....

Era para estar funcionando.

Depois de testar a dica do colega vtrx, caso não funcione, eu remontaria tudo do zero. Para encontrar a falha.

Qualquer coisa reprograme o 18F apenas para pulsar o B0 e ligue no 16F. Não ligue na USB. Use fonte externa.

Monitore a tensão nos pinos com um multimetro.

Monte os circuitos em blocos simples para debugar e encontrar o erro.

Nao precisa testar tudo com USB, motor e tal.

Como o 16F é ativado com sinal alto, use um resistor de pull-down no 16F. Seria ligar um resistor entre 4.7k e 10K entre o B5 e o terra. O sinal do 18F entra no resistor atraves da perna que nao está aterrada.

Falou

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...