RP2040 – Análise do microcontrolador do Raspberry Pi

Se você já começou a se interessar pelo mundo dos sistemas embarcados ou da eletrônica DIY, provavelmente já ouviu falar do RP2040. Mas o que exatamente faz esse minúsculo chip da Raspberry Pi se destacar em meio a tantos microcontroladores? Lançado em 2021 como o cérebro por trás do icônico Raspberry Pi Pico, o RP2040 silenciosamente se tornou o favorito entre entusiastas, educadores e até mesmo engenheiros profissionais. Nesta análise aprofundada, exploraremos por que essa maravilha dual-core está redefinindo o que um microcontrolador econômico pode alcançar — e como você pode começar a experimentá-lo hoje mesmo.

O que é o RP2040?

O RP2040 é uma unidade microcontroladora (MCU) introduzida pela Fundação Raspberry Pi. Ele serve como componente central para o Raspberry Pi Pico e outras placas de desenvolvimento. Atualmente, ele é vendido por US$ 10 no site oficial.

An image showing the RP2040 microchip for sale priced at 10.00
RP2040 Microchip - Available for Purchase at $10.00

Especificação RP2040

O chip RP2040 vem em um pacote QFN – 56 de 7×7 mm, com as seguintes especificações específicas:

  • Dual-core Arm Cortex-M0+ operando a 133 MHz
  • 264 KB de SRAM no chip e 2 MB de memória flash integrada
  • Suporta até 16 MB de memória flash fora do chip através de um barramento QSPI dedicado
  • Equipado com um controlador DMA
  • Possui 30 pinos GPIO, 4 dos quais podem ser usados como entradas analógicas
  • Possui 2 UARTs, 2 controladores SPI e 2 controladores I2C
  • Oferece 16 canais PWM
  • Oferece suporte para host e dispositivo USB 1.1
  • Incorpora 8 máquinas de estado Raspberry Pi Programmable I/O (PIO) para suporte a periféricos personalizados
  • Suporta o modo de inicialização de armazenamento em massa USB habilitado para UF2 para programação do tipo arrastar e soltar
A dimension diagram of the RP2040 chip, showing various measurements in millimeters.
RP2040 Chip Dimension Diagram (in mm)

Explicação sobre a nomenclatura RP2040

O nome do RP2040 reflete suas principais especificações:

  • RP: Significa Raspberry Pi, o desenvolvedor.
  • 2: Indica processadores Arm Cortex – M0+ dual-core.
  • 0: Representa o tipo de núcleo (M0+ neste caso).
  • 4: Calculado como floor(log2(SRAM/16k)), onde 264 KB de SRAM → ~4.
  • 0: Derivado de floor(log2(non - volatile/16k)), com 2 MB de flash → ~7, mas simplificado para 0 na nomenclatura.
An illustration explaining the naming convention of the RP2040 microchip with arrows and descriptions for each part of the name
RP2040 Microchip Naming Convention Explanation

RP2040 Pinagem

O RP2040 vem com 30 pinos GPIO, altamente versáteis para vários usos. Eles podem ler entradas digitais de dispositivos como botões e sensores e fornecer saídas digitais para controlar LEDs e relés.

Notavelmente, seu subsistema de Entrada/Saída Programável (PIO) possui duas máquinas de estado. Isso permite a criação de protocolos de comunicação personalizados, como controlar facilmente fitas de LED WS2812 ou construir uma interface VGA personalizada, reduzindo a carga de trabalho da CPU.
A top view pinout diagram of the RP2040 microchip labeling various pins such as GPIO power and communication pins
RP2040 Microchip Pinout Diagram (Top View)

Diagrama de blocos RP2040

O chip RP2040 apresenta:

  • 2 UARTs: comunicações seriais para dispositivos/módulos/computadores.
  • 2 SPIs: Transferência de dados mestre-escravo de alta velocidade (por exemplo, cartões flash/SD).
  • 2 I2Cs: barramento multidispositivo para sensores/EEPROMs via linhas SDA/SCL.
  • 16 PWMs: Controle da velocidade do motor/brilho do LED via modulação do ciclo de trabalho.
