Diseña tu PCB con el RP2040: el diagrama esquemático

En esta entrada te queremos compartir cómo diseñar tu propio hardware con el microcontrolador de la fundación Raspberry Pi, el RP2040. Para este tutorial vamos a utilizar el software KiCAD v5.1.1, el cual nos permitirá generar el diagrama, la PCB y los archivos gerber de fabricación.

Primero revisaremos algunos detalles sobre cómo exportar los componentes al software, qué elementos mínimos necesitamos para echar a andar el microcontrolador y algunos aspectos útiles a tomar en cuenta para que nuestro diagrama sea claro y fácil de entender.

Lectura recomendada

Antes de comenzar a diseñar la PCB te recomendamos que le des una hojeada a esta documentación para que te familiarices con el microcontrolador. Es la hoja de especificaciones y una guía de diseño de hardware con el RP2040, ambas por parte de la fundación Raspberry Pi. Adicionalmente te recomendamos una serie de videos para que aprendas a usar KiCAD, que es una poderosa herramienta de diseño electrónico.

¿Qué se va a diseñar?

El objetivo de este proyecto es diseñar una tarjeta para depurar código llamada Picoprobe. Es, a grandes rasgos, una Raspberry Pi Pico cargada con un firmware especial para que, a través del puerto JTAG, podamos examinar qué esta pasando con el código que cargamos a una Raspberry Pi Pico. Esta es una herramienta especialmente útil para desarrolladores de firmware para el RP2040, ya que permite observar con más detalle cómo funciona la Pico por dentro. La ventaja de diseñar una PCB dedicada es que podemos insertar la Raspberry Pi Pico sobre ella y tendremos más espacio para nuestro prototipo. Si quieres aprender un poco más sobre cómo funciona la Picoprobe, revisa este video.

Ejemplo de una Picoprobe, para evitar usar dos protoboards, podemos hacer una PCB que nos ahorra espacio y facilita el cableado. Vía: André Jacobs

Las partes de la tarjeta

Debido a la escasez de semiconductores es probable que algunos elementos sean difíciles de encontrar. Te sugerimos que pruebes a utilizar reemplazos si tienes una idea clara de que chips utilizar. Si no, sigue la guía tal y como está y sobre todo, ten en cuenta usar la memoria QSPI W25, la cual funciona sin mayor problema con la Raspberry Pi Pico. Los archivos para desarrollar este proyecto puedes encontrarlos en este repositorio de Github. Ahí podrás ver los componentes que se usaron en la tarjeta.

Componentes prefabricados

Para incluir componentes a nuestro diseño podemos optar por crearlos nosotros mismos utilizando el asistente de KiCAD o podemos descargar las librerías e incluirlas a nuestro proyecto. El distribuidor Digi-Key cuenta con un catálogo muy completo de partes para que nos ahorremos el tiempo en crear el componente nosotros mismos. También puedes encontrar estas partes en la biblioteca de Ultralibrarian o SnapEDA.

Una vez que hayas creado tu proyecto en KiCad, abre la ventana Administrador de proyectos y selecciona Preferencias> Administrar librerías de símbolos. Ve a la pestaña Librerías específicas del proyecto. Haz clic en el botón de carpeta para Agregar una librería existente a la tabla. Selecciona el archivo .lib en la biblioteca descargada. Haz clic en Aceptar para guardar.

A continuación, ve a Preferencias> Administrar librerías de huellas. Ve a la pestaña Librerías específicas del proyecto. Haz clic en el botón de carpeta para Agregar una librería existente a la tabla. Selecciona la carpeta .pretty en cada biblioteca descargada. Ten en cuenta que las carpetas .pretty de las bibliotecas Ultra Librarian se denominarán footprints.pretty. Para evitar conflictos en el administrador de librerías, se recomienda cambiar el nombre del archivo para reflejar el nombre de la pieza (por ejemplo, rp2040). Haz clic en Aceptar para guardar.

El diagrama esquemático

Este es el diagrama esquemático resultante. Puedes encontrar la versión en PDF aquí. Hay algunas notas a revisar sobre el diseño de este diagrama:

  • Usamos un conector Micro USB B para que fuese igual al de la Pico. Se puede utilizar otro tipo de conector para un diseño diferente.
  • Se requieren resistores de terminación de 27 Ohms para las líneas de datos USB D+ y D-.
  • El RP2040 requiere de un capacitor de desacoplo de 0.1 μF para cada pin IOVDD, cada DVDD y cada ADC_AVDD. Asegurate de que estos capacitores estén cerca de los pines físicos cuando hagas la distribución de los componentes.
  • Hay un regulador de 1.1V dentro del RP2040 para energizar el procesador. Necesitas conectar una entrada de 3.3V a este regulador (VREG_VIN) y conectar la salida (1.1V) a los pines DVDD. La entrada y salida del regulador deben tener un capacitor de 1μF.
  • La velocidad del cristal/oscilador recomendada es de 12 MHz para que el PLL funcione dentro del RP2040 y que funcione a las velocidades del USB. Puedes leer este artículo que explica como calcular los capacitores adecuados para dicho cristal.
  • El RP2040 muestrea la terminal QSPI_CS en el booteo del micro, si esta terminal esta en estado bajo, el microcontrolador bootea en modo bootloader USB (se conecta como un dispositivo de almacenamiento masivo). Si la terminal es alta durante el booteo, carga las instrucciones desde el chip flash QSPI.
  • El pin RUN funciona como el pin de RESET de otros microcontroladores. Si quieres resetear el microcontrolador, manda esta terminal a tierra.
  • Los pines GPIO2 a GPIO5 se usan como puertos UART y SWD en el firmware de picoprobe, por lo que son los que van conectados a la tarjeta de prueba en esta tarjeta.
  • Se dejan los pines SWD del RP2040 con un header hembra por si es necesario programarlo directamente. Estos no deben conectarse al puerto SWD de la tarjeta a probar directamente.
El autor original de la PCB es Shawn Hymel, distribuido con licencia Creative Commons. No hay garantías respecto al dispositivo fabricado por un tercero. Vía: Digi-Key

Asignando los footprints

Por último vamos a asociar el empaquetado de los componentes (footprint) con el símbolo del diagrama. Para esta tarjeta se usaron componentes de montaje superficial 0603, como los capacitores y resistores, y se usaron pads grandes para que se pueda soldar a mano. Esto permite que se puedan soldar algunos componentes manualmente. Sin embargo, esto hizo que los componentes quedaran un poco abultados alrededor del microcontrolador.

Puedes seleccionar el tamaño de componente que sea más adecuado a tu diseño. Vía: Digi-key

Conclusiones

Logramos diseñar el diagrama esquemático de nuestra tarjeta con la cual podremos fabricar el PCB. Para ello elegimos los componentes necesarios para hacer funcionar nuestro RP2040 y desarrollamos cada sección que compone el proyecto. En el próximo artículo nos encargaremos de diseñar la PCB como tal y de distribuir los componentes en el área de diseño.

Referencias:

Hardware Design with the RP2040 Part 1: Schematic

Github del proyecto original