Você está na página 1de 98

MICROCONTROLADORES 1

Curso Técnico Eletrônica


Prof. Fábio Kurt Schneider
AVALIAÇÃO
Nota 1:
APS = 20% (Projeto de Sistemas Microcontrolados)
EXERCÍCIOS ASSEMBLY = 10% (ASSEMBLY)
AVALIAÇÃO TEÓRICA/PRÁTICA = 70% (ARQUITETURA INTERNA E ASSEMBLY)

Nota 2:
Função otimizada em ASSEMBLY = 20% (ALTO DESEMPENHO)
LABORATÓRIOS = 40%
PROJETO FINAL = 40%
• PROGRAMAÇÃO E CONTEÚDOS DAS AULAS (PREVISÃO)
Dia/Mês ou Número de
Conteúdo das Aulas
Semana Aulas
Informações da disciplina e avaliação
Definição da APS
Introdução a microcontrolador genérico
08-09/08/17 3
- Sistema microprocessado típico; Microprocessador hipotético: barramentos de dados,
endereços, e controle, ULA, registros internos, PC, SP, Acc; Microcontrolador
vs.microprocessador; Principais famílias de microcontroladores;

Microcontrolador específico - Arquitetura interna ATMEGA328.


- Descrição dos pinos; Organização de memória; Memória SRAM interna de dados; Memória
15-16/08/17 3
SRAM interna de uso específico; Acesso à memória externa; Interrupção, Temporizadores, ADC
Ferramentas de Desenvolvimento de Sistemas Microcontrolados

Algoritmos
22-23/08/17 Instruções Lógicas e Aritméticas , Instruções de Controle de Fluxo, Exemplos em assembly com o 3
uControlador específico
Instruções Assembly e exemplos: controle de fluxo, laços, escrita e leitura em memória, controle
29-30/08/17 3
periféricos....
Instruções Assembly e exemplos: controle de fluxo, laços, escrita e leitura em memória, controle
05-06/09/17 3
periféricos....
12-13/09/17 Simulação 3
Entrega E AVALIAÇÃO APS
1 – Esquemático (Power, uC, Periféricos, Conectores)
19-20/09/17 2 – Explicativo dos blocos do sistema 3
3 - Tabela Características
4 – B.O.M. e R$
SEMANA TECNOLÓGICA
26-27/09/17 3
03-04/10/17 Avaliação 1 – Teórico prática 3
PROGRAMAÇÃO E CONTEÚDOS DAS AULAS (PREVISÃO)

Dia/Mês ou Número de
Conteúdo das Aulas
Semana Aulas

03-04/10/17 Avaliação 1 – Teórico prática 3

10-11/10/17 Definição Projeto Final – Recuperação Prova Teórico Prática 3

17-18/10/17 Interrupções e Temporizadores 3

24-25/10/17 Comunicação serial (WIFI, Bluetooth, ...) 3

31/10/17
Dispositivos de entrada e saída (teclado, LCD, monitor - PC) 3
01/11/17

07-08/11/17 Desenvolvimento do Projeto 3


14/11/17 Desenvolvimento do Projeto 3
21-22/11/17 Desenvolvimento do Projeto 3
28-29/11/17 Apresentação e AVALIAÇÃO Projeto Final 3
05-06/12/17 Recuperação Projeto Final 3
12-13/12/17 3
~17 semanas x 3h 
Como isto pode impactar sua vida?
• Fábio Kurt Schneider:
• Apucarana 1967-1984,
• CEFET-Curitiba 1985-1989 (Eng. Elétrica – Eletrônica e Telecomunicações),
• Engenheiro de Desenvolvimento 1989-1993 (In-circuit emulator and bus
analyser, Fontes CC de elevada potência, Medidor de água em leite, medidor
de gordura em leite),
• CEFET-PR 1993-1995 Mestrado em Eng. Biomédica (Medição de Fluorescência
para determinar Concentração de Oxigênio - OPTOELETRÔNICA),
• Professor Efetivo CEFET desde 01/09/1995
• University of Washington 2001-2006 – Ph.D. Eng. Elétrica
• UTFPR: Desde 2006 orientador de mestrado e doutorado: CPGEI e PPGEB
• PROPPG (03/2013 a 08/2016)
"Fellipe Arcanjo Trindade" <fellipe_05@hotmail.com>,
"Fernanda Franco Grilo Machado"
"Alex Jhonata Santos De Oliveira"
<fermac@alunos.utfpr.edu.br>,
<alexoliveira.1998@alunos.utfpr.edu.br>,
"Gustavo Brizola Da Silva"
"Artur Heineck Hahn" <arturhhahn@gmail.com>,
<gustavo.brizola@hotmail.com>,
"Ingrid Do Rocio Gasparin"
"Jean Carlo Do Carmo"
<ingridgasparin@hotmail.com>,
<jeancarlodocarmo@hotmail.com>,
"Jorge Lucas Vicilli Jabczenski"
"Laura De Barros Gunha" <lauragunha@hotmail.com>,
<jabczenski@alunos.utfpr.edu.br>,
"Lucas Albuquerque Sales" <lucassales-01@hotmail.com>,
"Leonardo Braga De Cristo"
<cristo@alunos.utfpr.edu.br>, "Lucas Rafael De Andrade" <atrefellis@hotmail.com>,
"Lucas Eduardo Bonancio Skora" "Matheus Augusto Burda" <flavio@personativa.com.br>,
<lucasskora@alunos.utfpr.edu.br>, "Miguel Michalouski Santos Lima"
"Ludwig Aumann" <ludwig@alunos.utfpr.edu.br>, <miguellima@alunos.utfpr.edu.br>,
"Luiz Fernando De Almeida Mota" "Pedro Henrique Fracaro Kiche"
<luizmota@alunos.utfpr.edu.br>, <pedrohenriquekiche@gmail.com>,
"Pedro Andre Silveira Paiva" "Sarah Guebur Quoos" <sarahgq99@hotmail.com>,
<pedroaspaiva@gmail.com>, "Thiago Augusto De Souza"
"Victor Hugo Dambrat Bergossi" <augustodesouza41@gmail.com>,
<victor.hugo.d.bergossi@gmail.com>, "Vinicius Rodrigues Gemin"
<viniciusgemin@alunos.utfpr.edu.br>,
Aps: Projete um Sistema Microcontrolado com custo de componentes SMD preferencialmente
inferior a USD 5,00 (OU O MAIS PRÓXIMO DE 5USD) capaz de apresentar as seguintes
características: Instruções executadas por Maior que 16 milhões
segundo
Programável com comunicação USB, ....
serial
Memória de Programa Flash 32 kB
Memória RAM 4 kB
Registradores Internos Maior ou igual 32 registradores
Timers 3 ou +
ADC Pelo menos 1, 10 ou mais bits, amostragem ,aior
ou igual a 1MHz
Pinos I/O Pelo menos 10 disponíveis em conector
Pino de controle preparado para Tensão 5-12V externo e corrente (dispositivo
ligar/desligar dispositivo ligado) de 600 mA
EXTERNO.
DAC Opcional de 10 ou mais bits

Apresentar um Relatório Impresso Simplificado INDIVIDUAL contendo:


•Tabela de Características do sistema projetado
•Esquemático completo
•Explicativo 5-15 de cada bloco usado para atender as principais características do sistema
•Lista de materiais COM PREÇO na origem (mouser, digikey, arrow, ...)
Entendendo a Disciplina Microcontroladores
1 no curso técnico
Microcontroladores 1 – Técnico em Eletrônica
• Competência:
• Analisar e Implementar Sistemas Microcontrolados Básicos.
• Habilidades Básicas:
• Desenvolver Sistemas Microcontrolados Básicos
• Programar com linguagem de baixo nível sistemas Microcontrolados básicos
• Bases Tecnológicas:
• Arquitetura de Microcontroladores
• Linguagem Assembly
Relembrando Digital 3

• Reconhecer Elementos Básicos da Arquitetura Interna de um


MICROPROCESSADOR
• Identificar elementos e Interpretar Diagramas de um Sistema
Microprocessado
Sistema Microprocessado

hardware firmware

Sistema Microprocessado

• Essas transparências foram baseadas em


materiais elaborados pelos professores software
Hugo Vieira Neto, Eduardo Bertonha e
Gabriel Kovalhuk, Paulo Demantova Elaborado por Gilson Yukio Sato
Hardware

Reset Bus de Dados

ROM RAM E/S


P
Interrupções Perifé-
(CPU) ricos
Bus de Endereços e Controle

Clock DX
SEL

Elaborado por Gilson Yukio Sato


Hardware
• Clock
• Reset
• Reinicializa o microprocessador

• Vetor de Reset
• Primeiro endereço da memória de
programa a ser executado após o reset do
sistema

Elaborado por Gilson Yukio Sato


Hardware
• ROM
• Programa + dados não voláteis
• RAM
• Dados de trabalho
• E/S
• Interfaces dispositivos externos
• DX SEL
• Seleção de memória e periférico

Elaborado por Gilson Yukio Sato