Block diagram of the RP2040 microchips internal architecture showing components like processors peripherals and memory
RP2040 Microchip Internal Architecture Block Diagram

Suporte ao desenvolvimento para RP2040

Placa de Desenvolvimento Oficial - Raspberry Pi Pico

O Raspberry Pi Pico serve como placa de desenvolvimento oficial para o RP2040 e é um excelente ponto de partida para desenvolvedores. Medindo apenas 65 mm x 17 mm, esta placa compacta é incrivelmente acessível, custando apenas US$ 4, o que a torna acessível a uma ampla gama de usuários, desde amadores com orçamento limitado até estudantes que estão explorando o mundo dos microcontroladores.

Images of four Raspberry Pi Pico series development boards (Pi Pico, Pi Pico H, Pi Pico W, Pi Pico WH) based on the RP2040 microcontroller, showcasing their board layouts and component differences.
A lineup of Raspberry Pi Pico series boards powered by the RP2040 MCU

Uma das grandes vantagens do Raspberry Pi Pico é a sua facilidade de uso. Ele tem um formato simples, com uma fileira de pinos GPIO em cada lado, claramente identificados para facilitar a identificação. Esse layout facilita a conexão de componentes externos, como sensores, atuadores ou displays. Por exemplo, conectar um sensor de temperatura como o DHT11 ao Pico é tão simples quanto conectar o pino de dados do sensor a um dos pinos GPIO do Pico, juntamente com as conexões de alimentação e aterramento.

O Pico também possui um conector USB integrado, que é usado tanto para alimentar a placa quanto para programá-la. Quando conectado a um computador, ele aparece como um dispositivo de armazenamento em massa, permitindo uma programação fácil do tipo "arrastar e soltar". Por exemplo, se você escreveu um script MicroPython ou um binário C/C++ compilado, basta copiar o arquivo para a unidade virtual do Pico e ele começará a executar o programa.

Além dos recursos básicos de hardware, o Raspberry Pi Pico vem com uma grande variedade de documentação oficial e códigos de exemplo. O site oficial do Raspberry Pi fornece guias detalhados sobre tudo, desde como começar a usar a placa até o uso avançado de seus recursos. Esses recursos são extremamente úteis para iniciantes que estão começando a aprender sobre programação de microcontroladores e para desenvolvedores experientes que desejam se familiarizar rapidamente com os recursos do RP2040.

Linguagens de programação e estruturas

O RP2040 suporta várias linguagens de programação e frameworks, proporcionando aos desenvolvedores flexibilidade na escolha da opção mais adequada para seus projetos.

MicroPython: O MicroPython é uma excelente escolha, especialmente para iniciantes ou aqueles que desejam prototipar rapidamente suas ideias. É uma implementação enxuta e eficiente da linguagem de programação Python 3, projetada especificamente para microcontroladores. Com o MicroPython, você pode escrever código em uma sintaxe de alto nível e fácil de entender. Por exemplo, o controle de um LED conectado a um pino GPIO no RP2040 pode ser feito com apenas algumas linhas de código:
				
					from machine import Pin
import time

led = Pin(25, Pin.OUT)
while True:
    led.value(1)
    time.sleep(1)
    led.value(0)
    time.sleep(1)

				
			
Essa simplicidade permite que os desenvolvedores se concentrem na funcionalidade do seu projeto, em vez de se perderem em detalhes de programação de baixo nível. O MicroPython também possui um rico conjunto de bibliotecas que podem ser usadas para fazer interface com vários componentes de hardware, como sensores, módulos de comunicação e displays.

C/C++: Para aqueles que precisam de mais controle sobre o hardware e melhor desempenho, C/C++ é uma ótima opção. O RP2040 possui um SDK (Software Development Kit) oficial em C/C++ que fornece um conjunto abrangente de bibliotecas e ferramentas para o desenvolvimento de aplicativos. O SDK inclui drivers para todos os periféricos de hardware do RP2040, como as interfaces GPIO, PIO, UART, SPI e I2C. Com C/C++, os desenvolvedores podem escrever códigos altamente otimizados que aproveitam ao máximo a arquitetura dual-core do RP2040. Por exemplo, ao implementar um sistema de aquisição de dados de alta velocidade, C/C++ pode ser usado para escrever códigos que leem dados de forma eficiente de vários sensores conectados aos pinos GPIO do RP2040 e os processam em tempo real.

Ferramentas e IDEs

Existem várias ferramentas e Ambientes de Desenvolvimento Integrado (IDEs) disponíveis para o desenvolvimento de aplicações para o RP2040.

Thonny

O Thonny é uma escolha popular, especialmente para o desenvolvimento em MicroPython. Ele tem uma interface amigável que é fácil de navegar, mesmo para iniciantes. O Thonny oferece um shell Python integrado, que permite aos desenvolvedores testar seus códigos de forma interativa. Você pode digitar comandos Python e ver os resultados imediatamente, o que o torna uma ótima ferramenta para depurar e explorar os recursos do RP2040. Para usar o Thonny com o RP2040, primeiro você precisa conectar o Pico ao seu computador via USB. Em seguida, no Thonny, você pode selecionar o interpretador Python apropriado (MicroPython para RP2040). Depois de configurado, você pode escrever, executar e depurar seu código MicroPython diretamente no Thonny.

VS Code

O Visual Studio Code é um editor de código poderoso e multiplataforma que ganhou grande popularidade entre os desenvolvedores. Ele tem uma ampla gama de extensões disponíveis, tornando-o adequado para o desenvolvimento do RP2040. Para o desenvolvimento em C/C++, a extensão "C/C++" da Microsoft oferece recursos como destaque de código, intellisense (autocompletar código) e suporte à depuração. Para MicroPython, a extensão "MicroPython" oferece funcionalidades semelhantes. Para configurar o VS Code para o desenvolvimento do RP2040, você precisa instalar as extensões relevantes e definir as configurações de compilação e depuração de acordo com os requisitos do seu projeto. Por exemplo, se você estiver trabalhando em um projeto C/C++, precisará definir o caminho do Pico SDK e configurar o depurador para funcionar com o RP2040.

RP2040 vs. RP2350 Chips

O RP2040 e o RP2350 são microcontroladores desenvolvidos pela Raspberry Pi. O RP2040 foi um dos primeiros modelos, enquanto o RP2350 é um sucessor mais avançado com recursos aprimorados. Aqui está uma comparação entre os dois:

A side by side comparison image of RP2040 and RP2350 microchips labeled with their respective names
RP2040 and RP2350 Microchips Comparison
FeatureRP2040RP2350
Core ArchitectureDual Arm Cortex-M0+Dual Arm Cortex-M33 or Dual RISC-V Hazard3
Clock Speed133MHz150MHz
On-chip SRAM264KB520KB
Security FeaturesBasic security featuresArm TrustZone, Signed Boot, SHA-256, TRNG, Fault Detectors
Peripheral Interfaces2×UART, 2×SPI, 2×I2C, ADC, PWM, USB 1.1Enhanced peripherals, additional PIO state machines, more GPIO pins, higher power efficiency
PackagingSingle 7×7mm QFN56 option7×7mm QFN60 (RP2350A) with 30 GPIOs or 10×10mm QFN80 (RP2350B) with 48 GPIOs; both with 2MB stacked QSPI flash (RP2354A and RP2354B)

Conclusão

Em conclusão, o RP2040 é um microcontrolador notável que causou um impacto significativo no mundo dos sistemas embarcados e do desenvolvimento eletrônico. Seja bem-vindo a compartilhar suas opiniões ou experiências!

Compartilhar em:

Rolar para cima

Instant Quote