Logotipo de ResearchGate

ResearchGate Raspberry Pi Ordenador de placa única

ResearchGate - Raspberry Pi - Ordenador de placa única

Información del producto

Presupuesto

  • Fabricante: Raspberry Pi Ltd
  • Fecha de construcción: 01/10/2025
  • Versión de compilación: 99a8b0292e31
  • Productos Raspberry Pi compatibles: Pi Zero, Pi Zero 2 W, Pi 1 AB, Pi 2, Pi 3, Pi 4, Pi 5, Compute Modules CM1, CM3, CM4, CM5

Colofón
© 2022-2025 Raspberry Pi Ltd

Esta documentación está licenciada bajo una Creative Commons Atribución-SinDerivadas 4.0 Internacional (CC BY-ND).

Liberar 1
Fecha de construcción 01/10/2025
Versión de compilación 99a8b0292e31

Aviso Legal
Los datos técnicos y de fiabilidad de los productos Raspberry Pi (incluidas las hojas de datos), según se modifiquen periódicamente («Recursos»), son proporcionados por Raspberry Pi Ltd («RPL») «tal cual» y se excluye cualquier garantía expresa o implícita, incluidas, entre otras, las garantías implícitas de comerciabilidad e idoneidad para un propósito particular. EN LA MEDIDA MÁXIMA PERMITIDA POR LA LEY APLICABLE, EN NINGÚN CASO RPL SERÁ RESPONSABLE DE NINGÚN DAÑO DIRECTO, INDIRECTO, INCIDENTAL, ESPECIAL, EJEMPLAR O CONSECUENCIAL (INCLUIDOS, ENTRE OTROS, LA ADQUISICIÓN DE BIENES O SERVICIOS SUSTITUTOS; LA PÉRDIDA DE USO, DATOS O BENEFICIOS; O LA INTERRUPCIÓN DEL NEGOCIO), INDEPENDIENTEMENTE DE SU CAUSA Y DE LA TEORÍA DE RESPONSABILIDAD APLICABLE, YA SEA CONTRACTUAL, OBJETIVA O EXTRACONTRACTUAL (INCLUIDA LA NEGLIGENCIA O CUALQUIER OTRA), QUE SURJA DE CUALQUIER FORMA DEL USO DE LOS RECURSOS, INCLUSO SI SE HA INFORMADO DE LA POSIBILIDAD DE DICHO DAÑO.

RPL se reserva el derecho de realizar cualquier mejora, mejora, corrección o cualquier otra modificación a los RECURSOS o a cualquier producto descrito en ellos en cualquier momento y sin previo aviso.
Los RECURSOS están destinados a usuarios expertos con niveles adecuados de conocimiento de diseño. Los usuarios son los únicos responsables de la selección y el uso de los RECURSOS y de cualquier aplicación de los productos descritos en ellos. El usuario acepta indemnizar y eximir a RPL de toda responsabilidad, costo, daño u otra pérdida que surja de su uso de los RECURSOS.
RPL otorga a los usuarios permiso para utilizar los RECURSOS únicamente en conjunto con los productos Raspberry Pi. Se prohíbe cualquier otro uso de los RECURSOS. No se otorga ninguna licencia sobre ningún otro derecho de propiedad intelectual de RPL ni de terceros.

ACTIVIDADES DE ALTO RIESGO. Los productos Raspberry Pi no están diseñados, fabricados ni pensados ​​para su uso en entornos peligrosos que requieran un rendimiento a prueba de fallos, como en el funcionamiento de instalaciones nucleares, sistemas de navegación o comunicación de aeronaves, control de tráfico aéreo, sistemas de armas o aplicaciones críticas para la seguridad (incluidos los sistemas de soporte vital y otros dispositivos médicos), en los que la falla de los productos podría provocar directamente la muerte, lesiones personales o daños físicos o ambientales graves ("Actividades de alto riesgo"). RPL rechaza específicamente cualquier garantía expresa o implícita de idoneidad para Actividades de alto riesgo y no acepta ninguna responsabilidad por el uso o la inclusión de productos Raspberry Pi en Actividades de alto riesgo.
Los productos Raspberry Pi se proporcionan sujetos a los Términos estándar de RPL. La provisión de RECURSOS por parte de RPL no amplía ni modifica de otro modo los Términos estándar de RPL, incluidas, entre otras, las exenciones de responsabilidad y garantías expresadas en ellos.

