El ENC28J60 de Microchip
El ENC28J60 de Microchip
El ENC28J60 de Microchip
Introduccin
El ENC28J60 es un controlador Ethernet dotado de un puerto SPI (Serial
Peripheral Interface), especialmente diseado para actuar como un puente
entre una red Ethernet y un microcontrolador equipado con S!" El ENC28J60
cumple con las especi#caciones IEEE 802.3, e incorpora una serie de
esquemas de #ltrado de paquetes para limitar el numero de paquetes
entrantes" $am%i&n pro'ee un m(dulo DMA interno para )acilitar el *u+o de
datos y hard,are especi#co para el calculo de las sumas de control (IP
checksums)" -a comunicaci(n con el microcontrolador que hace las 'eces de
host se reali.an mediante el %us S! a una 'elocidad de hasta /00%1s y dos
pines especiales capaces de pro'ocar interrupciones en el ENC28J60" 2tros
dos pines pueden utili.arse para mane+ar -E3s que indiquen la cone4i(n y la
acti'idad de la red"
5dem6s del inte7rado, puede 'erse que se utili.an dos trans)ormadores de
pulso y 'arios componentes pasi'os indispensa%les para conectar el
ENC28J60 a una red Ethernet de /00%1s" El EN28J60 tiene siete %loques
)uncionales importantes8
/) -a inter)a. S! que se encar7a de comunicarlo con el microcontrolador
host
2) -os re7istros que se emplean para monitorear y controlar al ENC28J60
9) :n %u;er <5N dual para los paquetes reci%idos y en'iados
=) :n >ar%itro? que controla los accesos al %u;er <50 mediante 305
@) :n %us que interpreta los datos y comandos reci%idos 'Aa S!
6) :n m(dulo 05C (0aduim 5ccess Control) que cumple con !EEE 802,9
B) :na m(dulo CD (hysical -ayer) que codi#ca y decodi#ca los datos
an6lo7os presentes en el par tren.ado"
5dem6s de ello, el dispositi'o cuenta con otros %loques de soporte, como el
oscilador, re7ulador de 'olta+e interno, adaptadores de ni'el para pro'eer
E1S de @E y l(7ica de control"
El oscilador
ara )uncionar, el ENC28J60 necesita de un oscilador que le >marque el
ritmo?" El chip est6 diseado para )uncionar a 2@0C., y una de las )ormas
de proporcion6rselos es utili.ando un cristal como se 'e en la #7ura @"
(http811,,,"ucontrol"com"ar1)orosm)1e4plicacionesFyFconsultasF
tecnicas1enc28+60FelFcontroladorFethernetF'iaFspiFdeFmicrochipFalFdesnudo1G
actionHdlattachIattachH==0/)
Ji7ura @8 2scilador a cristal
Se conecta el cristal entre los pines !SC" y !SC2, y se ponen tam%i&n
am%os e4tremos a KN3 mediante C/ y C2" El 'alor de C/ y C2 no est6 en la
ho+a de datos, pero /@p) parecen )uncionar %ien en la mayorAa de los
proyectos" El resistor </ solo es necesario con al7unos tipos de cristales
(>AT strip cut crystalsL) pero normalmente no es necesaria"
-a otra )orma de utili.ar el ENC28J60 es con una seal de clocM e4terna
(#7ura 2), con una amplitud de 9,9E y aplicada al pin 2SC/" En este caso,
puede de+arse el pin 2SC2 >al aire? o conectarlo a KN3 a tra'&s de un
resistor para minimi.ar el ruido"
!scilador Start#up $i%&r
Este chip posee lo que 0icrochip denomina Oscillator Start-up Timer (!S$)"
Se trata de un mecanismo destinado a ase7urar que el oscilador y el m(dulo
P'( se hayan esta%ili.ado antes de que el host intente utili.arlos" ara ello,
el 2S$ se encar7a de esperar a que ocurran B@00 ciclos de relo+ (900us)
lue7o de ocurrido el Po)&r#!n *&s&t (>encendido? del chip) o un +a,&#
-p (>despertar?) posterior a un Po)&r#Do)n (>dormir?)" 3urante este
tiempo, todos los re7istros y %u;ers de memoria pueden ser consultados o
escritos a tra'&s del %us S!" Sin em%ar7o, el so)t,are del host no de%erAa
intentar transmitir paquetes, ha%ilitar la recepci(n de paquetes o acceder a
los re7istros 05C, 0!! o CD"
Cuando el tiempo del 2S$ haya #nali.ado, el %it C./*D( del re7istro ES$A$
se pondr6 en /" Nuestro pro7rama de%erAa consultar ese %it para tener la
se7uridad de que el ENC28J60 est6 listo para )uncionar"
El pin C./!-$ 0 &l r&1istro EC!C!N
-a e4istencia de este pin tiene como #n pro'eer al host (o a cualquier otro
circuito e4terno) de una )uente de relo+" C./!-$ posee un prescaler interno
capa. de di'idir los 2@0C. del relo+ del ENC28J60 por /, 2, 9, = u 8,
selecciona%le a tra'&s del re7istro EC!C!N"
ara crear una seal de relo+, el pin C-N2:$ se mantiene en estado %a+o
hasta transcurrido el peridodo estipulado por el 2S$" -ue7o, comien.a a
en'iar 0 y / con una )recuencia por de)ecto de 6,2@ 0C. (el clocM del
ENC28J60 1 =)" Si el usuario modi#ca el 'alor del preescaler, este se
mantiene aOn cuando ocurra un <ESE$" Si por al7On moti'o el usuario
necesita desha%ilitar temporalmente el pin C-N2:$, puede hacerlo
escri%iendo 0 en el re7istro EC2C2N, y el pin quedar6 en estado %a+o"
Cay que tener en cuenta que cuando se modi#ca el 'alor de EC2C2N para
cam%iar el 'alor del preescaler, al7unos pulsos de relo+ pueden >perderse?
en C-N2:$" $Apicamente, al hacer ese cam%io, el pin se mantiene en estado
%a+o entre / y 8 ciclos del 2SC/"
Con&2ionado &2t&rno3 4o4inas 0 otras 0&r4as
ara )uncionar y poder conectarse a la red Ethernet, el ENC28J60 necesita
de al7unos componentes e4ternos, tal como puede 'erse en la #7ura 8" -os
pines $PIN5 y $PIN# de%en conectarse a un trans)ormador /8/ especial
para redes "06ASE#$ " -os pines $P!-$5 y $P!-$# necesitan de un
trans)ormador de pulso con relaci(n /8/ y punto medio" Este trans)ormador
de%e ser capa. de pro'eer una aislaci(n como mAnimo de 2000E" 5dem6s,
todos los pines mencionados necesitan de un resistor de @0 ohms con un
/P de tolerancia"
-a circuiterAa anal(7ica interna del ENC28J60 tam%i&n requiere que
conectemos un resistor de 2N con un /P de tolerancia entre el pin *6IAS y
KN3" El chip es capa. de operar tam%i&n con una tensi(n de alimentaci(n
de solo 2"@E, en cuto caso ha%r6 que disponer un condensador de /0 uJ
entre el pin 7CAP y KN3"
$odos los pines de alimentaci(n (Edd) de%en ser conectados a la misma
)uente de 9"9E, y todos los pines KN3 de%en conectarse al mismo nodo"
Cada par de pines Edd1Ess de%e tener su propio condensador cer6mico de
0"/uJ, tan cerca de los pines como sea posi%le" Cay que tener en cuenta
que corrientes relati'amente altas 'an a circular entre el inte7rado y el par
tren.ado, por lo que las pistas correspondientes de%erAan ser lo mas cortas
y anchas posi%les para minimi.ar su resistencia el&ctrica"
Ni8&l&s t&nsin &n los pin&s d& E9S
El ENC28J60 es un chip diseado para operar a 9"9E" Sin em%ar7o, puede
ser inte7rado con )acilidad en circuitos que se alimentan con @E" -os pines
*ESE$, SPI CS, SC/ y SI )uncionan directamente con @E" or otro lado, si el
host opera a @E, puede que necesites implementar un >traductor? capa. de
mane+ar las salidas C02S de 9"9E del ENC28J60"
:n simple y econ(mico :;'C$08 (cuatro compuertas 5N3), un :;AC$"2<
(cuatro %u;eres triestado) o cualquier otro chip C02S de @E con %u;eres de
entrada adaptados para ni'eles $$- puede ser usado como adaptador" El
uso de %u;eres triestado permite una )6cil inte7raci(n en sistemas que
de%en compartir el %us S! con otros dispositi'os" -a #7ura Q ilustra dos
)ormas en que esto puede ser implementado"
Con=1uracin d& los .EDs
-os pines .EDA y .ED6 permiten la con4i(n de sendos -E3s destinados a
%rindar in)ormaci(n so%re el estado del chip" :na caracterstica especial de
estos dos pines es que el ENC28J60 puede detectar la polaridad con la que
se han conectado los -E3s (es decir, si de%e entre7ar corriente para que
%rille, o drenarla) de )orma automatica lue7o de que tiene lu7ar <ESE$"
En el caso de -E3R, tal como indica la #7ura /0, la )orma de conectar el
diodo -E3 #+a el estado del %it P'C!N" en el re7istro PDP>M6" Si el -E3
se conecta de )orma que la corriente *uya hacia -E3R, el %it se pone a 0 en
cada <ESE$ y el m(dulo CD opera en modo hal)Fduple4" Si la corriente *uye
desde el pin, el %it se pone en / en cada <ESE$ y el m(dulo CD opera en
modo )ullFduple4" Si no se conecta nin7On -E3, el %it 3S03 permanece en
estado indeterminado"
El re7istro P'.C!N se encar7a de controlar el comportamiento de los -E3s
y determinar que )unci(n cumplen"
!r1ani?acin d& la %&%oria int&rna
$oda la memoria disponi%le en el ENC28J60 es del tipo RAM esttica" Se
di'ide en tres %loques principales8
!Re"istros de control
#!$u%er Ethernet
&!Re"istros del m'dulo P()
El primer %loque contiene los C*s (*ontrol Re"isters) que se emplean para
el controlar y o%tener in)ormaci(n so%re el estado del ENC28J60" $odos estos
re7istros pueden ser accedidos (lectura y escritura) mediante la inter)ase
SPI"
El se7undo %loque Fel Ru;er EthernetF tiene un tamao que puede ser
a+ustado por el usuario y tiene como )unci(n ser'ir de memoria temporal
para los datos que se en'Aan (o reci%en) a (o desde) la red" Esta .ona de
memoria tam%i&n puede ser accedida mediante la inter)ase S! a tra'&s de
los comandos apropiados, que sern tratados ms adelante en este
documento+
-a .ona correspondiente a los re7istros del m(dulo P'( no puede ser
accedida 'Aa S!" El acceso s(lo puede reali.arse mediante la Media
Independent Interface (MII) implementada en la MAC"
.os r&1istros d& control
-os re7istros constituyen la inter)ase principal entre el host y la l(7ica
interna del ENC28J60" Escri%iendo los 'alores adecuados en los re7istros
correctos puede controlarse la operaci(n del chip, y la lectura de esta .ona
de la memoria proporciona al host 'aliosa in)ormaci(n so%re el estado del
ENC28J60" -a memoria asi7nada a los Re"istros de *ontrol est6 di'idida en
cuatro %ancos" 3os %its en el re7istro EC!N" (RSE-/8RSE-2) permiten
seleccionar el %anco con el que se 'a a tra%a+ar" Cada %anco posee 92 %ytes
de lon7itud y puede ser direccionado mediante @ %its"
-as ultimas cinco posiciones de cada %anco (/Rh a /Jh) apuntan a un +ue7o
comOn de re7istros8 EIE, EI*, ES$A$, EC!N" y EC!N2" Estos son los
re7istros m6s importantes a la hora de controlar o monitori.ar la operaci(n
del ENC28J60" 5l estar >repetidos? en todos los %ancos, no es necesario
e)ectuar un cam%io de %anco cada 'e. que se los quiere utili.ar" 5l i7ual que
todos los dem6s re7istros del chip, ser6n anali.adas uno por uno m6s
adelante"
E4isten direcciones de re7istro que a pesar de ser '6lidas, no contienen
nin7On re7istro utili.a%le" Si se intenta escri%ir en ellas la operaci(n se
i7nora, y si se los lee de'uel'en >0?" -os re7istros de las direcciones /5h en
cada %anco est6n reser'adas y no de%eria escri%irse o leerse en ellos" -os
re7istros disponi%les pueden listarse en tres 7rupos8 E$', MAC y MII" -os
re7istros cuyos nom%res comien.an por >E? pertenecen al primer 7rupo, los
que poseen nom%res que comien.an con >MA? pertenecen al se7undo y los
que tienen nom%res que empie.an con >MI? pertenecen al tercero" Este es
el mapa de re7istros del ENC28J60
El r&1istro EC!N"
Este re7istro tiene como cometido controlar las principales )unciones del
ENC28J60" Ca%ilita la transmisi(n de datos, selecciona los %ancos de
re7istros, controla los 305, etc"
El r&1istro EC!N2
Este re7istro tiene )unciones similares a EC2N/
El 4u@&r Eth&rn&t
El %u;er Ethernet contiene la memoria utili.ada por el ENC28J60 para reci%ir
y en'iar datos" El tamao total de esta memoria es de 8NR, y est6 separada
en dos .onas8 una para la transmisi(n, y otra para la recepci(n" El monto de
memoria utili.ado en cada una de estas areas puede ser completamente
con#7urado por el usuario mediante la inter)ase S!"
El 4u@&r d& r&c&pcin
Se trata de un %u;er circular J!J2 controlado por hard,are" -os pares de
re7istros E*>S$'E*>S$. y E*>ND'E*>ND. hacen las 'eces de
punteros que de#nen el tamao y la locali.aci(n del %u;er dentro de la
memoria" El %yte apuntado por E*>S$ y el %yte apuntado por E*>ND son
sus e4tremos, y am%as posiciones est6n incluidas en el %u;er"
5 medida que se reci%en %ytes desde la inter)ase Ethernet son escritos
secuencialmente en el %u;er" Cuando el %u;er se completa y el hard,are
nota que ha escrito el ultimo %yte reci%ido en la posici(n apuntada por
E*>ND, autom6ticamente escri%e el si7uiente dato en la posici(n apuntada
por E*>S$" Esto si7ni#ca que en la practica el %u;er nunca puede
des%ordarse"
El host solamente puede de#nir el 'alor de estos punteros cuando la l(7ica
de control se encuentra desha%ilitada (E*O,+R-E, . /)" No hay pro%lemas
en utili.ar toda la .ona comprendida entre 0000h y /JJJh como %u;er de
recepci(n" -os re7istros E*>+*P$'E*>+*P$. determinan la posici(n
dentro del %u;er en que el hard,are escri%ir6 el pr(4imo %yte que reci%a"
Este puntero es de solo lectura, y se actuali.a autom6ticamente cada 'e.
que se reci%e un paquete" Este puntero puede ser Otil para determinar
cu6nto espacio li%re queda en el J!J2"
3urante la operaci(n normal, los re7istros E*>*DP$ contienen la posici(n
en la que se est6n leyendo datos" Si el J!J2 se llena, los nue'os datos no se
escri%ir6n encima de los 'ie+os" ara poder continuar con la recepci(n, el
host de%e encar7arse de hacer a'an.ar peri(dicamente este puntero"
El 4u@&r d& trans%isin
$odo el espacio del %u;er Ethernet que no se haya de#nido como %u;er de
recepci(n se comportar6 como %u;er de transmisi(n" El host de%e
encar7arse de mane+ar los paquetes que se 'an a en'iar dentro de este
espacio de memoria" -os punteros E$>S$ y E$>ND son pro7ramados con la
direcci(n Fdentro del %u;er de transmisi(nF en que se encuentra el paquete
a ser en'iado" El hard,are no controla si el 'alor de estos punteros de#ne
una posici(n '6lida dentro del %u;er de transmisi(n, por lo que hay que ser
muy cuidadosos para no corromper la inte7ridad de los datos contenidos en
el %u;er completo"
*&1istros P'(
-os re7istros de este 7rupo proporcionan el mecanismo de super'isi(n y
control del m(dulo P'(" Cay Q en total, y todos tienen /6 %its de ancho" 5
di)erencia de los re7istros E$', MAC y MII, o incluso de los %u;eres de
memoria, estos re7istros no son accesi%les directamente a tra'&s de la
inter)ace SPI" uede accederse a ellos mediante un su%7rupo de los
re7istros 05C, que implementan la llamada 0edia Independent Interface for
Mana"ement (MIIM o !nter)ace de control independiente del dispositi'o)" 5
este su%7rupo de re7istros se los denomina >re7istros 0!!?"
.&0&ndo los r&1istros
Cuando el host lee un re7istro CD, o%tiene /6 %its de datos" Estos son los
pasos a se7uir para leer uno de estos re7istros8
F Escri%ir la direcci(n del re7istro CD a leer en el re7istro MI*EAAD*
F oner en / el %it MICMC.MII*D" Esto comien.a la operaci(n de lectura y
pone en / el %it MIS$A$.6-S("
F Esperar /0"2= us" Con#rmar el estado de MIS$A$.6-S( para tener la
certe.a del que el ciclo de lectura #nali.( (este %it ha%r6 'uelto a 0)" Casta
que esto no ocurra, el host no podr6 e)ectuar operaciones so%re MIISCAN o
escri%ir el re7istro MI+*'"
F oner a 0 el %it MICMC.MII*D
F -eer el dato %uscado desde los re7istros MI*D. y MI*D'" El orden en que
se leen estos dos %ytes no es importante"
Escri4i&ndo &n los r&1istros.
Siempre que se escri%e en uno de los re7istros CD, se escri%en /6 %its" Si lo
que se quiere es modi#car el 'alor de al7On %it en particular, primero de%e
leerse el re7istro completo, cam%iar ese %it so%re al7una 'aria%le, y lue7o
escri%ir el re7istro completo" Estos son los pasos a se7uir para escri%ir en
uno de estos re7istros8
F Escri%ir la direcci(n del re7istro CD a escri%ir en el re7istro MI*EAAD*,
F Escri%ir los 8 %its de la parte %a+a del dato a 7uardar en el re7istro MI+*."
F Escri%ir los 8 %its de la parte alta del dato a 7uardar en el re7istro MI+*'"
5l escri%ir en este re7istro, la transacci(n de escritura F comien.a
autom6ticamente" El MIS$A$.6-S( tam%i&n se pone en /"
El ciclo de lectura demora /0"2=us" Cuando #nali.a, MIS$A$.6-S( se pone
autom6ticamente en 0" Casta que esto no ocurra, el host no podr6 e)ectuar
operaciones so%re MIISCAN o escri%ir el re7istro MI+*'"
Escan&o d& r&1istros P'(
El MAC puede ser con#7urado de )orma que realice operaciones de lectura
de de los re7istros P'( )orma autom6tica" Esto simpli#ca %astante el
tra%a+o del host" ara reali.ar una operaci(n de este tipo hay que se7uir los
pasos enumerados a continuaci(n8
F Escri%ir la direcci(n del re7istro CD a leer en el re7istro MI*EAAD*"
F oner en / el %it MICMD.MIISCAN" Esto hace que comience la tarea de
lectura autom6tica y que el %it MIS$A$.6-S( se pon7a en /" -a primer
operaci(n se completa transcurridos /0"2=us, y cada lectura si7uiente
estar6 disponi%le cada /0"2=us adicionales" Esta tarea se e+ecuta hasta que
es cancelada por el host"
-ue7o de poner en / el %it MICMD.MIISCAN, los re7istros MI*D. y MI*D'
se actuali.an autom6ticamente cada /0"2=us" No hay )orma de sa%er si los
re7istros han sido o no actuali.ados, asi que hay que tener en cuenta que
cuando accedemos a los re7istros MII mediante el %us S!, puede oocurrir
que estemos >leyendo? los datos del estado anterior" Cuando se estan
e)ectuando las operaciones de escaneo de re7istros, el host no de%e
intentar escri%ir en MI+*' o comen.ar una operaci(n MII*D" -as
operaciones MIISCAN de%en ser canceladas poniendo en 0 el %it
MICMC.MIISCAN" Cuando el %it MIS$A$.6-S( haya 'uelto a 0, las
operaciones de lectura normales pueden recomen.ar"
*&1istros P'S$A$
-os re7istros P'S$A$" y P'S$A$2 son de solo lectura" Contienen
in)ormaci(n so%re el estado actual del modulo CD" El primero de ellos
(#7ura 2/) contiene el %it ..S$A$, que %rinda in)ormaci(n para determinar
el momento en que el linM con el resto de la red )alla" El re7istro CS$5$/
tam%i&n contiene un %it de estado >0a11er?" -a traducci(n de >0a11er? es
al7o asA como >ha1lar atropelladamente?, y en este conte4to se re#ere a la
posi%ilidad que poseen al7unos controladores de utili.ar tamaos de
paquetes di)erentes a los especi#cados por la !EEE" Este %it en alto indica
que se ha detectado esa condici(n desde la ultima 'e. que se ley( el
re7istro"
*&1istros P'ID
-os re7istros P'ID" y P'ID2 tam%i&n son de solo lectura" Rrindan
in)ormaci(n que ayuda a identi#car el controlador Ethernet y pueden ser
utiles a la hora de depurar una aplicaci(n" Entre otros datos, proporcionan8
F El nOmero de parte del m(dulo CD (PPN<PPN0)
F El ni'el de re'isi(n del m(dulo CD (P*E73P*E70)
F El identi#cador CD, como parte del !-I (Or"ani2ationally 3nique
Identi4er) de 0icrochip (PID2;PID3)
El numero de parte CD y el nOmero de re'isi(n son parte del re7istro
C!32" -os dos %ytes superiores del identi#cador CD se encuentran en
C!3/, y el resto en C!32"
.a int&rBa? SPI
El ENC28J60 esta dotado de un puerto entandar S!" -a implementaci(n
adoptada solo permite utili.ar el modo S! 0,0" 5dem6s, el puerto S! del
ENC28J60 requiere que SC/ este idle (inacti'o, desocupado) en estado %a+oI
no puede seleccionarse la polaridad del relo+" 5 tra'&s del puerto S! pueden
en'iarse comandos y datos al chip, los datos son aceptados en cada *anco
de su%ida de la seal SCN" -os datos de salida est6n presentes en la linea
S!, en cada *anco de %a+ada de SCN" El pin CSC de%e mantenerse %a+o
durante estas operaciones, y 'ol'er a estado alto cuando #nali.an"
S&t d& instruccion&s SPI
-a operaci(n del ENC28J60 depende por completo de los comandos que
reci%e del host a tra'&s de la inter)ase SPI" Esos comandos son
instrucciones, de uno o mas %ytes, que pueden utili.arse para acceder a la
memoria y a los 1u%eres Ethernet" Como mAnimo, las instrucciones poseen
un c(di7o de 9 %its se7uido por un ar7umento de @ %its que representa un
re7istro o una constante"
Co%ando para l&&r r&1istros d& control
El comandos para leer re7istros de control (*C*, por Read *ontrol Re"ister)
permite al host leer los re7istros del 7rupo E$', MAC y MII en cualquier
orden" El contenido de los re7istros se o%tiene mediante un re7istro especial
de la inter)ase 0!!"
El comando <C< comien.a poniendo en ni'el %a+o el pin CSC" -ue7o se
en'Aa el opcode correspondiente (9 %its) , se7uido de la direcci(n del
re7istro (@ %its) mediante los pines SC/ y SI" Esta direcci(n identi#ca a uno
de los 92 re7istros del %anco seleccionado" Si corresponde a un re7istro del
7rupo E$', el dato que conten7a el re7istro seleccionado se en'iar6
mediante SC/ y S!, comen.ando por el %it m6s si7ni#cati'o (0S%)"
Co%ando para l&&r la %&%oria 4u@&r
Este comando (*6M, por Read $u%er Memory) permite al host leer %ytes
desde los 8N% de memoria utili.ada como %u;er de transmisi(n y recepci(n"
Si se pone en / el %it A-$!INC en el re7istro EC!N2, el puntero E*DP$
ser6 incrementado autom6ticamente cada 'e. que se lea un %yte" -a
direcci(n si7uiente es casi siempre la direcci(n actual mas uno, por lo que
esto de mucha utilidad" Sin em%ar7o, cuando se lee el ultimo %yte del %u;er
de recepci(n (es decir, cuando E*DP$ H E*>ND), el puntero E*DP$
pasar6 al 'alor contenido en E*>S$, apuntando al primer %yte del %u;er"
Esta caracterAstica le permite al hots leer un *u+o continuo de %ytes sin
necesidad de tener en cuenta el tamao del %u;er o la posici(n del puntero
dentro del mismo" Si A-$!INC est6 en / cuando se lee la direcci(n /JJJh y
E*>ND no apunta a esa direcci(n, el puntero de lectura es incrementado y
'uel'e a 0000h"
El comando <R0 comien.a cuando se pone el pin CST en %a+o" -ue7o se
en'Aa el opcode <R0, de tres %its y la constante /5h de cinco %its a
continuaci(n, utili.ando los pines SCN y S! (son 8 %its en total)" -ue7o, el
ENC28J60 en'Aa el contenido del %yte apuntado por E<3$ mediante los
pines SCN y S2" Si el host continOa en'iando ciclos de relo+ mediante SCN
sin modi#car el estado de CST, el contenido del %yte apuntado por E<3$
ser6 en'iado nue'amente (siempre comen.ando por el %it m6s si7ni#cati'o
(0s%)), pero como el puntero se ha%r6 incrementado autom6ticamente, en
la practica se 'a haciendo una lectura secuencial de todo el %u;er" El
comando <R0 #nali.a cuando CST es puesto en alto nue'amente"
Co%ando para &scri4ir r&1istros d& control
El comando +C* (5rite *ontrol Re"ister) permite al controlador escri%ir en
los re7istros del 7rupo E$', MAC y MII" El proceso de escritura puede
e)ectuarse en cualquier orden y tienen lu7ar mediante un re7istro especial
de la inter)ase 0!!" ara m6s in)ormaci(n, 'er m6s arri%a la secci(n
>Escri%iendo re7istros CD
(http811,,,"ucontrol"com"ar1)orosm)1e4plicacionesFyFconsultasF
tecnicas1enc28+60FelFcontroladorFethernetF'iaFspiFdeFmicrochipFalF
desnudo1ms72608B1Tms72608B)?"
:n comando UC< comien.a cuando se pone el pin CSC en estado %a+o" El
opcode del comando UC< se en'Aa al ENC28J60 se7uido de @ %its que
especi#can cual de los 92 re7istros posi%les dentro de este %anco queremos
escri%ir (5= a 50)" -ue7o que se ha en'iado el comando y la direcci(n se
en'Aan los datos a escri%ir (comen.ando por el 0S%) " -a operaci(n #nali.a
cuando el host pone nue'amente el pin CST en estado alto" Si CST pasa a
estado alto antes que los 8 %its del dato hayan sido en'iados al ENC28J60,
la operaci(n completa queda a%ortada"