Você está na página 1de 15

Microcontroladores e Aplicações

Revisão

Prof. Msc. Giancarlo


Michelino Gaeta Lopes

Microcontroladores
O microcontrolador pode ser definido como um
pequeno computador contido em um único
encapsulamento, composto de um processador e
periféricos, que possui uma inteligência programável,
utilizada no controle de processos lógicos.

Fonte: https:/ / goo.gl/ gpG5uw.


A cesso em 24 ago. 2017.

Fonte: https:/ / goo.gl/ y9ECtC.


A cesso 24 ago. 2017.

1
Microprocessadores e microcontroladores
MICROPROCESSA D ORES MICROCONTROLA D ORES
Necessita de periféricos externos. Memória e periféricos integrados no chip.
Barramento de endereçamento estreito só permitindo o
Largura do barramento de endereços elevada.
gerenciamento de pequena quantidade de memória.
Tratamento de poucos formatos de dados (tipicamente 8,
U nidade de gerenciamento de memória integrada.
16 e 32 bits).
Coprocessador matemático e unidade lógica aritmética
A usência de coprocessador e com unidade lógica
com suporte à operações numéricas complexas tais como
aritmética limitada.
multiplicação em ponto flutuante.
Sofisticados modos de endereçamento para eficiente Limitados modos de endereçamento (tratamento
suporte as funções de linguagem em alto nível. ineficiente de funções de linguagem de alto nível).
A lto custo. Baixo custo.
A lto consumo de energia. Baixo consumo.
Ocupação de grande área de silício. Pequena área de silício.

Arquitetura Von Neumann

Fonte: Elaborada pelo autor.

Programas podem ser atualizados de acordo com as


características de entrada do sistema.
Único sistema de memória que
armazena dados e o programa a
ser executado.
Mais utilizada nos computadores.

Arquitetura Harvard
Fonte: Elaborada
pelo autor.

Processador lê uma instrução enquanto executa um


acesso a memória.
Duas unidades de memória independentes.
Dois barramentosà dados e
instruções.
Mais utilizada nos
microcontroladores.

2
Conjunto de instruções
RISC CISC
Instruções simples e em número reduzido. Muitas instruções complexas.
Instruções de tamanho fixo. Instruções de tamanho variável.
Complexidade no compilador. Complexidade no código.
Poucos modos de endereçamento. Muitos modos de endereçamento.
Instruções em um único ciclo. Instruções em múltiplos ciclos.
A ltamente paralelizado. Fracamente paralelizado.
A cesso aos dados via registradores. A cesso aos dados via memória.
Execução sem microprogramação. Execução com microprogramação.
Vários registradores. Poucos registradores.

Dois tipos de conjuntos de


instruções.
Modelos cada vez mais similares
em velocidade de operação e
quantidade de instruções.

Principais microcontroladores

Modelos mais utilizados:


§ ARM;
§ Arduino;
§ PIC.
Fonte: https:/ / goo.gl/ XYxsRw.
A cesso em 24 ago. 2017.

Fonte: https:/ / goo.gl/ wey1R5.


A cesso em 24 ago. 2017 .
Fonte:
https:/ / goo.gl/ KpmLJR.
A cesso em 24 ago. 2017.

O hardware
Um sistema processado é
formado pelo conjunto de
hardware e software:
§ O hardware representa
toda a parte física de um
Fonte: https:/ / goo.gl/ 7urzTM.
computador; A cesso em 05 set. 2017.

§ O software é o conjunto de
instruções executadas pelo
processador (programa).
Quando o software é gravado na
memória do processador, ele
recebe o nome de firmware.

3
CPU

1. CPU (Central Processing Unit – Unidade Central de


Processamento).
Responsável por processar todos os dados do
programa e executá-lo.
Formado por várias subunidades:
§ Unidade lógico-aritimética (ALU);
§ Memórias (flahs e SRAM);
§ Decodificador de instruções;
§ Contador de programa;
§ Registrador de instrução.

Dispositivos de entrada e saída

Realizam a interface do controlador com o


“mundo externo”.
Presentes em praticamente todos os pinos.
Função de saída: latches.
Entradas: buffers com saídas tri-state.
Configurações das portas feita por meio de
registradores.

Memórias

Microcontroladores com arquitetura Harvard:


