- A Raspberry Pi lançou a placa de 2ª geração Raspberry Pi Pico 2, baseada no novo RP2350, reforçando desempenho, memória, segurança e interfaces, ao mesmo tempo em que mantém compatibilidade com o ecossistema Pico existente
- O chip principal RP2350 inclui dois Arm Cortex-M33 de 150MHz, 520KB de SRAM, segurança baseada em TrustZone, signed boot, OTP, aceleração SHA-256, TRNG, PIO aprimorado, HSTX e suporte a PSRAM QSPI externa
- A Pico 2 combina o RP2350A com 4MB de flash QSPI externo em uma placa de US$ 5, e versões Pico 2 W e com headers de 0,1 polegada pré-instalados também são esperadas antes do fim do ano
- O ambiente de desenvolvimento também foi expandido com Pico SDK atualizado, imagens de MicroPython e CircuitPython, trabalho de suporte a Rust, integração como plataforma de referência de hardware no Trusted Firmware-M 2.1.0 LTS e suporte ao Google Pigweed SDK
- O RP2350 permite escolher, no boot, dois núcleos Hazard3 RISC-V no lugar dos Arm Cortex-M33, criando uma base estável para experimentar RISC-V em placas Raspberry Pi
Lançamento da Pico 2 e mudanças básicas
- A Raspberry Pi Pico 2 é a placa de microcontrolador de 2ª geração baseada no novo microcontrolador de alto desempenho e segurança RP2350, projetado pela Raspberry Pi
- Em relação à linha Pico anterior, ela traz clock de núcleo mais alto, o dobro de memória, núcleos Arm mais potentes, novos recursos de segurança e interfaces aprimoradas
- Mantém compatibilidade de hardware e software com a linha Pico anterior
- O preço de venda é US$ 5
Do RP2040 ao RP2350
- Nos três anos e meio desde o lançamento da Pico original e do RP2040 em janeiro de 2021, Pico e Pico W venderam quase 4 milhões de unidades
- O RP2040 foi usado em várias placas de desenvolvimento de terceiros e produtos OEM, além de aparecer em produtos como mesas de pinball e sintetizadores
- O RP2040 foi projetado como um microcontrolador com dois núcleos de 32 bits, RAM on-chip, subsistema de I/O programável (PIO) e uma malha de barramento determinística
- Entre os demos baseados em RP2040 estão o port de DOOM de Graham Sanderson, o port de PalmOS de Dmitry Grinberg e o cartucho Commodore 64 “sem CPU” de Kevin Vance
- O RP2040 não tinha armazenamento on-chip, estados de idle de baixo consumo e opções de encapsulamento, e os usuários pediam núcleos mais rápidos, mais RAM e recursos de proteção de código
Especificações e encapsulamentos do chip RP2350
- O RP2350 é um projeto muito mais sofisticado que o RP2040
- As principais especificações são as seguintes
- Dois núcleos Arm Cortex-M33 de 150MHz, com suporte a ponto flutuante e DSP
- 520KB de SRAM on-chip em 10 bancos acessíveis simultaneamente
- Arquitetura de segurança baseada em Arm TrustZone for Cortex-M
- Suporte a signed boot
- Memória OTP antifuse on-chip de 8KB
- Aceleração de SHA-256
- Gerador de números aleatórios verdadeiro em hardware (TRNG)
- Fonte de alimentação on-chip do tipo switch mode e LDO de baixa corrente quiescente
- 12 máquinas de estado PIO atualizadas
- Periférico HSTX para transferência de dados em alta velocidade
- Suporte a PSRAM QSPI externa
- As opções de encapsulamento ficaram mais variadas em relação ao único QFN56 de 7×7mm do RP2040
- RP2350A: QFN60 de 7×7mm, 30 GPIOs
- RP2350B: QFN80 de 10×10mm, 48 GPIOs
- RP2354A/RP2354B: variantes com flash QSPI stacked-in-package de 2MB, respectivamente
- O preço do RP2350A é de US$ 0,80 em rolos de 3.400 unidades e US$ 1,10 avulso, 10 centavos mais caro que o RP2040
- O RP2350B custa 10 centavos a mais que o RP2350A, e as variantes RP2354 custam 20 centavos a mais que os modelos equivalentes sem flash
- O RP2350 deve entrar em fornecimento em massa antes do fim de 2024, e a participação no programa de amostras pode ser solicitada na página do produto
Placa Pico 2 e produtos previstos
- A Pico 2 combina RP2350A com 4MB de flash QSPI externo
- O flash QSPI externo da Pico original era de 2MB
- O formato e as características elétricas são compatíveis com o design da Pico original
- No momento do lançamento, o estoque nos canais de distribuição não é grande, mas a Pico 2 já está em full-rate production com a Sony
- Vários parceiros Approved Reseller estão operando com backorder e reservas, e novos lotes devem ser enviados regularmente nas próximas semanas
- Os produtos previstos para antes do fim do ano são os seguintes
- A Pico 2 W com suporte sem fio, usando o mesmo modem Infineon 43439 da Pico W
- Versões da Pico 2 e da Pico 2 W com headers de 0,1 polegada pré-instalados
Ferramentas de desenvolvimento, certificação de segurança e documentação
- O Pico SDK foi atualizado junto com o lançamento da Pico 2 e do RP2350
- Novas imagens de MicroPython e CircuitPython estão disponíveis
- Jonathan Pallant e colaboradores estão trabalhando para levar suporte à linguagem Rust à nova plataforma
- A Raspberry Pi está trabalhando com o projeto Trusted Firmware para tornar o RP2350 a plataforma de hardware de referência do Trusted Firmware-M 2.1.0 LTS
- O TF-M fornece uma implementação de referência do PSA Certified para chips Arm v8-M
- O RP2350 será testado em laboratório independente certificado
- A meta é alcançar PSA Certified Level 2 antes do lançamento de outubro
- Em parceria com o Google, também foi lançado o Pigweed SDK com suporte nativo à Pico 2
- As bibliotecas de middleware do Pigweed são embarcadas em milhões de dispositivos, incluindo aparelhos Google Pixel e termostatos Nest
- O anúncio do Google pode ser visto na announcement page
- O RP2350 conta com um datasheet abrangente
- Também há um tutorial para começar o desenvolvimento em C/C++ usando a extensão Raspberry Pi Pico para Visual Studio Code, recém-atualizada
Signed boot e bounty de segurança
- O elemento central do modelo de segurança do RP2350 é o signed boot
- Quando a segurança está ativada, apenas binários assinados com a chave privada correspondente ao hash da chave pública armazenado na OTP podem iniciar o boot
- Ao impedir execução arbitrária de código, torna-se muito mais difícil extrair o conteúdo da OTP, incluindo chaves criptográficas usadas para proteção de código
- O RP2350 usa várias técnicas para se defender de ataques de fault injection
- detector de glitch rápido em hardware
- coprocessador de redundância com patente em andamento
- proteção da integridade do fluxo de controle e dos dados
- A Raspberry Pi quer encontrar e corrigir falhas no processo de boot antes que o RP2350 seja implantado em aplicações críticas
- Antes do lançamento, encomendou auditorias da arquitetura de segurança à NewAE e à Hextree
- Está oferecendo uma recompensa de US$ 10.000 para o primeiro break confirmado do processo de signed boot
- O período operacional inicial é de um mês
- Se nenhuma falha for encontrada, o período pode ser estendido
- Recompensas adicionais podem ser oferecidas para falhas extras distintas
- Os detalhes estão no bounty program
- Em parceria com a convenção de hacking DEF CON, a empresa está fornecendo hardware RP2350 para pesquisadores de segurança
- O badge da DEF CON deste ano é baseado no RP2350
- A Hextree produziu uma quantidade limitada de placas para experimentos de glitching em trilhas de alimentação e por campo eletromagnético
Produtos parceiros baseados em RP2350
- Ao longo do último ano, a Raspberry Pi desenvolveu produtos baseados em RP2350 com parceiros
- Muitos deles são upgrades de produtos existentes baseados em RP2040, e alguns são produtos totalmente novos
- Exemplos esperados para o dia do lançamento ou dentro do mês seguinte incluem
- 4D Systems: série gen4-RP2530 de displays de alto desempenho de 2,4″ a 7,0″
- Adafruit: Metro RP2350 para shields compatíveis com Arduino e Feather RP2350 no formato Feather
- Bus Pirate: ferramentas open hardware de depuração Bus Pirate 5XL e Bus Pirate 6 baseadas em RP2350
- Cytron: controlador industrial de I/O IRIV I/O Controller e controlador de robôs MOTION 2350 Pro
- Invector Labs: produtos Challenger+ RP2350 com 8MB de flash, 8MB de PSRAM e módulos BConnect ou WiFi6/BLE5
- NewAE: RP2350 Target for ChipWhisperer para análise de energia e testes de fault injection
- Pimoroni: Explorer, Tiny2350, Plasma 2350, PGA 2350
- Seeed: XIAO RP2350 com 19 GPIOs, LED RGB e sistema de gerenciamento de bateria
- Solder Party: RP2350 Stamp e Stamp XL com RP2350, 16MB de flash, LDO, carregador LiPo, LED e botões Reset/Boot integrados
- SparkFun: Pro Micro – RP2350 no formato Pro Micro
- Switch Science: Picossci2 Breakout com conector USB-C e módulos relacionados
- Tiny Circuits: console programável vestível em formato de chaveiro Thumby Color
- Wiznet: placas de avaliação baseadas em RP2350 para os chips Ethernet W5100S, W5500 e W6100
Modo RISC-V e Hazard3
- O RP2350 inclui dois núcleos Hazard3 RISC-V open hardware que podem ser usados no boot no lugar dos núcleos Cortex-M33
- A ROM de boot detecta automaticamente para qual arquitetura o binário de segundo estágio foi compilado e pode reiniciar o chip no modo apropriado
- No modo RISC-V, é possível usar os recursos do chip, com exceção de um pequeno conjunto de funções de segurança e do acelerador de ponto flutuante de dupla precisão
- O Hazard3 foi desenvolvido no tempo livre por Luke Wren, Principal Engineer da equipe de chips da Raspberry Pi
- O Hazard3 é um processador otimizado com pipeline de três estágios e implementa o conjunto de instruções RV32I e várias extensões padrão voltadas a desempenho e densidade de código
- O objetivo de adicionar o Hazard3 ao RP2350 é permitir que desenvolvedores de software experimentem a arquitetura RISC-V em um ambiente estável e com suporte, além de disseminar o Hazard3 como um núcleo aberto bem estruturado, que possa ser usado diretamente em outros dispositivos ou servir de base para desenvolvimento adicional
3 comentários
Comentários do Hacker News
Luke, autor do Hazard3, explica por que colocaram o core Hazard3 ao lado do M33
Os tamanhos dos dois cores não são comparáveis, mas é bem provável que, mesmo removendo o Hazard3, o tamanho final do die teria ficado quase igual
Isso porque a lógica de células padrão pode ser compactada, e as restrições de projeto do pad ring acabam arredondando as dimensões do die
Ainda assim, ele comenta que, se tivessem tirado o core RISC-V, provavelmente teriam perdido menos cabelo com o layout final e a análise estática de temporização
https://x.com/wren6991/status/1821582405188350417
Não entendo por que ainda usam Micro USB
Mesmo que o custo por placa aumentasse um pouco, eu esperava que na próxima versão usassem USB-C
https://www.raspberrypi.com/for-industry/powered-by/product-...
Algumas placas USB-C chinesas economizam no resistor pull-up de CC, e aí a porta pode não funcionar com cabo C-to-C
Ainda tenho um monte de cabos micro-USB, e cada vez há menos lugares para usá-los
Esses dispositivos não costumam ser movidos nem conectados e desconectados com frequência, então a principal situação em que o conector estraga quase não acontece
Se fosse preciso redesenhar o case do projeto, então não seria um upgrade drop-in
Em comparação com o RP2040, mudou bastante coisa
Encapsulamento maior, variante com 2 MB de flash integrada, secure boot e boot criptografado, dois contextos de execução seguros, gerador de números aleatórios, acelerador SHA-256, 8 KB de OTP ROM, transmissor serial de alta velocidade HSTX de 8 canais, GPIO de 30 para 48, máquinas de estado PIO de 8 para 12, canais DMA de 12 para 16, escolha de RISC-V e Arm no boot, Cortex-M0+ para Cortex-M33, e clock do core aumentado de 133 MHz para 150 MHz
https://datasheets.raspberrypi.com/rp2350/rp2350-datasheet.p...
Parece que resolveram quase todos os pontos que me incomodavam no RP2040
Vale a pena ler até a seção “One more thing”, no final
É possível escolher de forma transparente entre Cortex-M33 ou RISC-V no boot
Parece que seria melhor usar essa área para mais RAM ou outro core Arm, ou então vender logo uma variante só com RISC-V
Parece que teria sido mais útil colocar mais PSRAM ou uma unidade de processamento neural
Fiquei curioso para saber se existe alguma placa tudo-em-um de gerenciamento de bateria para dispositivos móveis pequenos
Recentemente comecei a mexer com ESP32 e me surpreendi por não haver muitas placas prontas no AliExpress que cuidem do carregamento da bateria via USB e ao mesmo tempo forneçam energia ao dispositivo
Quero ligar uma LiPo ao projeto e fazer com que funcione simplesmente, como um celular
É preciso um cabo USB separado para carregamento
Ainda assim, algumas placas ESP32 parecem carregar LiPo pela porta USB, e algumas placas da Heltec também parecem fazer isso
Tenho uma placa com conector de bateria JST, mas faz tempo que não uso, então não tenho certeza; acho que é este modelo: https://heltec.org/project/wifi-kit32-v3/
Tenho uma T18 aqui na mesa agora: https://github.com/LilyGO/TTGO-T-ControllerV2.2/blob/master/...
Só tive alguns problemas para fazer o upload funcionar direito, e os produtos da LILYGO em geral exigem um pouco de tentativa e erro, mas depois de ajustar tudo costumam ser estáveis
O estranho é que, tirando a instrução de soldar a bateria, não fica claro como isso funciona
Para soluções de célula única, há IP2312, ETA9740, TP5100, IP5328P, MCP73834, MCP73833, LTC1734 e LTC4121
Também encontrei alguns módulos no AliExpress com conector USB-C, mas ainda não testei
IP2326: https://www.aliexpress.com/item/1005007175222069.html
CN3302: https://www.aliexpress.com/item/1005006203228418.html
Há uma placa genérica de gerenciamento de bateria com suporte a carregamento simultâneo aqui: https://shop.pimoroni.com/products/lipo-amigo?variant=397793...
Também dá para encontrar uma versão para Pico ou placas baseadas em RP2040 com gerenciamento de bateria integrado
Legalmente, ele vem com 2 núcleos Cortex-M33 e 2 núcleos Hazard3 RISC-V open source
Dizem que o Cortex-M33 faz 4.09 CoreMark/MHz, e o Hazard3 3.81 CoreMark/MHz: https://github.com/Wren6991/Hazard3
O RP2350 inclui um par de núcleos Hazard3 RISC-V de hardware aberto que podem substituir os núcleos Cortex-M33 no boot, e a boot ROM também pode detectar automaticamente para qual arquitetura o binário de segundo estágio foi compilado e reiniciar no modo apropriado
https://www.raspberrypi.com/documentation/microcontrollers/s...
Sim, ele também consegue rodar DOOM
Dizem que já houve demonstrações legais, como o port de DOOM do Graham Sanderson
Já houve discussões sobre técnicas meio sujas, como traps de escrita e emulação, para de algum jeito fazer RAM externa “funcionar” no RP2040
O datasheet do RP2350 diz que a nova interface de memória QSPI oferece suporte a mapeamento de memória de leitura/escrita, então fico me perguntando se isso significa que dá para simplesmente conectar PSRAM
Não entendo tanto de hardware, mas isso parece bem promissor, e também fico curioso sobre qual seria o desempenho se isso realmente for possível
Acho que muita gente acaba se tornando irresponsável com lixo digital ou com sinais de uso quando se trata desse tipo de coisa
Passei anos acumulando variações de Raspberry Pi sem motivo especial, e agora tenho uma pilha de coisas que não fazem nada
Ainda assim, não acho que eu esteja no extremo nessa área
Por outro lado, fico curioso para saber quando vai sair um Raspberry Pi Pico 2 W com Wi‑Fi ou Bluetooth
Também acho interessante que o RP2350 ofereça um par de Arm Cortex-M33 e um par de Hazard3 RISC-V de hardware aberto, selecionáveis por software ou pela configuração da memória OTP on-chip
É como ter duas arquiteturas em um único chip: https://www.raspberrypi.com/products/rp2350/
O Pico vendeu 4 milhões de unidades, e vamos supor que todos os Picos acabem em aterros, mesmo que a embalagem seja reciclada
Segundo o datasheet, ele mede 21×51 mm e tem cerca de 5 mm de espessura, então cada um ocupa algo como 5,35 mL
Com 4 milhões de unidades, isso dá 5659 galões e 756 pés cúbicos, e todo o lixo eletrônico de todos os Picos vendidos até agora caberia em um único cubo de 9,1 pés na garagem
Isso não parece ser um problema com o qual valha a pena gastar tempo se preocupando, e talvez um único Pico girando a placa de um escritório da EPA já esteja gerando um benefício ambiental maior do que o dano causado por todo esse lixo
Se você já tem filhos, quase não há nada que possa fazer para reduzir o dano ao planeta, e comprar Raspberry Pis suficientes para encher uma gaveta de tranqueiras não faz grande diferença
O mesmo vale para pegar avião nas férias ou trocar de celular a cada poucos anos; Raspberry Pi entra na categoria de erro de arredondamento
Antes, eu perdi a chance de vender quando até os modelos antigos eram difíceis de encontrar e caros, mas recentemente consegui vender todas as placas antigas por um preço razoável, então não gerei lixo direto
Ainda assim, o que mais me preocupa neste Pico é o recurso de bloqueio de boot assinado
Se isso for irreversível, o Pico pode ficar preso ao programa original para sempre, de modo que um usuário bem-intencionado talvez não consiga reaproveitar a placa para outra coisa mesmo tentando fazer um reflash completo sem ler o conteúdo original
Gostaria de saber mais sobre se é possível reverter o bloqueio de boot assinado com um apagamento completo da flash
Especialmente com microcontroladores e placas de desenvolvimento, a necessidade de upgrade é determinada pelos requisitos do projeto
É diferente de computadores ou dispositivos móveis, em que atualizações, apps para o usuário final ou o sistema operacional criam obsolescência de forma artificial
Fico surpreso com essa fonte de alimentação chaveada on-chip
Já montei algo assim em PCB antes, e era preciso um indutor e vários componentes passivos
Fico me perguntando como tudo isso cabe dentro do chip
O que deixa de ser necessário é apenas o chip externo da fonte de alimentação chaveada
Esses componentes passivos ainda são necessários; é só ver a seção 6.3 do datasheet
Na seção “5.4 Powerchain” do datasheet [0], aparece um conversor buck-boost externo RT6150 com indutor externo
https://datasheets.raspberrypi.com/pico/pico-2-datasheet.pdf
Lendo mais, vi que diz: “o RP2350 tem um regulador chaveado on-chip que fornece 1,1 V ao núcleo digital a partir de uma alimentação de 3,3 V, e ele não é mostrado na Figure 7”
Está difícil demais encontrar o PDF do esquemático, e como não tenho o Cadence Allegro instalado, decidi não procurar mais
Para comentar um pouco mais sobre a parte final…
Especialmente com a adoção de memória flash nos MCUs, o gerenciamento de energia dentro do chip se tornou um elemento técnico ainda mais importante. Sem um bom gerenciamento de energia, os dados não chegam a ser gravados em cada célula a ponto de a retenção da flash ser mantida, e lembro que muitas fabricantes de chips sofreram bastante com isso.
Mas este novo produto diz ter até uma seção de alimentação em modo chaveado on-chip, então isso é ao mesmo tempo surpreendente e me deixa curioso sobre como eles conseguiram controlar o ruído gerado ali.
chapless => fabless