Ir ao conteúdo
  • Cadastre-se

Outro ESP8266 12E com RS485 enviando dados a mais


wBB

Posts recomendados

Pessoal, estou desenvolvendo um circuito usando NodeMCU ESP8266 12E com comunicação RS485. A comunicação RS232 está funcionando perfeitamente quando ligo um circuito ao outro (são duas placas iguais ao esquema eletrônico anexo), ou seja, tudo que é enviado de uma placa para outra é recebido corretamente (nos dois sentidos) ao conectar os RxTx das placas. Ao ligar a comunicação RS485 uso o pino D8 (GPIO15) do ESP8266 como bit de controle da transmissão de dados conforme indicado no esquema.

PLATAFORMA ARDUÍNO.

 

PROBLEMA:

Ao colocar para funcionar a comunicação RS485 conforme indicado no esquema, a placa que envia os dados está transmitindo tudo corretamente. Porém, na placa receptora coloquei um debug para saber o que está recebendo e descobri que está vindo um caractere ZERO a mais no início do frame. Exemplo:

    Bytes ENVIADOS pela PLACA 1 no frame de teste:
        0x21 0x06 0x00 0x0A 0x00 0x14 0xAE 0xA7

    Bytes RECEBIDOS pela PLACA 2:
        0x00 0x21 0x06 0x00 0x0A 0x00 0x14 0xAE 0xA7

IMPORANTE: Quando eu reinicio a placa receptora (PLACA 2 em meu exemplo), o frame recebido vem sempre correto. Do segundo em diante vem com esse caractere a mais no início.

 

Alguém tem ideia do que pode ser?

esquema1.png

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois...

@wBB, tudo bem?

Minha sugestão é que remova o pull-up/down, a 485 é um barramento de comunicação diferencial, ou seja para geração dos simbolos (bits), diferentemente de uma UART comum, ela não considera VCC, 0V, mas sim a diferença de tensão entre A e B, o seu problema pode estar ocorrendo pela falta do resistor de terminação entre essas linhas (tipicamente 120R, mas atenção esse valor deve ser usado apenas para testes, a versão final você tem que adicionar esse resistor baseado no tamanho do cabo, número de nós e impedância desejada no barramento 485), remova os resistores e coloque dois resistores entre A e B nos dois extremos da linha (receptor e transmissor) e refaça os testes, do jeito que seu circuito está os diferenciais de robustez que a 485 oferecem não irão aparecer (sendo melhor usar a UART).

Ah, tipicamente uma 485 é Half Duplex, não esqueça disso, você precisa controlar o fluxo de meensagens tanto no no D quanto no R para evitar colisão de pacotes.

 

 

Link para o comentário
Compartilhar em outros sites

Felipe, obrigado pelas informações. O chip SN75176 que estou usando, diferente dessa da imagem de resposta (que obtive na resposta de outro usuário em outro site) nem precisa de resistores, ao menos para minha aplicação. Depois de verificar melhor e fazer outros testes percebi que era necessário apenas o capacitor de 100nF entre os terminais do chip RS485. Aliás, foi uma falha minha, pois no próprio datasheet do chip está a indicação desse capacitor.

Obrigado

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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...