memórias separadas para armazenamento de
instruções e de dados.
Terceira memória não volátil para
armazenamento de dados.
ATmega328 e PIC16F628A:
§ Memória flash para instruções;
§ Memória RAM para dados;
§ Memória EEPROM para dados.

4
Osciladores

Para que o microcontrolador execute suas


instruções, ele utiliza uma base de tempo
chamada de ciclos de máquina.
Cada instrução tem um tempo de execução que
corresponde a um múltiplo de um ciclo de m.
Base de tempo obtida através de um sinal
pulsante, onde cada pulso corresponde
a um ciclo de máquina.
Sinal obtido através de um
circuito oscilador.

Osciladores

Fontes internas: oscilador RC do Watchdog e


oscilador RC calibrado.

Osciladores
Fontes externas: cristal oscilador cerâmico, cristal de
baixa frequência e fonte de clock externa.

Fonte: A tmel (2015, p. 27).

5
Continuando...
Revisão

Registradores
Célula de memória responsável por armazenar o
estado de um ou mais bytes.
Guardam informações do programa, estado de
entradas ou saídas, resultados de operações
matemáticas, entre outros.
Em um microcontrolador de 8 bits, apresenta valor
de 0 (0b00000000) a 255 (0b11111111).
Usualmente representado
em binário.
Podem ser classificados em dois
tipos: GPR e SFR.

Registradores de propósito geral (GPR)

São utilizados para armazenamento de dados sobre


os quais serão realizados algum tipo de operação.
Não agem diretamente sobre circuitos eletrônicos.
São utilizados constantemente pela própria CPU
para um novo cálculo ou processamento.

Fonte: Sena (2017).

6
Registradores de funções especiais (SFR)
Possuem funções pré-estabelecidas pelo fabricante.
Seus bits são conectados diretamente à circuitos
internos do microcontrolador.

Fonte: Sena (2017).

Registradores de funções especiais (SFR)


Cada microcontrolador apresenta um número fixo de
SFR de acordo com suas características.
Atuam no comando das operações de circuitos
eletrônicos.
Os registradores possuem endereços específicos na
memória.
SFR do CPU à são responsáveis
pelo controle e monitoramento dos
processos da CPU.
SFR de periféricos à controlam
a operação dos periféricos.

Representação dos registradores

Letras no interior dos retângulos representam os


nomes de cada bit.
As inscrições bit 7 e bit 0 indicam o MSB e LSB,
respectivamente.

7
Representação dos registradores

Parte superior identifica as opções de leitura, escrita e o


valor assumido após o reset:
§ R/W – permite operações de escrita e leitura;
§ R – permite somente operação de leitura;
§ 0 – assume valor zero após o
reset;
§ 1 – assume valor 1 após o reset;
§ x – o valor assumido pelo bit
após o reset é desconhecido.

Periféricos

Além de circuitos que compõem a CPU,


dispositivos de I/O e das unidades de memória,
os microcontroladores possuem circuitos para
operações específicas, os periféricos.
Os mais comuns são: Timers, conversor A/D,
comunicação I²C, comunicação SPI e
comunicação USART.
Outros periféricos: comunicação
CAN, USB, conversores D/A e
controlador de display LCD.

Temporizador/Contador

É um dos principais periféricos de um


microcontrolador.
São capazes de medir intervalos de tempo com
precisão.
Podem usar fonte de clock interna ou externa.
Podem gerar eventos com intervalos de tempo
específicos.
Contadores realizam a contagem
de eventos externos, com
aplicação de sinal pulsado
em um pino de I/O.

8
Módulo CCP
Capture/compare/PWM.
Permite controlar e medir o tempo de diversos eventos.
Associado diretamente aos timers à eles são entradas
do módulo CCP.
Modo de captura permite a medição do tempo de
duração de determinado evento.
Modo de comparação compara o
valor do timer com um valor
pré-configurado.
Modo PWM gera uma onda PWM.

Conversor A/D

São utilizados para transformar sinais analógicos,


(contínuos no tempo) em sinais amostrados
(discretos no tempo).
Muito utilizado para ler sinais de sensores.
A resolução vária conforme o microcontrolador,
normalmente de 10 ou 12 bits e a tensão de
referência.
VREF
resolução =
2n

Conversor A/D

Conversão é feita em três etapas:


§ Amostragem: o sinal é retido em um valor fixo
durante um período de tempo;
§ Quantização: o sinal é
disretizado;
§ Codificação: os valores
discretos são representados
em binário.

9
Comunicação USART

Permite que o chip estabeleça comunicação com


elementos externos, sem preocupação com rotinas
de transmissão e recepção.
Comunicação somente entre dois dispositivos.
Necessidade de configuração do baud rate à
velocidade de transmissão dos dados.

Comunicação SPI
Conceito de mestre-escravo à o dispositivo mestre
assume o controle da comunicação, gerando o sinal
de clock.
Baseado no processo shift-register à comunicação
full-duplex à a cada bit enviado um deve ser recebido.
NOMES
PINO NOME PA D RÃ O SIGNIFICA D O
A LTERNA TIVOS
D O MESTRE
Master Output
PA RA O MOSI SD O, D O, SO
ESCRA VO Slave Input

D O ESCRA VO
Master Input
PA RA O MISO SD I, D I, SI
MESTRE Slave Output

CLOCK SCLK Serial Clock SCK, CLK


SELEÇÃ O D O
SS Slave select CS, nSS, nCS
ESCRA VO

Comunicação I²C

Utiliza duas linhas de barramentos bidirecionais


§ Um para o sinal de clock (SCL);
§ Outra para os dados (SDA).
Comunicação half-duplex.
Pode conectar até 128 dispositivos com
diferentes endereços.

10
Finalizando...
Revisão

Programação
Para a programação de microcontroladores utilizamos
os ambientes de desenvolvimento integrado (IDE).
Junto com a IDE existe o compilador.
O compilador converte o código em linguagem de
máquina para ser carregado no microcontrolador.
No momento da compilação, os erros são
identificados e apresentados na IDE.
A escolha da IDE leva em
consideração bibliotecas,
sistema de depuração,
compiladores e custo.

IDE Arduino
Necessita de apenas duas
configurações para iniciar
a programação:
§ Porta COM onde o
Arduino está ligado;
§ Placa Arduino utilizada.

11
Programando na interface Arduino

Função Setup:
§ Objetivo de configurar o Arduino;
§ Utilizado para a inicialização das variáveis,
dispositivos I/O como entradas e saídas, define-
se as velocidades de transmissão dos periféricos
de comunicação, entre outros;
§ Executado apenas uma vez.

Programando na interface Arduino

Função Loop:
§ Parte do código executado infinitamente;
§ Maioria do código colocada nessa função;
§ Começa a ser executada logo após o término da
função setup.

Programando dispositivos de I/O


Pode ser configurado como entrada ou saída digital.
Configuração feita pela função “pinMode(pino,
modo)”.
Leitura do estado de um pino como entrada feito por
meio da função “digitalRead(pino)”.
Para pinos como saída, utiliza-se a função:
“digitalWrite(pino, valor)”.

12
Programando PWM
O ambiente arduino possui uma biblioteca pronta:
“analogWrite(pino, valor)”.
Somente os pinos indicados com til (~) no Arduino Uno
podem gerar sinais de PWM.
Utilizando a biblioteca a frequência do sinal PWM é
fixaem 980 Hz ou 490 Hz.
Exemplo de código para gerar sinal PWM:

Programando Conversor A/D

Possui resolução de 10 bits à se alimentado em


5 V, tem-se 4,88 mV por nível.
Utiliza a função “analogRead(pino)”, onde o
argumento “pino” corresponde a um dos seis
canais de entrada (0-5).

Programando a Comunicação Serial

Bibliotecas para configuração simples de uma


comunicação UART.
Pino digital 0 funciona como receptor (RX) e pino
1 como transmissor (TX).
A configuração inicial é feita com a função:
“Serial.begin(velocidade,config)”.
Argumento config é opcional.
Funções de escrita:
§ “Serial.print()”
§ “Serial.println()”

13
Programando a Comunicação Serial

Projeto utilizando display LCD 16x2

Projeto utilizando sensor de ultrassom

14
Projeto utilizando o DHT11

Projeto utilizando o relógio


em tempo real DS1302

O módulo para Arduino já possui


cristal, bateria e resistores de
pull-up para a interface I2C.

Projeto utilizando o relógio


em tempo real DS1302

15