Você está na página 1de 4

EC01026 - MICROPROCESSADORES E MICROCONTROLADORES - 2022.

Relógio em tempo real utilizando o protocolo I2C


Alberto Mateus Pinheiro da Gama, LCT, UFPA, Belém-PA, e-mail: alberto.gama@itec.ufpa.br; Andrey Manhyck Cunha Batista, ITEC, UFPA, Belém-PA,
e-mail: andrey.batista@itec.ufpa.br; Wendell Lira Louzada, LCT, UFPA, Belém-PA, e-mail: wendell.louzada@itec.ufpa.br; Lucas das Chagas Carvalho, ITEC,
UFPA, Belém-PA, e-mail: lucas.carvalho@itec.ufpa.br; Davi Vinagre Pantoja, ITEC, UFPA, Belém-PA, e-mail: davi.pantoja@itec.ufpa.br.

Alberto Gama¹, Andrey Batista², Lucas Carvalho³, Wendell Louzada⁴ e Davi Pantoja⁵

Resumo— Neste trabalho é mostrado um projeto de de IoT que conectam bilhões de dispositivos e geram valor em
simulação de um relógio em tempo real utilizando um vários casos de uso, incluindo o estudo analítico preditivo de
microcontrolador ATmega328P em conjunto com o dispositivo qualidade e manutenção, o monitoramento da condição de
DS1307, onde ambos se comunicam através da comunicação ativos e a otimização de processos.
serial I2C.
Palavras-Chave— Microcontrolador, ATmega328P, DS1307.
Abstract— In this work a real-time clock simulation project is
shown using an ATmega328P microcontroller in conjunction with
the DS1307 device, where both communicate through I2C serial
communication..
Keywords— Microcontroller, ATmega328P, DS1307.

I. INTRODUÇÃO
As melhorias tecnológicas demandam cada vez mais
dispositivos eletrônicos. Assim, a cada dia são criados
componentes eletrônicos mais versáteis e poderosos. Nessa
categoria, os microprocessadores, aos quais os
microcontroladores pertencem, têm alcançado grande
desenvolvimento. Sua facilidade de uso em amplas faixas de
aplicações permite o projeto relativamente rápido e fácil de
novos equipamentos. Fig. 1. Exemplos de sistemas que utilizam microcontroladores.
Microcontroladores são circuitos integrados que possuem
em seu interior todos os componentes necessários ao seu Dada a importância de sistemas microcontrolados, neste
funcionamento dependendo unicamente da fonte de trabalho exploramos uma das possíveis aplicações do
alimentação externa. Pode-se dizer que os microcontroladores microcontrolador ATmega328P.
são computadores de um único chip.
Os microcontroladores são utilizados em praticamente
todos os dispositivos eletrônicos digitais que nos cercam, II. METODOLOGIA
como por exemplo, centrais de alarme, teclados do
computador, monitores, discos rígidos de computador, relógio A. ATmega328P
de pulso, máquinas de lavar, forno de micro-ondas, telefones, O Arduino do tipo, principalmente, Uno e Nano conta
rádios, televisores, automóveis, aviões, impressoras, marca com um microcontrolador chamado ATmega328P, que
passos, calculadoras, etc. Microcontroladores também são podemos classificá-lo como o processador central da placa, ele
muito utilizados na indústria, como por exemplo nos é pertencente a família AVR lançada pela Atmel e possui uma
controladores de processos, sensores inteligentes, inversores, arquitetura de 8 bits CMOS com arquitetura.
interfaces homem máquina, controladores lógicos
programáveis, balanças, indicadores digitais, etc. Ele conta com 23 entradas/saídas programáveis,
sendo capaz de executar programas dos mais simples, como
O advento da Internet das Coisas (Internet of Things, IoT) por exemplo piscar um LED, até programas complexos, como
tornou possível o desenvolvimento de aplicações e soluções sistemas autônomos e robôs. Além disso, este
práticas em diversas áreas. Objetos cotidianos e sensores se microcontrolador possui a capacidade de operar com baixo
conectam através de uma rede de telecomunicações ou da consumo de potência.
Internet para troca de dados.
Este microcontrolador possui uma memória Flash
Os microcontroladores terão papel fundamental na com 32 kB reprogramável. Como as instruções do
indústria 4.0 onde as indústrias podem digitalizar processos, ATMega328P são ou de 16 bits ou de 32 bits a memória foi
transformar modelos de negócios e melhorar a performance e organizada em 16.000 blocos de 16 bits. Dessa forma, pode-se
a produtividade, reduzindo o desperdício simultaneamente. dizer que o maior programa suportado pelo ATMega328P é de
Essas empresas que usam muitos ativos e operam em uma 16 quilo instruções.
faixa de setores como manufatura, energia, agricultura,
transporte e serviços públicos estão trabalhando em projetos A fim de fornecer segurança ao software a memória
flash é dividida em duas partes, sendo uma parte de 0,5 kB
EC01026 - MICROPROCESSADORES E MICROCONTROLADORES - 2022.2

para a criação de um boot loader e o restante para o software A linha SCL é responsável pelo clock do barramento,
principal (o que deve ser executado). Além da memória flash gerando os pulsos que o sistema necessita para caminhar em
este microcontrolador também possui uma memória SRAM de cada passo da comunicação e, o pino SDA transmite os dados
2kB e uma EEPROM de 1kB. propriamente ditos. Note na imagem abaixo, o layout da
comunicação entre o dispositivo mestre (master) e escravos
A pinagem do microcontrolador descreve as (slaves), interconectados no barramento I2C. Quando existem
conexões que ele possui a fim de interagir com estímulos múltiplos escravos, cada um possui o seu próprio e único
externos, tanto recebendo sinais como emitindo sinais. A endereço e só responde caso selecionado.
Figura 2 apresenta uma imagem ilustrativa do ATmega328P e
seus pinos:

Fig. 4. Barramento I2C.

Quando um mestre inicia uma mensagem, ele inclui o


endereço do escravo no início da mensagem. Todos os
dispositivos no barramento recebem a mensagem, mas
somente o escravo que reconhece o seu próprio endereço
participa da transferência de dados.
Os sinais possíveis no barramento são:
∎ Condição de Início: usada para informar à rede que
Fig. 2. Pinagem do ATmega328P.
uma transmissão irá ocorrer.
∎ Condição de Parada: usada para informar à rede que
B. RTC DS1307 a transmissão acabou.
RTC, ou real-time clock, é um relógio que mantém o
∎ Condição de Reinício: pode ser executada antes da
controle do tempo real e possui calendário completo. Ele está
presente em quase todos os dispositivos eletrônicos que parada ou na necessidade de reenvio do primeiro byte antes da
precisam manter um controle preciso do tempo. finalização com a parada.
∎ Condição de Acknowledge (ACK): resposta pelo
mestre ou escravo, no lugar do 9º bit, informando se o dado foi
corretamente recebido ou não.
∎ Transmissão de endereço: independentemente da
informação a ser transmitida (endereço de 7 bits e dados de 8
bits), a comunicação sempre é feita em pacotes de 8 bits e
mais um retorno de acknowledge.
∎ Transmissão de dados: depois do término da
Fig. 3. Pinagem do ATmega328P. transferência da parte relacionada ao endereço, o mestre ou o
escravo deverão transmitir um ou mais bytes de dados.

O módulo RTC DS1307 também possui espaço na ∎ Pausa: Mantendo a linha de dados em nível baixo

parte superior para um sensor de temperatura, tornando para processar uma informação, por exemplo.
possível montar um relógio completo com data, hora, dia da A transmissão é iniciada quando o mestre executa
semana e temperatura, sem a necessidade de outros uma condição de início no barramento e termina quando o
componentes. mestre executa uma condição de parada.
Como podemos ver na imagem abaixo, o módulo
RTC possui os pinos de alimentação VCC e GND, o pino SD
que é responsável pelo sensor de temperatura, também o pino Todos os endereços transmitidos no barramento TWI
BAT que indica tensão da bateria e os pinos de comunicação são compostos por 9 bits, onde 7 são os bits referentes ao
SDA (slave data) e SCL (slave clock). endereço, 1 bit de controle para leitura/escrita (L/E) e 1 bit de
confirmação (ACK). Se o bit de leitura/escrita é 1, uma leitura
será realizada, caso contrário, uma escrita. Quando o escravo
C. Protocolo serial I2C reconhece que está sendo endereçado, ele sinaliza colocando a
linha SDA em baixo no nono ciclo do SCL (ACK). Se o
O protocolo I2C é um protocolo mestre/escravo endereço do escravo estiver ocupado, ou por outra razão ele
utilizado para comunicação de dados em placas de circuito não puder atender ao mestre, a linha SDA deve ser mantida
impresso, onde todos os dispositivos são conectados através de alta no ciclo de clock do ACK. O mestre pode, então,
duas vias: dados seriais (SDA) e clock serial (SCL).
EC01026 - MICROPROCESSADORES E MICROCONTROLADORES - 2022.2

transmitir uma condição de parada ou de reinício para iniciar importante, devendo eficientemente converter os programas
uma nova transmissão. em C para a linguagem assembly (compilação) e,
posteriormente, para a de máquina (montagem).
A frequência do sinal SCL é controlada ajustando-se
o registrador da taxa de bits (TWBR) e os bits de prescaler A linguagem C, apesar de sua desvantagem em
(divisor de clock) no registrador de status do TWI (TWSR). O relação ao tempo de processamento, foi utilizada por ser
modo escravo não depende desse ajuste, entretanto, a estruturalmente simples,mas de fácil compreensão lógica e
frequência da CPU deve ser no mínimo 16 vezes maior que a existência de diversas bibliotecas que auxiliam a programação
frequência do sinal SCL. Assim, a frequência do sinal SCL é sem a necessidade de conhecimentos profundos da arquitetura
dada por: do microcontrolador.
𝑓𝑜𝑠𝑐
𝑓𝑠𝑐𝑙 = [𝐻𝑧] (1)
16+(2×𝑇𝑊𝐵𝑅×𝑇𝑊𝑃𝑆)

