Full Transcript

EEA-27 Microcontroladores e Sistemas Embarcados Aula 02 Prof. Dr. Harlei M. A. Leite Aeronautics Institute of Technology - ITA Electronic Engineering Division Department of Applied Electronics Conteúdo 1. 2. 3. 4. 5. 6. Microcontrolador (uC) ARM KL25Z KSDK Leitura Referências Prof. Dr. Harlei M. A....

EEA-27 Microcontroladores e Sistemas Embarcados Aula 02 Prof. Dr. Harlei M. A. Leite Aeronautics Institute of Technology - ITA Electronic Engineering Division Department of Applied Electronics Conteúdo 1. 2. 3. 4. 5. 6. Microcontrolador (uC) ARM KL25Z KSDK Leitura Referências Prof. Dr. Harlei M. A. Leite (ITA) - EEA-27 Microcontroladores e Sistemas Embarcados Microcontrolador Definição É um circuito integrado (CI) que reúne: ○ ○ ○ Processador; Memória; Entrada e saída (I/O). Prof. Dr. Harlei M. A. Leite (ITA) - EEA-27 Microcontroladores e Sistemas Embarcados Microcontrolador Organização de um microcontrolador Prof. Dr. Harlei M. A. Leite (ITA) - EEA-27 Microcontroladores e Sistemas Embarcados Microcontrolador Diferenças em relação aos microprocessadores: São usados em sistemas embarcados com um propósito bem definido; Capacidade de processamento limitada; Podem não ter um SO ou usar um SO em tempo real (RTOS); A interação ocorre por meio de sensores, botões, etc; São projetados para operar com baixo consumo de energia. Prof. Dr. Harlei M. A. Leite (ITA) - EEA-27 Microcontroladores e Sistemas Embarcados Microcontrolador História O primeiro uC comercial (TMS 1000) foi desenvolvido pela Texas Instruments em 1974, direcionado para sistemas embarcados. Especificação: ○ ○ ○ ○ CPU de 4 bits; ROM (1024 x 8 bits); RAM (64 x 4 bits); 23 I/O lines. $2 cada. Prof. Dr. Harlei M. A. Leite (ITA) - EEA-27 Microcontroladores e Sistemas Embarcados Microcontrolador Microcontroladores atuais 32 bits: ARM, AVR32 (Atmel), ColdFire (Freescale), MIPS32, PIC32 (Microchip), PowerPC, TriCore (Infineon), SuperH, etc; 16 bits: MSP430 (TI), HCS12 (Freescale), PIC24 (Microchip), dsPIC (Microchip), etc; 8 bits: 8051, AVR(Atmel), HCS08 (Freescale), PIC16, PIC18, etc. Prof. Dr. Harlei M. A. Leite (ITA) - EEA-27 Microcontroladores e Sistemas Embarcados Microcontrolador Como escolher um microcontrolador Desempenho; Memória; Eficiência energética; Ferramentas de desenvolvimento; Compatibilidade; Periféricos; Produção; Preço. Prof. Dr. Harlei M. A. Leite (ITA) - EEA-27 Microcontroladores e Sistemas Embarcados Microcontrolador Kits de desenvolvimento: Simplificam o desenvolvimento e estudo. Prof. Dr. Harlei M. A. Leite (ITA) - EEA-27 Microcontroladores e Sistemas Embarcados Microcontrolador Programação O software escrito para o microcontrolador é escrito em um computador convencional (Win / Linux / Mac) para ser carregado (loaded) e executado (run) no microcontrolador; O sistema onde o software é desenvolvido é denominado Host; O sistema onde o software executado é denominado Target. Prof. Dr. Harlei M. A. Leite (ITA) - EEA-27 Microcontroladores e Sistemas Embarcados Microcontrolador Programação Host Target Serial Prof. Dr. Harlei M. A. Leite (ITA) - EEA-27 Microcontroladores e Sistemas Embarcados Microcontrolador Toolchain Cross-compiler: Compilador que executa na arquitetura do host, mas gera código de máquina na arquitetura do target; Assembler: Gera o código objeto com base no código Assembly. O código objeto contém o binário referente ao código Assembly; Linker: Recebe um ou mais códigos objeto e combina-os, gerando um único arquivo executável; Debugger: Ferramenta executada no host que monitora o comportamento do código executado no target. Prof. Dr. Harlei M. A. Leite (ITA) - EEA-27 Microcontroladores e Sistemas Embarcados ARM (Advanced RISC Machine) Introdução Baseado na arquitetura RISC (Reduced Instruction Set Computer); Desenvolvida pela empresa britânica ARM Holdings; Licenciada pela ARM para outras empresas; Primeiro protótipo desenvolvido em 1985 (ARM1); Atualmente existem bilhões de processadores ARM; Recebe melhorias constantes. Prof. Dr. Harlei M. A. Leite (ITA) - EEA-27 Microcontroladores e Sistemas Embarcados ARM (Advanced RISC Machine) Filosofia RISC Conjunto simples e poderoso de instruções; As instruções executam em um único ciclo de clock; Processador opera em altas frequências; Instruções de baixa complexidade, fáceis de implementar. CISC Ênfase no Hardware RISC Compilador Geração de código Alta complexidade Processador Prof. Dr. Harlei M. A. Leite (ITA) - EEA-27 Microcontroladores e Sistemas Embarcados Alta complexidade Compilador Geração de código Processador Ênfase no Software ARM (Advanced RISC Machine) Filosofia RISC Quatro mandamentos de um projeto RISC. ○ Instrução: Processadores RISC têm um número reduzido de classes de instruções; Essas instruções podem ser executadas em único ciclo de clock; O compilador/programador sintetiza operações complexas combinando instruções simples; Todas as instruções apresentam o mesmo comprimento para facilitar a etapa de busca de instruções (fetch instruction). Prof. Dr. Harlei M. A. Leite (ITA) - EEA-27 Microcontroladores e Sistemas Embarcados ARM (Advanced RISC Machine) Filosofia RISC Quatro mandamentos de um projeto RISC ○ Pipeline: O processamento das instruções é dividido em etapas para que pequenas partes possam ser executadas em paralelo. Prof. Dr. Harlei M. A. Leite (ITA) - EEA-27 Microcontroladores e Sistemas Embarcados ARM (Advanced RISC Machine) Filosofia RISC Quatro mandamentos de um projeto RISC ○ Registradores: Quanto mais melhor!; Processadores RISC disponibilizam um grande número de registradores de propósito geral; Qualquer registrador pode conter dados ou endereços; Todo processamento de dados envolve registradores. Prof. Dr. Harlei M. A. Leite (ITA) - EEA-27 Microcontroladores e Sistemas Embarcados ARM (Advanced RISC Machine) Filosofia RISC Quatro mandamentos de um projeto RISC ○ Arquitetura load-store: Somente as instruções load e store podem transferir dados entre o banco de registradores e memória externa; Acessar a memória externa é um processo custoso; Separar o acesso à memória do processamento de dados torna a etapa de execução mais rápida. Prof. Dr. Harlei M. A. Leite (ITA) - EEA-27 Microcontroladores e Sistemas Embarcados KL25Z Visão geral Na disciplina usaremos a placa de desenvolvimento FRDM-KL25Z, uma plataforma de baixo custo equipada com o microcontrolador Kinetis MKL25Z128VLK4 com core ARM Cortex M0+. ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ 48 MHz de frequência de operação (Máx); 128 kB de memória Flash; 16 kB de SRAM; Controlador USB (Host/Device); GPIO; ADC e DAC; PWM; Comunicação serial: I2C, SPI e UART; OpenSDA debug interface; P&E Multilink interface; Capacitive touch "slider"; Acelerômetro; LED RGB. Prof. Dr. Harlei M. A. Leite (ITA) - EEA-27 Microcontroladores e Sistemas Embarcados KL25Z Target MKL25Z128VLK4 Visão geral OpenSDA USB Slider touch capacitivo Reset OpenSDA USB RGB LED K20DX (OpenSDA) Prof. Dr. Harlei M. A. Leite (ITA) - EEA-27 Microcontroladores e Sistemas Embarcados Acelerômetro KL25Z Visão geral ARM Cortex M0+ ○ ○ ○ ○ Processador mais simples da família AMR Cortex-M; Destinado para aplicações de baixo consumo de energia (9.8 uW / MHz); Estruturado conforme o modelo da arquitetura ARMv6-M; Pipeline de dois estágios. Prof. Dr. Harlei M. A. Leite (ITA) - EEA-27 Microcontroladores e Sistemas Embarcados KL25Z Visão geral Serial and Debug Adapter (OpenSDA) ○ ○ ○ ○ ○ ○ Interface serial para gravação e depuração; Ponte de comunicação serial entre o USB/Host e o uC; Permite a depuração de código; Programação de firmware; Interface de comunicação serial; Contém o bootloader. Prof. Dr. Harlei M. A. Leite (ITA) - EEA-27 Microcontroladores e Sistemas Embarcados KL25Z Visão geral Serial and Debug Adapter (OpenSDA) ○ Funções do uC K20DX Arquitetura ARM Cortex M4; Criar um disco virtual no PC através da interface USB; Realizar a programação do microcontrolador principal KL25Z quando novos arquivos são colocados no disco virtual; Criar uma porta serial virtual entre o KL25Z e o computador através da mesma interface USB. Prof. Dr. Harlei M. A. Leite (ITA) - EEA-27 Microcontroladores e Sistemas Embarcados KL25Z Pinos e portas J10 J1 J2 Prof. Dr. Harlei M. A. Leite (ITA) - EEA-27 Microcontroladores e Sistemas Embarcados J9 KL25Z Pinos e portas Como ler o diagrama? ○ Existem 4 headers dispostos em grupo: J1, J2, J9 e J10; ○ Os pinos em cada header são numerados sequencialmente; ○ Para se referenciar a um pino, é preciso especificar o header, como segue: J1-5 Prof. Dr. Harlei M. A. Leite (ITA) - EEA-27 Microcontroladores e Sistemas Embarcados KL25Z Pinos e portas Outra forma de referenciar portas ○ Os pinos também têm outro nome no formato PT; ○ Se referem aos pinos GPIO; ○ Exemplo: PTD5 ○ As caixas em azul se referem a portas GPIO (General Purpose Input/Output). Prof. Dr. Harlei M. A. Leite (ITA) - EEA-27 Microcontroladores e Sistemas Embarcados J1 J10 J9 J2 KL25Z GPIO Nome dado aos terminais que podem assumir a função de entradas ou saídas, com uso livre pelo usuário, conforme sua necessidade; Um mesmo pino pode ser: ○ ○ Entrada: recebe um sinal digital de um dispositivo externo (sensor, button, etc); Saída: envia um sinal digital para um dispositivo externo (LED, relé, etc). O programador deve definir no código se uma porta GPIO será de entrada ou saída. Prof. Dr. Harlei M. A. Leite (ITA) - EEA-27 Microcontroladores e Sistemas Embarcados KL25Z GPIO Caso a tensão de alimentação VDD seja 3,3 V: ○ ○ Estado lógico zero → tensões inferiores a ⅓ de VDD; Estado lógico um → tensões superiores a ⅔ de VDD. Prof. Dr. Harlei M. A. Leite (ITA) - EEA-27 Microcontroladores e Sistemas Embarcados KL25Z GPIO - Como usar? Primeiramente, se deve habilitar o clock na porta desejada: Prof. Dr. Harlei M. A. Leite (ITA) - EEA-27 Microcontroladores e Sistemas Embarcados KL25Z GPIO - Como usar? Definir a porta como GPIO: Prof. Dr. Harlei M. A. Leite (ITA) - EEA-27 Microcontroladores e Sistemas Embarcados KL25Z GPIO - Como usar? Definir a direção da porta: Prof. Dr. Harlei M. A. Leite (ITA) - EEA-27 Microcontroladores e Sistemas Embarcados KL25Z GPIO - Como usar? Setar o valor desejado: Prof. Dr. Harlei M. A. Leite (ITA) - EEA-27 Microcontroladores e Sistemas Embarcados KL25Z Arquitetura Caracterizada pela operação load-store: ○ Os dados devem ser carregados da memória para os registradores do core, processados, e posteriormente armazenados de volta na memória. ○ Possui 16 registradores de 32 bits, alguns com funções específicas. Prof. Dr. Harlei M. A. Leite (ITA) - EEA-27 Microcontroladores e Sistemas Embarcados KL25Z Endereçamento Todos os barramentos internos são de 32 bits; Espaço de endereçamento de 4 GB; O mapa de memória do processador separa o espaço de endereçamento em múltiplas regiões; Arquitetura baseada no modelo de von Neumann, pois todas as regiões são acessadas pelo mesmo barramento. Prof. Dr. Harlei M. A. Leite (ITA) - EEA-27 Microcontroladores e Sistemas Embarcados KL25Z Endereçamento Address range 0x00000000 - 0x1FFFFFFF 0x20000000 - 0x3FFFFFFF 0x40000000 - 0x5FFFFFFF 0x60000000 - 0x9FFFFFFF 0xA0000000 - 0xDFFFFFFF 0xE0000000 - 0xE00FFFFF Memory region Code SRAM Peripheral External RAM External device Private Peripheral Bus Memory type Description Normal Executable region for program code. You can also put data here. Normal Executable region for data. You can also put code here. Device Normal Device Strongly- ordered External device memory. Executable region for data. External device memory. This region includes the NVIC, System timer, and System Control Block. Only word accesses can be used in this region. 0xE0100000 - 0xFFFFFFFF System Prof. Dr. Harlei M. A. Leite (ITA) - EEA-27 Microcontroladores e Sistemas Embarcados Device Vendor specific. KL25Z Ambiente de desenvolvimento Kinetis Design Studio (KDS): ○ Baseado no Eclipse IDE; ○ Suporta Kinetis Cortex-M; ○ Integrado com o Processor Expert (PE); ○ Suporte para o debug application P&E; ○ Integrado com o Kinetis Software Development Kit (KSDK). Prof. Dr. Harlei M. A. Leite (ITA) - EEA-27 Microcontroladores e Sistemas Embarcados KL25Z Processor Expert (PE) Gerador de código da Freescale; Utiliza o KSDK como base para geração de código; Um projeto KSDK não precisa usar o Processor Expert; Útil para aprender a utilizar a biblioteca KSDK por meio de exemplos; Ideal para quem não tem muita familiaridade com programação em baixo nível; Agiliza o desenvolvimento de protótipos. Prof. Dr. Harlei M. A. Leite (ITA) - EEA-27 Microcontroladores e Sistemas Embarcados KL25Z P&E USB Multilink Universal Ferramenta de programação e depuração Funcionalidades: ○ ○ ○ ○ ○ ○ ○ ○ Debug; Flash programming; Execution control; Breakpoints; Watchpoints; Stepping; Value inspection; Serial port. Prof. Dr. Harlei M. A. Leite (ITA) - EEA-27 Microcontroladores e Sistemas Embarcados KL25Z Kinetis Software Development Kit (KSDK) Conjunto de software gratuito e de código aberto desenvolvido pela NXP Semiconductors para facilitar o desenvolvimento de aplicativos em microcontroladores da família Kinetis; Fornece uma variedade de componentes de software, drivers de dispositivo, middleware e exemplos de código para ajudar os desenvolvedores a criar rapidamente aplicativos para os microcontroladores Kinetis; Acompanhado por uma documentação extensa que explica detalhadamente como usar seus componentes e funcionalidades. Prof. Dr. Harlei M. A. Leite (ITA) - EEA-27 Microcontroladores e Sistemas Embarcados KSDK GPIO - Como usar? Primeiramente, se deve habilitar o clock na porta desejada: Prof. Dr. Harlei M. A. Leite (ITA) - EEA-27 Microcontroladores e Sistemas Embarcados KSDK GPIO - Como usar? Definir a porta como GPIO: Prof. Dr. Harlei M. A. Leite (ITA) - EEA-27 Microcontroladores e Sistemas Embarcados KSDK GPIO - Como usar? Definir a direção da porta: Prof. Dr. Harlei M. A. Leite (ITA) - EEA-27 Microcontroladores e Sistemas Embarcados KSDK GPIO - Como usar? Setar o valor desejado: Prof. Dr. Harlei M. A. Leite (ITA) - EEA-27 Microcontroladores e Sistemas Embarcados Leitura Kinetis Design Studio 3.2.0 Release Notes. Getting Started with Kinetis SDK (KSDK) v.1.2. Cortex-M0+ Devices: Generic User Guide. Prof. Dr. Harlei M. A. Leite (ITA) - EEA-27 Microcontroladores e Sistemas Embarcados Referências Andrew N. Sloss; Dominic Symes; Chris Wright. ARM System Developer’s Guide: Designing and Optimizing System Software. Elsevier, 2004. Kinetis Design Studio 3.2.0 Release Notes. Getting Started with Kinetis SDK (KSDK) v.1.2. Cortex-M0+ Devices: Generic User Guide. Prof. Dr. Harlei M. A. Leite (ITA) - EEA-27 Microcontroladores e Sistemas Embarcados

Use Quizgecko on...
Browser
Browser