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) 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 10-11/10/17 Definição Projeto Final – Recuperação Prova 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" , "Fernanda Franco Grilo Machado" "Alex Jhonata Santos De Oliveira" , , "Gustavo Brizola Da Silva" "Artur Heineck Hahn" , , "Ingrid Do Rocio Gasparin" "Jean Carlo Do Carmo" , , "Jorge Lucas Vicilli Jabczenski" "Laura De Barros Gunha" , , "Lucas Albuquerque Sales" , "Leonardo Braga De Cristo" , "Lucas Rafael De Andrade" , "Lucas Eduardo Bonancio Skora" "Matheus Augusto Burda" , , "Miguel Michalouski Santos Lima" "Ludwig Aumann" , , "Luiz Fernando De Almeida Mota" "Pedro Henrique Fracaro Kiche" , , "Pedro Andre Silveira Paiva" "Sarah Guebur Quoos" , , "Thiago Augusto De Souza" "Victor Hugo Dambrat Bergossi" , , "Vinicius Rodrigues Gemin" , 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 DemantovaElaborado 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

Bus interno dados bus

Buffer dados

Unidade de Registradores Controle

ULA

bus Bus interno endereço

Buffer ends

Bus interno controle bus ctrl Buffer

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 () • 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

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

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

Canal Serial Latchs e Latchs e Temporização e Drivers Drivers Controle

8 8 Arquitetura Interna Arquitetura 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: 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; 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 and mixed-signal ARM-based 32-bit Motorola 6800 family microcontrollers • , 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