enc28j60, el controlador ethernet via spi de microchip al desnudo

19
uControl Abril 30, 2013, 07:57:52 Bienvenido(a), Visitante. Por favor, ingresa o regístrate. ¿Perdiste tu email de activación? Siempre Ingresar Ingresar con nombre de usuario, contraseña y duración de la sesión Buscar INICIO AYUDA BUSCAR INGRESAR REGISTRARSE uControl > Area técnica > Explicaciones y consultas técnicas (Moderador: Marioguillote)> ENC28J60, el controlador Ethernet via SPI de Microchip al desnudo Páginas: [1] 2 Ir Abajo « anterior próximo » IMPRIMIR Autor Tema: ENC28J60, el controlador Ethernet via SPI de Microchip al desnudo (Leído 24301 veces) 0 Usuarios y 1 Visitante están viendo este tema. Ariel Global Moderator dsPIC Desconectado Sexo: Mensajes: 10190 ENC28J60, el controlador Ethernet via SPI de Microchip al desnudo « : Marzo 09, 2010, 10:16:03 » Hola amigos! Voy a intentar traducir la hoja de datos del ENC28J60, el controlador Ethernet via SPI de Microchip y aportar lo que pueda sobre el funcionamiento de este chip. Va a llevar algunos dias, quizas tenga errores al principio (al menos hasta que tengamos un prototipo andando para hacer algunas pruebas) pero el trabajo va a valer la pena No va a ser una traduccion literal...¡Estás avisado! ¿Comenzamos?

Upload: miguel-angel-pedraza

Post on 14-Dec-2014

88 views

Category:

Documents


6 download

TRANSCRIPT

Page 1: ENC28J60, El Controlador Ethernet via SPI de Microchip Al Desnudo

uControl

Abril 30, 2013, 07:57:52 

Bienvenido(a),Visitante. Porfavor, ingresa oregístrate.¿Perdiste tuemail deactivación?

Siempre

IngresarIngresar connombre deusuario,contraseña yduración de lasesión

     Buscar

    INICIO   AYUDA BUSCAR INGRESAR REGISTRARSE  

uControl > Area técnica > Explicaciones y consultas técnicas (Moderador: Marioguillote) > ENC28J60, el controlador Ethernet via SPIde Microchip al desnudo

Páginas: [1] 2   Ir Abajo« anterior próximo »

  IMPRIMIR  

Autor Tema: ENC28J60, el controlador Ethernet via SPI de Microchip al desnudo  (Leído 24301 veces)

0 Usuarios y 1 Visitante están viendo este tema.

ArielGlobal ModeratordsPIC

 Desconectado

Sexo: Mensajes: 10190

ENC28J60, el controlador Ethernet via SPI de Microchip al desnudo« : Marzo 09, 2010, 10:16:03 »

Hola amigos!Voy a intentar traducir la hoja de datos del ENC28J60, el controlador Ethernet via SPI de Microchipy aportar lo que pueda sobre el funcionamiento de este chip. Va a llevar algunos dias, quizas tengaerrores al principio (al menos hasta que tengamos un prototipo andando para hacer algunaspruebas) pero el trabajo va a valer la pena  

No va a ser una traduccion literal...¡Estás avisado!  

¿Comenzamos?

Page 2: ENC28J60, El Controlador Ethernet via SPI de Microchip Al Desnudo

INDICE

­ Introducción

Módulos internos y pines de E/S

­ El oscilador­ Oscilador Start­up Timer­ El pin CLKOUT y el registro ECOCON­ Conexionado externo, bobinas y otras yerbas­ Niveles tensión en los pines de E/S­ Configuración de los LEDs

Registros y memoria

­Organización de la memoria interna­ Los registros de control   ­ ECON1   ­ ECON2­ El buffer Ethernet­ Registros PHY­ Escaneo de registros PHY­ Registros PHSTAT1 y PHSTAT2­ Registros PHID1 y PHID2­ La interfaz SPI­ Set de instrucciones SPI­Comando para leer registros de control­ Comando para leer la memoria buffer­ Comando para escribir registros de control

Estado del trabajo: 42% realizado, ultima actualización el 31­03­2010

 cmp­enc28j60.jpg (13.61 KB ­ descargado 559 veces.)

 Pantallazo.png (31.88 KB ­ descargado 12565 veces.)

« Última modificación: Abril 08, 2010, 03:59:00 por Ariel »  En línea

“Si cualquier habilidad que aprende un niño será obsoleta antes de que la use, entonces, ¿qué es lo que tiene que aprender? Larespuesta es obvia: 

La única habilidad competitiva a largo plazo es la habilidad para aprender“. Seymour Papert

ArielGlobal ModeratordsPIC

 Desconectado

Sexo: Mensajes: 10190

Re: ENC28J60, el controlador Ethernet via SPI de Microchip al desnudo« Respuesta #1 : Marzo 09, 2010, 01:19:48 »

ENC28J60 de Microchip

El ENC28J60 de Microchip es un circuito integrado de 28 pines capaz de hacer de interfase entrenuestros proyectos y una red Ethernet. 

IntroducciónEl ENC28J60 es un controlador Ethernet dotado de un puerto SPI (Serial Peripheral Interface),especialmente diseñado para actuar como un puente entre una red Ethernet y un microcontroladorequipado con SPI. El ENC28J60 cumple con las especificaciones IEEE 802.3, e incorpora una seriede esquemas de filtrado de paquetes para limitar el numero de paquetes entrantes. También proveeun módulo DMA interno para facilitar el flujo de datos y hardware especifico para el calculo de lassumas de control (IP checksums). La comunicación con el microcontrolador que hace las veces dehost se realizan mediante el bus SPI a una velocidad de hasta 10Mb/s y dos pines especialescapaces de provocar interrupciones en el ENC28J60. Otros dos pines pueden utilizarse para manejarLEDs que indiquen la conexión y la actividad de la red.

La figura siguiente muestra el diagrama en bloques del integrado:

Page 3: ENC28J60, El Controlador Ethernet via SPI de Microchip Al Desnudo

Figura1: Diagrama en bloques del EN28J60.

El esquema de la figura 2 corresponde a una aplicación típica del ENC28J60:

Figura 2: Circuito de aplicación típico.

Además del integrado, puede verse que se utilizan dos transformadores de pulso y varioscomponentes pasivos indispensables para conectar el ENC28J60 a una red Ethernet de 10Mb/s. ElEN28J60 tiene siete bloques funcionales importantes:

1) La interfaz SPI que se encarga de comunicarlo con el microcontrolador host2) Los registros  que se emplean para monitorear y controlar al ENC28J603) Un buffer RAN dual para los paquetes recibidos y enviados4) Un “arbitro” que controla los accesos al buffer RAM mediante DMA5) Un bus que interpreta los datos y comandos recibidos vía SPI6) Un módulo MAC (Maduim Access Control) que cumple con IEEE 802,37) Una módulo PHY (Physical Layer) que codifica y decodifica los datos análogos presentes en el partrenzado.

Además de ello, el dispositivo cuenta con otros bloques de soporte, como el oscilador, regulador devoltaje interno, adaptadores de nivel para proveer E/S de 5V y lógica de control.

El chip viene en dos encapsulados diferentes:

Page 4: ENC28J60, El Controlador Ethernet via SPI de Microchip Al Desnudo

Figura 3: Pinout de cada encapsulado

Veamos primero una lista de la función de cada pin (Figura 4) y luego explicaremos con más detallecada uno de ellos:

Figura 4: Descripción de la funcion de cada pin

 Pantallazo.png (54.21 KB ­ descargado 12816 veces.)

 Pantallazo­1.png (19.02 KB ­ descargado 12289 veces.)

 Pantallazo­3.png (45.56 KB ­ descargado 12404 veces.)

 Pantallazo­2.png (102.63 KB ­ descargado 12298 veces.)

« Última modificación: Marzo 09, 2010, 01:28:12 por Ariel »  En línea

“Si cualquier habilidad que aprende un niño será obsoleta antes de que la use, entonces, ¿qué es lo que tiene que aprender? Larespuesta es obvia: 

La única habilidad competitiva a largo plazo es la habilidad para aprender“. Seymour Papert

Ariel Re: ENC28J60, el controlador Ethernet via SPI de Microchip al desnudo

Page 5: ENC28J60, El Controlador Ethernet via SPI de Microchip Al Desnudo

Global ModeratordsPIC

 Desconectado

Sexo: Mensajes: 10190

« Respuesta #2 : Marzo 09, 2010, 04:47:09 »

El oscilador:Para funcionar, el ENC28J60 necesita de un oscilador que le “marque el ritmo”. El chip está diseñadopara funcionar a 25MHz, y una de las formas de proporcionárselos es utilizando un cristal como seve en la figura 5.

Figura 5: Oscilador a cristal

Se conecta el cristal entre los pines OSC1 y OSC2, y se ponen también ambos extremos a GNDmediante C1 y C2. El valor de C1 y C2 no está en la hoja de datos, pero 15pf parecen funcionar bienen la mayoría de los proyectos. El resistor R1 solo es necesario con algunos tipos de cristales (“ATstrip cut crystals") pero normalmente no es necesaria.

La otra forma de utilizar el ENC28J60 es con una señal de clock externa (figura 2), con una amplitudde 3,3V y aplicada al pin OSC1. En este caso, puede dejarse el pin OSC2 “al aire” o conectarlo aGND a través de un resistor para minimizar el ruido. 

Figura 6: Oscilador externo

 Pantallazo­4.png (11.34 KB ­ descargado 12091 veces.)

 Pantallazo­5.png (6.97 KB ­ descargado 11931 veces.)

 En línea

“Si cualquier habilidad que aprende un niño será obsoleta antes de que la use, entonces, ¿qué es lo que tiene que aprender? Larespuesta es obvia: 

La única habilidad competitiva a largo plazo es la habilidad para aprender“. Seymour Papert

ArielGlobal ModeratordsPIC

 Desconectado

Sexo: Mensajes: 10190

Re: ENC28J60, el controlador Ethernet via SPI de Microchip al desnudo« Respuesta #3 : Marzo 09, 2010, 04:49:39 »

Oscilador Start­up TimerEste chip posee lo que Microchip denomina Oscillator Start­up Timer (OST). Se trata de unmecanismo destinado a asegurar que el oscilador y el módulo PHY se hayan estabilizado antes deque el host intente utilizarlos. Para ello, el OST se encarga de esperar a que ocurran 7500 ciclos dereloj (300us) luego de ocurrido el Power­On Reset (“encendido” del chip) o un Wake­Up(“despertar”) posterior a un Power­Down (“dormir”). Durante este tiempo, todos los registros ybuffers de memoria pueden ser consultados o escritos a través del bus SPI. Sin embargo, elsoftware del host no debería intentar transmitir paquetes, habilitar la recepción de paquetes oacceder a los registros MAC, MII o PHY.

Cuando el tiempo del OST haya finalizado, el bit CLKRDY del registro ESTAT se pondrá en 1.Nuestro programa debería consultar ese bit para tener la seguridad de que el  ENC28J60 está listopara funcionar.

« Última modificación: Marzo 09, 2010, 05:08:05 por Ariel »  En línea

“Si cualquier habilidad que aprende un niño será obsoleta antes de que la use, entonces, ¿qué es lo que tiene que aprender? Larespuesta es obvia: 

La única habilidad competitiva a largo plazo es la habilidad para aprender“. Seymour Papert

ArielGlobal ModeratordsPIC

 Desconectado

Sexo: Mensajes: 10190

Re: ENC28J60, el controlador Ethernet via SPI de Microchip al desnudo« Respuesta #4 : Marzo 09, 2010, 05:42:34 »

El pin CLKOUT y el registro ECOCON

La existencia de este pin tiene como fin proveer al host (o a cualquier otro circuito externo) de unafuente de reloj. CLKOUT posee un prescaler interno capaz de dividir los 25MHz del reloj del

Page 6: ENC28J60, El Controlador Ethernet via SPI de Microchip Al Desnudo

 ENC28J60 por 1, 2, 3, 4 u 8, seleccionable a través del registro ECOCON.

Para crear una señal de reloj, el pin CLKOUT se mantiene en estado bajo hasta transcurrido elperidodo estipulado por el OST. Luego, comienza a enviar 0 y 1  con una frecuencia por defecto de6,25 MHz (el clock del  ENC28J60 / 4). Si el usuario modifica el valor del preescaler, este semantiene aún cuando ocurra un RESET. Si por algún motivo el usuario necesita deshabilitartemporalmente el pin CLKOUT, puede hacerlo escribiendo 0 en el registro ECOCON, y el pin quedaráen estado bajo.

Hay que tener en cuenta que cuando se modifica el valor de ECOCON para cambiar el valor delpreescaler, algunos pulsos de reloj pueden “perderse” en CLKOUT. Típicamente, al hacer esecambio, el pin se mantiene en estado bajo entre 1 y 8 ciclos del OSC1. Eso puede verse en la figurasiguiente:

Figura 7: Salida de CLKOUT y el registro ECOCON

Los bits del 7 al 3 no se encuentran implementados en este registro, y al leerlos devuelven “0”. Losotros tres permiten 8 combinaciones diferentes:

COCON2:COCON0111 = Reservado para test durante la fabricación. No usar.110 = Reservado para test durante la fabricación. No usar.101 = CLKOUT dividido 8 (3.125 MHz)100 = CLKOUT dividido 4 (6.25 MHz)011 = CLKOUT dividido 3 (8.333333 MHz)010 = CLKOUT o dividido 2 (12.5 MHz)001 = CLKOUT dividido 1 (25 MHz)000 = CLKOUT deshabilitado, pin en estado bajo.

 Pantallazo­6.png (15.05 KB ­ descargado 11878 veces.)

 En línea

“Si cualquier habilidad que aprende un niño será obsoleta antes de que la use, entonces, ¿qué es lo que tiene que aprender? Larespuesta es obvia: 

La única habilidad competitiva a largo plazo es la habilidad para aprender“. Seymour Papert

ArielGlobal ModeratordsPIC

 Desconectado

Sexo: Mensajes: 10190

Re: ENC28J60, el controlador Ethernet via SPI de Microchip al desnudo« Respuesta #5 : Marzo 09, 2010, 06:07:41 »

Conexionado externo, bobinas y otras yerbas

Para funcionar y poder conectarse a la red Ethernet, el ENC28J60 necesita de algunos componentesexternos, tal como puede verse en la figura 8. Los pines TPIN+ y TPIN­ deben conectarse a untransformador 1:1 especial para redes 10BASE­T . Los pines TPOUT+ y TPOUT­ necesitan de untransformador de pulso con relación 1:1 y punto medio. Este transformador debe ser capaz deproveer una aislación como mínimo de 2000V. Además, todos los pines mencionados necesitan deun resistor de 50 ohms con un 1% de tolerancia.

Page 7: ENC28J60, El Controlador Ethernet via SPI de Microchip Al Desnudo

Figura8: Conexionado externo.

La circuitería analógica interna del ENC28J60 también requiere que conectemos un resistor de 2K con un 1% de tolerancia entre el pin RBIAS y GND. El chip es capaz de operar también con unatensión de alimentación de solo 2.5V, en cuto caso habrá que disponer un condensador de 10 uFentre el pin VCAP y GND.

Todos los pines de alimentación  (Vdd) deben ser conectados a la misma fuente de 3.3V, y todos lospines GND deben conectarse al mismo nodo. Cada par de pines Vdd/Vss debe tener su propiocondensador cerámico de 0.1uF, tan cerca de los pines como sea posible. Hay que tener en cuentaque corrientes relativamente altas van a circular entre el integrado y el par trenzado, por lo que laspistas correspondientes deberían ser lo mas cortas y anchas posibles para minimizar su resistenciaeléctrica.

 Pantallazo­7.png (38.76 KB ­ descargado 12080 veces.)

 En línea

“Si cualquier habilidad que aprende un niño será obsoleta antes de que la use, entonces, ¿qué es lo que tiene que aprender? Larespuesta es obvia: 

La única habilidad competitiva a largo plazo es la habilidad para aprender“. Seymour Papert

ArielGlobal ModeratordsPIC

 Desconectado

Sexo: Mensajes: 10190

Re: ENC28J60, el controlador Ethernet via SPI de Microchip al desnudo« Respuesta #6 : Marzo 10, 2010, 04:13:20 »

Niveles tensión en los pines de E/SEl ENC28J60 es un chip diseñado para operar a 3.3V. Sin embargo, puede ser integrado con facilidaden circuitos que se alimentan con 5V. Los pines RESET, SPI CS, SCK y SI funcionan directamentecon 5V. Por otro lado, si el host opera a 5V, puede que necesites implementar un “traductor” capazde manejar las salidas CMOS de 3.3V del ENC28J60.

Un simple y económico 74HCT08 (cuatro compuertas AND), un 74ACT125 (cuatro bufferestriestado) o cualquier otro chip CMOS de 5V con bufferes de entrada adaptados para niveles TTLpuede ser usado como adaptador. El uso de bufferes triestado permite una fácil integración ensistemas que deben compartir el bus SPI con otros dispositivos. La figura 9 ilustra dos formas enque esto puede ser implementado.

Page 8: ENC28J60, El Controlador Ethernet via SPI de Microchip Al Desnudo

Figura 9

 Pantallazo­1.png (23.79 KB ­ descargado 11931 veces.)

« Última modificación: Marzo 10, 2010, 04:22:00 por Ariel »  En línea

“Si cualquier habilidad que aprende un niño será obsoleta antes de que la use, entonces, ¿qué es lo que tiene que aprender? Larespuesta es obvia: 

La única habilidad competitiva a largo plazo es la habilidad para aprender“. Seymour Papert

ArielGlobal ModeratordsPIC

 Desconectado

Sexo: Mensajes: 10190

Re: ENC28J60, el controlador Ethernet via SPI de Microchip al desnudo« Respuesta #7 : Marzo 10, 2010, 04:39:14 »

Configuración de los LEDs

Los pines LEDA y LEDB permiten la conxión de sendos LEDs destinados a brindar información sobreel estado del chip. Una caracterstica especial de estos dos pines es que el ENC28J60 puede detectarla polaridad con la que se han conectado los LEDs (es decir, si debe entregar corriente para quebrille, o drenarla) de forma automatica luego de que tiene lugar RESET.

Figura 10: Polaridad de LEDB y efecto en PDPXMB

En el caso de LEDB, tal como indica la figura 10, la forma de conectar el diodo LED fija el estado delbit PHCON1 en el registro PDPXMB. Si el LED se conecta de forma que la corriente fluya haciaLEDB, el bit se pone a 0 en cada RESET y el módulo PHY opera en modo half­duplex. Si la corrientefluye desde el pin, el bit se pone en 1 en cada RESET y el módulo PHY opera en modo full­duplex. Sino se conecta ningún LED, el bit PDPXMD permanece en estado indeterminado.

El registro PHLCON se encarga de controlar el comportamiento de los LEDs y determinar quefunción cumplen. La tabla siguiente (Figura 11) resume todos los estados y opciones posibles:

Page 9: ENC28J60, El Controlador Ethernet via SPI de Microchip Al Desnudo

Figura 11:  PHLCON

Page 10: ENC28J60, El Controlador Ethernet via SPI de Microchip Al Desnudo

 Pantallazo­2.png (11.98 KB ­ descargado 11943 veces.)

 Pantallazo­4.png (13.39 KB ­ descargado 11674 veces.)

 Pantallazo­3.png (108.23 KB ­ descargado 11689 veces.)

 En línea

“Si cualquier habilidad que aprende un niño será obsoleta antes de que la use, entonces, ¿qué es lo que tiene que aprender? Larespuesta es obvia: 

La única habilidad competitiva a largo plazo es la habilidad para aprender“. Seymour Papert

ArielGlobal ModeratordsPIC

 Desconectado

Sexo: Mensajes: 10190

Re: ENC28J60, el controlador Ethernet via SPI de Microchip al desnudo« Respuesta #8 : Marzo 11, 2010, 11:20:11 »

Organización de la memoria internaToda la memoria disponible en el ENC28J60 es del tipo RAM estática. Se divide en tres bloquesprincipales:

1)Registros de control2)Buffer Ethernet3)Registros del módulo PHY

El primer bloque contiene los CRs (Control Registers) que se emplean para el controlar y obtenerinformación sobre el estado del ENC28J60. Todos estos registros pueden ser accedidos (lectura yescritura) mediante la interfase SPI.

El segundo bloque ­el Buffer Ethernet­ tiene un tamaño que puede ser ajustado por el usuario y tienecomo función servir de memoria temporal para los datos que se envían (o reciben) a (o desde) lared. Esta zona de memoria también puede ser accedida mediante la interfase SPI a través de loscomandos apropiados, que serán tratados más adelante en este documento.

La zona correspondiente a los registros del módulo PHY no puede ser accedida vía SPI. El accesosólo puede realizarse mediante la Media Independent Interface (MII) implementada en la MAC. Lafigura siguiente muestra el mapa de memoria del chip:

Figura 12:  Mapa de memoria del ENC28J60.

 Pantallazo.png (29.42 KB ­ descargado 11859 veces.)

 En línea

“Si cualquier habilidad que aprende un niño será obsoleta antes de que la use, entonces, ¿qué es lo que tiene que aprender? Larespuesta es obvia: 

La única habilidad competitiva a largo plazo es la habilidad para aprender“. Seymour Papert

Page 11: ENC28J60, El Controlador Ethernet via SPI de Microchip Al Desnudo

