Logotipo do ResearchGate

Computador de placa única Raspberry Pi da ResearchGate

ResearchGate-Raspberry-Pi-Single-Board-Computer-product

Informações do produto

Especificações

  • Fabricante: Raspberry Pi Ltd
  • Data de construção: 01/10/2025
  • Versão da compilação: 99a8b0292e31
  • Produtos Raspberry Pi compatíveis: Pi Zero, Pi Zero 2 W, Pi 1 AB, Pi 2, Pi 3, Pi 4, Pi 5, Compute Modules CM1, CM3, CM4, CM5

Colofão
© 2022-2025 Raspberry Pi Ltd

Esta documentação está licenciada sob uma Creative Commons Atribuição-SemDerivações 4.0 Internacional (CC BY-ND).

Liberar 1
Data de construção 01/10/2025
Versão de compilação 99a8b0292e31

Aviso de isenção de responsabilidade legal
Os dados técnicos e de confiabilidade dos produtos Raspberry Pi (incluindo as fichas técnicas), conforme modificados periodicamente ("Recursos"), são fornecidos pela Raspberry Pi Ltd ("RPL") "no estado em que se encontram", e quaisquer garantias expressas ou implícitas, incluindo, entre outras, as garantias implícitas de comercialização e adequação a uma finalidade específica, são rejeitadas. Na máxima extensão permitida pela lei aplicável, em nenhum caso a RPL será responsável por quaisquer danos diretos, indiretos, incidentais, especiais, exemplares ou consequenciais (incluindo, entre outros, a aquisição de bens ou serviços substitutos; perda de uso, dados ou lucros; ou interrupção de negócios), independentemente da causa e da teoria da responsabilidade, seja contratual, objetiva ou extracontratual (incluindo negligência ou outra), decorrente de qualquer forma do uso dos recursos, mesmo que tenha sido avisada da possibilidade de tais danos.

A RPL reserva-se o direito de fazer quaisquer melhorias, aprimoramentos, correções ou quaisquer outras modificações nos RECURSOS ou em quaisquer produtos descritos neles a qualquer momento e sem aviso prévio.
Os RECURSOS são destinados a usuários qualificados com níveis adequados de conhecimento de design. Os usuários são os únicos responsáveis ​​por sua seleção e uso dos RECURSOS e qualquer aplicação dos produtos descritos neles. O usuário concorda em indenizar e isentar a RPL de todas as responsabilidades, custos, danos ou outras perdas decorrentes do uso dos RECURSOS.
A RPL concede aos usuários permissão para usar os RECURSOS somente em conjunto com os produtos Raspberry Pi. Qualquer outro uso dos RECURSOS é proibido. Nenhuma licença é concedida a qualquer outro direito de propriedade intelectual da RPL ou de terceiros.

ATIVIDADES DE ALTO RISCO. Os produtos Raspberry Pi não são projetados, fabricados ou destinados ao uso em ambientes perigosos que exijam desempenho à prova de falhas, como na operação de instalações nucleares, sistemas de navegação ou comunicação de aeronaves, controle de tráfego aéreo, sistemas de armas ou aplicações críticas de segurança (incluindo sistemas de suporte de vida e outros dispositivos médicos), nos quais a falha dos produtos pode levar diretamente à morte, ferimentos pessoais ou danos físicos ou ambientais graves (“Atividades de Alto Risco”). A RPL isenta-se especificamente de qualquer garantia expressa ou implícita de adequação para Atividades de Alto Risco e não aceita nenhuma responsabilidade pelo uso ou inclusões de produtos Raspberry Pi em Atividades de Alto Risco.
Os produtos Raspberry Pi são fornecidos sujeitos aos Termos Padrão da RPL. O fornecimento dos RECURSOS pela RPL não expande ou modifica de outra forma os Termos Padrão da RPL, incluindo, mas não se limitando às isenções de responsabilidade e garantias expressas neles.

Histórico de versões do documento

Liberar Data Descrição
1 1 de outubro de 2025 Lançamento inicial

Escopo do Documento
Este documento se aplica aos seguintes produtos Raspberry Pi:

Computadores de placa única / SBCs

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

Módulos de Computação

CM1 CM3 CM4 CM5

Introdução

