Ir ao conteúdo
  • Cadastre-se

PIC comunicação serial entre 16f628a


Posts recomendados

Olá todos os foristas do Clube do Hardware venho aqui para vocês tirarem minha dúvida ou darem alguma sugestão  .Estou querendo fazer uma comunicação serial entre dois pics 16f628A .Porém, pensei logo no USART que seria mais fácil e rápido ,mas um dos pic 16f628A  já está utilizando essa comunicação serial com PC.Gostaria de fazer essa comunicação serial com I2C ,porém este pic 16f628A não tem isso dedicado no chip aí é minha pergunta .Posso fazer essa comunicação I2C entre dois pic 16f628A em modo software ?Meu intuito era simplesmente enviar dados via I2C já que esta comunicação disponhe de apenas 2 pinos.Obrigado a todos pela ajuda

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Vou de sugestão então...

Penso que I2c é mais chatinho do que usart

Como já tens familiaridade com a interface serial, sugiro um multiplex controlado por 1 ou 2 pinos: hora vai pro pc hora pro outro mc.

Também podes fazer outra interface por sw. Pesquise "serial bitbanging"

Link para o comentário
Compartilhar em outros sites

@Isadora Ferraz Obrigado mais uma vez pela dica sempre preciosa que você deu .Irei dar uma estudada no que você propôs.Muito obrigado.Porém estava  pensando em utilizar I2C ,pois já utilizei essa comunicação para ler e escrever na EEPROM externa e por questão de praticidade e rapidez .Eu vi alguns exemplos na net de comunicação via I2C entre microcontroladores,porém utilizando microcontroladores dedicados.Minha dúvida se seria possível ou se alguém já utilizou essa comunicação em modo software. 

Link para o comentário
Compartilhar em outros sites

  • Membro VIP
12 horas atrás, Bisão1976 disse:

alguém já utilizou essa comunicação em modo software

Sim amigo já utilizei. Mas era em assembly do 8051 não aplicável no seu caso claro. No entanto permita-me observar que não é necessariamente necessário o protocolo i2c. Pode até mesmo ser um 100% original seu que só você entende p.ex enviando por 2 pinos de dados e um de clock (só ex.). 

 

12 horas atrás, Bisão1976 disse:

por questão de praticidade

...sugeri o bit banging pois já tem coisa pronta na net e quanto à...

12 horas atrás, Bisão1976 disse:

rapidez 

de aprendizado, depende + de você. Do sistema, seu projeto tem que se adaptar à velocidade do mc

 

Se achar que deve, fale + sobre o projeto, do que consiste, que dados tem que obter, o que faz com eles e etc. De repente dá pra usar um mc só bastando acrescentar mais periféricos burros mesmo

Link para o comentário
Compartilhar em outros sites

@Isadora Ferraz Obrigado mais uma vez por ter respondido.É que na verdade eu fixei em minha mente usar os periféricos interno do microcontrolador como aqui aprendemos nos curso como usar SPI ,I2C e USART e eu não sou um programador com bastante experiência como você,porém sabiamente você clareou minha mente .Eu posso criar meu próprio protocolo e será isso que vou fazer.

Irei substituir um teclado matricial para um controle remoto protocolo Nec .Farei a decodificação do controle e tratar as teclas apertadas e envia-las para um microcontrolador (AT89C55WD) e este vai envia-las para o pc pois este faz o controle de toda interface.Obrigado 

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

@Bisão1976 ,

 

Existem bibliotecas onde você pode utilizar qualquer pino do Pic como serial. Eu uso em um projeto um microcontrolador Atmega que tem apenas uma serial por hardware, mas criei mais duas seriais virtuais em outros dois pinos ! Isso é algo comum tanto em Atmegas como em Pics. Pesquise por Software Serial ( é o tal de serial bitbanging que a @Isadora Ferraz mencionou acima ).

 

A serial que existe no hardware tem a vantagem de trabalhar por interrupção, e as outras seriais virtuais não tem esse recurso, mas muitas vezes não precisamos da interrupção, podemos simplesmente aguardar que os dados sejam enviados/recebidos sem prejudicar nosso programa.

 

Quanto a decodificar o protocolo NEC dos controles remotos, também existem bibliotecas com isso prontinho, e nesse caso espero que você esteja usando um cristal oscilador, em vez de clock interno, pois precisará de precisão de timing.

Até é possível fazer isso usando o clock interno, mas vai precisar de conhecimento bem avançado para trabalhar com o famoso OSCAL , e isso não é fácil !

 

Sugiro você começar utilizando essas bibliotecas existentes, ANTES de você partir para criar seus próprios protocolos de comunicação serial, ou de tentar decodificar códigos de IR, pois são tarefas bem chatinhas para quem não tem muita experiência com programação, ok ?

 

Paulo

 

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