Historial de versiones del documento

Liberar Fecha Descripción
1 1 de octubre de 2025 Lanzamiento inicial

Alcance del documento
Este documento se aplica a los siguientes productos Raspberry Pi:

Ordenadores de placa única / SBC

Pi Zero Pi Cero 2 Pi 1 Pi 2 Pi 3 Pi 4 Pi 5

Módulos de computación

CM1 CM3 CM4 CM5

Introducción

USB On-The-Go (OTG) es una especificación que permite que un dispositivo funcione como host USB (como un PC) o como dispositivo/periférico USB (como un teclado, un adaptador Ethernet o un dispositivo de almacenamiento masivo). La página de Wikipedia sobre USB On-The-Go ofrece información detallada sobre la especificación OTG. https://en.wikipedia.org/wiki/USB_On-The-Go.
Normalmente, una conexión USB implica un host fijo (por ejemplo, un ordenador) y un periférico (por ejemplo, un ratón). USB OTG permite que un dispositivo alterne entre ambos. Por ejemploampPor ejemplo, una Raspberry Pi podría actuar como host al leer files desde una unidad flash, o funcionar como una unidad flash cuando se conecta a una computadora.

La familia Raspberry Pi incluye varias placas que pueden funcionar en modo OTG/periférico, pero la compatibilidad varía según el modelo y el sistema en chip (SoC). Cuando funciona en este modo periférico, el dispositivo suele denominarse «gadget».
Este documento técnico describe la línea de placas de desarrollo Raspberry Pi, explica sus capacidades OTG y proporciona ejemplos de configuración y código.amples. Cubre dos mecanismos OTG distintos: el método heredado, que todavía es muy popular y se describe primero, seguido del esquema actualmente recomendado, ConfigFS.

OTG heredado

Raspberry Pi Zero / Zero W / Zero 2 W
Estas placas son las más compatibles con OTG de la familia Raspberry Pi. Exponen el controlador USB del SoC directamente en el puerto de datos USB (el que está etiquetado como USB, no como PWR IN), y el software integrado se puede configurar para que tu Raspberry Pi funcione como un dispositivo OTG.

Habilitación del modo OTG

Consejo: Dado que estás utilizando el único puerto USB de la Raspberry Pi Zero para OTG, no podrás conectar un teclado ni un ratón. En su lugar, puedes usar una conexión Wi-Fi y SSH para comunicarte con la Raspberry Pi Zero.

dtoverlay=dwc2

Ahora necesitamos configurar el software para conectar el controlador OTG solicitado al sistema USB…

console=serial0,115200 console=tty1 root=PARTUUID=xxxxxxxx-02 rootfstype=ext4 fsck.repair=yes rootwait modules-load=dwc2,g_ether

Otros módulos de dispositivos
En lugar de g_ether, puedes probar:

  • g_serialAparece como un dispositivo serie USB.
  • g_mass_storageExpone una imagen file como una unidad flash
  • g_compositeEmula un dispositivo compuesto

Consejo
Un dispositivo compuesto USB es un único dispositivo físico que funciona como varios dispositivos independientes para un ordenador, apareciendo como varias interfaces o clases de dispositivos separadas. Combina diferentes funcionalidades, como un teclado y un ratón, o una unidad de almacenamiento y un ratón. webLa cámara se integra en un único dispositivo y conector USB. Al conectarse, el sistema operativo reconoce y utiliza controladores independientes para cada una de las funciones específicas del dispositivo, lo que les permite funcionar de forma independiente.

Para crear un dispositivo serie USB, podemos cargar el módulo apropiado desde la línea de comandos:

  • Código
  • sudo modprobe g_serial

