Você está na página 1de 67

Universidade Federal do Rio Grande do Norte

Departamento de Engenharia de Computação e


Automação

Sistemas Embarcados:
Microcontroladores

DCA0119 – Sistemas Digitais

Heitor Medeiros Florencio


Sistemas Embarcados

• Um sistema embarcado é um software dedicado


embarcado em um hardware/computador.

• Sistemas embarcados são sistemas eletrônicos que


tem um microcontrolador ou um microprocessador
embarcados em um sistema.
2
Sistemas Embarcados

• Alternativas de projetos de sistemas embarcados:

– Sistemas baseados em microprocessadores (MPU):


• Microprocessadores contêm apenas a unidade de processamento
(CPU).
• Unidades de memória e interfaces de entrada/saída precisam ser
conectados à unidade (MPU).
• Permite maior expansão e seleção de interfaces.

– Sistemas baseados em microcontroladores (MCU):


• Microcontroladores contêm CPU, memórias e interfaces de
entrada/saída.

3
Sistemas Embarcados:
Elementos

4
Sistemas Embarcados:
Elementos

5
Automatizando com
Sistemas Embarcados

Sistema Embarcado

Programa Interfaces
para
Memória
Usuário

Sensores ADC CPU DAC Atuadores

Ambiente
6
Microcontroladores

7
Microcontroladores

• Microcontroladores têm agregados vários componentes de


um sistema microprocessado:
– Microprocessador;
– Memórias: SRAM, EEPROM e FLASH;
– Temporizadores;
– Circuitos de clock embutidos.

• Agregação de outras funcionalidades:


– Conversores A/D e D/A (mundo analógico!!);
– Sinais modulados – PWM (mundo analógico!!);
– Temporizadores/contadores;
– Comparadores;
– Interfaces de comunicação;
8
MCU:
Características Gerais
• 8, 16 e 32 bits.

• Tecnologia de fabricação CMOS com baixa consumo de


potência.

• Consegue executar várias instruções em um único ciclo de


clock.

• Velocidade é caracterizada pela quantidade de ciclos de


máquina necessários para se executar uma instrução: MIPS
(milhões de instruções por segundo).

9
Calculando Tempo de
Execução

1. Dado que um microcontrolador funciona com um oscilador


de 4MHz e cada ciclo de instrução gasta um pulso de clock.
Qual a duração de cada ciclo de instrução (t)?

2. Dado que um microcontrolador funciona com um oscilador


de 4MHz e cada ciclo de instrução gasta quatro pulsos de
clock. Qual a duração de cada ciclo de instrução (t)?

10
Calculando Tempo de
Execução

Dado que um microcontrolador funciona com um oscilador de


4MHz e cada ciclo de instrução gasta um pulso de clock. Qual a
duração de cada ciclo de instrução (t)?
1
𝑡=
𝑓𝑜𝑠𝑐

𝑓𝑜𝑠𝑐 = 4 𝑀𝐻𝑧

1
𝑡= = 250𝑛𝑠
4𝑀𝐻𝑧
Conclusões:
• Cada ciclo tem duração de 250 ns.
• O microcontrolador executa 4 milhões de instruções em um
segundo (4 MIPS).

11
Calculando Tempo de
Execução

Dado que um microcontrolador funciona com um oscilador de


4MHz e cada ciclo de instrução gasta quatro pulsos de clock.
Qual a duração de cada ciclo de instrução (t)?
1
𝑡=
𝑓𝑜𝑠𝑐 /4

𝑓𝑜𝑠𝑐 = 4 𝑀𝐻𝑧;

1
𝑡= = 1 𝑢𝑠
4 𝑀𝐻𝑧
4
Conclusões:
• Cada ciclo tem duração de 1 us.
• O microcontrolador executa 1 milhão de instruções em um segundo
(1 MIP).
12
Sistema de Clock do
Microcontrolador

• O clock dos microcontroladores podem ser gerados


por:

• Circuito de clock interno.

• Circuito de clock externo.

13
Alguns fabricantes

• Lista de microcontroladores da Microchip:


http://www.atmel.com/products/microcontrollers/avr/megaavr.
aspx

• Lista de microcontroladores da Texas Instruments:


http://www.ti.com/lsds/ti/microcontrollers_16-bit_32-
bit/products.page

• Lista de microcontroladores da Atmel:


http://www.atmel.com/products/microcontrollers/avr/megaavr.
aspx?tab=parameters

14
Microcontrolador:
PIC16F628

15
Microcontroladores PIC

• PIC: Programmable Interface Controllers – Controlador


Integrado de Periféricos.
• Principais características dos microcontroladores da família
PIC:
– CPU RISC.
– Arquitetura Harvard.
– Estrutura pipeline.
• Famílias de MCU PIC:
– Low Range: microcontroladores PIC com palavra de instrução de 12
bits.
– Mid Range: microcontroladores PIC com palavra de instrução de 14
bits.
– High Range: microcontroladores PIC com palavra de instrução de 16
bits.

