ASM51 • Exibir tópico - Comunicação Infra Vermelho
por longo.251272 » 21 Set 2016 15:22
Estou precisando fazer uma comunicação entre dois Microcontroladores usando um Led para transmitir.
Pensei em mudar a frequência de acionamento do Led para o receptor poder diferenciar o nível do bit, mas ai fiquei na dúvida de como o receptor vai saber o momento de mudança do bits.
Re: Comunicação Infra Vermelho
por barboza » 21 Set 2016 15:43
longo.251272 escreveu: Boa tarde pessoal,
http://lmgtfy.com/?q=irda+protocol
por andre_teprom » 21 Set 2016 21:28
Eu dispararia um Timer para contar cada nova variação na entrada, e determinando uma faixa para cada bit poderia resolver.
Na verdade, teria de tratar essa entrada por interrupção.
por longo.251272 » 27 Set 2016 08:29
Estive pensando muito nesse assunto.
Como o hardware já está feito e só tenho um led receptor e transmissor ligados ao 8051 numa porta não tem como incorporar um circuito integrado para ajudar a modular a frequência conforme o bit.
Pensei até em usar um timer conforme o Andre mas sem poder contar com a interrupção na porta, onde está conectado não há essa opção, mas como já tenho um rs-232 implementada nesse circuito estou achando mais fácil criar um conversor 232 para 485 e criar uma rede já que a intenção é atualizar os dados de uma eeprom 24c256 com os dados de outra eeprom 24c256.
Vai ser interligado 20 placas onde uma delas será a mestre que vai atualizar os dados das outras 19 placas. Via RS-484 vai ser eficaz ???
por andre_teprom » 27 Set 2016 08:50
Do ponto de vista da programação, se as outras vão apenas receber, em principio não teria problema.
Voce criaria um indexador para que cada uma soubesse quem seria o destinatário.
Na verdade, cada uma só iria responder em função do envio do master.
Isso significa que o master poderia inclusive fazer apenas um life-check apenas ''pingando'' cada slave.
por longo.251272 » 27 Set 2016 09:31
Também tenho a possibilidade de usar um barramento i2c que tenho disponível no conector externo. Será que se é válido o mestre mandar gravar os dados de todas as eeprons de uma só vez, já que não vou ter como criar 20 endereços para as eeprons ?
por andre_teprom » 27 Set 2016 13:56
Em princípio, a especificação I2C é para comunicação "entre circuitos na mesma placa". Não lembro agora a tradução, mas IIC é um acronimo disso - o que significa que não foi feito para comunicação fora da placa. Outro problema é que o I2C prevê comunicação bilateral por um dos bits do frame, que é usado como ACK, o que significa que ora o Master vai o enviar um valor na posição desse bit, ora vai ler o conteudo desse bit ( como o barramento em si á pullup, o slave o aciona por um open-collector ), o que significa que também voce estaria novamente fora da especificação I2C propriamente dita. O endereçamento físico, permite que voce isole cada memoria isoladamente. Por sorte, dependendo da memória, 3 pinos já estariam disponiveis pra isso, mas nesse caso teria uma combinação maxima de 8 diferentes dispositivos, e não 20.