Índice:

Adicione um WIZ820io / USR-ES1 - porta de rede Wiznet W5500 ao seu Raspberry Pi: 10 etapas
Adicione um WIZ820io / USR-ES1 - porta de rede Wiznet W5500 ao seu Raspberry Pi: 10 etapas
Anonim
Adicione uma porta de rede WIZ820io / USR-ES1 - Wiznet W5500 ao seu Raspberry Pi
Adicione uma porta de rede WIZ820io / USR-ES1 - Wiznet W5500 ao seu Raspberry Pi

Em parte devido ao meu interesse em fazer algo assim, e em parte por causa do meu interesse na Codesys, há algum tempo estou pensando em tentar conectar uma segunda porta de interface de rede a um Raspberry Pi. Então, enquanto fazia outros projetos, estive pensando, lendo, comparando, planejando e comprando para que pudesse finalmente ir em frente e construir algo.

Sim - eu sei.. existem alguns sistemas prontos para usar disponíveis por aí que fariam algo semelhante, mas realmente nenhum deles era atraente o suficiente para me separar do meu dinheiro.

Na realidade, tenho um baixo nível de conhecimento e experiência no Raspberry Pi e Linux / Raspberry Pi IOS (Raspian) (me saio melhor nos mundos Windows e Android), nenhum conhecimento profundo de rede (posso fazer as coisas funcionarem e construir redes, mas além disso estou um pouco sobrecarregado), e eu apenas comecei a fazer placas de circuito. Com certeza não sou programador.

Quando finalmente decidi seguir em frente com essa ideia de construir algo, optei por usar o módulo WIZ820io / USR-ES1, que é baseado no circuito integrado Wiznet - W5500. Este módulo pode se comunicar com o Raspberry Pi (e outros MCUs) usando o barramento SPI padrão. Além disso, ele funciona com 3,3 VCC, por isso apresenta riscos de danos ZERO para o meu Raspberry Pi.

Ao projetar a placa de circuito, optei por construí-la em uma configuração "HAT" adequada (forma e capacidade) e, além de adicionar o circuito para o "módulo WIZ820io, também adicionei vários outros itens que NÃO são usados neste projeto de rede, mas que posso e serei usado para outros projetos no futuro.

A placa que projetei / construí contém os seguintes itens.

1 - Um soquete para segurar o Wiznet - WIZ820io - módulo de porta Ethernet (fiz um Eagle Footprint personalizado para isso).

2 - Uma ventoinha de resfriamento de 30 mm - 5 VCC para a CPU Raspberry Pi (fiz uma Eagle Footprint personalizada para isso).

3 - Um chip de memória "CAT24C32" para manter os requisitos de compatibilidade do HAT (ainda não foi programado por mim) (fiz um Eagle Design Block personalizado para isso).

4 - Um mini MAX3232 - UART - Conversor de nível TTL para RS-232 conectado ao UART0 (fiz uma pegada de águia personalizada para isso).

5 - Um LED vermelho (GPIO24), um LED amarelo (GPIO23) e um LED verde (GPIO22) para serem usados nos exercícios de programação Semáforo - Python.

6 - Um LED verde (GPIO18) e um LED verde (GPIO27) - para exercícios de programação e solução de problemas.

7 - Um interruptor tátil conectado ao GPIO25 - para exercícios de programação e solução de problemas (fiz um Eagle Footprint personalizado para isso). NOTE que este GPIO também será usado com o WIZ820io.

Portanto, como observei anteriormente, este Instructable tratará apenas do item nº 1 desta lista. Todos os outros itens que adicionei na placa estão lá por outros motivos não relacionados a este projeto de interface de rede.

Suprimentos

Raspberry Pi - usei um Raspberry Pi 3B mais antigo. Nada de errado com isso.. O meu tem uma porta HDMI morta, então eu o executo "sem cabeça" usando o TeamViewer para acessá-lo. Funciona. Suspeito fortemente que a maioria das versões do Raspberry Pi funcionarão com este Instructable, DESDE que possam executar versões mais recentes do Raspberry Pi IOS (Raspian).

Antes de começar tudo isso, é claro que atualizei o sistema operacional:

sudo apt-get update

sudo apt-get upgrade

WIZ820io / USR-ES1 - A documentação para isso está disponível online no OEM

Placa PC - usei o Autodesk Eagle para projetar a PCB e gerar os arquivos Gerber necessários para que o JLCPCB construa a placa de circuito. Conforme observado anteriormente, também adicionei o chip de memória "CAT24C32" para manter o requisito de compatibilidade do HAT.

Etapa 1: Raspberry Pi 3b

Raspberry Pi 3b
Raspberry Pi 3b

Quanto ao Raspberry Pi, fiz este projeto usando um Raspberry Pi 3b padrão, junto com a versão mais recente do Raspberry Pi IOS (Raspian) que pude baixar e instalar.