Hardware
• Bus de dados
• Bidirecional
• Bus de endereços
• Saída (geralmente)
• Bus de controle
• Saídas e entradas

Elaborado por Gilson Yukio Sato


Hardware
• Interrupção
• Evento externo que desvia o fluxo normal
de execução
• Após o atendimento da interrupção o
fluxo normal de execução é retomado
• Vetor de Interrupção
• Endereço da memória de programa para
onde ocorre o desvio do fluxo de
execução para o atendimento de uma
interrupção

Elaborado por Gilson Yukio Sato


Firmware
INÍCIO

Posicionar escada

Acionar o interruptor

Subir na escada

Sim
A lâmpada acendeu?
Retirar lâmpada antiga

Não

Apanhar lâmpada nova Colocar lâmpada nova

FIM

0110...1101
1101...0001
C Compilador 0101...1000
0000...0101
...
Mnemônicos
Assembler

Elaborado por Gilson Yukio Sato


Firmware
• Algoritmo
• Baixo nível
• Código de Máquina, Assembly

• Alto nível
• C, BASIC, Pascal
• Necessita ser compilada ou interpretada

Elaborado por Gilson Yukio Sato


Firmware
• Montador (Assembler)
• mnemônicos do assembly  códigos das
instruções

• Compilador / Interpretador
• linguagem alto nível  linguagem
assembly

• Link-editor (Linker)
• interconecta diferentes trechos de
programa
Elaborado por Gilson Yukio Sato
Microprocessador Genérico

Buffer
Bus interno dados bus
dados

Unidade de Registradores
Controle

ULA

Buffer Buffer
bus
Bus interno endereço
ends

Bus interno controle bus ctrl

Elaborado por Gilson Yukio Sato


ULA
• ULA (ALU)
• Unidade Lógico Aritmética
• Lógicas: AND, OR, XOR
• Aritméticas: Soma, Subtração
• Unidade de Controle
• Interpreta instruções
• Gera sinais para comandar demais blocos

Elaborado por Gilson Yukio Sato


Registradores
• Gerais
• Armazenamento temporário de dados
• Entradas e saída da ULA
• Índices
• Índice que pode ser usado como ponteiro
para acesso de dado

Elaborado por Gilson Yukio Sato


Registradores
• Flags
• Sinalizam eventos
• PC (Program Counter)
• Indica o endereço da próxima instrução
• SP (Stack Pointer)
• Indica topo da pilha
• Pilha – LIFO (Last In, First Out)
• Armazenamento de dados

Elaborado por Gilson Yukio Sato


História
Use sempre boas referencias para aprender!!!

• Arquitetura de computadores
David A. Patterson & John L. Hennessy. Computer Organization & Design, The
Hardware/Software Interface. Morgan Kaufmann
• https://pt.coursera.org/learn/comparch
• Introdução
• Instruções
• Microcódigo
• Pipelining
• Cache
• Superescalar x VLIW x
• Predição de desvio
• Multi
https://www.cis.upenn.edu/~milom/cis501-
Fall11/lectures/00_intro.pdf
https://www.cis.upenn.edu/~milom/cis501-
Fall11/lectures/00_intro.pdf
https://www.cis.upenn.edu/~milom/cis501-
Fall11/lectures/00_intro.pdf
https://www.cis.upenn.edu/~milom/cis501-
Fall11/lectures/00_intro.pdf
What Is An ISA?
http://www.cis.upenn.edu/~cis501/
• ISA (instruction set architecture)
• A well-defined hardware/software interface
• The “contract” between software and hardware
• Functional definition of storage locations & operations
• Storage locations: registers, memory
• Operations: add, multiply, branch, load, store, etc
• Precise description of how to invoke & access them
• Not in the contract: non-functional aspects
• How operations are implemented
• Which operations are fast and which are slow
• Which operations take more power and which take less
• Instructions (Insns)
• Bit-patterns hardware interprets as commands

CIS 501: Comp. Arch. | Prof. Joe


35
Devietti | Instruction Sets
ARM ADD Documentation
http://www.cis.upenn.edu/~cis501/

CIS 501: Comp. Arch. | Prof. Joe Devietti


36
| Instruction Sets
The Sequential Model
http://www.cis.upenn.edu/~cis501/
• Basic structure of all modern ISAs
• Often called Von Neumann, but in ENIAC before
Fetch
Decode • Program order: total order on dynamic insns
Read Inputs
• Order and named storage define computation
Execute
Write Output
• Convenient feature: program counter (PC)
Next Insn
• Insn itself stored in memory at location pointed to
by PC
• Next PC is next insn unless insn says otherwise
• Processor logically executes loop at left
• Atomic: insn finishes before next insn starts
• Implementations can break this constraint physically
CIS 501: Comp. Arch. | Prof. Joe • But must maintain illusion to preserve correctness
37
Devietti | Instruction Sets
Programmability
http://www.cis.upenn.edu/~cis501/
• Easy to express programs efficiently?
• For whom?

