Neste post, irei dar sequencia na comunicação I2C do TC65i como master com o ATMEGA 48/88/168 como slave.
Confesso que sofri um bocado com a IDE da Atmel baseada no visual studio, a mesma não tem a flexibilidade e agilidade comparada ao Netbeans e ao Eclipse, fora os bugs encontrados nos registradores do microcontrolador selecionado, portanto paciência!
Porém um ponto forte foi a melhoria da versão 4 para 5 que facilitou muito. Outro problema foi encontrar informações relevantes em comunidades, então para diminuir este gap vou colocar o código completo.
A versão da IDE utilizada foi o AVR Studio 5 podendo ser encontrado no site da ATMEL.
Não esqueçam, visitem a Gridtech para projetos diversos nas tecnologias:
- Linux embedded ARM/x86
- GPRS: TC65 e Telite
- Zigbee
- Softwares web de FrontEnd para controle de diversos módulos de comunicação e concentradores de dados.
PARTE II - Codificação do ATMEL 48 ou 88 ou 168
Para controle da I2C no microcontrolador implementei a seguinte regra de negócio:
- TC65i envia o comando de escrita de comandos para o endereço do microcontrolador ( no meu caso 0xAE).
- Apos enviado o comando TC65i espera 200 ms antes de enviar o comando de leitura do status de execução do comando anterior. Isto é necessário pois a I2C só possui um canal de comunicação controlada pelo master e garanto que o microcontrolador trate o comando e formate a resposta.
- TC65i envia o comando de leitura para ler um numero de bytes específicos de acordo com o implementado no seu protocolo. Para o meu caso, espero sempre um comando contendo 8 bytes.
Segue abaixo dois aquivos (I2c.h e I2c.c) para serem executados no AVR Studio.
NOTA: Devido ao erro de html que o código na integra gerou no blogspot, peço que quem tiver interesse na I2C do atmega me envie um e-mail para a Gridtech que irei encaminhar o código.
0 comentários:
Postar um comentário