Nada de especial aí. Eu possuí essa unidade por alguns anos, e ela funcionou muito bem para mim (bem - a saída de vídeo HDMI está morta, então sou forçado a rodar sem cabeça usando o TeamViewer). Você não deve precisar fazer isso.

Suspeito que qualquer RPi deva ser capaz de se conectar a um WIZ820io / USR-ES1 - Wiznet W5500 e fazer isso funcionar, assim como muitas outras marcas competem no mesmo mercado (Beagle Bone, Orange, Tinker, etc) e usar um similar modelo de sistema operacional baseado em Linux.

Eu tenho ZERO experiência com qualquer um deles. Tenho pouca experiência com a framboesa - olha onde isso me levou:)

Etapa 2: interface do módulo Wiznet WIZ820io com o barramento GPIO do Raspberry Pi

Interface do módulo Wiznet WIZ820io com o barramento GPIO do Raspberry Pi
Interface do módulo Wiznet WIZ820io com o barramento GPIO do Raspberry Pi
Interface do módulo Wiznet WIZ820io com o barramento GPIO do Raspberry Pi
Interface do módulo Wiznet WIZ820io com o barramento GPIO do Raspberry Pi
Interface do módulo Wiznet WIZ820io com o barramento GPIO do Raspberry Pi
Interface do módulo Wiznet WIZ820io com o barramento GPIO do Raspberry Pi

Reveja as imagens anexadas.

O módulo Wiznet WIZ820io fornece duas filas de 6 pinos cada para interface.

As linhas são rotuladas como "J1 e" J2 ", respectivamente.

A folha de dados que eles fornecem tem um diagrama codificado por cores muito bom de cada pino. Este diagrama tem como objetivo ajudá-lo a conectar esses pinos aos pinos Raspberry PI GPIO. Eles são muito bons uma combinação de NAME para NAME.

A pinagem de Raspberry Pi pode ser encontrada aqui: pinout.xyz

Eu conectei esses pinos da seguinte forma (veja a imagem em anexo):

Claro, como eu fiz uma placa de circuito real, todos os Grounds (GND) foram conectados juntos. O mesmo acontece com os pinos de 3,3 V - minha placa de circuito os conectou.

Algumas coisas dignas de nota..

1º - J2 Pin # 5 - RSTn - Eu conectei isso ao RPi GPIO # 17 (Pin # 11) - Isso foi preventivo. Não acredito que seja usado.

2º - J1 Pino nº 6 - INTn - que está conectado ao GPIO25 (Pino nº 22). Isso é necessário, pois na etapa de configuração do IOS do Raspberry Pi, vamos nos referir a isso.

3º - J1- Pino nº 5 - SCNn - que está conectado ao Raspberry Pi "CS0" (pino nº 24). Efetivamente, isso fornece a este módulo o endereço do "Módulo 0" no barramento RPi SPI. Novamente, na etapa de configuração do IOS do Raspberry Pi, vamos nos referir a isso.

Etapa 3: Minha placa de circuito

Minha placa de circuito
Minha placa de circuito
Minha placa de circuito
Minha placa de circuito
Minha placa de circuito
Minha placa de circuito

Em anexo está o esquema "Ponto a Ponto" da Eagle que criei e com o qual gerei os Arquivos Gerber.

Também estão anexadas as imagens da "Placa de circuito" que eu fiz para este projeto.

Esta placa aceita vários produtos Wiznet diferentes do estilo WIZ820io.

Etapa 4: Configuração do Raspberry Pi IOS (anteriormente Raspian) - Entradas na pasta "boot"

Configuração do Raspberry Pi IOS (anteriormente Raspian) - Entradas no
Configuração do Raspberry Pi IOS (anteriormente Raspian) - Entradas no

Para que o Raspberry Pi "veja" o módulo WIZ820io recém-instalado em seu barramento SPI, o IOS precisa estar ciente, para que possa lidar com isso durante o "BOOT Up".

Para fazer isso, vamos simplesmente adicionar duas linhas a:../../boot/config.txt

Primeiro.. Usando um painel / janela do Terminal ==> ls

cd../boot, navegue até../boot e liste (ls) o diretório

Referencie a imagem anexada. Lá você precisa procurar e confirmar a presença de duas entradas - circulei-as em vermelho.

Um é um arquivo chamado: "config.txt"

A segunda é uma pasta chamada: "overlays"

== == == ==

Depois de confirmar a presença de ambas as entradas, você pode continuar para a próxima etapa

Etapa 5: Configuração do Raspberry Pi IOS (anteriormente Raspian) - Entradas no diretório "overlays"