onde 𝑓𝑜𝑠𝑐 é a frequência de trabalho da CPU, TWBR


é o valor do registrador de ajuste da taxa de bits e TWPS é o
valor do prescaler no registrador TWSR, definido pelos bits
TWPS 0:1.

D. Microchip Studio
Atmel Studio é a plataforma de desenvolvimento
disponibilizada gratuitamente pela Microchip para
desenvolver projetos com seus microcontroladores. Suporta
tanto os Atmel AVR quanto os Atmel ARM Cortex. Nesta
ferramenta é possível desenvolver projetos em C/C++ ou
Assembly, além de depurar o programa tanto com ferramentas
externas como em um simulador integrado. Além do Atmel
Studio existem outras ferramentas que auxiliam o
desenvolvimento com microcontroladores Atmel AVR, entre
elas podemos citar o compilador AVR GCC e o programador
por linha de comando AVRDUDE, ambos open-source.

Fig. 6. Código principal do projeto escrito em linguagem c.

F. Proteus
É uma ferramenta em software utilizada por
estudantes e profissionais, voltada ao desenvolvimento de
Fig. 5. Software Microchip Studio. aplicações de circuitos analógicos e digitais. Ela permite o
desenvolvimento completo de projetos por meio de
Além disso, o Studio inclui a Atmel Gallery, uma loja simulações, esquemáticos e layouts.
de aplicativos on-line que permite estender seu ambiente de
desenvolvimento com plug-ins desenvolvidos pela Microchip,
além de fornecedores de ferramentas e softwares incorporados
de terceiros. O Atmel Studio também pode importar
perfeitamente seus esboços do Arduino como projetos C++,
fornecendo um caminho de transição simples do Makerspace
para o Marketplace.

E. Linguagem em C
O domínio da linguagem assembly era total nos
primórdios da programação de microcontroladores. Como o
assembly é uma linguagem com baixo nível de abstração, o
tempo gasto e o esforço mental são consideráveis no
desenvolvimento de programas. Com a evolução tecnológica,
o assembly foi quase que totalmente substituído pela
linguagem C. Desta forma, os compiladores têm um papel Fig. 7. Projeto simulado no proteus.
EC01026 - MICROPROCESSADORES E MICROCONTROLADORES - 2022.2

III. CONCLUSÕES
Um sistema de protocolos de comunicação serial I2C e
utilizando o microcontrolador Atmega328, foi criado junto à
equipe como método de avaliação e apresentação na disciplina
de Microcontroladores e Microprocessadores na turma de
Engenharia de Telecomunicações no período 2022.2. O
sistema é capaz de realizar os requisitos necessários
requeridos pelo avaliador Prof. Dr. Adalbery Castro.
REFERÊNCIAS
[1] LIMA, Charles Borges; VILLAÇA, Marco Valério Miorim. AVR e
Arduino: Técnicas de Projeto. 2ª. Edição, Edição dos Autores,
Florianópolis, 2012.
[2] MICROCHIP Technology Inc.ATmega48A/PA/88A/PA/168A/PA/328/P.
Data Sheet. 2018.
[3] TANENBAUM, Andrew S.; e AUSTIN, Todd. Organização Estruturada
de Computadores - 6ª Edição. Editora Pearson Education. 2013
[4] ALMEIDA, Rodrigo Maximiano Antunes; MORAES, Carlos Henrique
Valério de; SERAPHIM, Thatyana de Farias Piola. Programação de
Sistemas Embarcados: Desenvolvendo software para microcontroladores
em linguagem C. 1ª Edição, Elsevier, 2016.
[5] SOUZA, Vitor Amadeu. Programando a Placa Arduino UNO em
Assembly com Base no AVR STUDIO. Cerne Tecnologia e Treinamento
Ltda. 2018.
[6] Arduino Home. www.arduino.cc.
[7] ATMEL. AVR Instruction Set Manual. 2016. Disponível em
http://ww1.microchip.com/downloads/en/devicedoc/atmel-0856-avr-inst
ruction-set-manual.pdf.
[8] MAZIDI, Muhammad Ali; NAIMI, Sarmad; NAIMI, Sepehr. The AVR
Microcontroller and Embedded Systems: Using Assembly and C.
Prentice Hall. 2011.
[9] AVR Libc Home Page. https://www.nongnu.org/avr-libc/.

Você também pode gostar