ArielGlobal ModeratordsPIC

 Desconectado

Sexo: Mensajes: 10190

Re: ENC28J60, el controlador Ethernet via SPI de Microchip al desnudo« Respuesta #9 : Marzo 11, 2010, 04:29:02 »

Los registros de control

Los registros constituyen la interfase principal entre el host y la lógica interna del ENC28J60.Escribiendo los valores adecuados en los registros correctos puede controlarse la operación del chip,y la lectura de esta zona de la memoria proporciona al host valiosa información sobre el estado delENC28J60. La memoria asignada a los Registros de Control está dividida en cuatro bancos. Dos bitsen el registro ECON1 (BSEL1:BSEL2) permiten seleccionar el banco con el que se va a trabajar.Cada banco posee 32 bytes de longitud y puede ser direccionado mediante 5 bits.

Las ultimas cinco posiciones de cada banco (1Bh a 1Fh) apuntan a un juego común de registros: EIE,EIR, ESTAT, ECON1 y ECON2. Estos son los registros más importantes a la hora de controlar  omonitorizar la operación del ENC28J60. Al estar “repetidos” en todos los bancos, no es necesarioefectuar un cambio de banco cada vez que se los quiere utilizar. Al igual que todos los demásregistros del chip, serán analizadas uno por uno más adelante.

