📄 enc28j60_cn.txt
字号:
MACON2 MARST RNDRST--MARXRST RFUNRST MATXRST TFUNRST 10-- 0000 61
MACON3 PADCFG2 PADCFG1 PADCFG0 TXCRCEN PHDRLEN HFRMEN FRMLNEN FULDPX 0000 0000 35
MACON4-DEFER BPEN NOBKOFF--LONGPRE PUREPRE -000 --00 36
MABBIPG-背对背包间间隔(
BBIPG<6:0>)
-000 0000 37
MAIPGL-非背对背包间间隔低字节(
MAIPGL<6:0>)
-000 0000 34
MAIPGH-非背对背包间间隔高字节(
MAIPGH<6:0>)
-000 0000 34
MACLCON1----重发最大次数(
RETMAX<3:0>)
---- 1111 34
MACLCON2--冲突窗口(
COLWIN<5:0>)
--11 0111 34
MAMXFLL最大帧长度低字节(
MAMXFL<7:0>)
0000 0000 34
MAMXFLH最大帧长度高字节(
MAMXFL<15:8>)
0000 0110 34
MAPHSUP RSTINTFC--r RSTRMII--r 0--1 0--0 62
MICON RSTMII-------0--- ---21
MICMD------MIISCAN MIIRD ---- --00 21
MIREGADR---MII寄存器地址(
MIREGADR<4:0>)
---0 0000 19
MIWRL MII写数据低字节(
MIWR<7:0>)
0000 0000 19
MIWRH MII写数据高字节(
MIWR<15:8>)
0000 0000 19
MIRDL MII读数据低字节(
MIRD<7:0>)
0000 0000 19
MIRDH MII读数据高字节(
MIRD<15:8>)
0000 0000 19
MAADR1 MAC地址字节
1(MAADR<15:8>)
0000 0000 34
MAADR0 MAC地址字节
0(MAADR<7:0>)
0000 0000 34
MAADR3 MAC地址字节
3(MAADR<31:24>)
0000 0000 34
MAADR2 MAC地址字节
2(MAADR<23:16>)
0000 0000 34
MAADR5 MAC地址字节
5(MAADR<48:41>)
0000 0000 34
MAADR4 MAC地址字节
4(MAADR<40:32>)
0000 0000 34
EBSTSD内置自测试填充种子(
EBSTSD<7:0>)
0000 0000 80
EBSTCON PSV2 PSV1 PSV0 PSEL TMSEL1 TMSEL0 TME BISTST 0000 0000 79
EBSTCSL内置自测试校验和低字节(
EBSTCS<7:0>)
0000 0000 80
EBSTCSH内置自测试校验和高字节(
EBSTCS<15:8>)
0000 0000 80
MISTAT----r NVALID SCAN BUSY ---- 0000 22
EREVID(2)---以太网版本
ID(EREVID<4:0>)
---q qqqq 22
ECOCON(3)-----COCON2 COCON1 COCON0 ---- -100 6
EFLOCON-----FULDPXS FCEN1 FCEN0 ---- -000 56
EPAUSL暂停定时器值低字节(
EPAUS<7:0>)
0000 0000 57
EPAUSH暂停定时器值高字节(
EPAUS<15:8>)
0001 0000 57
图注:
x = 未知,
u = 不变,— = 未用,
q = 取值视情况而定,
r =保留,不能修改。
注
1:
CLKRDY在上电复位时复位为
0,而在其他复位时不受影响。
2:
EREVID是只读寄存器。
3:
ECOCON在上电复位时为
“
---- -100”,但在其他复位时为
“
---- -uuu”。
DS39662A_CN 第
14页高级信息
. 2006 Microchip Technology Inc.
ENC28J60
3.1.1 ECON1寄存器
寄存器
3-1所示为
ECON1寄存器,它用于控制
ENC28J60的主要功能。ECON1中包含接收使能、发
送请求、
DMA控制和存储区选择位。
寄存器
3-1:
ECON1:以太网控制寄存器
1
R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0
bit 7 bit 0
bit 7 TXRST:发送逻辑复位位
1 =发送逻辑保持在复位状态
0 =正常工作
bit 6 RXRST:接收逻辑复位位
1 =接收逻辑保持在复位状态
0 =正常工作
bit 5 DMAST:DMA起始和忙碌状态位
1 =正在进行
DMA复制或校验和操作
0 =DMA硬件空闲
bit 4 CSUMEN:DMA校验和使能位
1 =DMA硬件计算校验和
0 =DMA硬件复制缓冲存储器
bit 3 TXRTS:发送请求位
1 =发送逻辑正在尝试发送数据包
0 =发送逻辑空闲
bit 2 RXEN:接收使能位
1 =通过当前过滤器的数据包将被写入接收缓冲器
0 =忽略所有接收的数据包
bit 1-0 BSEL1:BSEL0:存储区选择位
11 = SPI访问
Bank 3中的寄存器
10 = SPI访问
Bank 2中的寄存器
01 = SPI访问
Bank 1中的寄存器
00 = SPI访问
Bank 0中的寄存器
图注:
R = 可读位
W = 可写位
U = 未用位,读为
0
-n = 上电复位时的值
1 = 置
1 0 =清零
x = 未知
TXRST RXRST DMAST CSUMEN TXRTS RXEN BSEL1 BSEL0
. 2006 Microchip Technology Inc.高级信息
DS39662A_CN第
15页
ENC28J60
3.1.2 ECON2寄存器
寄存器
3-2所示的
ECON2寄存器用于控制
ENC28J60
的其他主要功能。
寄存器
3-2:
ECON2:以太网控制寄存器
2
R/W-1 W-0 R/W-0 U-0 R/W-0 U-0 U-0 U-0
bit 7 bit 0
bit 7 AUTOINC:自动缓冲器指针递增使能位
1 =当使用
SPI RBM/WBM命令时,自动递增
ERDPT和
EWRPT
0 =在访问缓冲器后不自动递增
ERDPT和
EWRPT
bit 6 PKTDEC:数据包递减位
1 = EPKTCNT寄存器减
1
0=保持
EPKTCNT不变
bit 5 PWRSV:节能使能位
1 =MAC、
PHY和控制逻辑处于低功耗休眠模式
0=正常工作
bit 4未用:读为
0
bit 3 VRPS:稳压器节能使能位
当
PWRSV = 1时:
1 =内部稳压器处于低电流模式
0 =内部稳压器处于正常电流模式
当
PWRSV = 0时:
该位可为任意值;稳压器始终按器件需要输出电流。
bit 2-0未用:读为
0
图注:
R = 可读位
W = 可写位
U = 未用位,读为
0
-n = 上电复位时的值
1 = 置
1 0 =清零
x = 未知
AUTOINC PKTDEC PWRSVVRPS----
DS39662A_CN 第
16页高级信息
. 2006 Microchip Technology Inc.
ENC28J60
3.2以太网缓冲器
以太网缓冲器包含供以太网控制器使用的发送和接收存
储器。该缓冲器大小为
8 KB,分成单独的接收和发送缓
冲空间。主控制器使用
SPI接口可以对发送和接收存储
器的容量和位置进行编程。
图
3-2显示了缓冲空间之间的关系。
3.2.1接收缓冲器
接收缓冲器由一个硬件管理的循环
FIFO缓冲器构成。
寄存器对
ERXSTH:ERXSTL和
ERXNDH:ERXNDL作
为指针,定义缓冲器的容量和其在存储器中的位置。
ERXST和ERXND指向的字节均包含在FIFO缓冲器内。
当从以太网接口接收数据字节时,这些字节被顺序写入
接收缓冲器。但是当写入由
ERXND指向的存储单元
后,硬件会自动将接收的下一字节写入由
ERXST指向
的存储单元。因此接收硬件将不会写入
FIFO以外的单
元。
当接受逻辑被禁止时,主控制器可以对
ERXST和
ERXND指针进行编程。当接收逻辑被使能时
(ECON1.RXEN置
1),不允许修改指针。如有需要,
指针可以跨越
1FFFh边界转到
0000h;但硬件仍将其
作为一个
FIFO处理。
ERXWRPTH:ERXWRPTL寄存器定义硬件向
FIFO中
的哪个位置写入其接收到的字节。指针是只读的,在成
功接收到一个数据包后,硬件会自动更新指针。指针可
用于判断
FIFO内剩余空间的大小。
ERXRDPT寄存器定义禁止接收硬件写入的
FIFO中的
位置。在正常操作中,接收硬件将数据顺序写入,直到
ERXRDPT所指单元(不包括该单元)。如果
FIFO已
满,但仍有新数据到来,硬件也不会覆盖先前已接收的
数据,而是丢弃新数据而保留旧数据。为了能连续接收
新数据,主控制器必须在处理完一些或全部接收的数据
后周期性地递增指针。
3.2.2发送缓冲器
8 KB存储器内没有被设定为接收
FIFO缓冲器的空间,
均可作为发送缓冲器。主控制器负责管理数据包在发送
缓冲器内的存放。当主控制器决定发送数据包时,
ETXST和
ETXND指针将被编程指向发送缓冲器内待发
送数据包的地址。硬件不检查起始和结束地址是否跟接
收缓冲器重叠。要防止缓冲器遭到破坏,在
ETXST和
ETXND指针指向接收缓冲器或
ETXND指针靠近接收
缓冲器时,主控制器要确保在上述时刻不发送数据包。
欲了解更多信息,请参见第 7.1 节
“发送数据包”。
3.2.3读写缓冲器
主控制器通过独立的读写指针(
ERDPT和
EWRPT),
以及读、写缓冲器的
SPI命令访问以太网缓冲器的内
容。当顺序读取接收缓冲器时,在读完接收缓冲存储器
的底部数据后会折回到开始部分继续读取。当顺序写缓
冲器时不会发生这种情况。欲了解更多信息,请参见第
4.2.2 节
“读缓冲存储器命令”和第 4.2.4 节
“写缓冲
器命令”。
3.2.4 DMA访问缓冲器
在计算校验和时,集成的
DMA控制器必须读缓冲器;当
复制存储空间时,必须读写缓冲器。DMA遵循与
SPI访
问相同的折回规则。当顺序读取时,
DMA在读到接收缓
冲器末尾后折回。但所有的写操作不会折回。欲了解更
多信息,请参见第 13.0 节“直接存储器访问控制器”。
. 2006 Microchip Technology Inc.高级信息
DS39662A_CN第
17页
ENC28J60
图
3-2:以太网缓冲器构成
发送缓冲器起始地址
(ETXSTH:ETXSTL)
缓冲器写指针
(EWRPTH:EWRPTL)
发送缓冲器结束地址
(ETXNDH:ETXNDL)
接收缓冲器起始地址
(ERXSTH:ERXSTL)
缓冲器读指针
(ERDPTH:ERDPTL)
接收缓冲器结束地址
(ERXNDH:ERXNDL)
0000h
发送缓冲器数据
(WBM AAh)
接收缓冲器数据
(RBM 55h)
AAh
发送
缓冲器
接收
缓冲器
(循环FIFO)
55h
1FFFh
DS39662A_CN 第
18页高级信息
. 2006 Microchip Technology Inc.
ENC28J60
3.3 PHY 寄存器
PHY寄存器提供
PHY模块的配置和控制功能,以及操
作的状态信息。所有
PHY寄存器都为
16位宽。共有
32
个
PHY地址单元,但只可使用其中的
9个。对未用单
元的写操作无效,而读操作将返回
0。所有保留单元应
写为
0,当读取时其内容被忽略。
与
ETH、
MAC和
MII控制寄存器或缓冲器不同,
PHY
寄存器不能通过
SPI控制接口直接访问,而是通过一组
带有
MIIM(Media Independent Interface for
Management)的特殊
MAC控制寄存器来访问的。这
些控制寄存器被称为
MII寄存器。寄存器
3-3和寄存器
3-4给出了这些寄存器的具体信息。
3.3.1读
PHY寄存器
读
PHY寄存器可以获取其完整的
16位值。
要读
PHY寄存器:
1.
将要读取的
PHY寄存器的地址写入
MIREGADR
寄存器。
2.
将
MICMD.MIIRD置
1开始读操作,同时
MISTAT.BUSY位置
1。
3.
等待
10.24 μs。查询
MISTAT.BUSY位以确定操
作是否完成。当忙时,主控制器不应开始任何
MIISCAN操作或写
MIWRH寄存器。
当
MAC得到寄存器内容时,
BUSY位会自动清零。
4.
将
MICMD.MIIRD位清零。
5.
从
MIRDL和
MIRDH寄存器中读取所需数据。先
读哪一个寄存器都可以。
3.3.2写
PHY寄存器
当写
PHY寄存器时,将一次写入全部的
16位数据,不
能对位进行写操作。如果只需要重新编程寄存器中的某
几位,控制器必须首先读
PHY寄存器,修改读到的数
据,然后将数据写回
PHY寄存器。
要写
PHY寄存器:
1.
将要写入的
PHY寄存器的地址写入
MIREGADR
寄存器。
2.
将数据的低
8位写入
MIWRL寄存器。
3.
将数据的高8位写入MIWRH寄存器。对
MIWRH
寄存器的写操作会自动启动
MII事务,所以必须
在写入
MIWRL后才能写入该寄存器。
MISTAT.BUSY位置
1。
在
MII操作完成后写
PHY寄存器,用时
10.24 μs。当
写操作完成后,BUSY位将自动清零。在忙时主控制器
不应开始
MIISCAN或
MIIRD操作。
3.3.3扫描
PHY寄存器
可将
MAC配置为对
PHY寄存器自动执行背对背读操
作。在需要周期性更新状态信息的情况下,能极大地降
低主控制器的复杂度。要执行扫描操作:
1.
将要读取的
PHY寄存器的地址写入
MIREGADR
寄存器。
2.
将
MICMD.MIISCAN位置
1,开始扫描操作,同
时
MISTAT.BUSY位置
1。在
10.24 μs后完成第
一次读操作。以相同的时间间隔完成后续的读操
作,直到操作被取消。可以通过查询
MISTAT.NVALID位来确定第一次读操作完成的
时间。
在将
MIISCAN位置
1后,每经过
10.24 μs均会自动更
新MIRDL和MIRDH寄存器。没有状态信息可显示
MIRD
寄存器被更新的时间。因为主控制器通过
SPI一次只能
读一个
MII寄存器,所以不能说是同时通过
PHY读取
MIRDL和
MIRDH的值。
当进行
MIISCAN操作时,禁止主控制器写
MIWRH或
开始
MIIRD操作。可以通过将
MICMD.MIISCAN位清
零先取消
MIISCAN操作,然后查询
MISTAT.BUSY位。
在
BUSY位清零后可开始新的操作。
. 2006 Microchip Technology Inc.高级信息
DS39662A_CN第
19页
表
表
:
ENC28J60 PHY寄存器汇总
ENC28J60
DS39662A_CN第20页高级信息
. 2006 Microchip Technology Inc.
地址名
称
Bit 15 Bit 14 Bit 13 Bit 12 Bit 11 Bit 10 Bit 9 Bit 8 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0复位
00h PHCON1 PRST PLOOPBK--PPWRSV r-PDPXMD(1) r-------00-- 10-q 0--- ---01h
PHSTAT1---PFDPX PHDPX--------LLSTAT JBSTAT----1 1--- ---- -0002h
PHID1 PHY标识符
(
PID18:PID3) = 0083h 0000 0000 1000 0011
03h PHID2 PHY标识符
(
PID24:PID19)= 000101 PHY P/N(PPN5:PPN0) = 00h PHY版本
(
PREV3:PREV0) = 00h 0001 0100 0000 0000
10h PHCON2-FRCLNK TXDIS r r JABBER r HDLDIS r r r r r r r r -000 0000 0000 0000
11h PHSTAT2--TXSTAT RXSTAT COLSTAT LSTAT DPXSTAT(1)----PLRITY------00 00q- ---0 ---12h
PHIE r r r r r r r r r r r PLNKIE r r PGEIE r 0000 0000 0000 0000
13h PHIR r r r r r r r r r r r PLNKIF r PGIF r r xxxx xxxx xx00 00x0
14h PHLCON r r r r LACFG3:LACFG0 LBCFG3:LBCFG0 LFRQ1:LFRQ0 STRCH r 0011 0100 0010 001x
图注
:
x = 未知
,
u = 不变,— = 未用
,
q = 取值视情况而定
,
r =保留,不可修改。
注
1:双工模
式
/状态位的复位值取决
于
LED
与
LEDB引脚的连接方式(欲知更多信息,请参见第 2.6节“LED配置”)。
ENC28J60
寄存器
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -