Índice:

Projete seu próprio PCB de módulo de computação do Raspberry Pi: 5 etapas (com imagens)
Projete seu próprio PCB de módulo de computação do Raspberry Pi: 5 etapas (com imagens)

Vídeo: Projete seu próprio PCB de módulo de computação do Raspberry Pi: 5 etapas (com imagens)

Vídeo: Projete seu próprio PCB de módulo de computação do Raspberry Pi: 5 etapas (com imagens)
Vídeo: Projeto 12- Como fazer Interface Grafica(GUI) QT Creator e Raspberry Pi 4 em C/C++ - Makers Jetson 2024, Julho
Anonim
Projete sua própria placa de circuito impresso do Raspberry Pi Compute Module
Projete sua própria placa de circuito impresso do Raspberry Pi Compute Module
Projete sua própria placa de circuito impresso do Raspberry Pi Compute Module
Projete sua própria placa de circuito impresso do Raspberry Pi Compute Module
Projete sua própria placa de circuito impresso do Raspberry Pi Compute Module
Projete sua própria placa de circuito impresso do Raspberry Pi Compute Module

Se você nunca ouviu falar do Módulo de computação Raspberry Pi antes, ele é basicamente um computador Linux totalmente desenvolvido com o formato de um pendrive RAM de laptop!

Com ele torna-se possível projetar seus próprios painéis personalizados onde o Raspberry Pi é apenas mais um componente. Isso lhe dá uma enorme flexibilidade, pois permite que você tenha acesso a uma quantidade muito maior de pinos de IO, enquanto ao mesmo tempo você escolhe exatamente o hardware que deseja na sua placa. O eMMC integrado também elimina a necessidade de um cartão micro SD externo, o que torna o Módulo de computação perfeito para projetar produtos baseados em Raspberry Pi.

Infelizmente, embora o Compute Module permita que você faça tudo isso, ele ainda parece estar faltando em termos de popularidade em comparação com o Raspberry Pi Model A e B. Como resultado, não existem muitos projetos de hardware de código aberto baseados em isto. E para qualquer pessoa que queira começar a projetar seus próprios painéis, a quantidade de recursos de que dispõe é bastante limitada.

Quando comecei a usar o Módulo de computação do Raspberry Pi alguns meses atrás, esse foi exatamente o problema que eu estava enfrentando. Então, decidi fazer algo a respeito. Decidi projetar um PCB de código aberto baseado no Compute Module, que terá todos os recursos básicos que tornam o Raspberry Pi excelente. Isso inclui um conector de câmera, host USB, saída de áudio, HDMI e, claro, um conector GPIO compatível com as placas Raspberry Pi regulares.

O objetivo deste projeto é fornecer um design de código aberto para uma placa baseada no Compute Module, que qualquer pessoa poderá usar como ponto de partida para projetar sua própria placa personalizada. A placa foi projetada em KiCAD, um pacote de software de EDA de código aberto e plataforma cruzada, a fim de permitir que o maior número de pessoas possível aproveite-o.

Simplesmente pegue os arquivos de design, adapte-os às suas necessidades e gire seu próprio quadro personalizado para o seu projeto.

Etapa 1: Peças e Ferramentas

Peças e Ferramentas
Peças e Ferramentas
Peças e Ferramentas
Peças e Ferramentas
Peças e Ferramentas
Peças e Ferramentas
Peças e Ferramentas
Peças e Ferramentas

Para começar a usar o Módulo de computação do Raspberry Pi, você precisará das seguintes peças:

1 x Módulo 3 do Raspberry Pi Compute - Eu recomendo fortemente obter a versão regular que inclui o eMMC integrado e não a versão Lite. Se você quiser usar a versão Lite em seu projeto, terá que fazer algumas alterações no design, e isso inclui adicionar um conector de cartão micro SD. Por fim, testei a placa apenas com o CM3 e não posso garantir que funcionará com a primeira versão do CM lançada em 2014.

Atualização 2019-01-29: Parece que a Fundação acaba de lançar o Compute Module 3+ e não só isso, mas agora também vem com a opção de um eMMC de 8GB, 16GB ou 32GB! De acordo com a folha de dados, parece que o CM3 + é elétrico idêntico ao CM3, o que significa que é basicamente uma queda na substituição do CM3.

1 x Placa de IO do módulo de computação - Meu projeto foi criado para servir como um ponto de partida para projetar sua própria placa personalizada com base nela, não para substituir a placa de IO do módulo de computação. Portanto, para tornar sua vida mais fácil, eu recomendo colocar as mãos em uma placa IO e usá-la para o desenvolvimento antes de mudar para uma placa personalizada. Além de dar a você acesso a cada pino do CM mais uma variedade de conectores, a placa IO também é necessária para atualizar o eMMC integrado. O que é algo que você não pode fazer com a minha placa, a menos que você faça algumas alterações no design primeiro.

1 x Raspberry Pi Zero Camera Cable ou Compute Module Camera Adapter - No meu projeto, estou usando um conector de câmera muito semelhante ao usado pela placa de IO do módulo de computação e pelo Raspberry Pi Zero. Portanto, para conectar uma câmera, você precisará de um cabo adaptador projetado para o Pi Zero ou da placa adaptadora da câmera que vem junto com o Compute Module Development Kit. Pelo que eu sei, comprar a placa adaptadora separadamente é bastante caro. Então, se você gosta de mim, decidiu comprar seu CM e IO Board separadamente para economizar algum dinheiro, eu aconselho você a obter o cabo adaptador de câmera projetado para o Pi Zero.

1 x Módulo de câmera Raspberry Pi - Eu apenas testei a placa com o módulo de câmera 5MP original e não com a versão mais recente de 8MP. Mas, uma vez que o primeiro parece estar funcionando bem, não vejo razão para o último não funcionar, pois é suposto ser compatível com as versões anteriores. De qualquer forma, a versão 5MP pode ser encontrada por menos de 5 € no eBay hoje em dia, por isso eu recomendo comprar uma.

4 cabos de ligação fêmea para fêmea - você vai precisar de pelo menos 4 para configurar o conector da câmera na placa IO, mas provavelmente você vai querer mais. Eles não são necessários para a placa personalizada, mas podem ser úteis se você planeja conectar qualquer hardware externo por meio do cabeçalho GPIO.

1 x cabo HDMI - decidi usar um conector HDMI de tamanho normal na minha placa para eliminar a necessidade de adaptadores. Claro, se você preferir usar um conector mini ou micro HDMI, fique à vontade para adaptar o design às suas necessidades.

Fonte de alimentação micro USB de 1 x 5V - O carregador do telefone provavelmente deve funcionar bem na maioria dos casos, desde que possa fornecer pelo menos 1A. Lembre-se de que este é apenas um valor geral, seus requisitos reais de energia dependerão do hardware que você decidir incluir em sua placa personalizada.

1 adaptador Ethernet USB - Se você planeja instalar ou atualizar praticamente qualquer pacote em seu sistema, precisará de pelo menos acesso temporário à Internet. Um adaptador Ethernet 2 em 1 mais hub USB é provavelmente uma boa combinação, pois você só tem uma porta USB disponível. Pessoalmente, eu uso o Edimax EU-4208, que funciona fora da caixa com o Pi e não requer alimentação externa, mas não tem um hub USB embutido. Se você está pensando em comprar um adaptador Ethernet USB aqui, você pode encontre uma lista com os que foram testados com o Raspberry Pi.

Se você quiser adicionar mais portas USB e até mesmo Etherent diretamente em sua placa personalizada, sugiro dar uma olhada no LAN9512 da Microchip. É o mesmo chip usado pelo Raspberry Pi Modelo B original e vai lhe dar 2 portas USB e 1 porta Ethernet. Alternativamente, se você precisa de 4 portas USB, considere dar uma olhada em seu primo LAN9514.

1 x Conector de RAM DDR2 SODIMM - Este é provavelmente o componente mais importante de toda a placa e provavelmente o único que não pode ser facilmente substituído. Para evitar problemas, a parte que você deve obter é o TE CONNECTIVITY 1473005-4. Ele está disponível na maioria dos principais fornecedores, incluindo TME, Mouser e Digikey, portanto, você não deve ter problemas para encontrá-lo. Porém, tenha muito cuidado, verifique novamente e certifique-se de que a peça que você está solicitando seja de fato a 1473005-4. Não cometa o mesmo erro que eu cometi e pegue a versão espelhada, esses conectores não são baratos.

Para o restante das partes que escolhi incluir no quadro, você pode dar uma olhada na lista de materiais para obter mais informações. Tentei incluir links para as planilhas de dados da maioria delas.

Equipamento de solda - Os menores componentes da placa são os capacitores de desacoplamento 0402, mas o HDMI, bem como a câmera e os conectores SODIMM também podem ser um pouco desafiadores sem qualquer tipo de ampliação. Se você tem boa experiência com solda SMD, não deve ser um grande problema. De qualquer forma, se você tiver acesso a um microscópio, eu o recomendo fortemente.

Etapa 2: Atualizando o EMMC

A primeira coisa que você precisa fazer antes de começar a usar seu Módulo de computação é atualizar a imagem Raspbian Lite mais recente no eMMC. A documentação oficial do Raspberry Pi é muito bem escrita e descreve todo o processo em detalhes para Linux e Windows. Por esse motivo, apenas descreverei brevemente as etapas que você precisa realizar no Linux, para que possam servir como uma referência rápida.

Em primeiro lugar, você precisa ter certeza de que sua placa IO está configurada para o modo de programação e que o Módulo de computação está inserido no conector SODIMM. Para definir a placa no modo de programação, mova o jumper J4 para a posição EN.

Em seguida, você precisará construir a ferramenta rpiboot em seu sistema para que possa usá-la para obter acesso ao eMMC. Para fazer isso, você precisa de uma cópia do repositório usbboot, que pode ser obtido facilmente usando git da seguinte forma, git clone --depth = 1 https://github.com/raspberrypi/usbboot && cd usbboot

Agora, para construir o rpiboot, você precisa ter certeza de que os pacotes libusb-1.0-0-dev e make estão instalados em seu sistema. Então, supondo que você esteja em uma distribuição baseada em Debian, como o Ubuntu run, sudo apt update && sudo apt install libusb-1.0-0-dev make

Se você não usa uma distribuição baseada em Debian, o nome do pacote libusb-1.0.0-dev pode ser diferente, então certifique-se de descobrir como ele é chamado no seu caso. Uma vez que as dependências de compilação são instaladas, você pode construir o binário rpiboot simplesmente executando, faço

Depois que a construção for concluída, execute rpiboot como root e ele começará a esperar por uma conexão, sudo./rpiboot

Agora conecte a placa IO ao computador conectando um cabo micro USB à porta USB SLAVE e, em seguida, aplique energia à porta POWER IN. Após alguns segundos, o rpiboot deve ser capaz de detectar o Módulo de computação e permitir que você acesse o eMMC. Isso deve resultar em um novo dispositivo de bloco aparecendo em / dev. Você pode usar o programa fdisk para ajudá-lo a encontrar o nome do dispositivo, sudo fdisk -l

Disco / dev / sdi: 3,7 GiB, 3909091328 bytes, 7634944 setores

Unidades: setores de 1 * 512 = 512 bytes Tamanho do setor (lógico / físico): 512 bytes / 512 bytes Tamanho de E / S (mínimo / ideal): 512 bytes / 512 bytes Tipo de Disklabel: dos Identificador de disco: 0x8e3a9721

Tipo de Id do tamanho dos setores de inicialização da inicialização do dispositivo

/ dev / sdi1 8192 137215 129024 63M c W95 FAT32 (LBA) / dev / sdi2 137216 7634943 7497728 3,6G 83 Linux

No meu caso, era / dev / sdi, pois já tenho algumas unidades conectadas ao meu sistema, mas a sua com certeza vai variar.

Depois de ter certeza absoluta de que encontrou o nome do dispositivo correto, você pode usar o dd para gravar a imagem Raspbian Lite no eMMC. Antes de fazer isso, certifique-se de que não haja nenhuma partição do eMMC já montada em seu sistema.

df -h

Se você encontrar algum, desmonte-os da seguinte maneira, sudo umount / dev / sdXY

Agora seja extremamente cuidadoso, usar o nome de dispositivo errado com dd pode destruir seu sistema e causar perda de dados. Não prossiga com a próxima etapa a menos que tenha certeza absoluta de que sabe o que está fazendo. Se precisar de mais informações, dê uma olhada na documentação a respeito.

sudo dd if = -raspbian-stretch-lite.img of = / dev / sdX bs = 4M && sync

Depois que os comandos dd e sync terminarem, você poderá desconectar a placa IO do computador. Finalmente, não se esqueça de mover o jumper J4 de volta para a posição DIS e seu Módulo de computação deve estar pronto para sua primeira inicialização.

Etapa 3: primeira inicialização

Antes de inicializar pela primeira vez, certifique-se de conectar um teclado USB e um monitor HDMI à placa IO. Se tudo correr conforme o esperado e seu Pi terminar de inicializar, tê-los anexados permitirá que você interaja com ele.

Quando for solicitado que você faça o login, use "pi" como nome de usuário e "raspberry" como senha, pois essas são as credenciais de login padrão. Agora você pode executar alguns comandos para se certificar de que tudo está funcionando conforme o esperado, como faria normalmente em qualquer Raspberry Pi, mas não tente instalar nada ainda porque você ainda não tem uma conexão com a Internet.

Uma coisa importante que você precisa fazer antes de desligar o Pi é habilitar o SSH, para que você possa se conectar a ele a partir do computador após a próxima inicialização. Você pode fazer isso facilmente usando o comando raspi-config, sudo raspi-config

Para habilitar o SSH vá para Opções de Interface, selecione SSH, escolha SIM, OK e Concluir. Caso você seja perguntado se deseja reiniciar, recuse. Depois de terminar, desligue seu Pi e, quando terminar, remova a energia.

sudo shutdown -h now

Em seguida, você precisa estabelecer uma conexão com a Internet usando o adaptador Ethernet USB que você já deve ter. Se o seu adaptador também possui um hub USB, você pode usá-lo para conectar o seu teclado, caso contrário, você pode apenas conectar ao seu Pi através de SSH. De qualquer forma, mantenha o monitor HDMI conectado pelo menos por enquanto, para garantir que o processo de inicialização termine conforme o esperado.

Além disso, próximo ao final, ele também deve mostrar o endereço IP que seu Pi obteve do servidor DHCP. Tente usar isso para se conectar ao seu Pi via SSH.

ssh pi @

Depois de conectar com sucesso ao seu Pi por SSH, você não precisa mais do monitor e do teclado plugados, então sinta-se à vontade para desconectá-los se desejar. Neste ponto, você também deve ter acesso à Internet a partir do seu Pi, você pode tentar executar um ping em algo como google.com para verificá-lo. Depois de verificar se você tem acesso à Internet, é uma boa ideia atualizar o sistema executando, sudo apt update && sudo apt update

Etapa 4: Configurando a câmera

Configurando a Câmera
Configurando a Câmera

A maior diferença entre uma placa Raspberry Pi regular e o Módulo Compute é que, no caso do último, além de apenas habilitar a câmera usando raspi-config, você também precisa de um arquivo de árvore de dispositivo personalizado.

Você pode encontrar mais informações sobre a configuração do Módulo de computação para uso com uma câmera na documentação. Mas, em geral, o conector da câmera entre os outros também possui 4 pinos de controle, que precisam ser conectados a 4 pinos GPIO no módulo de computação, e cabe a você decidir quais deles ao projetar sua placa personalizada.

No meu caso, ao projetar a placa, escolhi CD1_SDA para ir para GPIO28, CD1_SCL para GPIO29, CAM1_IO1 para GPIO30 e CAM1_IO0 para GPIO31. Eu escolhi esses pinos GPIO específicos porque queria ter um cabeçalho GPIO de 40 pinos na minha placa, que também mantém a compatibilidade com o conector GPIO das placas Raspberry Pi regulares. E por esse motivo eu tive que ter certeza de que os pinos GPIO que estou usando para a câmera não aparecem no cabeçalho GPIO.

Portanto, a menos que você decida fazer alterações na fiação do conector da câmera, você precisa de um /boot/dt-blob.bin que diga ao seu Pi para configurar o GPIO28-31 conforme descrito acima. E para gerar um dt-blob.bin, que é um arquivo binário, você precisa de um dt-blob.dts para compilar. Para facilitar as coisas, vou fornecer meu próprio dt-blob.dts para você usar, que você pode adaptar às suas necessidades, se necessário.

Para compilar o arquivo da árvore do dispositivo, use o compilador da árvore do dispositivo da seguinte forma, dtc -I dts -O dtb -o dt-blob.bin dt-blob.dts

Não tenho certeza do porquê, mas o acima deve resultar em alguns avisos, mas desde que o dt-blob.bin tenha sido gerado com sucesso, tudo deve estar bem. Agora, mova o dt-blob.bin que você acabou de gerar para / boot executando, sudo mv dt-blob.bin /boot/dt-blob.bin

