top of page

MICROCONTROLADORES

Microcontrolador

 

Um microcontrolador é um chip que contém praticamente um pequeno computador embutido, de baixo custo, incluindo:

  • Núcleo de processamento

  • Memórias RAM / ROM /Flash

  • Periféricos de E/S

  • Conversores de sinais

  • Gerador de Clock, entre outros.

Os microcontroladores, ou MCU (microcontroller unit) são projetados para uso em aplicações embarcadas e outros sistemas específicos.

 

Aplicações dos microcontroladores

 

Os microcontroladores encontram um número enorme de aplicações na eletrônica moderna, como por exemplo:

  • Sistemas embarcados

  • Brinquedos

  • Sistemas R/C (controle remoto)

  • Máquinas industriais e comerciais

  • Eletrodomésticos

 

Vantagens

 

Existem diversas vantagens no uso de microcontroladores para a construção de circuitos eletrônicos. Dente elas, podemos citar as seguintes:

  • Custos baixos de projeto e construção

  • Consumo de energia mínimo

  • Facilidade de programação

  • Sistema compacto (“all in one”)

  • Praticidade para reposição

 

MCU x CPU

 

Vamos fazer uma pequena comparação entre Microcontroladores e Microprocessadores.

Um microcontrolador é diferente de um microprocessador de várias maneiras. O principal ponto é a funcionalidade. Um microprocessador necessita de diversos componentes externos, como memórias, barramentos e periféricos para poder operar. O MCU contém esses elementos todos embutidos.

Além disso, um microprocessador geralmente faz parte de um sistema programável genérico, como um computador, ao passo que o MCU realiza apenas a tarefa específica para o qual foi programado, dentro de unm circuito eletrônico.

 

Arquiteturas Harvard x Von Neumann

 

Há basicamente dois tipos de arquiteturas de computadores digitais: Harvard e von Neumann

A arquitetura Harvard tem esse nome pois tem suas raízes no computador Harvard Mark I. Sua característica principal é que ela possui memórias separadas para armazenamento de dados e instruções. Desta forma, é possível acessar a memória de programa e a memória de dados simultaneamente. Geralmente a memória de programa (instruções) e´somente=leitura e a memória de dados é leitura/escrita. Assim, é impossível que o conteúdo de um programa seja modificado pelo programa em si.

Já a arquitetura von Neumann batizada a partir do matemático e cientista da computação John von Neumann. As máquinas com arquitetura von Neumann possuem um único sistema de armazenamento compartilhado para armazenar dados e as instruções a serem executadas. Desta forma, os programas podem ser facilmente modificados por si próprios, pois ficam armazenados na memória que é leitura/escrita.

Arquitetura Harvard

Usada em processadores convencionais encontrados em PCs e Servers, e em alguns sistemas embarcados.

Dados e programas são armazenados na mesma memória.

O código é executado de forma serial e demora mais ciclos de clock.

Os programas, geralmente, podem ser otimizados para diminuir de tamanho.

Arquitetura von Neumann

Usada em microcontroladores e DSPs encontrados em sistemas embarcados e sistemas de comunicação móveis

Dados e programas são armazenados em memórias separadas.

O código é executado de forma paralela.

Os programas tendem a ser maiores com a complexidade.

Periféricos típicos de um MCU

 

Um microcontrolador possui, tipicamente, os periféricos listados a seguir:

  • Conversores ADC / DAC

  • Timers

  • Linhas PWM (Pulse Width Modulation)

  • Interface USB

  • Interfaces UART, I2C, SPI

  • Ethernet, CAN (Controller Area Network)

Um CAN (Controller Area Network) é um barramento projetado para que microcontroladores e outros dispositivos, como sensores, se comuniquem entre si sem a necessidade de um computador host.

 

Exemplos de Microcontroladores

 

Vejamos alguns exemplos típicos de microcontroladores comuns encontrados no mercado e usados comumente em projetos eletrônicos:

  • ARM Cortex-M

  • Atmel AVR / AVR 32

  • Intel 8051

  • Microchip PIC

  • NXP LCP 2000 / 3000

  • Paralax Propeller

  • Texas Instruments MSP430

Programação de um Microcontrolador

  • Os microcontroladores não possuem, geralmente, um sistema operacional; os programas rodam diretamente no chip (bare metal).

  • O software que roda no microcontrolador é chamado de Firmware.

  • O software é programado em linguagens C ou Assembly na maior parte dos casos, embora seja possível usar outras linguagens em alguns MCUs.

  • A programação é feita como o uso de ferramentas instaladas em um PC (IDE)

 

Placas para estudo de microcontroladores

 

Há no mercado diversos kits e placas para estudo e prototipagem de sistemas embarcados

e programação de microcontroladores. Como exemplo, podemos citar:

  • Plataforma Arduino

  • Microchip PIC Starter Kit

  • Texas Instruments MSP430 Launchpad

  • Keil MCB900 (NXP)

Os microcontroladores são microprocessadores que podem ser programados para funções específicas. Em geral, eles são usados para controlar circuitos e, por isso, são comumente encontrados dentro de outros dispositivos, sendo conhecidos como "controladores embutidos". A estrutura interna de um microcontrolador apresenta um processador, bem como circuitos de memória e periféricos de entrada e saída.
 

Principais Características

Com freqüências de clock de poucos MHz (Megahertz) ou talvez menos, os microcontroladores operam a uma freqüência muito baixa se comparados com os microprocessadores atuais, no entanto são adequados para a maioria das aplicações usuais como por exemplo controlar uma máquina de lavar roupas ou uma esteira de chão de fábrica. O seu consumo em geral é relativamente pequeno, normalmente na casa dos miliwatts e possuem geralmente habilidade para entrar em modo de espera (Sleep ou Wait) aguardando por uma interrupção ou evento externo, como por exemplo o acionamento de uma tecla, ou um sinal que chega via uma interface de dados. O consumo destes microcontroladores em modo de espera pode chegar na casa dos nanowatts, tornando-os ideais para aplicações onde a exigência de baixo consumo de energia é um fator decisivo para o sucesso do projeto.
 

Comparação com os Microprocessadores

Os microcontroladores se diferenciam dos processadores, pois além dos componentes lógicos e aritméticos usuais de um microprocessador de uso geral, o microcontrolador integra elementos adicionais em sua estrutura interna, como memória de leitura e escrita para armazenamento de dados, memória somente de leitura para armazenamento de programas, EEPROM para armazenamento permanente de dados, dispositivos periféricos como conversores analógico/digitais (ADC), conversores digitais/analógicos (DAC), Portas de entrada e Saída digitais(I/O) para propósito geral.
 

Projeto de Sistemas

De forma oposta aos microprocessadores, onde se superdimensiona ao máximo tendo como limite o preço que o usuário deseja investir, a escolha do microcontrolador é feita pelo projetista do equipamento. É erro de projeto superdimensionar. Cada desperdicio será multiplicado pelo numero de equipamentos fabricados (as vezes milhões). Por isso existem duas linhas de pesquisa paralelas mas opostas[carece de fontes]: uma criando microcontroladores mais capazes, para atender produtos de mais tecnologia como os novos celulares ou receptores de TV digital e outra para criar microcontroladores mais simples e baratos, para aplicações elementares (como um chaveiro que emite sons).
 

Evolução

A imagem a seguir representa a evolução desses caras, note que apenas alguns poucos e comuns modelos foram colocados na ilustração, existem milhares de famílias de microcontroladores no mercado.

arquiteturas-harvard-von-neumann-microco
microcontroladores-MCU.jpg
placas-microcontrolador-arduino-texas-in
microcontroladores.png

Uma lista de considerações de design

Aqui estão algumas considerações para pensar:

Energia - o seu projeto funciona com baterias ou energia de parede? Se usar apenas baterias, considere um design que economize energia para funcionar por mais tempo entre as trocas de bateria. Ou considere se a energia solar ou outras fontes de energia podem ser desejáveis.
 
Velocidade - o seu projeto tritura muitos números ou coleta grandes quantidades de dados? Então a velocidade pode ser boa. Caso contrário, se o projeto for relativamente simples, uma placa menor e mais lenta poderá ser perfeitamente fina (e menos cara).
 
Preço - qual é o seu orçamento? Tenha isso em mente ao fazer compras, mas não considere comprar nada que não atenda ao design do seu projeto.
 
Comunicações - o seu projeto precisa transmitir informações para você ou outros dispositivos? Considere como fazer isso. Projetos habilitados para rádio são ótimos, mas eles exigirão um transmissor e um receptor, então a quantidade de hardware pode ser o dobro do que você pensou. Você pode se comunicar via USB para um computador com muita facilidade. Ou talvez sinais infravermelhos?
 
Programação - menos de uma consideração, mas importante. Seu tempo é valioso, então algo mais fácil de programar pode economizar tempo / dinheiro, mesmo que seja um pouco mais caro.
O mais fácil de programar placas usa o Microsoft MakeCode, uma interface semelhante a bloco / Scratch, e só se aplica a uma seleção limitada de placas, como o Adafruit Circuit Playground Express.
O CircuitPython é mais amplamente suportado em placas Adafruit, mas não em todos.
Finalmente, a maioria das placas pode ser programada através do ambiente de código do Arduino, mas há uma curva de aprendizado mais alta. O Adafruit Learning System terá exemplos, mas você terá que se sentir confortável para estender o código às suas próprias necessidades, se necessário.

microcontrollers.jpg

Tipos de Microcontroladores

 

Microcontroladores são descritos em termos do número de bits que a CPU pode processar ou entrar e sair da memória de uma só vez. Os principais sabores dos dias de hoje são dispositivos de 8 bits e 32 bits.

Esses termos são apenas uma forma abreviada de diferenças mais importantes no modo como os chips são feitos.

Todos os microcontroladores contêm um processador que executa código e um conjunto de circuitos adicionais chamado 'periféricos' que fornecem funções adicionais: USB, interfaces seriais, ADCs, timers e assim por diante. A maior diferença entre microcontroladores é a relação entre o processador, os periféricos e os pinos físicos que saem do pacote.

Microcontroladores de 8 bits

Dispositivos de 8 bits são o tipo mais simples disponível nos dias de hoje e têm sido usados ​​há mais tempo. Eles são geralmente simples o suficiente para que você possa aprender tudo sobre eles em um período de tempo razoável e pode haver mais código de exemplo disponível na Internet.

 

O Arduino Uno e o Adafruit Metro 328 (compatível com Uno) são as placas mais comuns no mercado de 8 bits com muitos softwares disponíveis. O minúsculo Adafruit Trinket também é de 8 bits com menos recursos.

 

Os periféricos de um microcontrolador de 8 bits são conectados mais ou menos diretamente ao processador e aos pinos físicos.

Se você alterar a voltagem em um pino, o periférico converte isso em um valor no processador, então seu código pode usar esse valor. A saída do código para os pinos físicos funciona da mesma maneira.

Alguns microcontroladores de 8 bits têm apenas alguns periféricos, enquanto outros têm muitos, mas o design geral tende a permanecer o mesmo: os periféricos conectam os pinos físicos aos valores de dados no processador.

Microcontroladores de 32 bits

Um dispositivo de 32 bits é mais parecido com uma loja de hardware em uma caixa muito pequena. O microcontrolador real é apenas uma pequena parte do chip, e geralmente nem é discutido na folha de dados. Os fabricantes de chips tendem a licenciar projetos de processadores genéricos como a série ARM Cortex.

 

Os periféricos em um microcontrolador de 32 bits são mais parecidos com dispositivos separados conectados a um ou mais barramentos de dados, e quase tudo é um periférico. No SAMD21 (que usamos no Adafruit Circuit Playground Express e no Adafruit Feather M0 Express), o clock da CPU, a RAM e a matriz de memória Flash são todos periféricos.

Mais sobre periféricos com chips de 32 bits
Periféricos são os 'extras' além do simples processamento de números - como pinos digitais de I / O, toque capacitivo, ADC, SPI, I2C, UART, I2S, etc ...

Os periféricos não têm nenhuma conexão direta com o processador. Os periféricos mais tradicionais, como o hardware ADC e SPI, são conectados a um barramento de dados separado.

As conexões entre os periféricos ligados aos barramentos de dados são tratadas por uma rede de comutação interna e isso tem dois efeitos colaterais interessantes. Primeiro, os periféricos podem ser executados a partir de diferentes clocks em diferentes taxas. Segundo, os periféricos podem se comunicar diretamente entre si, sem nenhum controle do código executado no processador. Chips com um periférico de acesso direto à memória (DMA) podem mover blocos inteiros de dados de um periférico para outro. Você pode configurar um chip para fazer muitas coisas interessantes com o microcontrolador real completamente desligado.

Todos os pinos físicos são conectados a um único periférico chamado o multiplexador de pinos. Em alguns chips, o multiplexador pode conectar qualquer pino físico a qualquer sinal em qualquer periférico. O SAMD21 geralmente fornece aos periféricos dois ou três pinos que podem manipular um determinado sinal, e um único pino físico pode ter até nove conexões possíveis com periféricos.

A liberdade de configurar periféricos e mover sinais ao redor faz com que os microcontroladores de 32 bits sejam extremamente flexíveis, mas também há algumas desvantagens.

O software escrito para um produto Adafruit pode não ser 100% compatível com um produto Arduino ou de outro fabricante, mesmo que eles usem o mesmo chip.

Portanto, pode haver menos código na Internet para mostrar como usar um chip de 32 bits. Felizmente, a Adafruit investiu bastante para fornecer exemplos de código, bibliotecas de código reutilizáveis ​​e tutoriais para usar facilmente seus produtos mais avançados.

microcontrollers_NewImage93.png

O ESP8266 é um exemplo: ele é projetado para fazer WiFi a um custo muito baixo. Tem poucos pinos de entrada / saída e periféricos, mas um dos periféricos é um rádio WiFi. Ele possui uma grande coleção de firmwares integrados e um sistema operacional simples que mantém o rádio WiFi rodando mais ou menos independentemente do código que você carrega.

Alguns projetos procuram usar este chip sem WiFi apenas devido ao custo. Mas a falta de pinos e periféricos de entrada / saída muitas vezes torna necessário mudar para um chip mais capaz.

O ESP32 e o nRF52 também são SOCs. O ESP32 destina-se a ser uma solução única de compra para qualquer dispositivo com uma conexão de dados sem fio. Ele pode fazer WiFi, Bluetooth Classic e Bluetooth Low Energy (BLE). O nRF52 se concentra no BLE e pode operar como um dispositivo central BLE.

System On Chip Devices (SOC)

Um SOC é geralmente um microcontrolador de 32 bits projetado para fazer uma coisa específica. Ele fez as compensações necessárias para ser bom nessa coisa, em detrimento do desempenho geral.

8bits

Microcontroladores de 8 bits:


Microcontroladores de 8 bits só podem ser programados com o Arduino IDE. Eles não são poderosos o suficiente para o MakeCode ou o CircuitPython.

Observe que o diferencial de custo entre 8 bits e os processadores de 32 bits mais capazes diminuiu bastante nos últimos dois anos, de modo que a pequena diferença de custo pode valer a maior funcionalidade fornecida pelas placas de 32 bits.

O ATtiny85
Pequeno e simples, o ATtiny85 é um processador de 8 bits em um pacote de 8 pinos. Funciona a 8MHz e possui 6 pinos GPIO.

O ATtiny85 é de baixo custo, mas nós não o recomendamos mais porque o USB bit-bang é chato de usar. Considere o Trinket M0 e Gemma M0 como upgades de 32 bits!
 microcontrollers_1501-12.jpg
Ele tem 8 kilobytes de Flash para armazenar firmware, 512 bytes de RAM e 512 bytes de EEPROM que você pode ler e escrever a partir do código.

 

Para periféricos, possui dois timers de 8 bits que podem gerar sinais PWM, uma interface serial universal que pode ser configurada para falar I2C ou SPI, um comparador de tensão analógico e um ADC de 10 bits.

 

Adafruit usa no Trinket e Gemma originais.

O ATtiny85 é um bom chip para tarefas muito pequenas, como a leitura de três ou quatro entradas e a decisão de qual saída produzir, ou para gerar atrasos de tempo. Um módulo de energia flexível para um Raspberry Pi seria um exemplo: apertar o botão liga a energia. Quando você aperta o botão novamente, o microcontrolador gera um sinal que diz ao RasPi para fazer um desligamento ordenado, aguarda um tempo, depois corta a energia depois que o RasPi foi desligado completamente.

Você poderia construir esse circuito a partir de portas lógicas, mas seria complicado. Você também pode usar um microcontrolador maior, mas isso é mais dinheiro e espaço físico para um chip com muitos recursos que você não usa. O ATtiny85 é menor e mais barato que qualquer outra opção.

O ATmega328P
Este é o chip que o Arduino Uno tornou famoso. É um microcontrolador de 8 bits que normalmente roda a 16MHz e possui 23 pinos GPIO.

 microcontrollers_123-02.jpg
 microcontrollers_123-02.jpg microcontrollers_2488-09.jpg
Possui 32K de memória de programa Flash, 2K de RAM e 1K de EEPROM.

 

Para periféricos, possui dois temporizadores de 8 bits e um temporizador de 16 bits, seis canais PWM, um ADC de 10 bits e interfaces separadas de serial, I2C e SPI de hardware.

 

Nós o usamos no Metro 328P, Feather 328P e Pro Trinket.

 

É um bom chip para projetos de hardware programável, como demonstrado pelos milhares de projetos que as pessoas construíram em torno do Arduino Uno. Ele possui pinos de dados suficientes para ler vários sinais de entrada, coletar informações de sensores I2C ou SPI externos, controlar um monitor LCD ou TFT e enviar informações de volta a um computador por meio de sua porta serial USB.

O ATmega32u4
O 32u4 é mais comparável ao 328P, mas também é um dispositivo USB de velocidade total (12Mbps). É um microcontrolador de 8 bits que geralmente roda a 16MHz e possui 26 pinos GPIO. O grande benefício é o USB nativo, que possibilita que o 32u4 funcione como um mouse USB, teclado, MIDI etc. Os demais periféricos em geral são quase idênticos aos do 328P.

O 32u4 é usado no Arduino Leonardo e muitos compatíveis.

 microcontrollers_3677-00.jpg
Tem 32K de programa Flash e 1K de EEPROM como o 328P, mas tem 2.5K de RAM.

 

Para periféricos, possui um temporizador de 8 bits, um temporizador de 10 bits, dois temporizadores de 16 bits, quatorze canais PWM, uma interface serial de hardware que também pode ser configurada como uma interface SPI, interfaces I2C e SPI separadas, um bit ADC e (obviamente) uma interface USB de 12Mbps.

 

Adafruit usa no Pro Trinket, Flora, 32u4 Feather, 32u4 ItsyBitsy e Circuit Playground Classic.

O periférico USB dá ao ATmega32u4 duas grandes diferenças em relação ao ATmega328P:

O bootloader 32u4 não precisa usar outro chip de interface serial de hardware, de forma que esses pinos estejam livres para se comunicar com dispositivos externos ou outros microcontroladores.
Você pode programá-lo para funcionar como diferentes tipos de dispositivos USB, como um teclado e mouse, ou um controlador MIDI.
Isso torna o 32u4 uma boa escolha para projetos que precisam se comunicar com um computador e onde você deseja manter algumas 'compatibilidades de código do 328P

32bit

Microcontroladores de 32 bits:


32 bits é mais que 8 bits! Isso torna essas placas mais rápidas e mais poderosas. Além da matemática de 32 bits, você também pode esperar muito mais memória Flash, memória RAM e velocidade de clock.

O mundo está se voltando para o uso de 32 bits para todos os microcontroladores. Adafruit gosta da série ARM Cortex M0 e M4, estes são núcleos muito populares com bom suporte ao compilador. (Comparado com os núcleos de 8 bits que são proprietários apenas do Atmel!)

O preço das placas com base em M0 caiu para os mesmos níveis da maioria das placas de 8 bits, portanto, o custo geralmente não é considerado.

Esses chips são rápidos e poderosos, então eles podem rodar o MakeCode e o CircuitPython, assim como o Arduino.

O SAMD21G
O SAMD21G usa um microcontrolador ARM Cortex M0 +, que é quase tão pequeno e simples quanto os dispositivos de 32 bits.

 microcontrollers_2772-01.jpg
Funciona a 48MHz, geralmente estabilizado por um oscilador de cristal externo de 32.768Hz, e possui 38 pinos GPIO.

 

Tem 256K de memória Flash e 32K de RAM. Não possui EEPROM, mas você pode ler e gravar seções do array Flash a partir do código.

 

Ao contrário dos microcontroladores de 8 bits, um microcontrolador de 32 bits pode ter várias cópias de um periférico que são chamadas de 'instâncias'.

O SAMD21G possui:

três instâncias de um temporizador básico, cada um dos quais pode ser configurado com 8. 16 ou 24 bits e pode gerar duas formas de onda PWM.
três instâncias de um temporizador avançado, dois de 24 bits e um de 16 bits, cada um dos quais pode gerar até oito formas de onda PWM.
seis instâncias de uma Interface de Comunicação Serial (SERCOM), cada uma das quais pode ser configurada como uma interface Serial, I2C ou SPI.
uma interface I2S para áudio digital.
um ADC de 12 bits que pode receber entrada de qualquer um dos 14 pinos
um DAC de 10 bits
um controlador de toque periférico que pode ler uma matriz de 12x10 de sensores de toque capacitivos
uma interface USB de velocidade máxima (12Mbps)
Ele também possui um sistema Event que permite que os periféricos conversem entre si diretamente e um sistema Direct Memory Access (DMA) de 12 canais que pode copiar dados de um periférico para outro sem fazer a CPU ler e gravar os bytes diretamente.

Nós o usamos no Feather M0, no Metro M0 Express, no ItsyBitsy M0 Express e no Circuit Playground Express.

É um dispositivo feito para processar números e passar grandes quantidades de dados. É bom para projetos em que você deseja controlar um grande número de LEDs programáveis ​​ou fazer processamento básico de áudio e vídeo.

Ele também tem poder de processamento suficiente para executar um interpretador Python, portanto, é nossa plataforma básica para o CircuitPython.

O SAMD21E
O SAMD21E é uma versão ligeiramente menor do SADM21G, com 32 pinos GPIO.

 microcontrollers_3500-00.jpg
Tem a maioria das mesmas especificações do SAMD21G, mas:

 

Seus contadores avançados podem gerar seis sinais PWM por instância, em vez de oito
Tem quatro SERCOMs em vez de seis
Seu ADC pode ler 10 pinos em vez de 14
Seu PTC pode manipular uma matriz de 10x6 em vez de 12x10
Nós o usamos no Trinket M0 e Gemma M0, onde quase nenhum dos pinos GPIO ou seus periféricos são quebrados na borda da placa. Nesses formulários, eles são basicamente pequenos dispositivos CircuitPython.

99% do código que roda no SAMD21G18 será executado no E18, já que é apenas uma versão reduzida!

O SAMD51
O SAMD51 é uma nova família de dispositivos da Atmel-now-Microchip, construída em torno de um microcontrolador ARM Cortex M4 muito rápido. É uma atualização super poderosa. Neste momento, temos suporte a CircuitPython e Arduino. Espero que o MakeCode também venha, mas até o momento, ainda não!

O '51 é um upgrade para o '21, então há muitas semelhanças. A maior parte do código para o '21 será executado em um '51, mas 6x mais rápido. No entanto, é um núcleo diferente, por isso não é uma atualização simples.

 microcontrollers_3857-00.jpg
É mais complexo e mais rápido que o M0 + e inclui uma unidade matemática de ponto flutuante de hardware e uma matriz de processamento de sinal digital (um comando aplica uma operação matemática a um bloco inteiro de dados).

 

Tem 512K de memória Flash e 192K de RAM. Funciona a 120MHz e possui 51 pinos GPIO.

Para periféricos, tem:

seis instâncias de temporizador de 8/16/24 bits, cada uma com duas saídas PWM
duas instâncias de contador avançadas de 24 bits e três de 16 bits, cada uma com oito saídas PWM
seis instâncias de SERCOM
duas instâncias de ADC de 12 bits
duas instâncias do DAC de 12 bits
uma interface I2S
uma interface USB de velocidade total (12MBps)
Decodificador de posição de uma quadratura (para leitura de encoders rotativos)
uma interface QSPI (para usar chips SPI Flash de alta velocidade)
um Controlador de Captura Paralela de 10 bits (para leitura de entrada de vídeo)
um conjunto de dispositivos cryptogtraphy incluindo um gerador de número aleatório verdadeiro, um bloco AES e um bloco de chave pública
quatro instâncias configuráveis ​​de lógica customizada (basicamente mini-FPGAs)
Ele tem 32 canais DMA e seu PTC pode ler uma matriz de 256x32 de sensores de toque capacitivos.

Nós o usamos no Metro M4, Feather M4 e ItsyBitsy M4, e no NeoTrellis M4.

Este chip é feito para processamento de sinal digital: calculando FFTs de entrada de áudio em tempo real e gerando / misturando sinais de áudio ou vídeo. Ele possui recursos como proteção de memória que o deixariam operar como um computador em grande escala, mas isso seria um desperdício de suas habilidades. Sem a sobrecarga de um sistema operacional, ele pode superar um Raspberry Pi Zero para algum processamento de sinal em tempo real.

SoC

System-On-a-Chip (SOCs)


O STM32F205


Este é o chip principal do WICED Feather. Sua CPU é um microcontrolador de 32 bits projetado pela ST Microelectronics, um dos principais fabricantes de chips.

Ele roda a 120MHz e o microcontrolador bruto tem 1MB de Flash e 128K de RAM. Você só pode programá-lo com o Arduino

 microcontrollers_3056-06.jpg
Você não pode usar mais do que isso, porque a placa vem pré-carregada com o sistema operacional WICED para controladores Wifi. Seu código recebe 128K de Flash para armazenamento de programas e 16K de RAM.

 

Para periféricos, tem:

12 pinos GPIO
uma interface SPI
uma interface I2C
três interfaces seriais
um ADC de 12 bits
dois DACs de 12 bits
um rádio Wifi


A interface Wifi e o sistema operacional WICED são os dois maiores recursos desta placa. Ele foi projetado para ser o núcleo de um dispositivo IoT habilitado para Wi-Fi.

O nRF52832


Este é o chip principal da NRF52 Feather. Sua CPU é um microcontrolador ARM Cortex M4 rodando a 120MHz, com uma unidade de ponto flutuante de 64MHz (FPU).

Possui 512K de Flash para armazenamento de programas, 64K de RAM e 19 pinos GPIO.

Este chip tem suporte ao Arduino e também suporte ao CircuitPython (no momento em que este texto foi escrito, ele é o Alpha, mas certifique-se de que não conseguimos um lançamento estável!)

 microcontrollers_3406-08.jpg


Para periféricos, tem:

um ADC de 12 bits
três instâncias de temporizador que podem gerar cada uma quatro formas de onda PWM
três interfaces SPI
duas interfaces I2C
uma interface serial
uma interface de áudio I2S
uma entrada de áudio de modulação de densidade de pulso
dispositivos de criptografia, incluindo um gerador de números aleatórios reais e um bloco AES
um decodificador de quadratura

os relativamente menores. O grande problema para este é o seu rádio Bluetooth Low Energy (BLE) integrado.

O nRF52 é o único microcontrolador que a Adafruit transporta e que pode operar como um dispositivo central BLE. Como os outros SOCs nesta lista, ele executa um sistema operacional simples que alterna entre seu código e o firmware interno que mantém o rádio BLE funcionando.

Este é projetado para ser o núcleo de um dispositivo BLE.

O nRF52840 similar está sendo projetado para produtos de próxima geração e parece ser um chip muito capaz em projetos.

O ESP8266


O ESP8266 foi uma espécie de sensação na Internet quando foi lançado pela primeira vez: um microcontrolador com capacidade Wi-Fi embutida, vendido por cerca de US $ 6 em pequenas quantidades (menos da metade do que outros chips WiFi não microcontroladores custavam na época). Houve um porém: não havia absolutamente nenhuma documentação pública.

Ele também tem o menor número de GPIO disponível, GPIO de uso especial e um sistema operacional 'oculto' que pode dificultar alguns projetos e uso.

 microcontrollers_2821-05.jpg
Não demorou muito para a curiosidade combinada da comunidade da Internet desvendar a maioria dos mistérios do chip. Em seguida, a Espressif, a empresa que produz o ESP8266, começou a conversar com essa comunidade e a liberar a documentação oficial. Pode ser uma das mais eficazes campanhas de marketing viral da psicologia reversa da história.

 

Para alcançar seu ponto de preço incrivelmente baixo, Espressif sacrificou quase todo o resto. A parte do microcontrolador é uma arquitetura de Tenselica L106 Diamond de 32 bits sendo executada a 80 MHz.

Ele tem nove pinos GPIO, três dos quais controlam a maneira como o microcontrolador se comporta quando é inicializado. O código do usuário recebe menos de 36K de RAM, mas o chip possui 4MB de memória Flash.

Para periféricos, tem:

uma interface SPI
uma interface I2C
uma interface I2S
uma interface serial
quatro canais PWM
um ADC de 10 bits que pode ler valores entre 0V e 1V
O grande problema para este é, obviamente, a sua interface WiFi. Esse chip é feito para ser o núcleo de dispositivos WiFi IoT simples que não precisam fazer muitas conexões físicas com outros dispositivos.

A CPU tem recursos de processamento suficientes para executar um interpretador Python. Adafruit carrega a pena HUZZAH com ESP8266 O Flash de 4MB faz do ESP8266 uma plataforma adequada para o CircuitPython. Mas, se o CircuitPython é uma consideração primordial, a Adafruit recomenda chips mais capazes, como as placas M0, para a melhor experiência.

O ESP32


O ESP32 é o chip mais recente da Espressif, que também desenvolveu o ESP8266.

 microcontrollers_3405-06.jpg
Ele foi projetado para ser uma solução de compra única para dispositivos IoT.

 

O microcontrolador é um microcontrolador de 32 bits Xtensa L6 de um ou dois núcleos, funcionando a 160 MHz ou 240 MHz.

 

Ele usa um chip SPI Flash rápido externo para armazenamento de programas (até 16 MB, Adafruit usa um chip de 4 MB). Tem 540K de RAM e 34 pinos GPIO.

Para periféricos, tem:

um gerador PWM de 16 bits com 16 canais de saída
três interfaces seriais
três interfaces SPI
três interfaces I2C
um ADC de 12 bits que pode ler qualquer um dos 18 pinos
duas instâncias do DAC de 8 bits
duas interfaces I2S
dez instâncias do sensor de toque capacitivo
sensores de temperatura e campo magnético
uma interface IR de 8 canais
um MAC Ethernet de 10/100 Mbps
uma interface de host SDIO que pode ler / gravar dados de um cartão SD
uma interface escrava SDIO que pode funcionar como um cartão SD
oito instâncias de contador de pulsos, cada uma das quais pode capturar 4 sinais
Mas os recursos principais são os rádios WiFi, Bluetooth Classic e BLE. O processador dual-core significa que o chip não precisa gastar tanto tempo alternando entre o código que você carrega e o sistema operacional interno que mantém os rádios funcionando.

É um design ambicioso, mas ainda é um trabalho em andamento. Há muitas peças e, às vezes, elas interagem de maneiras inesperadas. O Espressif está encontrando, consertando e ajustando esses problemas, mas é um processo de testar opções para ver como eles funcionam no campo. Isso é normal para qualquer novo chip, mas a Epressif está fazendo isso em público.

simples

Simples é bom

Engenheiros gostam de simplicidade. Tem menos maneiras de falhar. Uma solução simples que funciona para uma ampla gama de condições vale seu peso em ouro. Literalmente, se você somar os custos de desenvolvimento, manutenção e reparo.

Soluções simples e amplamente utilizadas têm um rico histórico de engenharia: o que você quer fazer, alguém provavelmente já fez isso antes. Você pode aprender com seus meses ou anos de experiência, em vez de ter que fazer tudo sozinho.

Isso não significa aprender hardware novo ou explorar novas soluções é ruim - a história da engenharia tem que vir de algum lugar, afinal de contas - significa apenas que a exploração é uma escolha.

Se você quiser aprender um novo hardware para aprender novos hardwares, as falhas e becos sem saída serão mais interessantes para você do que as coisas que funcionam na primeira tentativa. Placas simples provavelmente não serão tão interessantes quanto as mais complexas, a menos que você seja novato em microcontroladores em geral.

Quando você quer fazer um trabalho específico, a exploração tende a ser mais um incômodo do que uma recompensa. Para esses projetos, você quer a placa mais simples que puder encontrar.

pi x arduino
171211- Arduino Vs Raspberry Pi.jpg

Diferenças entre o Raspberry PI e o Arduino


Questão relacionada a Raspberry Pi vs Arduino é algo que sempre dá um bom problema para a indústria de fabricação de placas. Hobbyists, estudantes e profissionais têm uma grande variedade para escolher quando se trata de escolher o conselho certo que atenda às suas necessidades. Neste artigo do Raspberry Pi vs Arduino, vamos tentar ajudá-lo com a placa que é melhor para você.

O Raspberry Pi foi desenvolvido pela Raspberry Foundation no Reino Unido, que é uma série de computadores baseados em pequenas placas individuais. Seu uso principal foi desenvolver um entendimento entre os estudantes relacionado à ciência da computação e suas tecnologias, especialmente àqueles pertencentes a países em desenvolvimento. O modelo original tornou-se popular, pois também começou a ser usado em robótica e ganhou uma popularidade exponencial. A maioria dos Pis é criada na Sony Factory no País de Gales, mas alguns são feitos no Japão e na China também.

O Arduino, por outro lado, é uma empresa de software e hardware de computador de código aberto, comunidades de usuários e projetos que fabrica e projeta kits de microcontroladores de placa única de objetos interativos e construção de dispositivos digitais. Esses kits são usados ​​para controlar e sentir os objetos do mundo real físico e digital. Placas Arduino estão disponíveis na forma de kits DIY (Do-It-Yourself) ou comercialmente em forma pré-montada.

Um Raspberry Pi é um computador de uso geral que geralmente apresenta um sistema operacional baseado em Linux e tem a capacidade de executar várias tarefas ao mesmo tempo. Acredita-se que seja mais complicado que o Arduino. Ele é usado quando seus requisitos são de um computador completo, pois pode conduzir um robô mais complicado, capaz de realizar tarefas simultaneamente. Ele pode ser usado para fazer operações calculativas e matemáticas intensivas, como as tecnologias Bitcoin ou de criptografia.

Um Arduino é principalmente uma placa-mãe com microcontrolador, que é um computador simples que manipula apenas um programa de cada vez, repetidamente. É muito simples e fácil de usar. As tarefas repetitivas, como abrir ou fechar uma porta de garagem, observar a temperatura externa e reportar os dados para alguma ferramenta ou um site, impulsionado por um robô simples, podem ser possíveis com o Arduino.

Alguns exemplos mais comuns que podem ajudar a explicar melhor a diferença entre o Raspberry Pi e o Arduino é supor que estou interessado em monitorar a maneira como as minhas plantas se comportam e enviar-me solicitações periódicas sempre que estiverem com sede depois de se certificarem. Serviço, não há chuva planejada, então o sistema de irrigação deve ser automaticamente ligado, caso contrário as usinas devem aguardar o aguaceiro. Este caso pode ser melhor tratado por Raspberry Pi. Minha exigência, por exemplo, não é muito complicada. Eu só quero que minhas plantas me notifiquem sempre que precisarem de água. Neste caso, o Arduino é sua escolha.

pi x arduino.jpg

Principais diferenças entre o Raspberry PI e o Arduino


Abaixo estão as listas de pontos, descreva as principais diferenças entre o Raspberry PI e o Arduino

A vantagem da Raspberry inclui fácil conexão com a internet, um suporte completo da comunidade Linux está disponível ea escolha da linguagem de programação pode ser enorme, enquanto no caso do Arduino as vantagens é que é fácil de começar, pode ser usado para construir aplicações de tempo baseadas em hardware e software, um profundo conhecimento de programação não é necessário e é fácil de estender e ter uma enorme biblioteca e conjuntos de proteção pelos usuários.


As desvantagens do Raspberry não incluem suporte para hardware em tempo real, a interface pode ser atrasada se a CPU estiver ocupada, as cargas indutivas não puderem ser conduzidas, o conversor analógico para digital não estiver disponível e o design do hardware não for de código aberto enquanto as desvantagens do Arduino incluírem as linguagens a serem usadas são apenas Arduino ou C ou C ++ que são difíceis de codificar, não é ferramenta poderosa o suficiente quando comparada com o Raspberry Pi e a conexão com a Internet é bastante difícil
Se o seu projeto é orientado a hardware, o Arduino é o caminho a percorrer, pois tem menos energia, custa menos, os pinos analógicos e digitais melhoram o processo de conectividade, mas se o seu é mais um projeto de software, o Raspberry Pi deve ser a escolha ideal como recursos de áudio, baseados na Internet e de vídeo são melhor suportados nisso.