Configuração do Raspberry Pi IOS (anteriormente Raspian) - Entradas no
Configuração do Raspberry Pi IOS (anteriormente Raspian) - Entradas no
Configuração do Raspberry Pi IOS (anteriormente Raspian) - Entradas no
Configuração do Raspberry Pi IOS (anteriormente Raspian) - Entradas no
Configuração do Raspberry Pi IOS (anteriormente Raspian) - Entradas no
Configuração do Raspberry Pi IOS (anteriormente Raspian) - Entradas no

Mude o diretório para o diretório "overlays""

Tipo: sobreposições de cd

Depois de apertar a tecla "enter", isso o levará para a pasta "overlays" (veja a imagem em anexo).

Liste o conteúdo do diretório.

Tipo: ls

Depois de apertar a tecla "enter", você verá uma longa lista do conteúdo desse diretório. A lista pode ser alfabética.

(veja as imagens em anexo (2 de)). Observe que quase TODOS os arquivos são nomeados com a extensão: *.dtbo, você também pode notar alguns com a extensão: *.dtb

Estes são TODOS os arquivos de sobreposição da "Árvore de Dispositivos"

Você precisa confirmar a presença de dois arquivos de "sobreposição" (consulte os arquivos de imagem em anexo).

1º - um arquivo chamado: anyspi.dtbo (para este, você pode precisar usar a barra de rolagem na margem direita da janela para rolar de volta ao topo e encontrar o anyspi.dtbo ordenado alfabeticamente).

2º - um arquivo chamado w5500.dtbo

== == ==

Se você puder confirmar que ambos os arquivos estão presentes, você está em boa forma e pode retornar ao diretório../boot.

Digite: cd../ após pressionar a tecla ENTER, você deve ser levado de volta ao diretório / boot.

Liste o diretório para confirmar: digite: ls e pressione a tecla ENTER

Etapa 6: Configuração do Raspberry Pi IOS (anteriormente Raspian) - Editar arquivo denominado: Config.txt

Configuração do Raspberry Pi IOS (anteriormente Raspian) - Editar arquivo denominado: Config.txt
Configuração do Raspberry Pi IOS (anteriormente Raspian) - Editar arquivo denominado: Config.txt
Configuração do Raspberry Pi IOS (anteriormente Raspian) - Editar arquivo denominado: Config.txt
Configuração do Raspberry Pi IOS (anteriormente Raspian) - Editar arquivo denominado: Config.txt
Configuração do Raspberry Pi IOS (anteriormente Raspian) - Editar arquivo denominado: Config.txt
Configuração do Raspberry Pi IOS (anteriormente Raspian) - Editar arquivo denominado: Config.txt

No diretório../boot, podemos agora trabalhar para fazer algumas pequenas edições no arquivo denominado: config.txt

Vamos primeiro chamar o editor "nano" como um "superusuário" (sudo)

sudo = 'superusuário"

nano é o editor de texto que usaremos

e, conforme observado, config.txt é o arquivo que queremos editar.

Digite: sudo nano config.txt e pressione ENTER.

Isso abrirá o editor e exibirá o conteúdo do arquivo config.txt. Se o editor não abrir ou abrir vazio, saia (se estiver no nano) e verifique a ortografia.

Se tudo correr bem, você deverá ver algo como na segunda imagem anexada. "nano" exibirá o "topo" do arquivo. você precisará rolar para baixo até o final.

Na parte inferior do arquivo, adicione as duas "instruções dtoverlay" abaixo:

dtoverlay = anyspi, spi0-0, dev = "w5500", velocidade = 30000000dtoverlay = w5500

Verifique toda a ortografia e, se corresponder, pressione as duas teclas "Ctrl-x" para sair.. e responda apropriadamente para salvar e sair.

== == == ==

Na próxima inicialização (e para todas as inicializações posteriores, se essas duas declarações permanecerem lá), o sistema operacional também chamará a sobreposição chamada "anyspi" e a sobreposição chamada "w5500".