Cuando se conecta a una PC con Windows, la Raspberry Pi aparecerá como un puerto COM en el Administrador de dispositivos; cuando se conecta a un dispositivo Linux (por ejemplo, una Raspberry Pi SBC), aparecerá como un dispositivo serial como /dev/ttyACM0.

Raspberry Pi 4 y 5 (OTG en el puerto de alimentación USB-C)
El puerto USB-C de alimentación/OTG de la Raspberry Pi 4 admite el modo periférico cuando no se utiliza para alimentar la placa.
Raspberry Pi 5 incorpora un controlador USB conectado por PCIe, que no admite OTG. Sin embargo, al igual que en Raspberry Pi 4, la función OTG nativa del SoC está disponible a través del conector de alimentación.

Pasos
Alimenta tu Raspberry Pi a través del conector GPIO (5V y GND), dejando libre el USB-C.
Conecta el puerto USB-C a tu ordenador host.

Habilite OTG en /boot/firmware/config.txt 

Código
superposición de datos=dwc2, modo dr=periférico

Nota
Necesitas la opción dr_mode=peripheral en la superposición para forzar al controlador al modo periférico OTG (en lugar del modo host), ya que la línea OTG_ID que normalmente realizaría la selección no está presente en Raspberry Pi 4 o 5.

Cargar un módulo de dispositivo (Ethernet):
Código
sudo modprobe g_ether
Tu Raspberry Pi ahora aparecerá como un dispositivo USB en el ordenador.

Consejo
No todos los sistemas host gestionan correctamente el modo OTG de la Raspberry Pi 4. Ethernet y la conexión serie funcionan mejor.

Serie de módulos de computación Raspberry Pi
Los módulos de computación Raspberry Pi 1, 3, 3+ y 4 exponen el controlador USB OTG del SoC directamente a la placa base, lo que los hace altamente flexibles.
Los módulos CM1/CM3/CM3+ cuentan con una interfaz USB OTG en pines dedicados; las placas base suelen exponerla a través de un puerto micro-USB. El módulo CM4 ofrece una interfaz USB 2.0 compatible con OTG (USB_OTG), la cual se conecta al conector micro-USB de la placa de E/S del Compute Module 4.

CM4 OTG example (dispositivo Ethernet)
Conecte un cable micro-USB al puerto USB de la placa de E/S.

En el archivo /boot/firmware/config.txt, agregue:

Código
superposición de datos=dwc2, modo dr=periférico

En el archivo /boot/cmdline.txt, agregue:

  • Código
  • módulos-carga=dwc2,g_ether

Reinicie. El módulo de cómputo 4 aparecerá ahora como un adaptador Ethernet USB.

Raspberry Pi A, B, B+, 2B, 3B, 3B+
Los puertos USB de estos modelos están conectados mediante un chip concentrador (LAN9512/LAN9514 o VIA Labs), lo que elimina la funcionalidad OTG. Solo pueden funcionar como hosts USB, por lo que no disponen de compatibilidad con OTG.

Utilizando los distintos tipos de dispositivos
Esta sección describe cómo configurar los modos de dispositivo más comunes.

Dispositivos de almacenamiento masivo
Para utilizar una Raspberry Pi como dispositivo de almacenamiento masivo (como una memoria USB), necesitará crear una copia de seguridad. file para almacenar los datos:

  • Código
    • # Example: Crea un archivo de 256 MB file para funcionar como “memoria USB”
    • sudo dd if=/dev/zero of=drive.bin bs=1M count=256
    • # Crear un VFAT file sistema en la tienda de respaldo
    • sudo mkfs.vfat drive.bin
  • Edita el archivo /etc/modprobe.d/g_mass_storage.conf para indicarle al sistema que utilice el almacenamiento de respaldo:
    • Código
    • opciones g_mass_storage file=/drive.bin stall=0 extraíble=1
    • Puedes examinar el contenido del almacenamiento de respaldo montándolo en tu Raspberry Pi. Aquí lo montamos en una carpeta llamada mountpoint:
  • Código
    • sudo mkdir punto de montaje
    • sudo mount -o loop drive.bin punto de montaje