• Before 1980s: human


• Compilers were terrible, most code was hand-assembled
• Want high-level coarse-grain instructions
• As similar to high-level language as possible

• After 1980s: compiler


• Optimizing compilers generate much better code than you or I
• Want low-level fine-grain instructions
• Compiler can’t tell if two high-level idioms match exactly or not

• This shift changed what is considered a “good” ISA…

CIS 501: Comp. Arch. | Prof. Joe


38
Devietti | Instruction Sets
Maximizing Performance
http://www.cis.upenn.edu/~cis501/
Execution time =
(instructions/program) * (seconds/cycle) * (cycles/instruction)
(1 billion instructions) * (1ns per cycle) * (1 cycle per insn)
= 1 second
• Instructions per program:
• Determined by program, compiler, instruction set architecture (ISA)
• Cycles per instruction: “CPI”
• Typical range today: 2 to 0.5
• Determined by program, compiler, ISA, micro-architecture
• Seconds per cycle: “clock period”
• Typical range today: 2ns to 0.25ns
• Reciprocal is frequency: 0.5 Ghz to 4 Ghz (1 Hz = 1 cycle per sec)
• Determined by micro-architecture, technology parameters
• For minimum execution time, minimize each term
• Difficult: often pull against one another
CIS 501: Comp. Arch. | Prof. Joe
39
Devietti | Instruction Sets
Example: Instruction Granularity
http://www.cis.upenn.edu/~cis501/
Execution time =
(instructions/program) * (seconds/cycle) * (cycles/instruction)

• CISC (Complex Instruction Set Computing) ISAs


• Big heavyweight instructions (lots of work per instruction)
+ Low “insns/program”
– Higher “cycles/insn” and “seconds/cycle”
• We have the technology to get around this problem

• RISC (Reduced Instruction Set Computer) ISAs


• Minimalist approach to an ISA: simple insns only
+ Low “cycles/insn” and “seconds/cycle”
– Higher “insn/program”, but hopefully not as much
• Rely on compiler optimizations
CIS 501: Comp. Arch. | Prof. Joe
40
Devietti | Instruction Sets
Compiler Optimizations
http://www.cis.upenn.edu/~cis501/

• Primarily goal: reduce instruction count


• Eliminate redundant computation, keep more things in registers
+ Registers are faster, fewer loads/stores
– An ISA can make this difficult by having too few registers

• But also…
• Reduce branches and jumps (later)
• Reduce cache misses (later)
• Reduce dependences between nearby insns (later)
– An ISA can make this difficult by having implicit dependences

• How effective are these?


+ Can give 4X performance over unoptimized code
– Collective wisdom of 40 years (“Proebsting’s Law”): 4% per year
• Funny but … shouldn’t leave 4X performance on the table

CIS 501: Comp. Arch. | Prof. Joe


41
Devietti | Instruction Sets
História INTEL
Moore – 50 Anos

• 100%+ transistors pelo


mesmo preço a cada 18
meses
36 anos
A EVOLUÇÃO DE UMA TECNOLOGIA
• MOTORCYCLE

• MICROPROCESSADORES

• MICROCONTROLADORES
Sistema MICROPROCESSADO x
MICROCONTROLADOR x
SISTEMA MICROCONTROLADO
• Componentes de um MICROPROCESSADOR:

• Componentes de um SISTEMA MICROPROCESSADO:

• MICROCONTROLADOR:
Microprocessador X
Microcontrolador
• Microcontrolador
• μP + períféricos
• Períféricos:
• temporizador/contador,
• interface serial,
• barramentos de comunicação
• ADC
• DAC
• ...
• Sistemas embarcados

Elaborado por Gilson Yukio Sato


Xtal1 Xtal2 P2 P0 T0 T1
8 8

Arquitetura Interna
Circuito de Latchs e Latchs e Timers /
Clock Drivers Drivers Counters

Registros p/ Registros 16
Endereçar bits PC, SP,
Memória DPTR
Unidade
Lógico-
OTPROM/ Aritmética RAM Interna
EPROM/
Flash

Canal Serial Latchs e Latchs e Temporização e


Drivers Drivers Controle
8 8

RxD TxD P1 P3 PSEN EA


ALE RST

Elaborado por Gilson Yukio Sato