Existen direcciones de registro que a pesar de ser válidas, no contienen ningún registro utilizable. Sise intenta escribir en ellas la operación se ignora, y si se los lee devuelven “0”. Los registros de lasdirecciones 1Ah en cada banco están reservadas y no deberia escribirse o leerse en ellos. Losregistros disponibles pueden listarse en tres grupos: ETH, MAC y MII. Los registros cuyos nombrescomienzan por “E” pertenecen al primer grupo, los que poseen nombres que comienzan con “MA”pertenecen al segundo y los que tienen nombres que empiezan con “MI” pertenecen al tercero. Estees el mapa de registros del ENC28J60

Figura 13: Mapa de registros del ENC28J60

Y a continuación, el detalle de los bits que los componen y la función que tienen asignada:

Page 12: ENC28J60, El Controlador Ethernet via SPI de Microchip Al Desnudo

Figura 14: Contenido de cada registro (primera parte)

Page 13: ENC28J60, El Controlador Ethernet via SPI de Microchip Al Desnudo

Figura 15: Contenido de cada registro (segunda parte)

 Pantallazo­1.png (90.79 KB ­ descargado 11556 veces.)

Page 14: ENC28J60, El Controlador Ethernet via SPI de Microchip Al Desnudo

 Pantallazo­2.png (77.6 KB ­ descargado 11495 veces.)

 Pantallazo­3.png (78.25 KB ­ descargado 11554 veces.)

 En línea

“Si cualquier habilidad que aprende un niño será obsoleta antes de que la use, entonces, ¿qué es lo que tiene que aprender? Larespuesta es obvia: 

La única habilidad competitiva a largo plazo es la habilidad para aprender“. Seymour Papert

ArielGlobal ModeratordsPIC

 Desconectado

Sexo: Mensajes: 10190

Re: ENC28J60, el controlador Ethernet via SPI de Microchip al desnudo« Respuesta #10 : Marzo 11, 2010, 06:10:53 »

El registro ECON1

Este registro tiene como cometido controlar las principales funciones del ENC28J60. Habilita latransmisión de datos, selecciona los bancos de registros, controla los DMA, etc.

Figura 16: Registro ECON1

NOTA: La función de cada uno de los bits será explicada con un ejemplo cuando tengamos montadoel hardware para hacer pruebas.

Page 15: ENC28J60, El Controlador Ethernet via SPI de Microchip Al Desnudo

 Pantallazo.png (80.93 KB ­ descargado 11486 veces.)

 En línea

“Si cualquier habilidad que aprende un niño será obsoleta antes de que la use, entonces, ¿qué es lo que tiene que aprender? Larespuesta es obvia: 

La única habilidad competitiva a largo plazo es la habilidad para aprender“. Seymour Papert

ArielGlobal ModeratordsPIC

 Desconectado

Sexo: Mensajes: 10190

Re: ENC28J60, el controlador Ethernet via SPI de Microchip al desnudo« Respuesta #11 : Marzo 12, 2010, 06:02:14 »

El registro ECON2

Este registro tiene funciones similares a ECON1

Figura 17: Registro ECON2

NOTA: La función de cada uno de los bits será explicada con un ejemplo cuando tengamos montadoel hardware para hacer pruebas.

 Pantallazo.png (69.88 KB ­ descargado 11393 veces.)

 En línea

“Si cualquier habilidad que aprende un niño será obsoleta antes de que la use, entonces, ¿qué es lo que tiene que aprender? Larespuesta es obvia: 

La única habilidad competitiva a largo plazo es la habilidad para aprender“. Seymour Papert

ArielGlobal ModeratordsPIC

 Desconectado

Sexo: Mensajes: 10190

Re: ENC28J60, el controlador Ethernet via SPI de Microchip al desnudo« Respuesta #12 : Marzo 12, 2010, 06:36:26 »

El buffer Ethernet

El buffer Ethernet contiene la memoria utilizada por el ENC28J60 para recibir y enviar datos. Eltamaño total de esta memoria es de 8KB, y está separada en dos zonas: una para la transmisión, yotra para la recepción. El monto de memoria utilizado en cada una de estas areas puede sercompletamente configurado por el usuario mediante la interfase SPI. La relacion entre ambosespacios de memoria puede verse en la figura siguiente:

Page 16: ENC28J60, El Controlador Ethernet via SPI de Microchip Al Desnudo

Figura 18: El buffer Ethernet

El buffer de recepciónSe trata de un buffer circular FIFO controlado por hardware. Los pares de registrosERXSTH:ERXSTL y ERXNDH:ERXNDL hacen las veces de punteros que definen el tamaño y lalocalización del buffer dentro de la memoria. El byte apuntado por ERXST y el byte apuntado porERXND son sus extremos, y ambas posiciones están incluidas en el buffer. 

A medida que se reciben bytes desde la interfase Ethernet son escritos secuencialmente en elbuffer. Cuando el buffer se completa y el hardware nota que ha escrito el ultimo byte recibido en laposición apuntada por ERXND, automáticamente escribe el siguiente dato en la posición apuntadapor ERXST. Esto significa que en la practica el buffer nunca puede desbordarse.

El host solamente puede definir el valor de estos punteros cuando la lógica de control se encuentradeshabilitada (ECON1.RXEN = 0). No hay problemas en utilizar toda la zona comprendida entre0000h y 1FFFh como buffer de recepción. Los registros ERXWRPTH:ERXWRPTL determinan laposición dentro del buffer en que el hardware escribirá el próximo byte que reciba. Este puntero esde solo lectura, y se actualiza automáticamente cada vez que se recibe un paquete. Este punteropuede ser útil para determinar cuanto espacio libre queda en el FIFO.

Durante la operación normal, los registros ERXRDPT contienen la posición en la que se estánleyendo datos. Si el FIFO se llena, los nuevos datos no se escribirán encima de los viejos. Parapoder continuar con la recepción, el host debe encargarse de hacer avanzar periódicamente estepuntero.

El buffer de transmisiónTodo el espacio del buffer Ethernet que no se haya definido como buffer de recepción se comportarácomo buffer de transmisión. El host debe encargarse de manejar los paquetes que se van a enviardentro de este espacio de memoria. Los punteros ETXST y ETXND son programados con ladirección ­dentro del buffer de transmisión­ en que se encuentra el paquete a ser enviado. Elhardware no controla si el valor de estos punteros define una posición válida dentro del buffer detransmisión, por lo que hay que ser muy cuidadosos para no corromper la integridad de los datoscontenidos en el buffer completo.

Page 17: ENC28J60, El Controlador Ethernet via SPI de Microchip Al Desnudo

 Pantallazo­1.png (34.91 KB ­ descargado 11361 veces.)

 En línea

“Si cualquier habilidad que aprende un niño será obsoleta antes de que la use, entonces, ¿qué es lo que tiene que aprender? Larespuesta es obvia: 

La única habilidad competitiva a largo plazo es la habilidad para aprender“. Seymour Papert

ArielGlobal ModeratordsPIC

 Desconectado

Sexo: Mensajes: 10190

Re: ENC28J60, el controlador Ethernet via SPI de Microchip al desnudo« Respuesta #13 : Marzo 15, 2010, 05:47:03 »

Registros PHY

Los registros de este grupo proporcionan el mecanismo de supervisión y control del módulo PHY.Hay 9 en total, y todos tienen 16 bits de ancho. A diferencia de los registros ETH, MAC y MII, oincluso de los bufferes de memoria, estos registros no son accesibles directamente a traves de lainterfase SPI. Puede accederse a ellos mediante un subgrupo de los registros MAC, queimplementan la llamada Media Independent Interface for Management (MIIM o Interface de controlindependiente del dispositivo). A este subgrupo de registros se los denomina “registros MII”, ypuedes verlos en las figuras 19 y 20,