USB On-The-Go (OTG) é uma especificação que permite que um dispositivo funcione tanto como um host USB (como um PC) quanto como um dispositivo/periférico USB (como um teclado, um adaptador Ethernet ou um dispositivo de armazenamento em massa). A página da Wikipédia sobre 'USB On-The-Go' fornece muitos detalhes sobre a especificação OTG: https://en.wikipedia.org/wiki/USB_On-The-Go.
Normalmente, uma conexão USB envolve um host fixo (por exemplo, um computador) e um periférico (por exemplo, um mouse). O USB OTG permite que um dispositivo alterne entre os dois. Por exemploampPor exemplo, um Raspberry Pi poderia servir como host durante a leitura. filepodem ser armazenadas em um pen drive ou funcionar como um pen drive quando conectadas a um computador.

A família Raspberry Pi inclui diversas placas que podem funcionar no modo OTG/periférico, mas o suporte varia dependendo do modelo e do sistema em chip (SoC). Quando operando nesse modo periférico, o dispositivo é frequentemente chamado de "gadget".
Este whitepaper descreve a linha de placas de desenvolvimento Raspberry Pi, explica suas capacidades OTG e fornece exemplos de configuração/código.ampEle aborda dois mecanismos OTG distintos: o método legado, que ainda é muito popular e é descrito primeiro, seguido pelo esquema atualmente recomendado, ConfigFS.

OTG legado

Raspberry Pi Zero / Zero W / Zero 2 W
Essas placas são as mais compatíveis com OTG da família Raspberry Pi. Elas expõem o controlador USB do SoC diretamente na porta de dados USB (a porta marcada como USB, não PWR IN), e o software integrado pode ser configurado para fazer com que seu Raspberry Pi funcione como um dispositivo OTG.

Ativar o modo OTG

Dica: Como você está usando a única porta USB do Raspberry Pi Zero para OTG, não será possível conectar um teclado ou um mouse. Em vez disso, você pode usar uma conexão Wi-Fi e SSH para se comunicar com o Raspberry Pi Zero.

dtoverlay=dwc2

Agora precisamos configurar o software para conectar o driver OTG solicitado ao sistema USB…

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

Outros módulos de dispositivos
Em vez de g_etherVocê pode tentar:

  • g_serialAparece como um dispositivo serial USB.
  • g_mass_storage: Expõe uma imagem file como um pen drive
  • g_compositeEmula um dispositivo composto

Dica
Um dispositivo composto USB é um único dispositivo físico que funciona como múltiplos dispositivos independentes para um computador, aparecendo como diversas interfaces ou classes de dispositivos separadas. Ele combina diferentes funcionalidades, como um teclado e um mouse, ou uma unidade de armazenamento e um disco rígido. webcâmera, em um único dispositivo e conector USB. Quando conectado, o sistema operacional reconhece e utiliza drivers separados para cada uma das funções distintas do dispositivo, permitindo que operem de forma independente.

Para criar um dispositivo serial USB, podemos carregar o módulo apropriado a partir da linha de comando:

  • Código
  • sudo modprobe g_serial

Quando conectado a um PC com Windows, o Raspberry Pi aparecerá como uma porta COM no Gerenciador de Dispositivos; quando conectado a um dispositivo Linux (por exemplo, um Raspberry Pi SBC), ele aparecerá como um dispositivo serial como /dev/ttyACM0.

Raspberry Pi 4 e 5 (OTG na porta de alimentação USB-C)
A porta USB-C de alimentação/OTG do Raspberry Pi 4 suporta o modo periférico quando não está sendo usada para alimentar a placa.
O Raspberry Pi 5 introduz um controlador USB conectado via PCIe, que não suporta OTG. No entanto, assim como no Raspberry Pi 4, a função periférica OTG nativa do SoC é acessível através do conector de alimentação.

Passos
Alimente seu Raspberry Pi através do conector GPIO (5V e GND), deixando a porta USB-C livre.
Conecte a porta USB-C ao seu computador host.

Ative o OTG em /boot/firmware/config.txt 

Código
dtoverlay=dwc2,dr_mode=peripheral

Observação
Você precisa da opção dr_mode=peripheral no overlay para forçar o controlador a entrar no modo periférico OTG (em vez do modo host), já que a linha OTG_ID que normalmente faria a seleção não está presente no Raspberry Pi 4 ou 5.

Carregar um módulo de dispositivo (Ethernet):
Código
sudo modprobe g_ether
Seu Raspberry Pi agora será reconhecido como um dispositivo USB pelo host.

Dica
Nem todos os sistemas host lidam de forma confiável com o modo OTG do Raspberry Pi 4. As conexões Ethernet e serial funcionam melhor.

