4 puntos por GN⁺ 2024-08-09 | 3 comentarios | Compartir por WhatsApp
  • Raspberry Pi lanzó su placa de segunda generación Raspberry Pi Pico 2, basada en el nuevo RP2350, que mejora rendimiento, memoria, seguridad e interfaces, manteniendo la compatibilidad con el ecosistema Pico existente
  • El chip central, RP2350, incluye dos Arm Cortex-M33 a 150 MHz, 520 KB de SRAM, seguridad basada en TrustZone, signed boot, OTP, aceleración SHA-256, TRNG, PIO actualizado, HSTX y soporte para PSRAM QSPI externa
  • Pico 2 es una placa de $5 que combina RP2350A con 4 MB de flash QSPI externa, y se espera que antes de fin de año también lleguen Pico 2 W y versiones con headers de 0,1 pulgadas preinstalados
  • El entorno de desarrollo también se amplía con el Pico SDK actualizado, imágenes de MicroPython y CircuitPython, trabajo en soporte para Rust, trabajo de hardware basado en Trusted Firmware-M 2.1.0 LTS y soporte del Google Pigweed SDK
  • RP2350 permite elegir al arrancar dos núcleos Hazard3 RISC-V en lugar de Arm Cortex-M33, lo que ofrece una base estable para experimentar con RISC-V en placas Raspberry Pi

Lanzamiento de Pico 2 y cambios básicos

  • Raspberry Pi Pico 2 es la placa microcontroladora de segunda generación de Raspberry Pi, basada en el nuevo microcontrolador RP2350, de alto rendimiento y con seguridad integrada
  • En comparación con la serie Pico anterior, aumenta la frecuencia de reloj de los núcleos y duplica la memoria, además de ofrecer núcleos Arm más potentes, nuevas funciones de seguridad e interfaces mejoradas
  • Mantiene la compatibilidad de hardware y software con la serie Pico anterior
  • El precio de venta es de $5

De RP2040 a RP2350

  • En los tres años y medio transcurridos desde el lanzamiento en enero de 2021 de la Pico original y el RP2040, Pico y Pico W vendieron casi 4 millones de unidades
  • RP2040 se usó en numerosas placas de desarrollo de terceros y productos OEM, e incluso en productos como mesas de pinball y sintetizadores
  • RP2040 fue diseñado como un microcontrolador con dos núcleos de 32 bits, RAM integrada en chip, un subsistema de I/O programable (PIO) y una estructura de bus determinista
  • Entre las demos basadas en RP2040 están el port de DOOM de Graham Sanderson, el port de PalmOS de Dmitry Grinberg y el cartucho de Commodore 64 “sin CPU” de Kevin Vance
  • RP2040 carecía de almacenamiento integrado, estados de reposo de bajo consumo y opciones de encapsulado, y los usuarios pedían núcleos más rápidos, más RAM y funciones de protección de código

Especificaciones y encapsulados del chip RP2350

  • RP2350 es un diseño mucho más sofisticado que RP2040
  • Sus principales especificaciones son las siguientes
    • Dos núcleos Arm Cortex-M33 a 150 MHz, con soporte de punto flotante y DSP
    • 520 KB de SRAM integrada en chip en 10 bancos con acceso simultáneo
    • Arquitectura de seguridad basada en Arm TrustZone for Cortex-M
    • Soporte de signed boot
    • 8 KB de memoria antifuse OTP integrada en chip
    • Aceleración SHA-256
    • Generador de números aleatorios verdaderos por hardware (TRNG)
    • Fuente de alimentación conmutada integrada en chip y LDO de baja corriente de reposo
    • 12 máquinas de estado PIO actualizadas
    • Periférico HSTX para transferencia de datos de alta velocidad
    • Soporte para PSRAM QSPI externa
  • Las opciones de encapsulado son más variadas que el único QFN56 de 7×7 mm del RP2040
    • RP2350A: QFN60 de 7×7 mm, 30 GPIO
    • RP2350B: QFN80 de 10×10 mm, 48 GPIO
    • RP2354A/RP2354B: variantes con 2 MB de flash QSPI stacked-in-package, respectivamente
  • El precio del RP2350A es de $0,80 en reels de 3.400 unidades y de $1,10 por unidad; es 10 centavos más caro que RP2040
  • RP2350B cuesta 10 centavos más que RP2350A, y las variantes RP2354 cuestan 20 centavos más que los modelos equivalentes sin flash
  • RP2350 estará disponible en grandes volúmenes antes de fines de 2024, y se puede solicitar participación en el programa de muestras desde la página del producto

Placa Pico 2 y productos previstos

  • Pico 2 combina RP2350A con 4 MB de flash QSPI externa
    • La flash QSPI externa de la Pico original era de 2 MB
    • El factor de forma y las características eléctricas son compatibles con el diseño de la Pico original
  • Aunque el inventario en los canales de distribución al momento del lanzamiento no es abundante, Pico 2 está en estado de full-rate production junto con Sony
  • Varios partners Approved Reseller operan sistemas de pedidos pendientes y reservas, y se prevén envíos regulares de unidades durante las próximas semanas
  • Los productos previstos antes de fin de año son los siguientes
    • Pico 2 W con soporte inalámbrico, que usa el mismo módem Infineon 43439 que Pico W
    • Versiones de Pico 2 y Pico 2 W con headers de 0,1 pulgadas preinstalados

Herramientas de desarrollo, certificación de seguridad y documentación

  • Coincidiendo con el lanzamiento de Pico 2 y RP2350, se actualizó el Pico SDK
  • Se ofrecen nuevas imágenes de MicroPython y CircuitPython
  • Jonathan Pallant y sus colaboradores están trabajando para llevar soporte del lenguaje Rust a la nueva plataforma
  • Raspberry Pi está colaborando con el proyecto Trusted Firmware para convertir a RP2350 en la plataforma de hardware de referencia de Trusted Firmware-M 2.1.0 LTS
    • TF-M ofrece una implementación de referencia de PSA Certified en chips Arm v8-M
    • RP2350 será probado por un laboratorio independiente acreditado
    • El objetivo es lograr PSA Certified Level 2 antes del lanzamiento de octubre
  • Junto con Google, también lanzó el Pigweed SDK, que incluye soporte nativo para Pico 2
    • Las bibliotecas de middleware Pigweed están presentes en millones de dispositivos, incluidos dispositivos Google Pixel y termostatos Nest
    • El anuncio de Google puede consultarse en la announcement page
  • RP2350 cuenta con una datasheet completa
  • También se ofrece un tutorial para empezar el desarrollo en C/C++ usando la Raspberry Pi Pico Visual Studio Code extension recién actualizada

Signed boot y bounty de seguridad

  • El núcleo del modelo de seguridad de RP2350 es signed boot
  • Cuando la seguridad está habilitada, solo pueden arrancar binarios firmados con la clave privada correspondiente al hash de clave pública almacenado en OTP
  • Al impedir la ejecución de código arbitrario, se vuelve mucho más difícil la extracción del contenido de OTP, incluidas las claves criptográficas usadas para proteger el código
  • RP2350 usa varias técnicas para defenderse contra ataques de fault injection
    • Detector de glitch rápido por hardware
    • Coprocesador de redundancia con patente en trámite
    • Protección de flujo de control e integridad de datos
  • Raspberry Pi busca encontrar y corregir fallas en el proceso de arranque antes de que RP2350 se despliegue en aplicaciones críticas
  • Antes del lanzamiento encargó auditorías de la arquitectura de seguridad a NewAE y Hextree
  • Ofrece una bounty de $10.000 por el primer break confirmado del proceso de signed boot
    • El período operativo inicial es de un mes
    • Si no se encuentran fallas, el período puede extenderse
    • Se pueden ofrecer bounties adicionales por fallas distintas adicionales
    • Los detalles están en el bounty program
  • En colaboración con la convención de hacking DEF CON, entregó hardware RP2350 a investigadores de seguridad
    • El badge de DEF CON de este año está basado en RP2350
    • Hextree fabricó una cantidad limitada de placas para experimentos de glitching en rieles de alimentación y electromagnético

Productos de partners basados en RP2350

  • Raspberry Pi desarrolló productos basados en RP2350 junto con partners durante el último año
  • Muchos de los productos son actualizaciones de productos existentes basados en RP2040, y algunos son completamente nuevos
  • Ejemplos que se esperan para el día del lanzamiento o durante el mes siguiente
    • 4D Systems: serie gen4-RP2530 de pantallas de alto rendimiento de 2,4″ a 7,0″
    • Adafruit: Metro RP2350 para shields compatibles con Arduino, Feather RP2350 en formato Feather
    • Bus Pirate: herramientas de depuración open hardware basadas en RP2350 Bus Pirate 5XL y Bus Pirate 6
    • Cytron: controlador de I/O industrial IRIV I/O Controller, controlador robótico MOTION 2350 Pro
    • Invector Labs: productos Challenger+ RP2350 con 8 MB de flash, 8 MB de PSRAM y módulo BConnect o WiFi6/BLE5
    • NewAE: RP2350 Target for ChipWhisperer para análisis de potencia y pruebas de fault injection
    • Pimoroni: Explorer, Tiny2350, Plasma 2350, PGA 2350
    • Seeed: XIAO RP2350 con 19 GPIO, LED RGB y sistema de gestión de batería
    • Solder Party: RP2350 Stamp y Stamp XL, que integran RP2350, 16 MB de flash, LDO, cargador LiPo, LED y botones Reset y Boot
    • SparkFun: Pro Micro – RP2350 en factor de forma Pro Micro
    • Switch Science: Picossci2 Breakout con conector USB-C y módulos relacionados
    • Tiny Circuits: Thumby Color, consola llavero wearable programable
    • Wiznet: placas de evaluación basadas en RP2350 para chips Ethernet W5100S, W5500 y W6100

Modo RISC-V y Hazard3

  • RP2350 incluye dos núcleos RISC-V de hardware abierto Hazard3, que pueden usarse al arrancar en lugar de los núcleos Cortex-M33
  • La boot ROM detecta automáticamente para qué arquitectura fue compilado el binario de second-stage y puede reiniciar el chip en el modo correspondiente
  • En modo RISC-V se pueden usar las funciones del chip, salvo un pequeño número de funciones de seguridad y el acelerador de punto flotante de doble precisión
  • Hazard3 fue desarrollado en su tiempo libre por Luke Wren, Principal Engineer del equipo de chips de Raspberry Pi
  • Hazard3 es un procesador optimizado con pipeline de 3 etapas e implementa el conjunto de instrucciones RV32I y varias extensiones estándar orientadas al rendimiento y la densidad de código
  • El objetivo de agregar Hazard3 a RP2350 es permitir que los desarrolladores de software experimenten con la arquitectura RISC-V en un entorno estable y con soporte, y difundir Hazard3 como un núcleo abierto limpio que pueda usarse tal cual en otros dispositivos o como base para desarrollos adicionales

3 comentarios

 
GN⁺ 2024-08-09
Opiniones de Hacker News
  • Luke, autor de Hazard3, explicó el contexto de haber puesto un núcleo Hazard3 junto al M33
    Aunque los tamaños de ambos núcleos no son comparables, es muy probable que el tamaño final del die hubiera sido casi el mismo incluso si se hubiera eliminado Hazard3
    Dice que esto se debe a que la lógica de celdas estándar se puede comprimir y a que las restricciones de diseño del anillo de pads obligan a redondear las dimensiones del die
    Aun así, comenta que si hubieran quitado el núcleo RISC-V, probablemente habría perdido menos pelo en el layout final y el análisis de timing estático
    https://x.com/wren6991/status/1821582405188350417

  • No entiendo por qué todavía usan Micro USB
    Aunque el costo por placa subiera un poco, esperaba que en la próxima versión usaran USB-C

    • Los socios ya tienen preparadas muchas placas alternativas, y si no te molesta pagar un poco más, también hay placas compatibles con Pico con USB-C
      https://www.raspberrypi.com/for-industry/powered-by/product-...
    • Al menos microUSB siempre funciona
      Algunas placas USB-C chinas ahorran en las resistencias pull-up CC, así que el puerto no funciona con cables C-to-C
    • Por el contrario, hay dos razones por las que no me molesta mucho
      Todavía tengo un montón de cables micro-USB, y cada vez tengo menos dónde usarlos
      Estos dispositivos no se mueven ni se conectan y desconectan con frecuencia, así que tampoco se dan mucho las situaciones típicas en las que se rompe el conector
    • Probablemente quieren mantener el mismo form factor que la Pico 1
    • Si quieren decir que es una actualización drop-in de la Pico 1, parece que no les queda otra
      Si hay que rediseñar la carcasa del proyecto, entonces no es una actualización drop-in
  • Comparado con el RP2040, hay bastantes cambios
    Paquete más grande, variante con 2 MB de flash integrada, arranque seguro y arranque cifrado, dos contextos de ejecución seguros, generador de números aleatorios, acelerador SHA-256, ROM OTP de 8 KB, transmisor serial de alta velocidad HSTX de 8 canales, aumento de 30 a 48 GPIO, de 8 a 12 máquinas de estado PIO, de 12 a 16 canales DMA, selección en el arranque entre RISC-V y Arm, paso de Cortex-M0+ a Cortex-M33, y aumento del reloj del núcleo de 133 MHz a 150 MHz
    https://datasheets.raspberrypi.com/rp2350/rp2350-datasheet.p...

    • Las especificaciones del producto son buenas, pero la estructura y el contenido del datasheet están entre los mejores que he visto
    • La versión de 60 pines parece tener el mismo tamaño que el RP2040
  • Parece que resolvieron casi todo lo que me molestaba del RP2040
    Hay que leer sí o sí hasta la sección “One more thing” al final
    En el arranque se puede elegir de forma transparente entre Cortex-M33 o RISC-V

    • Me pregunto por qué usar área del die en un núcleo RISC-V que en productos de producción masiva solo puede usarse en lugar del núcleo Cortex
      Pienso que habría sido mejor usar esa área para más RAM u otro núcleo Arm; incluso tendría más sentido vender una variante exclusiva con RISC-V
    • Ya teniendo Arm, no entiendo cuál es el propósito del núcleo RISC-V
      Habría sido más útil agregar más PSRAM o una unidad de procesamiento para redes neuronales
  • Me pregunto si alguien conoce alguna placa todo en uno de gestión de batería para dispositivos móviles pequeños
    Hace poco empecé a trastear con ESP32 y me sorprendió que en AliExpress no haya muchas placas listas para usar que manejen la carga de la batería por USB y, al mismo tiempo, la alimentación del dispositivo
    Quiero conectar una LiPo al diseño y hacer que funcione sin más, como un teléfono

    • Adafruit tiene algunas placas de carga LiPo, pero no llegan al nivel de integración que busco
      Se necesita un cable USB aparte para la carga
      Sin embargo, algunas placas ESP32 parecen cargar la LiPo por el puerto USB, y algunas placas de Heltec también parecen hacerlo
      Tengo una placa con conector de batería JST, pero hace mucho que no la uso, así que no estoy seguro; probablemente sea este modelo: https://heltec.org/project/wifi-kit32-v3/
    • LILYGO también tiene placas de ese tipo
      Ahora mismo tengo una T18 en el escritorio: https://github.com/LilyGO/TTGO-T-ControllerV2.2/blob/master/...
      Eso sí, tuve algunos problemas para lograr que las cargas funcionaran bien, y los productos de LILYGO en general requieren algo de prueba y error, pero una vez ajustados suelen ser bastante estables
    • Se sabe que el chip ESP32 tiene un sistema de gestión de batería integrado, y también se usa en M5Stack y Seeeduino XIAO
      Lo raro es que, aparte de indicar que hay que soldar la batería, no se explica claramente cómo funciona
    • Ahora estoy revisando BQ25886, BG25887, MP5461, MP2672, LTC3118, MP2639C, IP2326, BQ294533 y MCP73213 como soluciones de 2 celdas
      Para soluciones de una sola celda están IP2312, ETA9740, TP5100, IP5328P, MCP73834, MCP73833, LTC1734 y LTC4121
      También encontré algunos módulos con conector USB-C en AliExpress, pero todavía no los probé
      IP2326: https://www.aliexpress.com/item/1005007175222069.html
      CN3302: https://www.aliexpress.com/item/1005006203228418.html
    • Pimoroni también tiene una línea de productos
      Su placa genérica de gestión de batería con soporte de carga simultánea está aquí: https://shop.pimoroni.com/products/lipo-amigo?variant=397793...
      También se puede conseguir una versión compatible con Pico, o una placa basada en RP2040 con gestión de batería integrada
  • Curiosamente, incluye 2 núcleos Cortex-M33 y 2 núcleos RISC-V Hazard3 de código abierto
    Dicen que Cortex-M33 llega a 4.09 CoreMark/MHz y Hazard3 a 3.81 CoreMark/MHz: https://github.com/Wren6991/Hazard3

    • En el silicio están ambos, y parece que al arrancar se elige uno de los dos
      El RP2350 incluye un par de núcleos RISC-V Hazard3 de hardware abierto que pueden reemplazar a los núcleos Cortex-M33 durante el arranque, y la ROM de arranque también puede detectar automáticamente para qué arquitectura se compiló el binario de segunda etapa y reiniciar en el modo adecuado
      https://www.raspberrypi.com/documentation/microcontrollers/s...
  • Sí, también puede correr DOOM
    Dicen que ya hubo una demostración genial, como el port de DOOM de Graham Sanderson

  • En el RP2040 alguna vez se discutieron técnicas sucias, como trampas de escritura y emulación, para hacer que la RAM externa “funcionara” de alguna manera
    La hoja de datos del RP2350 dice que la nueva interfaz de memoria QSPI admite mapeo de memoria de lectura/escritura, así que me pregunto si eso significa que se puede conectar PSRAM directamente
    No soy precisamente experto en hardware, pero suena bastante prometedor, y también me da curiosidad cuánto mejoraría el rendimiento si eso fuera posible

    • El artículo indica que admite PSRAM QSPI externa
  • Creo que muchas personas se vuelven irresponsables con este tipo de cosas en cuanto a residuos digitales o huella de uso.
    Durante años he estado acumulando variantes de Raspberry Pi sin ninguna razón en particular, y ahora tengo una pila de cosas que no hacen nada.
    Aun así, no creo estar en un extremo dentro de este ámbito.
    Por otro lado, me pregunto cuándo saldrá la Raspberry Pi Pico 2 W con inalámbrico o Bluetooth.
    También es interesante que el RP2350 ofrezca un par de Arm Cortex-M33 y un par de Hazard3 RISC-V de hardware abierto, y que se pueda elegir mediante software o configurando la memoria OTP on-chip.
    Es como tener dos arquitecturas en un solo chip: https://www.raspberrypi.com/products/rp2350/

    • Se puede calcular si es un problema del que valga la pena preocuparse.
      Supongamos que se vendieron 4 millones de Pico y que, aunque el empaque se recicle, todas las Pico terminan en un relleno sanitario.
      Según la hoja de datos, mide 21×51 mm y tiene un grosor de unos 5 mm, así que son unos 5.35 mL por unidad.
      Con 4 millones de unidades son 5659 galones, 756 pies cúbicos, y todos los residuos electrónicos de todas las Pico vendidas hasta ahora cabrían en un solo cubo de 9.1 pies dentro de un garaje.
      No parece algo en lo que valga la pena gastar tiempo preocupándose, y una sola Pico que haga girar un letrero en una oficina de la EPA quizá produzca un beneficio ambiental mayor que el daño causado por todos esos residuos.
    • Si no tienes auto, creo que podrías desperdiciar unos cuantos miles de estas placas sin tener que sentirte tan culpable.
    • Prácticamente todas las personas que viven en países desarrollados son irresponsables con los residuos digitales o su huella.
      Si ya tienes hijos, hay muy poco que puedas hacer para reducir el daño que le causas al planeta, y comprar suficientes Raspberry Pi como para llenar un cajón de cachivaches no cambia mucho.
      Lo mismo pasa con tomar vuelos por vacaciones o comprar un celular nuevo cada pocos años; las Raspberry Pi son un error de redondeo.
    • También se puede pensar en el mercado de segunda mano.
      Antes perdí la oportunidad de vender cuando incluso los modelos viejos eran difíciles de conseguir y caros, pero recientemente vendí todas mis placas antiguas a buen precio, así que no generé residuos directos.
      Sin embargo, lo que más me preocupa de esta Pico es la función de bloqueo de arranque firmado.
      Si no se puede revertir, la Pico quedaría atada para siempre a su programa original, y aunque un usuario sin malas intenciones quisiera reflashearla por completo sin leer el contenido original, quizá no podría usar una placa de segunda mano para otra cosa.
      Me gustaría saber más sobre si se puede revertir el bloqueo de arranque firmado con un borrado completo de la flash.
    • Aunque un juguete nuevo sea tentador, siempre se puede optar por postergar la compra hasta aprovechar lo suficiente lo que ya se tiene.
      En especial, con microcontroladores y placas de desarrollo, la necesidad de actualizar está determinada por los requisitos del proyecto.
      Es distinto de las computadoras o dispositivos móviles, donde las actualizaciones, las apps para usuarios finales o el sistema operativo generan obsolescencia de forma artificial.
  • Me sorprende eso de una fuente de alimentación conmutada on-chip.
    Hace tiempo armé algo así en una PCB, y necesitaba un inductor y varios componentes pasivos.
    Me pregunto cómo metieron todo eso dentro del chip.

    • Si leí bien la hoja de datos, todavía se necesitan un inductor externo y componentes pasivos.
      Lo que se elimina es solo el chip externo de fuente de alimentación conmutada.
    • No está todo dentro del chip.
      Siguen haciendo falta esos componentes pasivos; basta con ver la sección 6.3 de la hoja de datos.
    • Probablemente quiso decir on-board, no “on-chip”.
      En la sección “5.4 Powerchain” de la hoja de datos [0] se ve un convertidor buck-boost externo RT6150 con un inductor externo.
      https://datasheets.raspberrypi.com/pico/pico-2-datasheet.pdf
      Leyendo un poco más, dice que “el RP2350 tiene un regulador conmutado on-chip que suministra 1.1 V al núcleo digital a partir de la alimentación de 3.3 V, y que no se muestra en la Figure 7”.
      Es demasiado difícil encontrar el PDF del esquemático y tampoco tengo instalado Cadence Allegro, así que decidí no seguir buscando.
 
bus710 2024-08-09

Para agregar un poco más sobre la última parte…
En particular, a medida que la memoria flash empezó a incorporarse en los MCU, la gestión de energía dentro del chip se volvió un elemento técnico todavía más importante. Si no se gestiona bien la energía, las celdas no se escriben con la suficiente precisión como para mantener la retención de la flash, y recuerdo que muchos fabricantes de chips sin fábrica la pasaron bastante mal por eso.
Pero este nuevo producto incluso trae una etapa de alimentación conmutada integrada en el chip, así que, además de sorprenderme, me da curiosidad cómo habrán controlado el ruido que se haya generado ahí.

 
bus710 2024-08-09

chapless => fabless