Página 1 de 3
COMUNICAÇÃO

Enviado:
16 Nov 2006 15:50
por lucflores
ola Amigos
Gostaria de saber se alguem ja fez algo assim, necessito enviar um código de 8 bits para uma placa e receber a resposta desta placa.
hoje eu faso isto com os ci 145026 e 145028, numa placa com 8952 eu codifico o 145026 para enviar um codigo a uma placa que se encontra a uns 200 metros do local com fio, essa placa recebe o codigo com o 145028 e transmite o mesmo codigo com o 145026 novamente, e o meu 89s52 recebe na outra placa a uns 200m. Não sei se fui bem claro, mas a pergunta é a seguinte.
Alguem ja fez o 89s52 enviar um codigo de 8bits pela serial em modo sincrono utilizando um buffer a uns 200m e o outro 89s52 receber este dado e assim que receber a tivar a serial para tx e envia-lo novamente, acho que funciona a poucas distancias, acho, e a longas distancias, alguem ja fez algo parecido, necessito com uma certa urgência. Obrigado

Enviado:
16 Nov 2006 16:09
por Ander_sil
O correto é usar uma interface 485, Tem o chip SN75176 da texas.
http://www.datasheetcatalog.com/datashe ... 5176.shtml
até+
Anderson

Enviado:
16 Nov 2006 16:13
por lucflores
Vou dar uma olhada neste ci, se alguem tivar mais dicas pode falar heheh, ate mais...

Enviado:
16 Nov 2006 16:17
por Paulo
Eu tb utilizo o padrão rs485 quando necessito de distâncias maiores, nunca tive problema, inclusive tenho um projeto que chega a 1000m a distância entre os pontos de tx e rx e está funcionando OK.
Acredito que talvez essa seja a melhor opção.
Até +...
Paulo D.

Enviado:
16 Nov 2006 16:25
por lucflores
Dei uma olhada no datasheet so que infelismente não tenha experiencia nenhuma com as tal das rs232 e 485, alguem sabe me informar se tenho que utilizar um protocolo ou é so enviar pelo 89s52 que o CI485 ja envia,
Obrigado

Enviado:
16 Nov 2006 16:39
por chipselect
bom, além de usar o 485, se você quiser ter uma maior garantia de transmissão correta, implemente algum protocolo de comunicação.
Pode até ser o MODBUS, que é muito usado em 485, mas vc também pode fazer um protocolo simples com checagem de erro, já que é só um byte de dados que você precisa transmitir e receber.

Enviado:
16 Nov 2006 16:48
por lucflores
Ok, alguem teria algum exemplo de como coloco em funcionamento o 89s52 com o CI RS485 (75176), para duas placas se comunicarem tem que ter o 75176 dos dois lados né?.
Desculpe a ignorancia no assunto é que uma vez tentei comunicar um pc com uma interface rs232 e não consegui acho que peguei um pouco de trauma dos "RS"...
Obrigado

Enviado:
16 Nov 2006 16:55
por lucflores
Ha outra coisa que esqueci de dizer é que a placa remota, ou seja que estará a uns 200m vai ser alimentada pela placa principal ou seja não vai possuir alimentação propria, os encoders que tenho funciona assim jogo na linha de 200m um cabo de 4 fios, terra 12V, tx e RX, e na placa remota abaixo os 12 que ja chega com alguma queda para 5V com um regulador, isso tem algum problema para o RS485?????

Enviado:
17 Nov 2006 07:17
por lucflores
E ai pessoal, nimguem tem um exemplinho ai de como faço para funcionar um CI RS485, não tenho muita experiencia em sistemas seriais, mas sei programar o 89s52, so desconheço o protocolo RS485.
Obrigado

Enviado:
17 Nov 2006 08:48
por Ander_sil
A comunicação é serial, o chip converte o nivel TTL para rs485.
Da uma olhada nesse artigo.
http://tesla.eletrica.ufpr.br/~srm02/in ... igital.pdf
até+
Anderson

Enviado:
17 Nov 2006 16:11
por lucflores
Muito Obrigado ate agora, vou dar uma olhada no site e comprar os componentes, qualquer coisa prendo o grito aqui. Mas se alguem tem mais alguma dica pode dizer ai.
Valeu...

Enviado:
18 Nov 2006 12:10
por jeanfernandes
luc
O chip para 485 eh simples de usar
8 pinos (vcc - 8, gnd - 6)
Pino 1 voce recebe dados do 485 (Rx)
Pino 4 voce transmite dados pro 485 (Tx)
Lado Binario
Os pinos 2 e 3 voce pode juntar. O pino 2 habilita a recepcao (em 0), o pino 3 habilita a transmissao (em 1).
Junta os dois pinos e poe num pino do MCU. Para deixar em recepcao voce deixa 2-3 o pino em 0. Para transmitir voce poe o 2-3 em 1. Seguinte. Se voce operar por transmissao usando a interrupcao da serial voce tem que fazer o seguinte :
1) Arbitre quem é o device mestre, ou seja ele sempre inicia a conversa com o escravo. O escravo sempre envia comandos pro mestre apos o recebimento de um comando para tal. Nunca assincronamente.
A) Mestre pergunta ---- Escravo Responde (comando tipo 1)
B) Mestre pergunta ---- Escravo nao Faz Nada (comando tipo 2)
Quando ninguem ta transmitindo nada, há duas considerações:
C) mestre e escravo ficam no modo de recepção
D) mestre garante a polarizacao do barramento (ver item 2 abaixo).
2) Do lado 485
No mestre ponha R = 120 Ohms entre pinos 6 - 7
R = 560 Ohms pullup pino 6.
R = 560 ohms pulldown pino 7. (pronto polarizou o barramento).
No lado escravao ponha R = 120 Ohms entre os pinos 6-7
Tem que ligar pinos 6 com 6 e 7 com 7...(mestre-escravo).
Se voce quer dar uma proteção a mais voce usa um KPC (Kraft Protection Circuit). que é o seguinte .....depois dos resistore voce poe em SERIE com cada linha um PTC (Referencia : KRT2500012FB, pode ser adquirido na Voltts ou em lojas de eletronica).
Com os PTC em serie....voce pode dar curto no barramento que nao queima.....por falar em barramento....qq cabo UTP cat 5 pode ser usado, mas nao caia na esparrela de usar um par pra cada linha voce tem que usar um PAR trancado para as duas linhas.....
Bom hardware no ar.....
3) Protocolo
Ai tem varios...mas voce pode implementar qq tipo de protocolo que nada mais eh do que uns caracteres de controle que trafegam com os dados.....
Um bem Zé Ruela....
#TD!
# - Caractere de Inicio de Frame
T - Tamanho do Campo de Dados
D - Frame de Dados
! - Caractere de Fim de Frame
Tipo :
Mestre
#4JEAN!
Escravo
#7MONSTRO!
E por ae vai eheheheh (o campo tamanho nao eh ASCII eh byte mesmo).
E finalmente na parte de transmissao por interrupcao voce tem que esperar que o ultimo byte seja transmitido efetivamente, para pode chavear o dispositivo pr arecepcao..
Fuiz.

Enviado:
18 Nov 2006 17:51
por lucflores
Brigadão Jean
Ma olha so.
Eu vou ter somente uma placa mestre e mais ou menos 64 placas escaravos, e necessito ligar todas num mesmo par, mais ou menos como mostra a fig abaixo:
MCU-----CI 485-----------Linha 485 (1par)---------------CI 485---MCU
|
|--CI 485---MCU
|
|--CI 485---MCU
|
|--CI 485---MCU
|
|--CI 485---MCU
|
|--CI 485---MCU
.
.
.
Todas as placas esravos ficam sempre em receção e a placa mestre envia um código a 1º placa escravo e aguarda sua resposta, depois envia a 2º a 3º e assim sucessivamente ate chegar a ultima, e então começa tudo novamente, se alguma placa falhar gera um erro o se a linha estivar em curto também gera erro.
Os CI RS 485 podem ser ligados assim vários num mesmo par??????? pois era assim que fazio com os 145028.
O que você quiz dizer para não usar um par para cada linha, e ese cabo (utp cat 5) e cabo de rede normal, eu estava pensando em usar cabo manga blindado.
Obrigado, e no aguardo

Enviado:
19 Nov 2006 13:23
por lucflores
Desculpem a insistencia, mas alguem sabe se isso (acima) da para fazer com o Ci RS485, Valeu....

Enviado:
19 Nov 2006 22:41
por eletroinf
Sim, dá pra ligar vários CIs em rede, porém a quantidade é limitada, se não me engano pela impedância de entrada deles, agora não consigo lembrar; Sobre o SN75176, não esqueça que quando tu colocá ele no modo de TX, o pino 1 fica em alta impedância. Justamente este pino é ligado a entrada de RX da USART do MCU, que quando está em repouso deve ficar em nível 1. Então, é bom usar um Pull-up aí, porquê se a interrupção de RX estiver habilitada, mesmo se tu estiver transmitindo vai ficar travando teu programa.