Série de módulos de computação Raspberry Pi
Os módulos Raspberry Pi Compute Module 1, 3, 3+ e 4 expõem o controlador USB OTG do SoC diretamente à placa de expansão, tornando-os altamente flexíveis.
CM1/CM3/CM3+ A interface USB OTG está disponível em pinos dedicados; as placas de expansão geralmente a expõem por meio de uma porta micro-USB. CM4 Oferece uma interface USB 2.0 compatível com OTG (USB_OTG). Esta interface é roteada para o conector micro-USB da placa de E/S do Compute Module 4.

CM4 OTG example (dispositivo Ethernet)
Conecte um cabo micro-USB à porta USB na placa de E/S.

No arquivo /boot/firmware/config.txt, adicione:

Código
dtoverlay=dwc2,dr_mode=peripheral

No arquivo /boot/cmdline.txt, adicione:

  • Código
  • modules-load=dwc2,g_ether

Reinicie. O Compute Module 4 agora aparecerá como um adaptador Ethernet USB.

Raspberry Pi A, B, B+, 2B, 3B, 3B+
As portas USB nesses modelos são conectadas por meio de um chip hub (LAN9512/LAN9514 ou VIA Labs), o que elimina a capacidade OTG. Elas só podem operar como hosts USB, portanto, não há suporte para OTG.

Utilizando os vários tipos de dispositivos
Esta seção descreve como configurar os modos de dispositivo mais comuns.

Dispositivos de armazenamento em massa
Para usar um Raspberry Pi como dispositivo de armazenamento em massa (como um pen drive), você precisará criar um backup. file para armazenar os dados:

  • Código
    • #Example: Crie um arquivo de 256 MB file para funcionar como um “pen drive”
    • sudo dd if=/dev/zero of=drive.bin bs=1M count=256
    • # Criar um VFAT file sistema no armazenamento de suporte
    • sudo mkfs.vfat drive.bin
  • Edite o arquivo /etc/modprobe.d/g_mass_storage.conf para instruir o sistema a usar o armazenamento secundário:
    • Código
    • opções g_mass_storage file=/drive.bin stall=0 removível=1
    • Você pode examinar o conteúdo do armazenamento secundário montando-o no seu Raspberry Pi. Aqui, vamos montá-lo em uma pasta chamada mountpoint:
  • Código
    • sudo mkdir ponto de montagem
    • sudo mount -o loop drive.bin ponto de montagem

Você precisará ajustar os caminhos conforme necessário.

Dispositivos Ethernet
Quando o dispositivo g_ether é conectado a um host Linux, ele geralmente aparece como uma interface de rede chamada usb0 (ao usar o comando ifconfig).
Normalmente, você pode se conectar ao dispositivo usando SSH, da seguinte forma:

  • Código
  • ssh pi@raspberrypi.local

Dispositivos seriais

Quando um Raspberry Pi é configurado como um dispositivo g_serial, um novo dispositivo serial aparecerá (ao usar o Raspberry Pi OS Bookworm com kernel 6.12.34, este era /dev/ttyGS0). Quando esse dispositivo Raspberry Pi é conectado a um (por exemplo)ampPor exemplo, no host Linux, o dispositivo será reconhecido como um dispositivo compatível com CDC ACM e aparecerá como outra porta serial.ampPor exemplo, em um Raspberry Pi 500 executando o Bookworm, ele aparece como /dev/ttyACM0.
No Linux, você pode testar a conexão serial usando o comando `screen` em cada dispositivo. Se estiver usando o Windows no host, um programa como o PuTTY deve funcionar bem.

No seu Raspberry Pi:

  • Código
  • tela /dev/ttyGS0

Em um host Linux:

  • Código
  • tela /dev/ttyACM0

Em seguida, digite algo em cada janela — o resultado deverá aparecer na outra tela.

Observação
Se o screen não estiver instalado, use o comando sudo apt install screen em uma janela de terminal.
É fácil perceber como essa funcionalidade poderia ser usada para fornecer uma interface serial a um dispositivo Raspberry Pi que monitora diversos sensores (por exemplo, via I2C ou SPI) e envia as informações coletadas de volta, através da porta serial, para o computador host.

ConfigFS/usb_gadget: um admirável mundo novo

