Página 1 de 1

comunicação serial entre pic12f675 e 16f628

MensagemEnviado: 08 Nov 2006 18:53
por vibrex
Gostaria de obter ajuda para comunicar os pics acima ate uma distancia de 3m sem ter que utilizar o MAX232 por questao de espaço. Alguem tem o eaquema do hardware necessario? Posso utilizar somente +5 ou +12 volts referenciados ao massa.

Obrigado.

Carlos

MensagemEnviado: 09 Nov 2006 09:47
por Cláudio
Fala Carlos!
Os dois PICS em questão transmitem e recebem dados?
Caso positivo, há algumas coisas a se considerar:
Para até 3 metros, você não terá problemas para comunicar os dois dispositivos serialmente (sem MAX mesmo, ligando TX´s nos RX´s e vice versa). O problema maior é que o 12F não possui canal serial... Mesmo assim, você pode "emular" uma serial por software no 12F com auxílio de uma técnica de "bit bang". Você tratará os bytes recebidos na interrupção externa ( o start bit interrompe o dispositivo). Quanto a TX, basta temporizar de acordo com a taxa de envio necessária.
Talvez por I2C (por software também) você consiga esta distância também...
Avisa aê caso precise de alguma coisa!
Abraços,

MensagemEnviado: 09 Nov 2006 18:50
por vibrex
Fala ai, meu amigo.

O problema é que o 12f675 so transmite 2 bytes a cada 500ms para o 16f628.
Quando uso o MAX232 os dados chegam corretamente, porem quando ligo direto os dados ficam truncados! Experimentei ligar o pino do 675 em um MAX232 ligado na serial do micro para monitorar os dados enviados para o 628. A minha surpresa é que os dados continuavam certos para o PC e errados para o 628!!! Voce tem algum esquema que possa enviar pra mim? Utilizo a INT serial pra ler os bytes no 628.
Moro no rio de janeiro.

meu e-mail: evolution.gnv@bol.com.br

Um abraço e obrigado pela atenção.

Carlos André.

MensagemEnviado: 10 Nov 2006 15:06
por otavio luiz
Que linguagem voce esta usando para escrever seu programa, parece que voce esta gerando a comunicação com a polaridade invertida tenta colocar um transistor bc548 entre o 12f e o 16f pra inverter o sinal ou então muda o soft.

MensagemEnviado: 10 Nov 2006 18:45
por vibrex
Utilizo o CCS C. Sera que preciso realmente inverter a polaridade do sinal ou eu posso conectar diretamente o sinal entre eles?
Coloquei um resistor limitador de correte de 1k ohms entre eles... sera que é esse o problema?

Obrigado.

Carlos.

MensagemEnviado: 11 Nov 2006 09:45
por otavio luiz
Não custa voce tentar né mas não deveria precisar de inversor não

MensagemEnviado: 13 Nov 2006 10:27
por Cláudio
Carlos,
Neste teste que você fez, você disse que o 675 transmite ok para o pc. Beleza. E se você ligar o 628 no pc, ele é capaz de receber corretamente o que o pc envia? É um bom teste a se fazer, que irá testar sua rotina de rx serial e parte do seu hardware. Faz e escreve pa nóis aê!
Abraços.

MensagemEnviado: 13 Nov 2006 18:35
por vibrex
Obrigado a todos... o problema era o 675!!! troquei por outro e... voila!!

Carlos.

MensagemEnviado: 14 Nov 2006 06:48
por Nik
Pode ter alguma coisa a ver coma a calibração do clock do 675, a calibragem deles que vem de fábrica não é muito precisa, vale a pena conferir antes. Eu já tive muitos problemas com isso.

falow

MensagemEnviado: 15 Nov 2006 12:15
por aureo.oliveira
Tenho alguns 12Fs que perderam o calibrador, alguem tem ai uma sugestão de tecnica de calibração. Obrigado desde ja !!.

MensagemEnviado: 16 Nov 2006 12:11
por Nik
A técnica não é difícil, mas é na tentativa e erro.
Configure o oscilador para "interno" e "clock-out, ligue o bicho e meça a frequencia de saída. Tem que dar 1MHz para o clock interno de 4MHz (é dividido por 4) se der diferente, vai mechendo nos valores de calibração até chegar no ponto certo. Pra facilitar, pegue um novo e leia o valor de calibração, vc terá uma boa referência de valores para usar no que perdeu.