Figura 19

Figura 20

Page 18: ENC28J60, El Controlador Ethernet via SPI de Microchip Al Desnudo

Leyendo los registrosCuando el host lee un registro PHY, obtiene 16 bits de datos. Estos son los pasos a seguir para leeruno de estos registros:

­ Escribir la dirección del registro PHY a leer en el registro MIREGADR­ Poner en 1 el bit MICMC.MIIRD. Esto comienza la operación de lectura y pone en 1 el bitMISTAT.BUSY.­ Esperar 10.24 us. Confirmar el estado de MISTAT.BUSY para tener la certeza del que el ciclo delectura finalizó (este bit habrá vuelto a 0). Hasta que esto no ocurra, el host no podrá efectuaroperaciones sobre MIISCAN o escribir el registro MIWRH.­ Poner a 0 el bit  MICMC.MIIRD­ Leer el dato buscado desde los registros MIRDL y MIRDH. El orden en que se leen estos dos bytesno es importante.

Escribiendo en los registros.Siempre que se escribe en uno de los registros PHY, se escriben 16 bits. Si lo que se quiere esmodificar el valor de algún bit en particular, primero debe leerse el registro completo, cambiar esebit sobre alguna variable, y luego escribir el registro completo. Estos son los pasos a seguir paraescribir en uno de estos registros:

­ Escribir la dirección del registro PHY a escribir en el registro MIREGADR,­ Escribir los 8 bits de la parte baja del dato a guardar en el registro MIWRL.­ Escribir los 8 bits de la parte alta del dato a guardar en el registro MIWRH. Al escribir en esteregistro, la transacción de escritura ­ comienza automáticamente. El  MISTAT.BUSY también sepone en 1.

El ciclo de lectura demora 10.24us. Cuando finaliza,  MISTAT.BUSY se pone automáticamente en 0.Hasta que esto no ocurra, el host no podrá efectuar operaciones sobre MIISCAN o escribir elregistro MIWRH.

 Pantallazo.png (25.97 KB ­ descargado 11206 veces.)

 Pantallazo­1.png (39.28 KB ­ descargado 11141 veces.)

 En línea

“Si cualquier habilidad que aprende un niño será obsoleta antes de que la use, entonces, ¿qué es lo que tiene que aprender? Larespuesta es obvia: 

La única habilidad competitiva a largo plazo es la habilidad para aprender“. Seymour Papert

ArielGlobal ModeratordsPIC

 Desconectado

Sexo: Mensajes: 10190

Re: ENC28J60, el controlador Ethernet via SPI de Microchip al desnudo« Respuesta #14 : Marzo 17, 2010, 06:32:40 »

Escaneo de registros PHY

El MAC puede ser configurado de forma que realice operaciones de lectura de de los registros PHYforma automática. Esto simplifica bastante el trabajo del host. Para realizar una operación de estetipo hay que seguir los pasos enumerados a continuación:

­ Escribir la dirección del registro PHY a leer en el registro MIREGADR.­ Poner en 1 el bit MICMD.MIISCAN. Esto hace que comience la tarea de lectura automática y queel bit MISTAT.BUSY se ponga en 1. La primer operación se completa transcurridos 10.24us, y cadalectura siguiente estará disponible cada 10.24us adicionales. Esta tarea se ejecuta hasta que escancelada por el host.

Luego de poner en 1 el bit MICMD.MIISCAN, los registros MIRDL y MIRDH se actualizanautomáticamente cada 10.24us. No hay forma de saber si los registros han sido o no actualizados,asi que hay que tener en cuenta que cuando accedemos a los registros MII mediante el bus SPI,puede oocurrir que estemos “leyendo” los datos del estado anterior. Cuando se estan efectuando lasoperaciones de escaneo de registros, el host no debe intentar escribir en MIWRH o comenzar unaoperación MIIRD. Las operaciones MIISCAN deben ser canceladas poniendo en 0 el bitMICMC.MIISCAN. Cuando el bit MISTAT.BUSY haya vuelto a 0, las operaciones de lecturanormales pueden recomenzar.

 En línea

“Si cualquier habilidad que aprende un niño será obsoleta antes de que la use, entonces, ¿qué es lo que tiene que aprender? Larespuesta es obvia: 

La única habilidad competitiva a largo plazo es la habilidad para aprender“. Seymour Papert