4 pontos por GN⁺ 2024-08-09 | 3 comentários | Compartilhar no WhatsApp
  • 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

 
GN⁺ 2024-08-09
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

    • Os parceiros já deixaram várias placas alternativas prontas e, se você puder pagar um pouco mais, também existem placas compatíveis com Pico com USB-C
      https://www.raspberrypi.com/for-industry/powered-by/product-...
    • Pelo menos microUSB sempre funciona
      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
    • Por outro lado, há dois motivos para isso não me incomodar tanto
      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
    • Provavelmente querem manter o mesmo form factor do Pico 1
    • Para dizer que é um upgrade drop-in do Pico 1, parece que não tinha muito como evitar
      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...

    • As especificações do produto são boas, mas a organização e o conteúdo do datasheet estão entre os melhores que já vi
    • A versão de 60 pinos parece ter o mesmo tamanho do RP2040
  • 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

    • Fico em dúvida sobre por que gastar área de die com um core RISC-V que só pode ser usado no lugar do core Cortex em produtos de produção em massa
      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
    • Já que o Arm já está lá, não entendo qual seria o objetivo do core 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

    • A Adafruit tem algumas placas de carregamento LiPo, mas não no nível de integração que eu quero
      É 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/
    • A LILYGO também tem placas desse tipo
      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
    • Dizem que o chip ESP32 tem um sistema de gerenciamento de bateria integrado, e isso também é usado no M5Stack e no Seeeduino XIAO
      O estranho é que, tirando a instrução de soldar a bateria, não fica claro como isso funciona
    • No momento estou olhando soluções de 2 células como BQ25886, BG25887, MP5461, MP2672, LTC3118, MP2639C, IP2326, BQ294533 e MCP73213
      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
    • A Pimoroni também tem uma linha de produtos
      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

    • Ambos estão no silício, e a estrutura aparentemente é escolher um dos dois no boot
      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

    • O texto afirma que há suporte a QSPI PSRAM externa
  • 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/

    • Dá para calcular se isso é realmente um problema digno de preocupação
      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ê não tem carro, provavelmente não precisa se sentir tão culpado por desperdiçar alguns milhares dessas placas
    • Praticamente todo mundo que vive em um país desenvolvido é irresponsável com lixo digital ou pegada ambiental
      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
    • Também dá para pensar no mercado de usados
      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
    • Mesmo que um brinquedo novo seja tentador, sempre existe a opção de adiar a compra até aproveitar bem o que você já tem
      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

    • Se li o datasheet corretamente, ainda são necessários indutor externo e componentes passivos
      O que deixa de ser necessário é apenas o chip externo da fonte de alimentação chaveada
    • Não fica tudo dentro do chip
      Esses componentes passivos ainda são necessários; é só ver a seção 6.3 do datasheet
    • Acho que provavelmente queriam dizer on-board, não “on-chip”
      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
 
bus710 2024-08-09

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.

 
bus710 2024-08-09

chapless => fabless