Embora sejam de longe a maneira mais comum de configurar OTG em dispositivos Raspberry Pi, os mecanismos descritos acima foram, na verdade, substituídos por algo chamado usb_gadget, que faz parte do ConfigFS.
ConfigFS é uma interface do kernel Linux (uma interface virtual). file O sistema montado em /sys/kernel/config é usado para configurar objetos do kernel — incluindo drivers de dispositivos USB — de forma modular. Usar ConfigFS/usb_gadget é mais flexível do que o antigo método g_mass_storage/g_ether, porque permite compor várias funções USB (por exemplo, Ethernet + serial + armazenamento em massa) simultaneamente.
No entanto, essa funcionalidade extra acarreta um custo de instalação mais elevado.
A ideia básica é que um conjunto de pastas virtuais e fileO arquivo s é criado na pasta /sys/kernel/config, que define o gadget necessário.
Alguma documentação do kernel sobre usb_gadgets está disponível aqui: https://docs.kernel.org/driver-api/usb/gadget.html e https://www.kernel.org/doc/Documentation/ABI/testing/configfs-usb-gadget.

Configurar
A configuração do periférico USB DWC é a mesma que no modo legado. Edite o arquivo config.txt como sudo e adicione:

ResearchGate-Raspberry-Pi-Computador-de-Placa-Única-(1)

Podemos verificar se foi carregado corretamente observando o conteúdo de /sys/kernel/config, que agora deve conter uma pasta chamada usb_gadget.
A próxima etapa é a criação do dispositivo USB propriamente dito, que envolve a criação de uma pasta com o nome do dispositivo e, em seguida, a criação de um conjunto de entradas dentro dessa pasta para definir as propriedades do dispositivo. Este trecho de script bash realiza a maior parte da configuração necessária:

ResearchGate-Raspberry-Pi-Computador-de-Placa-Única-(2) ResearchGate-Raspberry-Pi-Computador-de-Placa-Única-(3)

Agora que os dados básicos do dispositivo foram configurados, precisamos informar ao dispositivo exatamente o que ele é. Criar cada dispositivo é tão simples quanto criar uma pasta na pasta de funções do gadget ConfigFS e, em seguida, vincular essa pasta à entrada de configuração dentro do mesmo gadget.

Serial (CDC ACM):

ResearchGate-Raspberry-Pi-Computador-de-Placa-Única-(4)

Ethernet (RNDIS e ECM):

ResearchGate-Raspberry-Pi-Computador-de-Placa-Única-(5) Armazenamento em massa:
Assim como na configuração anterior, precisamos de um armazenamento de apoio para nosso dispositivo de armazenamento em massa:

ResearchGate-Raspberry-Pi-Computador-de-Placa-Única-(6)

E para usar isso:

ResearchGate-Raspberry-Pi-Computador-de-Placa-Única-(7)

Dica
/sys/class/udc é um diretório dentro do sysfs file Sistema que representa os controladores de dispositivo USB (UDCs) disponíveis. Ele permite que o subsistema de gadgets USB do kernel identifique e interaja com os UDCs de hardware em um dispositivo, possibilitando que o sistema funcione como um periférico USB. Você pode listar seu conteúdo usando o comando `ls /sys/class/udc/` para encontrar o nome do UDC, como `3f980000.usb`, e então gravar esse nome na configuração de um gadget para vinculá-lo ao UDC.

Após a conclusão da configuração, a estrutura de pastas e o conteúdo devem ser semelhantes aos do exemplo.ampVeja abaixo, que configura um dispositivo serial e um dispositivo Ethernet no mesmo aparelho:

ResearchGate-Raspberry-Pi-Computador-de-Placa-Única-(8)

Agora reinicie e, em seguida, conecte o dispositivo Raspberry Pi a um dispositivo host (por exemplo, outro Raspberry Pi, um PC com Windows ou um PC com Linux). O host deve ter uma porta Ethernet USB e uma porta serial conectadas.

Fazendo tudo funcionar
Todos os comandos descritos acima precisam ser executados sempre que o dispositivo Raspberry Pi for iniciado. Como o sistema operacional Raspberry Pi usa o systemd, essa é a maneira apropriada de executar o script de inicialização que realiza toda a configuração. Aqui está um exemplo.ampo script que reúne todas as instruções acima:

ResearchGate-Raspberry-Pi-Computador-de-Placa-Única-(9) ResearchGate-Raspberry-Pi-Computador-de-Placa-Única-(10)

Agora precisamos instruir o systemd a executar nosso script na inicialização.
Criar um file em /lib/systemd/system — o nome que você escolher fica a seu critério (contanto que o sufixo seja .service), mas para este exemploampVamos usar o serviço mass-storage-device.service. Digite o seguinte no... file (Observe que existem muitas opções diferentes para esses serviços) files; usamos apenas os que precisamos):

ResearchGate-Raspberry-Pi-Computador-de-Placa-Única-(11)

Você precisará alterar a linha ExecStart para apontar para o local onde você salvou o script de instalação. Em seguida, você precisa instruir o systemd a executar o serviço na inicialização:

ResearchGate-Raspberry-Pi-Computador-de-Placa-Única-(12)

Agora, ao conectar seu Raspberry Pi a um computador, ele deverá aparecer como um dispositivo de armazenamento em massa. Você pode desativar o serviço systemd da seguinte forma:

ResearchGate-Raspberry-Pi-Computador-de-Placa-Única-(13)

Conectar um console de login a uma porta serial

Se você configurou seu Raspberry Pi como um dispositivo serial, talvez queira usar esse dispositivo para fazer login, em vez de apenas para comunicação serial ponto a ponto. Na versão mais recente do Raspberry Pi OS com systemd, isso é fácil. Você precisa instruir o sistema a criar um getty na porta serial e, em seguida, instruir o systemd a iniciá-lo. O comando a seguir configura o getty no ttyGS0 (o tty criado ao usar o ConfigFS para configurar um dispositivo serial); talvez seja necessário ajustar esse valor para corresponder ao tty atribuído ao dispositivo serial.

ResearchGate-Raspberry-Pi-Computador-de-Placa-Única-(14)

Isso iniciará o getty na porta serial e garantirá que ele seja iniciado automaticamente a cada reinicialização.

Dica
O que é um getty? No Linux, um getty é um programa que gerencia terminais (tanto portas seriais físicas quanto consoles virtuais) para permitir que vários usuários façam login em um sistema, lidando com tarefas como inicializar o terminal, exibir um prompt de login e invocar o programa de login para autenticar o usuário.

Essa funcionalidade pode ser particularmente útil em dispositivos como o Raspberry Pi Zero ou o Raspberry Pi Zero 2 W. Com apenas uma conexão USB fornecendo energia e comunicação serial, você pode conectar o dispositivo e acessar as configurações dele por meio de um terminal.

Conclusão
Para projetos que exigem dispositivos USB (como Ethernet, serial, armazenamento em massa), a família Raspberry Pi Zero e os módulos de computação Raspberry Pi são a melhor escolha.
O Raspberry Pi 4 e o Raspberry Pi 5 oferecem suporte a OTG, mas seus requisitos de energia podem ser um problema.
As placas Raspberry Pi A, B, 2B, 3B e 3B+ não suportam OTG.
Se o seu projeto depende muito de OTG, as melhores opções são o Raspberry Pi Zero 2 W ou o Raspberry Pi Compute Module 4 com a placa de E/S do Compute Module 4.
Existem duas opções no lado do software: o sistema legado ainda é amplamente utilizado e é fácil de configurar; o sistema ConfigFS requer mais trabalho para configurar, mas oferece melhor funcionalidade.

Tabela de referência rápida

Modelo Suporte OTG Notas
Raspberry Pi Zero / Zero W / Zero 2 W Sim Totalmente compatível com a porta de dados USB.
Raspberry Pi 4 Sim ¹ Porta USB-C em modo de dispositivo
Raspberry Pi 5 Sim ¹ Porta USB-C em modo de dispositivo
Raspberry Pi A/B/2B/3B/3B+ Não Somente modo host
Módulo de computação Raspberry Pi 1–3 Sim Exposto nos pinos OTG
Módulo de computação Raspberry Pi 4 Sim micro-USB na placa de E/S CM4

¹ Os Raspberry Pi 4 e 5 geralmente obtêm energia do host através do cabo USB, portanto, pode haver limitações na corrente disponível devido aos maiores requisitos de energia desses dispositivos.

Detalhes de contato para mais informações
Por favor entre em contato aplicações@raspberrypi.com se você tiver alguma dúvida sobre este whitepaper. Web: www.raspberrypi.com

Perguntas frequentes

Quais são os riscos associados à ativação do modo OTG?

Habilitar o modo OTG requer edição do sistema. fileque podem representar um risco se feitas incorretamente. Recomenda-se seguir as instruções cuidadosamente e fazer backup de dados importantes antes de realizar qualquer alteração.

Posso usar o modo OTG em modelos de Raspberry Pi diferentes de Zero, Zero W e Zero 2 W?

Embora as instruções fornecidas sejam específicas para os modelos mencionados, você pode explorar configurações semelhantes em outras placas Raspberry Pi com as adaptações apropriadas.

Documentos / Recursos

Computador de placa única Raspberry Pi da ResearchGate [pdf] Manual de Instruções
Computador de placa única Raspberry Pi, Raspberry Pi, Computador de placa única, Computador de placa única, Computador

Referências

Deixe um comentário

Seu endereço de e-mail não será publicado. Os campos obrigatórios estão marcados *