Microcontroladores 1 – Técnico em Eletrônica
• Competência:
• Analisar e Implementar Sistemas Microcontrolados Básicos.
• Habilidades Básicas:
• Desenvolver Sistemas Microcontrolados Básicos
• Programar com linguagem de baixo nível sistemas Microcontrolados básicos
• Bases Tecnológicas:
• Arquitetura de Microcontroladores
• Linguagem Assembly
2008: microcontroller architectures and vendors
EXAMPLES (WIKIPEDIA):
• ARM core processors (many vendors) • MIPS
• ARM Cortex-M cores are specifically targeted • Microchip Technology PIC, (8-bit PIC16, PIC18, 16-bit
towards microcontroller applications dsPIC33 / PIC24), (32-bit PIC32)
• Atmel AVR (8-bit), AVR32 (32-bit), and AT91SAM (32- • NXP Semiconductors LPC1000, LPC2000, LPC3000,
bit) LPC4000 (32-bit), LPC900, LPC700 (8-bit)
• Cypress Semiconductor's M8C Core used in • Renesas Electronics: RL78 16-bit MCU; RX 32-bit
their PSoC (Programmable System-on-Chip) MCU; SuperH; V850 32-bit MCU; H8; R8C 16-bit MCU
• Freescale ColdFire (32-bit) and S08 (8-bit) • Silicon Laboratories Pipelined 8-bit 8051
• Freescale 68HC11 (8-bit), and others based on the Microcontrollers and mixed-signal ARM-based 32-bit
Motorola 6800 family microcontrollers
• Intel 8051, also manufactured by NXP • STMicroelectronics STM8 (8-bit), ST10 (16-bit)
Semiconductors, Infineon and many others and STM32 (32-bit)
• Infineon: 8-bit XC800, 16-bit XE166, 32-bit • Texas Instruments TI MSP430 (16-bit), MSP432 (32-
XMC4000 (ARM based Cortex M4F), 32-bit bit), C2000 (32-bit)
TriCore and, 32-bit Aurix Tricore Bit • Toshiba TLCS-870 (8-bit/16-bit)
microcontrollers[19]
8 vs 16 vs 32 Bit Microcontrollers--A Case Study Embedded Design
Traditional microcontroller projects have been based on 8-bit architectures. However, 16-bit and 32-bit architectures
(such as the ARM Cortex-M3) are becoming very attractive alternatives with competitive pricing and power
consumption requirements.

MCU Arch Flash (KB) RAM (KB) Clock (MHz) Current (mA) mA/MHz Price (USD)

at 1k
LPC1765FBD100,551 ARM Cortex-M3 256 64 100 50 0.5 5.06
(32)

ATxmega128A1 AVR (8) 128 8 32 20 0.63 6.05

MSP430F5436AIPZR MSP430 (16) 192 16 25 10 0.4 4.797

PIC32MX340F128L- PIC32 (32) 128 32 80 55 0.69 4.82


80I/PT

STM32F103VBT6 ARM Cortex-M3 128 20 72 33 0.46 4.29


(32)

http://stratifylabs.co/embedded%20design%20tips/2013/10/01/Tips-8-vs-16-vs-32-Bit-Microcontrollers/
Aps: Projete um Sistema Microcontrolado com custo de componentes SMD preferencialmente
inferior a USD 5,00 (OU O MAIS PRÓXIMO DE 5USD) capaz de apresentar as seguintes
características: Instruções executadas por Maior que 16 milhões
segundo
Programável com comunicação USB, ....
serial
Memória de Programa Flash 32 kB
Memória RAM 4 kB
Registradores Internos Maior ou igual 32 registradores
Timers 3 ou +
ADC Pelo menos 1, 10 ou mais bits, amostragem ,aior
ou igual a 1MHz
Pinos I/O Pelo menos 10 disponíveis em conector
Pino de controle preparado para Tensão 5-12V externo e corrente (dispositivo
ligar/desligar dispositivo ligado) de 600 mA
EXTERNO.
DAC Opcional de 10 ou mais bits

Apresentar um Relatório Impresso Simplificado INDIVIDUAL contendo:


•Tabela de Características do sistema projetado
•Esquemático completo
•Explicativo 5-15 de cada bloco usado para atender as principais características do sistema
•Lista de materiais COM PREÇO na origem (mouser, digikey, arrow, ...)
Microcontrolador - Famílias

• MCS51 - Intel e outras empresas


• M68HC11 - Motorola
• Z8 - Zilog
• COP8 - National
• PIC - Microchip
• AVR - Atmel

Elaborado por Gilson Yukio Sato


ATMEGA328