Ir ao conteúdo

Posts recomendados

Postado

Boa noite pessoal...

 

Seguinte é  possível usar vários pics slave com 1 PIC máster conversando pela serial? Pela mesma serial?

 

Bom já fiz um teste aqui e não funcionou ... Mas talvez alguém saiba como fazer e me oriente.

 

Em sistemas de alarme residencial onde tem uma central e múltiplos teclados, os teclados sao ligados no mesmo barramento e não deve ser uma comunicação endereçada (tipo i2c) pois as distancias que você pode usa-los superam os 80 metros.

 

O que me dizem??

Postado

Uma solução seria usar alguns MAX485/487/outro (half duplex) 488/490 (full duplex) daí você faz um esquema para que todas as mensagem que forem enviadas pelo mestre comecem com o endereço do escravo, todos os escravos recebem a mensagem mas apenas o escravo dono do endereço responde. O mestre também deverá ter um endereço pois quando um escravo responder a mensagem do mestre os outros escravos também receberão a mensagem. Esquema básico:

 

ZfjTGvR.png

 

Outra possibilidade seria usar um i2c bus estender P82B715 ou P82B96 mas se não me engano o máximo que eles estendem o barramento é 50m.

 

Existem PICs com várias portas seriais (como o PIC24FJ64GA406), neste caso você poderia usar uma para cada escravo...  Se você pedir amostras a Microchip te enviará. Se bem que pela distância tem que ser 485 mesmo =(

Postado

@test man*~ olá amigo..obrigado pela resposta....após algumas pesquisas descobri a RS-485..

 

Porém estou a procura de algum exemplo em compilador CCS e ainda não encontrei..

 

Caso você puder postar algum exemplo básico de como setar o código é enviar e receber sinais eu agradeço...

Postado

Aqui está o código exemplo (CCS 5.046 - Proteus 8.2).

https://www.4shared.com/rar/Wp72oX-tba/RS485_PIC_CCS_5046_PROTEUS_802.html?

 

VwQlwCF.png

 

Obs: Não use este código no seu projeto aprenda com ele e crie o seu... Este código possui várias falhas, não usa buffer de recepção e transmissão serial, não usa interrupções, o PIC fica parado esperando os dados terminarem de ser enviados, usa-se delays desnecessários, não há verificação de erro (CRC), não há time out, etc. está cheio de problemas (criei na correria) serve apenas como um ponta pé inicial.

 

Obs 2: Se você usar um driver full duplex você eliminará a necessidade de selecionar entre os modos de transmissão e recepção.

Postado
Em 10/03/2017 às 22:29, rodrigocirilo disse:

[...]Tipo pra enviar putc(dado). Pra receber  dado=getc() ???

Sim, porém o código exemplo usa o printf();

 

Apenas corrigindo o que eu disse;

Em 10/03/2017 às 21:48, test man*~ disse:

[...] Obs 2: Se você usar um driver full duplex você eliminará a necessidade de selecionar entre os modos de transmissão e recepção.

Mesmo usando um driver full duplex (como o MAX488) será necessário que o escravo acione a transmissão (DI = 1) e assim que terminar de transmitir ele terá que desativá-la (DI = 0)...

Visitante
Este tópico está impedido de receber 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...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!