DM9000引脚说明及寄存器配置中文版.docx
《DM9000引脚说明及寄存器配置中文版.docx》由会员分享,可在线阅读,更多相关《DM9000引脚说明及寄存器配置中文版.docx(21页珍藏版)》请在冰豆网上搜索。
DM9000引脚说明及寄存器配置中文版
DM9000引脚说明及寄存器配置
1、总体介绍
该DM9000是一款完全集成的和符合成本效益单芯片快速以太网MAC控制器与一般处理接口,一个10/100M自适应的PHY和4KDWORD值的SRAM。
它的目的是在低功耗和高性能进程的3.3V与5V的支持宽容。
DM9000还提供了介质无关的接口,来连接所有提供支持介质无关接口功能的家用电话线网络设备或其他收发器。
该DM9000支持8位,16位和32-位接口访问内部存储器,以支持不同的处理器。
DM9000物理协议层接口完全支持使用10MBps下3类、4类、5类非屏蔽双绞线和100MBps下5类非屏蔽双绞线。
这是完全符合IEEE802.3u规格。
它的自动协调功能将自动完成配置以最大限度地适合其线路带宽。
还支持IEEE802.3x全双工流量控制。
这个工作里面DM9000是非常简单的,所以用户可以容易的移植任何系统下的端口驱动程序。
2、特点
支持处理器读写内部存储器的数据操作命令以字节/字/双字的长度进行
集成10/100M自适应收发器
支持介质无关接口
支持背压模式半双工流量控制模式
IEEE802.3x流量控制的全双工模式
支持唤醒帧,链路状态改变和远程的唤醒
4K双字SRAM
支持自动加载EEPROM里面生产商ID和产品ID
支持4个通用输入输出口
超低功耗模式
功率降低模式
电源故障模式
可选择1:
1YL18-2050S,YT37-1107S或5:
4变压比例的变压器降低格外功率
兼容3.3v和5.0v输入输出电压
100脚CMOSLQFP封装工艺
3、引脚描述
I=输入O=输出I/O=输入/输出O/D=漏极开路P=电源LI=复位锁存输入#=普遍低电位
介质无关接口引脚
引脚号
引脚名
I/O
功能描述
37
LINK_I
I
外部介质无关接口器件连接状态
38、39、40、41
RXD[3:
0]
I
外部介质无关接口接收数据
4位半字节输入(同步于接收时钟)
43
CRS
I/O
外部介质无关接口的载波检测
44
COL
I/O
外部介质无关接口的冲突检测,输出到外部设备
45
RX_DV
I
外部介质无关接口数据有效信号
46
RX_ER
I
外部介质无关接口接收错误
47
RX_CLK
I
外部介质无关接口接收时钟
49
TX_CLK
I/O
外部介质无关接口发送时钟
50~53
TXD[3:
0]
O
外部介质无关接口发送数据低4位输出
TXD[2:
0]决定内部存储空间基址:
TXD[2:
0])*10H+300H
54
MDIO
I/O
外部介质无关接口串行数据通信
57
MDC
O
外部介质无关串行数据通信口时钟,且与中断引脚有关
该引脚高电平时候,中断引脚低电平有效;否则高有效
注意:
以上介质无关端口都内部自带60K欧姆的下拉电阻
处理器接口引脚
1
IOR#
I
处理器读命令
低电平有效,极性能够被EEPROM修改,详细请参考对EEPROM内容的描述
2
IOW#
I
处理器写命令
低电平有效,同样能修改极性
3
AEN#
I
芯片选择,低电平有效
4
IOWAIT
O
处理器命令就绪
当上一指令没有结束,该引脚电平拉低表示当前指令需要等待
14
RST
I
硬件复位信号,高电平有效复位
1~682~89
SD0~15
I/O
0~15位的数据地址复用总线,由CMD引脚决定当期访问类型
93~98
SA4~9
I
地址线4~9;仅作芯片选择信号
(SA4~9:
TXD0~2,011)被选中
92
CMD
I
访问类型
高电平是访问数据端口;低电平是访问地址端口
91
IO16
O
字命令标志,默认低电平有效
当访问外部数据存储器是字或双字宽度时,被置位
100
INT
O
中断请求信号
高电平有效,极性能修改
37~5356
SD31~16
I/O
双字模式,高16位数据引脚
57
IO32
O
双字命令标志,默认低电平有效
注意:
以上引脚除去SD8,SD9和IO16,都内部自带60K欧姆的下拉电阻
EEPROM引脚
64
EEDI
I
数据输入引脚
65
EEDO
I/O
EEPROM数据引脚
与WAKEUP引脚一起定义访问数据存储器的总线宽度
WAKEUPEEDO总线宽度
0016位
0132位
108位
11未定义
66
EECK
I
时钟信号
67
EECS
I/O
片选
也做LED模式选择引脚
高电平时,LED模式1,否则模式0
注意:
EECSEECKEEDO引脚都内部自带60K欧姆下拉电阻
时钟引脚
21
X2_25M
O
25M晶振输出
22
X1_25M
I
25M晶振输入
59
CLK20MO
O
20M晶振再生输出给外部介质无关设备,自带60K欧姆下拉电阻
LED引脚
60
SPEED100#
O
低电平指示100M带宽指示,高电平指示10M带宽
61
DUP#
O
全双工指示LED
LED模式0时,低电平显示工作在10M带宽,或在100M带宽浮动
62
LINK&ACT#
O
连接LED,在模式0时,只作物理层的载波监听检测连接状态
10/100物理层与光纤接口
24
SD
I
光纤信号检测
PECL电平信号,显示光纤接收是否有效
25
DGGND
P
带隙地信号线
26
BGRES
I/O
带隙引脚
27
AVDD
P
带隙与电源保护环
28
AVDD
P
接收端口电源
29
RXI+
I
物理层接收端的正极
30
RXI-
I
物理层接收端的负极
31
AGND
P
接收端口地
32
AGND
P
发送端口地
33
TXO+
O
物理层发送端口正极
34
TXO-
O
发送端口负极
35
AVDD
P
物理层发送端口负极
各种其他功能引脚
16~19
TEST1~4
I
工作模式
Test1~4(1,1,0,0)正常工作状态
48
TEST5
I
必须接地
68~69
GPIO0~3
I/O
通用I/O端口
通用端口控制寄存器和通用端口寄存器能编程该系列引脚
GPIO0默认输出为高来关闭物理层和其他外部介质无关器件
GPIO1~3默认为输入引脚
78
LINK_O
O
电缆连接状态显示输出,高电平有效
79
WAKEUP
O
流出一个唤醒信号当唤醒事件发生
内置60K欧姆的下拉电阻
80
PW_RST#
I
上电复位
低电平激活DM9000的重新初始化,5us后初始化当该引脚测试到电平变化
74,75,77
NC
无用
电源引脚
5,20,36,55,
72,90,73
DVDD
P
数字电源
15,23,42,58
63,81,99,76
DGND
P
数字地
内部寄存器
DM9000(A)包含一系列可被访问的控制状态寄存器,这些寄存器是字节对齐的,他们在硬件或软件复位时被设置成初始值。
以下为DM9000的寄存器功能详解:
NCR(00H):
网络控制寄存器(NetworkControlRegister)
7:
EXT_PHY:
1选择外部PHY,0选择内部PHY,不受软件复位影响。
6:
WAKEEN:
事件唤醒使能,1使能,0禁止并清除事件唤醒状态,不受软件复位影响。
5:
保留。
4:
FCOL:
1强制冲突模式,用于用户测试。
3:
FDX:
全双工模式。
内部PHY模式下只读,外部PHY下可读写。
2-1:
LBK:
回环模式(Loopback)00通常,01MAC内部回环,10内部PHY100M模式数字回环,11保留。
0:
RST:
1软件复位,10us后自动清零。
NSR(01H):
网络状态寄存器(NetworkStatusRegister)
7:
SPEED:
媒介速度,在内部PHY模式下,0为100Mbps,1为10Mbps。
当LINKST=0时,此位不用。
6:
LINKST:
连接状态,在内部PHY模式下,0为连接失败,1为已连接。
5:
WAKEST:
唤醒事件状态。
读取或写1将清零该位。
不受软件复位影响。
4:
保留。
3:
TX2END:
TX(发送)数据包2完成标志,读取或写1将清零该位。
数据包指针2传输完成。
2:
TX2END:
TX(发送)数据包1完成标志,读取或写1将清零该位。
数据包指针1传输完成。
1:
RXOV:
RX(接收)FIFO(先进先出缓存)溢出标志。
0:
保留。
TCR(02H):
发送控制寄存器(TXControlRegister)
7:
保留。
6:
TJDIS:
Jabber传输使能。
1使能Jabber传输定时器(2048字节),0禁止。
注释:
Jabber是一个有CRC错误的长帧(大于1518byte而小于6000byte)或是数据包重组错误。
原因:
它可能导致网络丢包。
多是由于作站有硬件或软件错误。
5:
EXCECM:
额外冲突模式控制。
0当额外的冲突计数多于15则终止本次数据包,1始终尝试发发送本次数据包。
4:
PAD_DIS2:
禁止为数据包指针2添加PAD。
3:
CRC_DIS2:
禁止为数据包指针2添加CRC校验。
2:
PAD_DIS2:
禁止为数据包指针1添加PAD。
1:
CRC_DIS2:
禁止为数据包指针1添加CRC校验。
0:
TXREQ:
TX(发送)请求。
发送完成后自动清零该位。
TSR_I(03H):
数据包指针1的发送状态寄存器1(TXStatusRegisterI)
7:
TJTO:
Jabber传输超时。
该位置位表示由于多于2048字节数据被传输而导致数据帧被截掉。
6:
LC:
载波信号丢失。
该位置位表示在帧传输时发生红载波信号丢失。
在内部回环模式下该位无效。
5:
NC:
无载波信号。
该位置位表示在帧传输时无载波信号。
在内部回环模式下该位无效。
4:
LC:
冲突延迟。
该位置位表示在64字节的冲突窗口后又发生冲突。
3:
COL:
数据包冲突。
该位置位表示传输过程中发生冲突。
2:
EC:
额外冲突。
该位置位表示由于发生了第16次冲突(即额外冲突)后,传送被终止。
1-0:
保留。
TSR_II(04H):
数据包指针2的发送状态寄存器2(TXStatusRegisterII)
同TSR_I
略。
RCR(05H):
接收控制寄存器(RXControlRegister)
7:
保留。
6:
WTDIS:
看门狗定时器禁止。
1禁止,0使能。
5:
DIS_LONG:
丢弃长数据包。
1为丢弃数据包长度超过1522字节的数据包。
4:
DIS_CRC:
丢弃CRC校验错误的数据包。
3:
ALL:
忽略所有多点传送。
2:
RUNT:
忽略不完整的数据包。
1:
PRMSC:
混杂模式(PromiscuousMode)
0:
RXEN:
接收使能。
RSR(06H):
接收状态寄存器(RXStatusRegister)
7:
RF:
不完整数据帧。
该位置位表示接收到小于64字节的帧。
6:
MF:
多点传送帧。
该位置位表示接收到帧包含多点传送地址。
5:
LCS:
冲突延迟。
该位置位表示在帧接收过程中发生冲突延迟。
4:
RWTO:
接收看门狗定时溢出。
该位置位表示接收到大于2048字节数据帧。
3:
PLE:
物理层错误。
该位置位表示在帧接收过程中发生物理层错误。
2:
AE:
对齐错误(Alignment)。
该位置位表示接收到的帧结尾处不是字节对齐,即不是以字节为边界对齐。
1:
CE:
CRC校验错误。
该位置位表示接收到的帧CRC校验错误。
0:
FOE:
接收FIFO缓存溢出。
该位置位表示在帧接收时发生FIFO溢出。
ROCR(07H):
接收溢出计数寄存器(ReceiveOverflowCounterRegister)
7:
RXFU:
接收溢出计数器溢出。
该位置位表示ROC(接收溢出计数器)发生溢出。
6-0:
ROC:
接收溢出计数器。
该计数器为静态计数器,指示FIFO溢出后,当前接收溢出包的个数。
BPTR(08H):
背压门限寄存器(BackPressureThresholdRegister)
7-4:
BPHW:
背压门限最高值。
当接收SRAM空闲空间低于该门限值,则MAC将产生一个拥挤状态。
1=1K字节。
默认值为3H,即3K字节空闲空间。
不要超过SRAM大小。
3-0:
JPT:
拥挤状态时间。
默认为200us。
0000为5us,0001为10us,0010为15us,0011为25us,0100为50us,0101为100us,0110为150us,0111为200us,1000为250us,1001为300us,1010为350us,1011为400us,1100为450us,1101为500us,1110为550us,1111为600us。
FCTR(09H):
溢出控制门限寄存器(FlowControlThresholdRegister)
7-4:
HWOT:
接收FIFO缓存溢出门限最高值。
当接收SRAM空闲空间小于该门限值,则发送一个暂停时间(pause_time)为FFFFH的暂停包。
若该值为0,则无接收空闲空间。
1=1K字节。
默认值为3H,即3K字节空闲空间。
不要超过SRAM大小。
3-0:
LWOT:
接收FIFO缓存溢出门限最低值。
当接收SRAM空闲空间大于该门限值,则发送一个暂停时间(pause_time)为0000H的暂停包。
当溢出门限最高值的暂停包发送之后,溢出门限最低值的暂停包才有效。
默认值为8K字节。
不要超过SRAM大小。
RTFCR(0AH):
接收/发送溢出控制寄存器(RX/TXFlowControlRegister)
7:
TXP0:
1发送暂停包。
发送完成后自动清零,并设置TX暂停包时间为0000H。
6:
TXPF:
1发送暂停包。
发送完成后自动清零,并设置TX暂停包时间为FFFFH。
5:
TXPEN:
强制发送暂停包使能。
按溢出门限最高值使能发送暂停包。
4:
BKPA:
背压模式。
该模式仅在半双工模式下有效。
当接收SRAM超过BPHW并且接收新数据包时,产生一个拥挤状态。
3:
BKPM:
背压模式。
该模式仅在半双工模式下有效。
当接收SRAM超过BPHW并数据包DA匹配时,产生一个拥挤状态。
2:
RXPS:
接收暂停包状态。
只读清零允许。
1:
RXPCS:
接收暂停包当前状态。
0:
FLCE:
溢出控制使能。
1设置使能溢出控制模式。
EPCR/PHY_CR(0BH):
EEPROM和PHY控制寄存器(EEPROM&PHYControlRegister)
7-6:
保留。
5:
REEP:
重新加载EEPROM。
驱动程序需要在该操作完成后清零该位。
4:
WEP:
EEPROM写使能。
3:
EPOS:
EEPROM或PHY操作选择位。
0选择EEPROM,1选择PHY。
2:
ERPRR:
EEPROM读,或PHY寄存器读命令。
驱动程序需要在该操作完成后清零该位。
1:
ERPRW:
EEPROM写,或PHY寄存器写命令。
驱动程序需要在该操作完成后清零该位。
0:
ERRE:
EEPROM或PHY的访问状态。
1表示EEPROM或PHY正在被访问。
EPAR/PHY_AR(0CH):
EEPROM或PHY地址寄存器(EEPROM&PHYAddressRegister)
7-6:
PHY_ADR:
PHY地址的低两位(bit1,bit0),而PHY地址的bit[4:
2]强制为000。
如果要选择内部PHY,那么此2位强制为01,实际应用中要强制为01。
5-0:
EROA:
EEPROM字地址或PHY寄存器地址。
EPDRL/PHY_DRL(0DH):
EEPROM或PHY数据寄存器低半字节(EEPROM&PHYLowByteDataRegister)
7-0:
EE_PHY_L
EPDRL/PHY_DRH(0EH):
EEPROM或PHY数据寄存器高半字节(EEPROM&PHYHighByteDataRegister)
7-0:
EE_PHY_H
WUCR(0FH):
唤醒控制寄存器(WakeUpControlRegister)
7-6:
保留。
5:
LINKEN:
1使能“连接状态改变”唤醒事件。
该位不受软件复位影响。
4:
SAMPLEEN:
1使能“Sample帧”唤醒事件。
该位不受软件复位影响。
3:
MAGICEN:
1使能“MagicPacket”唤醒事件。
该位不受软件复位影响。
2:
LINKST:
1表示发生了连接改变事件和连接状态改变事件。
该位不受软件复位影响。
1:
SAMPLEST:
1表示接收到“Sample帧”和发生了“Sample帧”事件。
该位不受软件复位影响。
0:
MAGICST:
1表示接收到“MagicPacket”和发生了“MagicPacket”事件。
该位不受软件复位影响。
PAR(10H--15H):
物理地址(MAC)寄存器(PhysicalAddressRegister)
7-0:
PAD0--PAD5:
物理地址字节0--字节5(10H--15H)。
用来保存6个字节的MAC地址。
MAR(16H--1DH):
多点发送地址寄存器(MulticastAddressRegister)
7-0:
MAB0--MAB7:
多点发送地址字节0--字节7(16H--1DH)。
GPCR(1FH):
GPIO控制寄存器(GeneralPurposeControlRegister)
7-4:
保留。
3-0:
GEP_CNTL:
GPIO控制。
定义GPIO的输入输出方向。
1为输出,0为输入。
GPIO0默认为输出做POWER_DOWN功能。
其它默认为输入。
因此默认值为0001。
GPR(1FH):
GPIO寄存器(GeneralPurposeRegister)
7-4:
保留。
3-1:
GEPIO3-1:
GPIO为输出时,相关位控制对应GPIO端口状态,GPIO为输入时,相关位反映对应GPIO端口状态。
(类似于单片机对IO端口的控制)。
0:
GEPIO0:
功能同上。
该位默认为输出1到POWER_DEWN内部PHY。
若希望启用PHY,则驱动程序需要通过写“0”将PWER_DOWN信号清零。
该位默认值可通过EEPROM编程得到。
参考EEPROM相关描述。
TRPAL(22H):
发送SRAM读指针地址低半字节(TXSRAMReadPointerAddressLowByte)
7-0:
TRPAL
TRPAH(23H):
发送SRAM读指针地址高半字节(TXSRAMReadPointerAddressHighByte)
7-0:
TRPAH
RWPAL(24H):
接收SRAM指针地址低半字节(RXSRAMWritePointerAddressLowByte)
7-0:
RWPAL
RWPAH(25H):
接收SRAM指针地址高半字节(RXSRAMWritePointerAddressHighByte)
7-0:
RWPAH
VID(28H--29H):
生产厂家序列号(VendorID)
7-0:
VIDL:
低半字节(28H),只读,默认46H。
7-0:
VIDH:
高半字节(29H),只读,默认0AH。
PID(2AH--2BH):
产品序列号(ProductID)
7-0:
PIDL:
低半字节(2AH),只读,默认00H。
7-0:
PIDH:
高半字节(2BH),只读,默认90H。
CHIPR(2CH):
芯片修订版本(CHIPRevision)
7-0:
PIDH:
只读,默认00H。
TCR2(2DH):
传输控制寄存器2(TXControlRegister2)
7:
LED:
LED模式。
1设置LED引脚为模式1,0设置LED引脚为模式0或根据EEPROM的设定。
6:
RLCP:
1重新发送有冲突延迟的数据包。
5:
DTU:
1禁止重新发送“underruned”数据包。
4:
ONEPM:
单包模式。
1发送完成前发送一个数据包的命令能被执行,0发送完成前发送两个以上数据包的命令能被执行。
3-0:
IFGS:
帧间间隔设置。
0XXX为96bit,1000为64bit,1001为72bit,1010为80bit,1011为88bit,1100为96bit,1101为104bit,1110为112bit,1111为120bit。
OCR(2EH):
操作测试控制寄存器(OperationControlRegister)
7-6:
SCC:
设置内部系统时钟。
00为50MHz,01为20MHz,10为100MHz,11保留。
5:
保留。
4:
SOE:
内部SRAM输出使能始终开启。
3:
SCS:
内部SRAM片选始终开启。
2-0:
PHYOP:
为测试用内部PHY操作模式。
SMCR(2FH):
特殊模式控制寄存器(SpecialModeControlRegister)
7:
SM_EN:
特殊模式使能。
6-3:
保留。
2:
FLC:
强制冲突延迟。
1:
FB1:
强制最长“Back-off”时间。
0:
FB0:
强制最短“Back-off”时间。
ETXCSR(30H):
传输前(Early)控制、状态寄存器(EarlyTransmitControl/StatusRegister)
7:
ETE:
传输前使能。
6:
ETS2:
传输前状态2。
5:
ETS1:
传输前状态1。
4-2:
保留。
1-0:
ETT:
传输前门限。
当写到发送FIFO缓存里的数据字节数达到该门限,则开始传输。
00为12.5%,01