Conexão Ethernet com o Microchip ENC28J60 integrado
O integrado ENC28J60 é um controlador Ethernet com interface para Barramento SPI. Ele foi projetado para ser usado com sistemas pequenos, geralmente baseados em microcontroladores.
Su Barramento SPI pode operar em até 20 MHz e a conexão Ethernet tem velocidade máxima de 10 Mbit/s (10BASE-T) modos de suporte Duplex (Full-Duplex) e Semi-duplex (Half-Duplex) com detecção e correção automática de polaridade. Embora 10 Mbit/s possa parecer uma velocidade baixa em comparação com a rede Ethernet GigaBit que é o mais comum hoje, mas é mais que suficiente para integrar um pequeno dispositivo microcontrolado em uma rede, por exemplo, para realizar funções como objeto de IoT (Internet das Coisas, Internet das Coisas)
Opera a 3,3 V, embora seja tolerante a sinais de 5 V, tornando muito fácil a integração com diferentes microcontroladores, bem como o trabalho com ele durante a prototipagem ou teste.
Inclui internamente um amortecer configurável para recepção/transmissão, um FIFO circular para recepção e acesso direto à memória (DMA) para agilizar a movimentação de dados. É capaz de fazer o hardware somas de verificação e outras operações típicas de comunicação Ethernet portanto a sua integração a nível de software num projeto é muito simples.
A configuração típica requer, além de um oscilador de 25 MHz (um cristal com seus capacitores correspondentes), um conector e transformadores Ethernet, que muitas vezes são encapsulados junto com outros componentes, como resistores ou LEDs, para reportar o status do link e da recepção/recepção. em um bloco contendo o conector RJ45.
É fabricado apenas para montagem em superfície (SMT/SMD) em pacotes de 28 pinos SPDIP (um DIP com maior densidade de pinos), SSOP, SEC y QFN Portanto, para realizar testes ou protótipos, costumamos trabalhar com módulos como os da imagem anterior, dos quais, além disso, as unidades individuais estão facilmente disponíveis, em comparação com o próprio módulo integrado, que costuma estar no mercado em grandes lotes.
|
||||||
Vcap | → | 01 | 28 | ← | Vdd | |
vs | → | 02 | 27 | → | LHE DÁ | |
CLKOUT | ← | 03 | 26 | → | LEDB | |
INT | ← | 04 | 25 | ← | Vddosc | |
NC | ← | 05 | 24 | → | OSC2 | |
SO | ← | 06 | 23 | ← | OSC1 | |
SI | → | 07 | 22 | ← | Vssosc | |
SCK | → | 08 | 21 | ← | Vsspll | |
CS | → | 09 | 20 | ← | Vddpll | |
REAJUSTE | → | 10 | 19 | ← | Vddrx | |
Vssrx | → | 11 | 18 | ← | Vsstx | |
TPIN- | → | 12 | 17 | → | TPOUT+ | |
PIN+ | → | 13 | 16 | → | TPOUT- | |
RBIAS | → | 14 | 15 | ← | Vddtx | |
Além de (1) a fonte de alimentação, uma vez montada a unidade integrada, (2) as conexões ficarão expostas. Ethernet pela extremidade do conector RJ45 e para a parte microcontrolada da montagem o Barramento SPI (MOSI/MISO/SCLK/CS) e (3) gerenciado diretamente pelo microcontrolador ou outra parte do conjunto eletrônico pode ser conectada INT, que pode ser usado como WOL (Wake-On-LAN) ou ativação remota via rede (Remote Wake-up), REAJUSTE e uma conexão com relógio externo CLKOUT.
Por exemplo, para fazer essas conexões entre um módulo com o integrado ENC28J60 e um prato Arduino Os valores da tabela a seguir devem ser seguidos dependendo do tipo de placa.
ENC28J60 | Arduino UNO | Arduino MEGA/DUE | Arduino Leonardo |
MISO (SO) | MISO (pino 12) | MISO (pino 50) | MISO (conector ICSP) |
MOSI (SIM) | MOSI (pino 11) | MOSI (pino 51) | MOSI (conector ICSP) |
SCK | SCK (pino 13) | SCK (pino 52) | SCK (conector ICSP) |
REAJUSTE | REAJUSTE | REAJUSTE | REAJUSTE |
INT | INT0 (pino 2) | INT4 (pino 2) | INT0 (pino 2) |
SS (CS) | SS (pino 10)* | SS (pino 53)* | pino 10* |
Vdd (3,3V) | 3V3 | 3V3 | 3V3 |
Vss (GND) | GND | GND | GND |
Em geral, as conexões são aquelas que seriam esperadas com base no que foi dito (e na lógica), mas existem algumas diferenças entre as placas. Em caso de Arduino Leonardo, a menos que o pino SS tenha sido soldado manualmente na placa (é comum adicionar os pinos 22-CTS e 8-SS) é utilizado o pino 10, que não possui esta atribuição, portanto deverá ser considerado no software de controle. Por outro lado, não é essencial usar o pino "padrão" para selecionar (ativar) o dispositivo escravo, mas a maioria das bibliotecas Ethernet para gerenciar o integrado esperam usar esse pino (e para esse fim) para que tenham a ser modificado em caso contrário e em alguns casos (algumas bibliotecas) quando a placa é usada Leonardo.
Outra consideração que deve ser atendida também corresponde à placa Leonardo e o uso do conector ICSP em vez dos correspondentes (dos blocos laterais) na placa Arduino UNO
Postar Comentário