16
Microcontroladores
PIC 8-bits

17
MCU PIC16F628

• Frequência máxima: 20 MHz.


• Memória de programa (Flash): 2048 palavras.
• Memória RAM: 224 bytes.
• Memória EEPROM: 128 bytes.
• Temporizadores: 3 (TMR0, TMR1, TMR2).
• Comparadores: 2.
• Módulo PWM: 1.
• Módulo I/O: 16 pinos (2 portas).
• Comunicação serial: USART.
• Tensões: 2.0V ~ 5.5V.

18
PIC16F628:
Pinagem

19
MCU PIC16F628

• Diagrama de
blocos:

20
PIC16F628:
Diagrama

• Endereçamento da próxima instrução:

21
PIC16F628:
Diagrama

• Unidade de processamento lógico e aritmético:

22
PIC16F628:
Diagrama

• Temporizadores, comparadores, módulo de comunicação


serial:

23
PIC16F628:
Memória de Dados

• A memória de dados (RAM) é subdividida em banco de


registradores:

24
PIC16F628:
Memória de Dados

• A memória de dados (RAM) é subdividida em banco de


registradores:

É obrigatório conhecer
os registradores do
MCU para conseguir
programá-lo.

25
PIC16F628:
Ciclo de instrução

26
MCU PIC16F628:
Formato das Instruções

• As instruções do PIC16F628 são formadas por 14 bits e


divididas em quatro grupos:

27
Fontes de Clock do
PIC16F628

• Existem 4 grupos de circuitos fonte de clock:


• Circuito RC.
• Circuito com osciladores de cristal.
• Circuito com ressonadores.
• Circuitos híbridos.

• PIC16F628 permite 6 formas de conexão:

28
Fontes externas de clock: Circuito
com cristal (ou ressonador)

• Circuitos com osciladores de cristal são mais precisos e mais


caros que circuitos com ressonadores e circuitos RC.
• Circuito formador por 1 oscilador de cristal e dois
capacitores.

29
Fontes externas de clock: Circuito
com cristal (ou ressonador)

Ressonador 30
Fontes externas de clock:
Circuito RC

• Os osciladores RC são mais simples e mais baratos, porém


menos precisos.

31
Fontes externas de clock:
Outros

32
Microcontrolador:
ATMega328

33
Microcontroladores AVR

• Principais características dos microcontroladores da família


AVR:
– CPU RISC.
– Arquitetura Harvard.
– Estrutura pipeline de 1 nível.
– Conjunto de 133 instruções, a maioria sendo executada em um ciclo
de clock.
• Famílias de MCU AVR:
– 32-bits AVR: MCU de 32 bits projetados para maiores processamentos.
– AVR XMega.
– megaAVR.
– tinyAVR: até 8Kbytes de Flash.
– BatteryManagement: características especiais de consumo baixo.
34
ATMega328:
Características

• Frequência máxima: 20 MHz.


• Memória de programa (Flash): 32 KB.
• Memória SRAM: 2048 B.
• Memória EEPROM: 1024 B.
• Registradores de 8 bits de uso geral.
• Temporizadores: 3.
• Comparador: 1.
• Módulo PWM com 6 canais.
• Módulo ADC: 6 conversores de 10bits.
• Interfaces de Comunicação: USART, SPI.
• Tensões: 1.8V ~ 5.5V.

35
ATMega328:
Pinagem

36
ATMega328:
Diagrama de Blocos

37
ATMega328:
Memória de Dados

• A memória de dados (SRAM) é subdividida em blocos de


registradores:

38
ATMega328:
Memória de Dados

• A memória de dados (SRAM) é subdividida em blocos de


registradores:

É obrigatório conhecer
os registradores do
MCU para conseguir
programá-lo.

39
ATMega328:
Diagrama AVR CPU

40
Fontes de Clock do
ATMega328

41
Fontes de Clock do
ATMega328

• Sinais de clock derivados da fonte primária.

42
Fontes de Clock do
ATMega328

• Existem 5 possibilidades de fontes de clock:

– Oscilador de cristal/ressonador de baixa potência.


Fonte
– Oscilador de cristal de baixa frequência.
externa
– Clock externo.

– Oscilador RC interno de 128 KHz. Fonte


– Oscilador RC interno calibrado (7.6 a 8.4 MHz). interna

43
Fontes externas de clock

• Oscilador de cristal ou ressonador:


– Um oscilador de cristal e dois capacitores.
– Ou um ressonador.

• Clock externo:
– EXTCLK: XTAL1.

44
Gravação/Programação de
Microcontroladores

45
Gravação de
Microcontroladores

• A programação de microcontroladores, normalmente, é


realizada na linguagem C.
• Um compilador da linguagem C para microcontroladores deve
ser utilizado para gerar o arquivo hexadecimal (extensão .hex)
que será gravado na memória Flash do MCU.
Programa Compilador
Arquivo
em C .hex
C

• Programas (firmwares) podem ser gravados nos


microcontroladores por duas formas:
– Circuito de gravação especifico do microcontrolador.
– Transferência via comunicação serial.

46
Gravação de
Microcontroladores

• Formas de gravação do firmware no MCU:

Programa Compilador
Arquivo
em C .hex
C

Gravador

• A forma de gravação do gravador vai depende do MCU.


 Microcontroladores PIC: Gravador PIC + ICSP.
 Microcontroladores AVR: Gravador AVR + ICSP (SPI).

47
ICSP (In-circuit Serial
Programming)

Gravação PIC Gravação AVR

48
Gravação do PIC via
ICSP + PICKIT3

• Exemplo: Gravação do PIC16F628 utilizando o gravador


PICKIT3.

USB

ICSP

49
Gravação do PIC via
ICSP + PICKIT3

• Exemplo: Gravação do PIC16F628 utilizando o gravador


PICKIT3.

ICSP
USB
50
Gravação AVR via
ICSP + Arduino

Gravador AVR

51
Gravação de
Microcontroladores

• Outra alternativa de gravação é utilizando o bootloader.

Programa Compilador
Arquivo
em C .hex
C

Gravador

• Permite uma gravação sem o uso de gravadores específicos.


• Realiza uma comunicação serial direto com o MCU.
52
Bootloader

• Bootloader é um programa simples e robusto que será


armazenado na memória Flash do MCU com o intuito de
receber um novo programa principal e regravar na memória
flash.

53
Bootloader

• Bootloader permite a transferência do programa principal


(.hex) pela porta serial, utilizando a interface RS232 do MCU,
sem a necessidade de remover o MCU do sistema (on-chip).
• Bootloader deve ser programado previamente na memória do
MCU.
Programa Compilador
Arquivo
em C .hex
C

RS-232

54
Bootloader

Programa Compilador
Arquivo
em C .hex
C

RS-232

55
Bootloader

O bootloader deve perguntar ao computador (via serial) se


existir algum programa principal para ser regravar na memória
(condição).

• Se sim, o bootloader deve


reprogramar a memória para
alocar o novo programa principal
e depois deve executar o novo
programa.

• Se não, o bootloader deve


executar o programa contido na
memória.

56
Arduino + Bootloader

• A placa Arduino utiliza a estratégia de gravação do programa


principal utilizando bootloader.

• 1º solução: Transferência do programa através de um


conversor USB-TTL (FTDI232).

USB TTL TX

RX
FTDI232:
Conversor
USB-TTL ATMega328
Arduino 57
Arduino + Bootloader

• 2º solução: O conversor FTDI foi substituído pelo MCU


ATMega8u2 ou ATMega16u2 (capaz de realizar conversão
USB-TTL) para transferência do programa.

USB TTL TX

RX
ATMega8u2
ou
ATMega16u2 ATMega328

Arduino
58
Arduino + Bootloader

• 2º solução:

59
Alternativas para programação
(PIC; AVR)

60
Exemplo de Programação
do PIC16F628

• IDE de programação/gravação: MPLAB X.


• Compiladores: XC8, XC16, XC32.
• Gravador: PICKIT3.

61
Exemplo de Programação
do ATMega328

• IDE de programação/compilação/gravação: Atmel Studio.


• Gravador/Bootloader: Placa Arduino UNO.

Atmel Studio

avrdude
ATMega328 62
AVRDUDE

• AVRDUDE é um programa aberto que serve para gravar


programas na(s) memória(s) (flash, EEPROM) de
microcontroladores AVR.
• Utilizado pela IDE do Arduino para gravar os sketches.
• Comunica-se com os gravadores externos através da porta
serial do PC.

• Precisa da definição de argumentos e de um arquivo de


configuração para gravar o arquivo principal.

63
AVRDUDE: Argumentos

Alguns comandos do argumento do avrdude:


• -p: modelo do microcontrolador. Ex.:
atmega328p,atmega168 e attiny2313.
• -c: modelo de programador. Ex.: bsd, stk200, avrisp.
• -P: porta do PC (com1, lpt1, usb, etc) onde o programador
está conectado.
• -e: apagar a memória do dispositivo..
• -U :w: efetua a gravação da área (flash, eeprom,) com
conteúdo de um arquivo. Após a gravação é feita uma
verificação.
Exemplo:
-C C:\arduino-1.0\hardware\tools\avr\etc\avrdude.conf -p m328p -c arduino -P
\\.\com3 -U flash:w:"$(ProjectDir)Debug\$(ItemFileName).hex":i
64
Integrar AtmelStudio7
com AVRDUDE

1
2
3

Arguments:
-C C:\arduino-1.0\hardware\tools\avr\etc\avrdude.conf -p m328p -c arduino -P \\.\com3 -
U flash:w:"$(ProjectDir)Debug\$(ItemFileName).hex":i 65
Referências

• Principais referências:

– Datasheet PIC16F628.

– Datasheet ATMega328.

66
Dúvidas?

Dúvidas por email:


heitorm@dca.ufrn.br
67

Você também pode gostar