Deberás ajustar las rutas según corresponda.

dispositivos Ethernet
Cuando el dispositivo g_ether se conecta a un host Linux, normalmente aparecerá como una interfaz de red llamada usb0 (cuando se usa ifconfig).
Normalmente, puedes conectarte al dispositivo mediante SSH, de la siguiente manera:

  • Código
  • ssh pi@raspberrypi.local

Dispositivos seriales

Cuando se configura una Raspberry Pi como dispositivo g_serial, aparecerá un nuevo dispositivo serie (al usar Raspberry Pi OS Bookworm con un kernel 6.12.34, este era /dev/ttyGS0). Cuando ese dispositivo Raspberry Pi se conecta a un (por ejemplo, un ordenador),ampPor ejemplo, en un host Linux, el dispositivo será reconocido como un dispositivo compatible con CDC ACM y aparecerá como otro puerto serie.ample, en una Raspberry Pi 500 que ejecuta Bookworm, aparece como /dev/ttyACM0 .
En Linux, puedes probar la conexión serie usando `screen` en cada dispositivo. Si usas Windows en el equipo host, una herramienta como PuTTY debería funcionar bien.

En tu Raspberry Pi:

  • Código
  • pantalla /dev/ttyGS0

En un host Linux:

  • Código
  • pantalla /dev/ttyACM0

Luego, escriba algo en cada ventana; el resultado debería aparecer en la otra pantalla.

Nota
Si screen no está instalado, utilice sudo apt install screen en una ventana de terminal.
Es fácil ver cómo se podría utilizar esta funcionalidad para proporcionar una interfaz serie a un dispositivo Raspberry Pi que monitoriza una serie de sensores (por ejemplo, a través de I2C o SPI) y envía la información recopilada de vuelta, a través del puerto serie, al ordenador host.

ConfigFS/usb_gadget: un mundo nuevo y valiente

Aunque son, con mucho, la forma más común de configurar OTG en dispositivos Raspberry Pi, los mecanismos descritos anteriormente han sido reemplazados por algo llamado usb_gadget, que forma parte de ConfigFS.
ConfigFS es una interfaz del kernel de Linux (una virtualización). file El sistema, montado en /sys/kernel/config, se utiliza para configurar objetos del kernel —incluidos los controladores de dispositivos USB— de forma modular. El uso de ConfigFS/usb_gadget es más flexible que el antiguo método g_mass_storage/g_ether, ya que permite combinar varias funciones USB (por ejemplo, Ethernet + serie + almacenamiento masivo).
Sin embargo, esta funcionalidad adicional conlleva un mayor coste de instalación.
La idea básica es que un conjunto de carpetas virtuales y files se crea en la carpeta /sys/kernel/config, que define el gadget necesario.
Parte de la documentación del kernel sobre usb_gadgets está disponible aquí: https://docs.kernel.org/driver-api/usb/gadget.html y https://www.kernel.org/doc/Documentation/ABI/testing/configfs-usb-gadget.

Configuración
La configuración del periférico USB DWC es la misma que en el modo heredado. Edite el archivo config.txt como usuario sudo y añada:

ResearchGate-Raspberry-Pi-Ordenador-de-placa-única- (1)

Podemos comprobar que se ha cargado correctamente mirando el contenido de /sys/kernel/config, que ahora debería contener una carpeta llamada usb_gadget.
El siguiente paso es la creación del dispositivo USB, lo que implica crear una carpeta con el nombre del dispositivo y, dentro de ella, crear una serie de entradas para definir sus propiedades. Este fragmento de script bash realiza la mayor parte de la configuración necesaria:

ResearchGate-Raspberry-Pi-Ordenador-de-placa-única- (2) ResearchGate-Raspberry-Pi-Ordenador-de-placa-única- (3)

Una vez configurados los datos básicos del dispositivo, debemos identificarlo con precisión. Crear un dispositivo es tan sencillo como crear una carpeta en la carpeta de funciones del gadget ConfigFS y vincularla a la entrada de configuración correspondiente dentro del mismo gadget.

Serie (CDC ACM):

ResearchGate-Raspberry-Pi-Ordenador-de-placa-única- (4)

Ethernet (RNDIS y ECM):

ResearchGate-Raspberry-Pi-Ordenador-de-placa-única- (5) Almacenamiento masivo:
Al igual que con la configuración anterior, necesitamos un almacenamiento de respaldo para nuestro dispositivo de almacenamiento masivo:

ResearchGate-Raspberry-Pi-Ordenador-de-placa-única- (6)

Y para usar eso:

ResearchGate-Raspberry-Pi-Ordenador-de-placa-única- (7)

Consejo
/sys/class/udc es un directorio dentro del sistema de archivos sysfs. file El sistema representa los controladores de dispositivos USB (UDC) disponibles. Permite que el subsistema de dispositivos USB del kernel identifique e interactúe con los UDC de hardware de un dispositivo, lo que posibilita que el sistema funcione como un periférico USB. Puede listar su contenido con el comando `ls /sys/class/udc/` para encontrar el nombre del UDC, como `3f980000.usb`, y luego escribir ese nombre en la configuración de un dispositivo para vincularlo al UDC.

Una vez finalizada la configuración, la estructura de carpetas y su contenido deberían ser similares a los del ejemplo.ampEl siguiente ejemplo configura un dispositivo serie y un dispositivo Ethernet en el mismo dispositivo:

ResearchGate-Raspberry-Pi-Ordenador-de-placa-única- (8)

Ahora reinicia el dispositivo Raspberry Pi y conéctalo a un dispositivo host (por ejemplo, otro Raspberry Pi, un PC con Windows o un PC con Linux). El host debe tener conectado un puerto Ethernet USB y un puerto serie.

Hacer que todo funcione
Todos los comandos descritos anteriormente deben ejecutarse cada vez que se inicia el dispositivo Raspberry Pi. Dado que Raspberry Pi OS utiliza systemd, esta es la forma adecuada de ejecutar el script de inicio que realiza toda la configuración. Aquí hay un ejemplo.ampel script que recopila todas las instrucciones anteriores:

ResearchGate-Raspberry-Pi-Ordenador-de-placa-única- (9) ResearchGate-Raspberry-Pi-Ordenador-de-placa-única- (10)

Ahora necesitamos indicarle a systemd que ejecute nuestro script al inicio.
Crear un file en /lib/systemd/system — el nombre que elijas depende de ti (siempre que el sufijo sea .service), pero para este ejemploampEs decir, utilizaremos mass-storage-device.service. Introduzca lo siguiente en el file (Tenga en cuenta que existen muchas opciones diferentes para estos servicios) files; acabamos de usar los que necesitábamos):

ResearchGate-Raspberry-Pi-Ordenador-de-placa-única- (11)

Deberás modificar la línea ExecStart para que apunte a la ubicación donde hayas guardado el script de configuración. A continuación, deberás indicarle a systemd que ejecute el servicio al inicio del sistema.

ResearchGate-Raspberry-Pi-Ordenador-de-placa-única- (12)

Ahora, al conectar tu Raspberry Pi a un ordenador, debería aparecer como un dispositivo de almacenamiento masivo. Puedes deshabilitar el servicio systemd de la siguiente manera:

ResearchGate-Raspberry-Pi-Ordenador-de-placa-única- (13)

Conexión de una consola de inicio de sesión a un puerto serie

Si has configurado tu Raspberry Pi como un dispositivo serie, es posible que quieras usarlo para iniciar sesión en el dispositivo, en lugar de solo para la comunicación serie punto a punto. En la última versión de Raspberry Pi OS con systemd, esto es sencillo. Debes indicarle al sistema que cree un getty en el puerto serie y luego indicarle a systemd que lo inicie. El siguiente comando configura el getty en ttyGS0 (el tty creado al usar ConfigFS para configurar un dispositivo serie); es posible que debas ajustarlo para que coincida con el tty al que esté asignado el dispositivo serie.