A sobreposição "anyspy" prepara o sistema operacional para usar o barramento SPI0-0 (é onde conectamos fisicamente o WIZ820io anteriormente. O "-0" especifica para usar o endereço "0" - lembre-se de que conectamos anteriormente o pino WIZ820io # J1-6 para o "CEO" da RPi GIPO (Pin # 24).

A sobreposição "w5500" informa ao sistema operacional como lidar com o circuito integrado W5500 localizado no módulo WIZ820io. Ele também define o uso de RPi GPIO25 (pino # 22) como o sinal INTn. Lembre-se mais uma vez de que já fizemos essa conexão.

Esse tipo de informação pode ser encontrado em vários arquivos, como este exemplo encontrado no GITHub.

== == ==

É hora de reiniciar o RPI e fazer com que tudo isso entre em vigor.

Etapa 7: Reiniciamos. Espero que você esteja sorrindo

Nós reinicializamos. Espero que você esteja sorrindo
Nós reinicializamos. Espero que você esteja sorrindo
Nós reinicializamos. Espero que você esteja sorrindo
Nós reinicializamos. Espero que você esteja sorrindo

Se tudo correu bem, o RPi deve ter reiniciado normalmente. Sorriso.

É hora de verificar se o IOS carregou os dois novos arquivos de sobreposição e se reconhece o módulo WIZ820io conectado.

Mais uma vez, abra uma janela "Comando".

Desta vez, no prompt, digite ifconfig (ou use o comando "ip" mais recente) e pressione a tecla Enter.

Provavelmente, você obterá uma resposta longa, portanto, será necessário rolar de volta para o topo.

De volta ao topo, procure as duas seções:

Um denominado eth0 e um segundo denominado: eth1 - consulte a imagem em anexo.

Em meu sistema, eth0 é a porta Ethernet no RPI. eth1 é a nova porta Ethernet WIZ820io.

== == ==

Se você estiver vendo as duas portas, o RPI também estará. Observe na imagem anexada, a eth1 enviou pacotes, e sem erros.

Eu testei isso desconectando o cabo da porta original e usando o navegador para acessar o YouTube e outros sites. Funciona. Eu também fiz "ping" de alguns dispositivos diferentes e funciona.

== == ==

Se você não estiver vendo eth1 (ou algo semelhante) - diferente de eth0 em um RPI3 ou RPi4, tente voltar e verificar se o config.txt foi editado e salvo corretamente. Certifique-se de que as duas sobreposições estão no lugar e que a ortografia está correta (sem letras maiúsculas onde eu não as tenho - as maiúsculas são importantes neste sistema).

== == ==

Se as duas portas estiverem presentes, então pode haver um pouco mais de trabalho de configuração a ser feito… para a próxima etapa….

Etapa 8: Configuração do Raspberry Pi IOS (anteriormente Raspian) - Definir o endereço IP

Isso está um pouco fora da minha casa do leme, então, no momento, não posso fornecer orientação.

Saiba que existem inúmeros sites, vídeos no YouTube e painéis de mensagens que fornecem esse tipo de informação.

mas.. você pode querer verificar e fazer algumas coisas aqui.

1 - Verifique novamente o endereço IP que sua nova porta possui atualmente. foi atribuído pelo seu servidor DHP ou é o IP padrão - algo na faixa de: 169.254.xxx.yyy? É outra coisa ??

2- Você quer um endereço IP estático (fixo) ou um endereço IP dinâmico (atribuído pelo seu servidor DHCP).

Verifique o switch / roteador ao qual seu RPI está conectado.. ele vê sua nova porta? pode fazer um "ping"? (certifique-se de desconectar o cabo da porta original se fizer isso - caso contrário, o RPi pode enganá-lo).

Use ifconfig (ou o comando "ip" mais recente) para ver se os dados que entram e saem parecem "normais" (por assim dizer) e sem um número indevido de erros.

== == ==

Por último.. acredito que seja o w5500.dtbo atribuindo um endereço MAC ao módulo WIZ820io / W5500.. mas não posso dizer com certeza se é aí que isso acontece. Não consegui encontrar detalhes sobre isso imediatamente.

Para mim, parece que um endereço MAC diferente é atribuído a cada vez que ele é inicializado. Eu pessoalmente não gosto disso e, conseqüentemente, há coisas que podem ser feitas para definir o endereço Mac (o programa "macchanger" por exemplo ou configurá-lo através dos comandos ip / ifconfig). Se algum de vocês encontrar uma solução "boot-up" / "crontab" para isso, ficaria feliz em saber como você faz isso se estiver aberto para compartilhar.

Você pode ver o meu na imagem.. Quando procuro o fornecedor do Mac Address para eth0 ==> b827eb, ele aparece como Raspberry Pi Foundation. O fornecedor de eth1 ==> fa9770 surge como desconhecido, então, obviamente, ele foi gerado no meu Pi em algum ponto..

Etapa 9: Conclusão

Obrigado por verificar este Instructable.

Aprendi um pouco trabalhando com esse pequeno projeto.

Caso tenha alguma dúvida ou interesse em comprar uma das pranchas que criei (preenchida ou não), tenho alguns extras que estão à venda e que podemos discutir.

Em qualquer caso, peço que deixe comentários, sugira correções (erros de digitação ou métodos ou ??)

Certamente, se você fizer isso por si mesmo, ficaria muito satisfeito em ver fotos de como você lidou com isso e seus resultados finais / propósito.

Obrigado.

P. S.: Obrigado a este colega pela orientação e ideias.

Etapa 10: Arquivos DTBO

Dois arquivos para adicionar à sua pasta de sobreposições - necessários para as etapas 4 e 5

Recomendado: