Guia passo a Passo para a Programação de Microcontroladores

Este é um guia passo a passo para quem deseja iniciar com a Programação de Microcontroladores. O artigo começa com a introdução de alguns termos básicos que serão utilizados no guia, uma lista de ferramentas, linguagens de programação e, no fim, um exemplo de um código para download com um guia passo a passo que você pode usar para praticar a programação de microcontroladores.

mas antes de mergulhar na programação do microcontrolador. Vamos definir os dois primeiros termos básicos: Hardware e Software.

o Hardware consiste nos componentes físicos do sistema, como chips, teclado, mouse, monitor, memórias, dispositivos de E/S. O Hardware é mais difícil de desenvolver em comparação com o software, tem que ser projetado para aplicações muito específicas e é uma solução muito eficiente e perfeita em sistemas de alta velocidade.

o Software são os componentes não físicos ou os aplicativos que são executados no hardware, como sistemas operacionais, jogos de computador e aplicativos de rede. O Software é altamente configurável, fácil e rápido de ser desenvolvido, também muito barato em comparação com o hardware.

o que é um microcontrolador

para entender o que é um microcontrolador, precisamos entender primeiro o que é um microprocessador ou uma CPU (Unidade Central de processamento). Uma CPU é um coração de qualquer sistema de computador, é como o cérebro humano ao realizar uma tarefa. Podemos basicamente dividi-lo em duas partes essenciais:

unidade de controle: Esta unidade é usada para buscar os dados da memória.

unidade de execução: Esta unidade é usada para executar ou executar os dados.

tipos de processadores

existem muitas categorias de processadores, como processadores de uso geral, processador de Sistema Específico de aplicativos e sistema multiprocessador. Processador de propósito geral tem muitos tipos:

▪ Microprocessador

▪ Microcontrolador

▪ processador Embarcado

▪ processador de sinal Digital

Microprocessador é um dispositivo semicondutor ou um computador em um chip, mas não o pleno funcionamento de um computador. Sua unidade central do processador contém

▪ JANTES de

▪ Programa de contadores

▪ Registra

▪ Outros circuitos (relógio de tempo de interrupção)

Um microcontrolador é um circuito integrado que contém um microprocessador e alguns periféricos para ser um funcional completa do computador, periféricos, por exemplo, a ADC, RAM, ROM, DAC.

História do Microcontrolador

Originalmente, a Intel corporation foi o primeiro fabricante de microcontroladores. O primeiro Microcontrolador foi produzido em 1971 nos EUA. Era um microcontrolador de 4 bits com o nome i4004. Ultimamente, a Intel produziu modelos mais sofisticados na época com um microcontrolador de 8 bits e depois disso um microcontrolador de 12 bits foi desenvolvido pela Toshiba.

aplicações de microcontroladores

microcontroladores têm muitas aplicações em muitas indústrias, por exemplo, automotivo, médico, automação industrial, aeroespacial, robótica.

Na indústria automotiva, por exemplo, os carros modernos têm hoje mais de 100 microprocessadores para sistemas de ar condicionado, ABS, EBD e também ADAS ou avançados sistemas de assistência à condução, tais como o adaptive curies controlador e o lane assist, a seguir é uma imagem de uma ECU ou unidade de controle eletrônico.

no domínio médico, existem dispositivos médicos que incluem microcontroladores, como ressonância magnética, conjunto de teste de glicose, ECG portátil. A imagem a seguir, é um dispositivo de teste de glicose.

no setor aeroespacial, a maioria das aeronaves foi projetada com novos sistemas aviônicos usando microcontroladores. Além disso, existem sistemas de controle de vôo, sistema de controle de tráfego aéreo, sistemas de navegação e clima que são todos baseados em microcontroladores.

microcontroladores populares

existem muitos tipos e plataformas de microcontroladores, mas a seleção de um microcontrolador depende de muitos fatores:

▪ Aplicação

▪ Orçamento

▪ Desempenho

▪ Número de pinos GPIO

▪ tamanho da Memória

▪ Temperatura do ambiente de operação

▪ consumo de Energia

Microcontrolador AVR

a imagem A seguir contém um diagrama de bloco de AVE12DA, um dos mais populares do microcontrolador famlily — o microcontrolador AVR:

microcontroladores AVR é produzido pela Atmel corporation (hoje: Microchip), Atmel tem 6 famílias de microcontroladores AVR, 4 famílias como microcontroladores de uso geral e 2 como microcontroladores de propósito específico. De propósito geral, os microcontroladores são:

▪ 8 bits – mega AVR

▪ 8 bits EM Minúsculo

▪ 8 & 16 bit – AVR Xmega

▪ 32 bits – AVR

finalidade Específica microcontroladores são:

▪ Automotivo AVR

▪ Gerenciamento de Bateria

Automotivo do AVR, a partir de seu nome, ele foi desenvolvido para aplicações automotivas. Pode trabalhar sob temperaturas muito altas até 150 Celsius, e inclui sistemas de proteção para problemas de curto-circuito.

o microcontrolador de gerenciamento de bateria é desenvolvido para sistemas de gerenciamento de bateria para proteger as operações de carregamento e descarga.

Exemplos de AVR Plataformas

▪ Arduino UNO

▪ Adafruit fruta Azul Micro

▪ Raspduino

▪ Digispark Pro

BRAÇO Microprocessador/Microcontrolador

BRAÇO microprocessador é o mais popular do processador no mundo, principalmente, em aplicações de consumo. Você pode ter um dispositivo baseado em processador ARM, mas não sabe! O ARM é principalmente um componente-chave de qualquer sistema embarcado de 32 bits bem-sucedido. O primeiro braço foi desenvolvido em 1985.

RISC Technology

ARM é usado RISC technology, RISC significa computador com conjunto de instruções reduzido, é uma filosofia de design fornecer instruções simples dentro de um único ciclo. Depende mais do software. Por outro lado, a tecnologia CISC depende mais do hardware.

a tecnologia RISC se concentra na redução do conjunto de instruções do processador. Por outro lado, o processador CISC possui um número não fixo do conjunto de instruções.

ARM Features

Arm tem muitos recursos para cada designer de sistema embarcado está procurando, por exemplo, Baixo consumo de energia devido ao seu tamanho compacto, também alta densidade de código é outro recurso, uma vez que estamos desenvolvendo sistemas embarcados, teremos recursos limitados na maioria dos casos.

estrutura interna do microcontrolador baseado em ARM

esta figura mostra a estrutura interna da maioria dos dispositivos baseados em ARM:

as caixas representam funções, as linhas representam ônibus. Vamos falar mais sobre cada componente em detalhes:

▪ O BRAÇO processador é o principal componente é responsável pelo processamento de operações

▪ Controladores são utilizados para coordenar as funções do sistema, como memória e controladores de interrupção

▪ Periféricos são usados para fornecer o sistema de entradas e saídas

▪ Um barramento é usado para troca de dados entre os diferentes componentes do sistema

Exemplos de plataformas ARM

Existem muitos dispositivos e plataformas embarcadas que ter braço microprocessador e.g.

▪ Arduino Due

▪ Raspberry Pi

▪ STM32F103C8T6

▪ NXP LPC1768

Outros Microcontrolador e Plataformas

Como já disse antes de selecionar um microcontrolador ou uma plataforma depende de muitos fatores (orçamento, número de pinos, etc.…). Existem também outros microcontroladores e plataformas, por exemplo.

▪ Microcontroladores PIC

▪ 8051

▪ ESP32

▪ Motorola Microcontroladores

Microcontrolador Ferramentas de Software e Hardware

Desde a criação do microcontrolador, tem havido muitos tipos de software e ferramentas de desenvolvimento de hardware. Claro, algumas das ferramentas podem ser usadas em vários tipos de microcontroladores, mas algumas são muito específicas por microcontrolador. Antes de começar com a programação do microcontrolador, você pode querer se familiarizar com as ferramentas de programação do microcontrolador e, por último, mas não menos importante, o processo de desenvolvimento.

Usando o embedded ferramentas de desenvolvimento, podemos precisar de ferramentas da seguinte forma:

Montador

é uma ferramenta de software que converte seu código-fonte em assembly para código de máquina, por exemplo (GNU assembler).

compilador

é um programa de software que cobre seu código-fonte em uma linguagem de programação de alto nível em linguagem assembly ou código de máquina. Compilação pode ser:

▪ Nativo: isso significa que você executar o compilador e o código gerado na mesma máquina

▪ Cruz: Isto significa que você executar o compilador em uma máquina e o código gerado é executado em um computador diferente (processador de arquitetura).

vinculador e localizador

um vinculador é um programa que coleta e vincula as compilações e monta operações e produz um único exe.

um localizador é uma ferramenta de programa que pode ser usada para alterar o mapa de memória da saída do vinculador.

Simulator

é um programa que imita cenário real, produz uma aproximação dos sistemas em tempo real. Um simulador é usado:

▪ se o hardware real não disponível

▪ perigosas ambientes de teste e cenários

Depurador

É um programa de software e de hardware do dispositivo que pode ser conectado ao meu PC para o meu incorporado de destino. Um depurador é usado:

▪ definir pontos de interrupção

▪ para rastreamento de execução

▪ despejo de memória

Hardware depurador pode ser

▪ in-circuit debugger

▪ depuração do software de agente de bordo

Flash loader

é um programa e dispositivo de hardware que pode ser usado para:

▪ Programa de ROM/Flash

▪ observar as variáveis

▪ Apagar ROM/Flash

Profiler

Profiler é uma ferramenta para monitorar o desempenho do software de código

Ambiente de Desenvolvimento Integrado

é um programa de software que tem a maioria das ferramentas tudo em um. Pode incluir

▪ editores de Texto

▪ Compiladores

▪ Depuradores