ResearchGate-Raspberry-Pi-Ordenador-de-placa-única- (14)

Esto iniciará el getty en el puerto serie y garantizará que se inicie automáticamente en cada reinicio.

Consejo
¿Qué es un getty? En Linux, un getty es un programa que gestiona terminales (tanto puertos serie físicos como consolas virtuales) para permitir que varios usuarios inicien sesión en un sistema, encargándose de tareas como inicializar la terminal, mostrar un indicador de inicio de sesión e invocar el programa de inicio de sesión para autenticar al usuario.

Esta función puede ser especialmente útil en dispositivos como la Raspberry Pi Zero o la Raspberry Pi Zero 2 W. Con una sola conexión USB que proporciona tanto alimentación como comunicación serial, puede conectar el dispositivo e iniciar sesión en él a través de una terminal.

Conclusión
Para proyectos de dispositivos USB reales (por ejemplo, Ethernet, serie, almacenamiento masivo), la familia Raspberry Pi Zero y los módulos de computación Raspberry Pi son la mejor opción.
Raspberry Pi 4 y Raspberry Pi 5 sí ofrecen soporte OTG, pero sus requisitos de alimentación pueden ser un problema.
Las placas Raspberry Pi A, B, 2B, 3B y 3B+ no son compatibles con OTG.
Si tu proyecto depende en gran medida de OTG, las mejores opciones son Raspberry Pi Zero 2 W o Raspberry Pi Compute Module 4 con la placa de E/S Compute Module 4.
En cuanto al software, existen dos opciones: el sistema heredado todavía se usa comúnmente y es fácil de configurar; el sistema ConfigFS requiere más trabajo para configurarlo, pero ofrece una mejor funcionalidad.

Tabla de referencia rápida

Modelo Soporte OTG Notas
Raspberry Pi Zero / Zero W / Zero 2 W Totalmente compatible con el puerto de datos USB
Frambuesa Pi 4 Sí ¹ Puerto USB-C en modo dispositivo
Frambuesa Pi 5 Sí ¹ Puerto USB-C en modo dispositivo
Raspberry Pi A/B/2B/3B/3B+ No Solo modo anfitrión
Módulo de computación Raspberry Pi 1–3 Expuesto en pines OTG
Módulo de cómputo 4 de Raspberry Pi micro-USB en la placa de E/S CM4

¹ Las Raspberry Pi 4 y 5 normalmente obtienen energía del host a través del cable USB, por lo que puede haber limitaciones en la corriente disponible debido a los mayores requisitos de energía de estos dispositivos.

Datos de contacto para más información
Por favor póngase en contacto aplicaciones@raspberrypi.com Si tiene alguna pregunta sobre este documento técnico. Web: www.raspberrypi.com

Preguntas frecuentes

¿Cuáles son los riesgos asociados con la activación del modo OTG?

Habilitar el modo OTG requiere editar el sistema. fileEsto puede suponer un riesgo si se realiza incorrectamente. Se recomienda seguir las instrucciones cuidadosamente y hacer una copia de seguridad de los datos importantes antes de realizar cualquier cambio.

¿Puedo usar el modo OTG en modelos de Raspberry Pi distintos de Zero, Zero W y Zero 2 W?

Si bien las instrucciones proporcionadas son específicas para los modelos mencionados, puede explorar configuraciones similares en otras placas Raspberry Pi SBC con las adaptaciones apropiadas.

Documentos / Recursos

ResearchGate Raspberry Pi Ordenador de placa única [pdf] Manual de instrucciones
Raspberry Pi, ordenador de placa única, Raspberry Pi, ordenador de placa única, ordenador de placa, ordenador

Referencias

Deja un comentario

Su dirección de correo electrónico no será publicada. Los campos obligatorios están marcados *