Raspberry-pi-vs-Arduino-1.jpg
FPGAs

O futuro dos microcontroladores

A integração de eFPGA em microcontroladores está acontecendo hoje, agora que esta tecnologia está disponível em vários fornecedores em nós de processo de 180nm a 16nm.
Microcontroladores hoje têm um problema e uma oportunidade.

A questão é que, em nós de processos mais antigos, há dezenas de SKUs de microcontroladores com pequenas variações no tipo e número de serial I / Os e / ou aceleradores de hardware. A 40nm, os custos da máscara começam a subir substancialmente, então fazer dezenas de variações é uma proposta cara.

A oportunidade para microcontroladores é em torno dos chips FPGA “cola” usados ​​por designers há décadas. Se esses chips FPGA forem integrados em vez de serem independentes, os clientes poderão melhorar significativamente o custo, a velocidade e o consumo de energia dos MCUs. Esta é uma proposta de valor enorme.

Embora não seja uma tecnologia nova, o FPGA incorporado (eFPGA) está finalmente no estágio em que está pronto para entrar no mercado com múltiplos fornecedores, projetos em andamento e silício comprovado. Os clientes podem aproveitar essa tecnologia de várias maneiras, como:

Um acelerador reconfigurável que pode acessar diretamente barramentos, cache e E / S no chip. Uma máscara pode cobrir várias necessidades e os clientes podem obter um desempenho mais alto.
Uma E / S reconfigurável que pode implementar qualquer E / S serial e pode empurrar o processamento de baixo nível para o bloco de E / S. Isso libera o processador e melhora a capacidade de resposta e a duração da bateria.

E / S programável


Os microcontroladores costumam ter dezenas de variações para atender aos requisitos do cliente para diferentes combinações de E / Ss seriais: UART, USART, I2C, SPI e muito mais.

Com o eFPGA, as E / Ss seriais podem agora ser programadas conforme necessário. Isso permite que as empresas de MCU economizem em custos e validação de máscara e forneça aos clientes exatamente a E / S serial desejada, mesmo variações nas versões padrão.

Existem vários exemplos de E / Ss serial programáveis ​​discutidos nesta nota de aplicativo. Por exemplo, no TSMC 40ULP, a faixa de frequência do pior caso varia de 20 a 50 MHz, dependendo do tipo de E / S serial e do clock; e o número de LUTs necessários (LUTs de 4 entradas em nosso núcleo T40ULP EFLX IP) variam de 72 a 590, dependendo dos recursos necessários.

Inicialmente, os clientes podem nem perceber que estão usando o eFPGA porque o fabricante pode programar o eFPGA de forma diferente para cada SKU.

Este é apenas o começo.

O próximo passo é usar o eFPGA para processar E / S para descarregar o MPU, melhorar o desempenho e até diminuir a energia.

Em outra nota de aplicativo, você pode ver que o uso de eFPGA para implementar algumas funções DSP simples e repetitivas pode reduzir a energia em comparação com a implementação das mesmas funções no processador. O resultado é maior duração da bateria.

Aceleradores Reconfiguráveis


Microcontroladores hoje às vezes têm hardwired para descarregar os processadores para melhorar o desempenho. Exemplos disso são os mecanismos de criptografia, como o Advanced Encryption Standard (AES).

Novamente, o fabricante do microcontrolador pode usar o eFPGA para implementar múltiplos aceleradores usando uma máscara. Isso permite que os microcontroladores sejam personalizados sem adicionar tempo ou custo de engenharia incremental. O cliente pode nem estar ciente disso. No entanto, em algum momento, o fabricante provavelmente desejará permitir que o cliente programe o próprio FPGA integrado, permitindo que qualquer tipo de acelerador reconfigurável seja implementado.

Os clientes poderão então reconfigurar rapidamente e alterar a função do acelerador dependendo da carga de trabalho.

As empresas de microcontroladores também podem usar o FPGA incorporado para implementar várias funções de acelerador (como AES, FFT, codificação JPEG, SHA) com desempenho 30 a 130 vezes mais rápido do que um processador ARM. Mais detalhes sobre isso podem ser encontrados nesta nota app.

Outra opção é conectar o acelerador reconfigurável eFPGA diretamente ao GPIO: 8 bits, 16 bits, 32 bits ou 64 bits. O fabricante também pode utilizar este eFPGA para ser um depurador opcional, conforme mostrado nesta nota de aplicativo. Isso permite uma observação muito mais interna da atividade do microcontrolador quando o cliente está tentando entender por que a combinação de c-code / RTL não está obtendo os resultados esperados.

A integração de eFPGA em microcontroladores está acontecendo hoje, agora que esta tecnologia está disponível em vários fornecedores em nós de processo de 180nm a 16nm. Isso não só beneficiará os fabricantes com menores custos de engenharia e menor tempo de entrada no mercado, mas também beneficiará os usuários de microcontroladores com maior desempenho e flexibilidade na otimização de seus sistemas.

© 2019 - 2024 by FMK. Updated Oct 2024.  Proudly created with Wix.com

bottom of page