▪ criadores de perfil

▪ Simuladores

▪ Vinculadores

Microcontrolador Linguagens de Software

, podemos classificá-los em dois tipos:

Alto nível

▪ C/C++

▪ Java

▪ Ada

Usando este tipo de fornecer uma abstração de hardware de nível

Baixo nível

código de computador

é 0 e 1s e difícil de ser escrito por seres humanos, mas fácil de computadores para compreender a

Assembly

é um mnemônico código e o pseudo-instruções para melhorar a legibilidade

Exemplos:

uma instrução consiste em mnemônico (opcode) + operandos

Opcode é uma operação realizada por um processador de máquina

operandos é o alvo final; o opcode tem que tomar uma operação para.

a linguagem Assembly é legível e compreensível mais do que o código da máquina, mas você precisa usá-la em um processador específico e ter conhecimento de sua arquitetura.

C/C++ Linguagens de Programação

linguagens de Alto nível têm as seguintes características

▪ Fácil escrever

▪ Flexível

▪ Processador independente

▪ Alta produtividade

Programação de Microcontroladores Exemplo Usando o AVR ATMEGA16

ATmega 16 tem as seguintes características:

▪ 16 Kb de sistema de Auto memória flash programável

▪ 512 Bytes de EEPROM

▪ 1 Kbyte Interno SRAM

▪ Programação de Bloqueio de segurança

Recursos Periféricos

▪ em Tempo Real Contador Separado para o Oscilador

▪ Programável Serial USART

▪ Quatro Canais PWM

▪ 8-canal, de 10-bit ADC

▪ On-chip Oscilador

▪ Energia em Repouso e Marrom-limite de Detecção

▪ Oscilador RC Interno e Interrupção Fontes

▪ Tensões (de 2,7 v a 5.5V)

LED Piscando exemplo de programa usando ATmeg16 e Proteus

LED piscando programa em sistemas embarcados como o programa “hello world” no desenvolvimento de aplicativos. No exemplo a seguir, você aprenderá e usará o Proteus simulator para executar seu primeiro programa. Para baixar os arquivos de origem, vá para esta pasta.

Gravar seu programa usando Atmel studio

Depois de baixar o IDE,

a programação de microcontroladores AVR

abrir e escolha new project e escolha o local do arquivo hex como na imagem a seguir

programação de microcontroladores AVR

O próximo passo é escolher o microcontrolador da família

programação de microcontroladores AVR

Depois que você vai receber a seguinte janela com acionador de partida de código

programação de microcontroladores AVR

E agora, por favor, escreva o seguinte código

programação de microcontroladores AVR

O próximo passo é construir o seu programa pressionando F7

programação de microcontroladores AVR

Depois que você vai encontrar o arquivo hex no local escolhido,

programação de microcontroladores AVR

O próximo passo é utilizar o simulador Proteus

E, agora, criar um diagrama esquemático de um modelo

programação de microcontroladores AVR

E escolha a não criar um layout de PCB

programação de microcontroladores AVR

Finalmente, estamos a fazer, mas precisamos adicionar o arquivo hex como na imagem a seguir

programação de microcontroladores AVR

Agora editar CKSEL Fusíveis

programação de microcontroladores AVR

Salvar e clique em play

E você pode ver que o LED está desligado para 500ms (lado esquerdo) e para 500ms (lado direito)

Programa de Explicação, linha por linha

Para baixar os arquivos de origem, por favor, vá para esta pasta.

#define f_CPU 100000UL // para criar uma constante e escolher a velocidade do processador

#include <avr/io.h > / / para recuperar alguns arquivos para entradas e Saídas

#include <avr / delay.h> // recuperar este arquivo para usar funções de atraso

int main(void){ // a função e o programa principal

DDRA = 0b0000001; // configurar o pin como uma saída / direção

While(1){ // loop para sempre

PORTA = 0b00000001; // para fazer o PA0 = 1 e a saída 5v (LED)

_delay_ms(500); // atraso de meio segundo

PORTA = 0b0000000; // para fazer o PA0 = 0 e a saída de 0v (LED desligado)

_delay_ms (500); //atraso de meio segundo

}

retorno 0;

} //final do programa

Conclusão

Hoje em dia, os sistemas embarcados são utilizados na vital e pode ser usado para proteger e guardar um monte de pessoas, como na área médica e outras aplicações. Você deve continuar aprendendo depois de obter uma visão geral e introdução sobre programação de microcontroladores. Seu próximo passo deve ser aprender design de software incorporado e sistemas acionados em tempo real.

https://www.faa.gov/regulations_policies/handbooks_manuals/aviation/phak/

microcontrolador AVR e sistemas embarcados: Pearson New International Edition: usando Assembly E C, Muhammad Ali Mazidi, DeVry University

ARM System Developer’s Guide Designing and Optimizing System Software um volume na série Morgan Kaufmann em Arquitetura de computadores e Design Book • 2004

Leave a Reply

O seu endereço de email não será publicado.