O texto acima provavelmente dará a você o seguinte aviso, mv: falha ao preservar a propriedade de '/boot/dt-blob.bin': Operação não permitida

Estou apenas reclamando que não pode preservar a propriedade do arquivo, pois / boot é uma partição FAT que é de se esperar. Você deve ter notado que /boot/dt-blob.bin não existe por padrão, isso ocorre porque o Pi usa uma árvore de dispositivos embutida. Adicionar seu próprio / boot sobrescreve o integrado e permite que você configure a função de seu pino da maneira que desejar. Você pode encontrar mais sobre a árvore de dispositivos na documentação.

Depois de fazer isso, você precisa habilitar a câmera, sudo raspi-config

Vá para Opções de interface, selecione Câmera, escolha SIM, OK e Concluir. Caso você seja perguntado se deseja reiniciar, recuse. Agora, desligue seu Pi e remova a energia.

Após a alimentação ter sido removida da placa IO, usando 4 fios de jumper fêmea para fêmea conecte os pinos para GPIO28 a CD1_SDA, GPIO29 a CD1_SCL, GPIO30 a CAM1_IO1 e GPIO31 a CAM1_IO0. Finalmente, conecte o módulo da câmera ao conector CAM1 usando a placa adaptadora da câmera ou um cabo da câmera projetado para o Raspberry Pi Zero e aplique a alimentação.

Se tudo funcionou como esperado após a inicialização do Pi, você poderá usar a câmera. Para tentar tirar uma foto depois de se conectar ao seu Pi via SSH run, raspistill -o test.jpg

Se o comando terminar sem erros e um test-j.webp

sftp pi @

sftp> get test.jpg sftp> exit

Etapa 5: Mudança da placa IO para uma PCB personalizada

Mudança da placa IO para uma PCB personalizada
Mudança da placa IO para uma PCB personalizada
Mudança da placa IO para uma PCB personalizada
Mudança da placa IO para uma PCB personalizada
Mudança da placa IO para uma PCB personalizada
Mudança da placa IO para uma PCB personalizada

Agora que você concluiu todas as configurações básicas, pode passar a projetar sua própria placa personalizada com base no Módulo de computação. Já que este será seu primeiro projeto, eu o encorajo a pegar meu design e estendê-lo para incluir qualquer hardware adicional de sua preferência.

A parte de trás da placa tem bastante espaço para adicionar seus próprios componentes e para projetos relativamente pequenos, você provavelmente nem precisa aumentar as dimensões da placa. Além disso, caso este seja um projeto autônomo e você não precise de um cabeçalho GPIO físico em sua placa, você pode facilmente se livrar dele e economizar espaço na parte superior do PCB. O cabeçalho GPIO também é o único componente roteado pela segunda camada interna e sua remoção o libera completamente.

Devo ressaltar que eu mesmo montei e testei com sucesso uma das placas e verifiquei que tudo, incluindo a câmera e a saída HDMI, parece estar funcionando conforme o esperado. Portanto, contanto que você não faça grandes mudanças na forma como eu encaminhei tudo, você não deve ter problemas.

No caso de você ter que fazer algumas grandes mudanças de layout, lembre-se de que a maioria dos traços que vão para os conectores HDMI e da câmera são roteados como pares diferenciais de 100 Ohm. Isso significa que você deve levar isso em consideração no caso de precisar movê-los pelo tabuleiro. Além disso, isso significa que, mesmo se você remover o cabeçalho GPIO de seu projeto, o que significa que agora as camadas internas não conterão nenhum traço, você ainda precisa de um PCB de 4 camadas para obter uma impedância diferencial próxima de 100 Ohm. Se você não vai usar a saída HDMI e a câmera, você deve conseguir uma placa de 2 camadas livrando-se delas e reduzindo um pouco o custo das placas.

Apenas para referência, as placas foram encomendadas da ALLPCB com uma espessura total de 1,6 mm e eu não pedi controle de impedância, pois provavelmente aumentaria um pouco o custo e eu também queria ver se isso importaria. Eu também selecionei o acabamento dourado por imersão para tornar a soldagem manual dos conectores mais fácil, uma vez que garante que todas as almofadas ficarão bem planas.

Recomendado: