### 1. SPI串行EEPROM接口
DS33Z11/DS33Z44拥有一个4线SPI串行接口,便于连接串行EEPROM进行初始化配置。通过正确设置工作模式控制引脚(HWMODE = 0、MODEC1 = 1、MODEC0 = 0),DS33Z11/DS33Z44可作为SPI主机,从串行EEPROM读取配置数据。
SPI接口包括MOSI(主机输出、从机输入)、MISO(主机输入、从机输出)、SPICK(时钟线)和/SPI_CS(片选线)。CKPHA引脚用于配置MISO和MOSI信号的采样及更新边沿。SPICK工作频率为8.33MHz,从外部100MHz SYSCLKI分频得到。
### 2. SPI EEPROM编程步骤
1. 使用DS33Z11/DS33Z44的固定模式SPI存储器读指令,选择16kB(2048 x 8)的SPI串行EEPROM进行配置。小于16kB的EEPROM需要使用不同的存储器读指令,两者不兼容。
2. 初始化上电复位后或/RS引脚触发信号的上升沿之后,拉低SPI_/CS信号,从数据线MOSI发出0b00000011 SPI读指令,启动读存储器操作。
3. 依次发送16位地址为0x0000的二进制地址,并通过数据线MISO读取数据。
4. SPI_/CS保持低电平,直到所有数据读取完毕并锁存到DS33Z11/DS33Z44。
5. 读取数据长度取决于所连接的EEPROM类型。
### 3. 存储器映射
表1和表2展示了DS33Z11和DS33Z44的EEPROM程序存储器映射。表1适用于DS33Z11,表2适用于DS33Z44。表中列出了各功能模块的地址范围,为配置软件提供参考。
### 4. 间接寻址MAC寄存器的配置
以太网MAC寄存器采用间接寻址,使用µP并口总线模式配置时,需要多条写指令。由于无法将这些寄存器直接映射到EEPROM存储器,因此SPI串行EEPROM模式下需采用特殊的编程步骤实现写操作。
间接寻址MAC寄存器的写操作采用7字节记录,存放在EEPROM存储器的最后。记录中包括32位数据(写入以太网MAC数据0至数据3寄存器)和16位地址(写入以太网MAC的低字节、高字节地址寄存器)。最后,剩余字节写入以太网MAC的读/写命令状态寄存器,触发数据写入实际指定地址。
### 5. 写指令示例
以将0x1018000C写入以太网MAC控制寄存器(SU.MACCR)为例, indirect address为0x0000。根据表3,我们得到以下7字节记录:
1. MAC data Byte 1 (写入SU.MACWD0):0C 2. MAC data byte 2 (写入SU.MACWD1):00 3. MAC data byte 3 (写入SU.MACWD2):18 4. MAC data byte 4 (写入SU.MACWD3):10 5. MAC address low (写入SU.MACAWL):00 6. MAC address high (写入SU.MACAWH):00 7. MAC write command (写入SU.MACRWC):01
以上为DS33Z11/DS33Z44 EERPOM编程模式的基本概念和应用指南。若您需要更多关于LAN至WAN桥接设计的技术支持,请发送邮件至teLECom.support@dalsemi.com(仅限英文)或致电972-371-6555(美国)。
DS33Z11/DS33Z44 EEPROM编程指南
SPI™串行EEPROM接口
DS33Z11/DS33Z44有一个4线SPI串行接口,因此可以外挂串行EEPROM对其初始化配置,正确设置工作模式控制引脚(HWMODE = 0、MODEC1 = 1、MODEC0 = 0),DS33Z11/DS33Z44可以作为SPI主机,从串行EEPROM读取配置数据。MOSI (主机输出、从机输入)和MISO (主机输入、从机输出)为数据线,SPICK为 时钟线,/SPI_CS为片选线,控制对EEPROM的访问。CKPHA引脚用来配置MISO和MOSI 信号的采样及更新边沿。MOSI数据可以在SPICK的上升沿或下降沿输出。MISO数据可以在SPICK的上升沿或下降沿采样。SPICK工作频率为8.33MHz,从外部100MHz SYSCLKI分频得到。SPI EEPROM编程步骤
因为DS33Z11/DS33Z44采用的是固定模式SPI存储器读指令,配合DS33Z11/DS33Z44使用的EEPROM必须是16kB (2048 x 8)的SPI串行EEPROM。小于16kB的SPI串行EEPROM需要使用不同的存储器读指令,两种指令是不兼容的。初始上电复位后或/ RST引脚触发信号的上升沿之后开启读时序,SPI_/CS信号拉低,从数据线MOSI发出0b00000011 SPI读指令,即可启动一次DS33Z11/DS33Z44的读存储器操作。随后是16位地址为0x0000的二进制地址,然后可以从数据线MISO读取数据,SPI_/CS一直保持低电平,直到读取所有数据并锁存到DS33Z11/DS33Z44。从EEPROM读取的数据长度取决于连接至EEPROM的是DS33Z11还是DS33Z44。图1为DS33Z11/DS33Z44从EEPROM读取数据的时序图。表1为DS33Z11的存储器映射,表2为DS33Z44的存储器映射。
图1. SPI主机时序图
表1. DS33Z11 EEPROM程序存储器映射
Functional Block Address | Address Range for EEPROM Data (Hexadecimal) |
Global registers | 000 to 03F |
Arbiter registers | 040 to 07F |
BERT registers | 080 to 0BF |
Serial interface Tx registers | 0C0 to 0FF |
Serial interface Rx registers | 100 to 13F |
Ethernet interface registers | 140 to 17F |
MAC register write 1 (MAC control) | 180 to 186 (7-byte record for MAC indirect write) |
MAC register write 2 (MII data) | 187 to 18D (7-byte record for MAC indirect write) |
MAC register write 3 (MII address) | 18E to 194 (7-byte record for MAC indirect write) |
MAC register write 4 (flow control) | 195 to 19B (7-byte record for MAC indirect write) |
表2. DS33Z44 EEPROM程序存储器映射
Functional Block Address | Address Range for EEPROM Data (Hexadecimal) |
Global registers | 000 to 03F |
Arbiter registers | 040 to 07F |
BERT registers | 080 to 0BF |
Serial interface 1 Tx registers | 0C0 to 0FF |
Serial interface 1 Rx registers | 100 to 13F |
Ethernet interface 1 registers | 140 to 17F |
Serial interface 2 Tx registers | 180 to 1BF |
Serial interface 2 Rx registers | 1C0 to 1FF |
Ethernet interface 2 registers | 200 to 23F |
Serial interface 3 Tx registers | 240 to 27F |
Serial interface 3 Rx registers | 280 to 2BF |
Ethernet interface 3 registers | 2C0 to 2FF |
Serial interface 4 Tx registers | 300 to 33F |
Serial interface 4 Rx registers | 340 to 37F |
Ethernet interface 4 registers | 380 to 3BF |
MAC 1 register write 1 (MAC control) | 3C0 to 3C6 (7-byte record for MAC indirect write) |
MAC 1 register write 2 (MII data) | 3C7 to 3CD (7-byte record for MAC indirect write) |
MAC 1 register write 3 (MII address) | 3CE to 3D4 (7-byte record for MAC indirect write) |
MAC 1 register write 4 (flow control) | 3D5 to 3DB (7-byte record for MAC indirect write) |
MAC 2 register write 1 (MAC control) | 3DC to 3E2 (7-byte record for MAC indirect write) |
MAC 2 register write 4 (flow control) | 3E3 to 3E9 (7-byte record for MAC indirect write) |
MAC 3 register write 1 (MAC control) | 3EA to 3F0 (7-byte record for MAC indirect write) |
MAC 3 register write 4 (flow control) | 3F1 to 3F6 (7-byte record for MAC indirect write) |
MAC 4 register write 1 (MAC control) | 3F7 to 3FD (7-byte record for MAC indirect write) |
MAC 4 register write 4 (flow control) | 3FE to 404 (7-byte record for MAC indirect write) |
以太网的MAC寄存器采用间接寻址,使用µP并口总线模式配置时,需要多条写指令。因为无法把这些间接寻址的寄存器直接映射到EEPROM存储器,使用SPI串行EEPROM模式时,需要采用特殊的编程步骤实现写操作。间接寻址MAC寄存器的写操作采用7字节记录,存放在EEPROM存储器的最后。四个MAC寄存器(SU.MACCR、SU.MACMIID、SU.MACMIIA和SU.MACFCR)可以在EEPROM模式下配置。其余间接寻址MAC寄存器不需要配置,因为它们是MAC状态或状态配置寄存器,不需要初始化。
7字节记录的基础是 模拟µP对间接寻址MAC寄存器的写步骤。记录中的前四个字节包含32位数据,将写入以太网MAC数据0至数据3寄存器(SU.MACWD0至SU.MACWD3)。记录中随后的两个字节包含16位地址,将写入以太网MAC的低字节、高字节地址寄存器(SU.MACAWL至SU.MACAWH)。最后,剩余字节写入以太网MAC的读/写命令状态寄存器(SU.MACRWC),这将触发数据到实际指定地址的写操作。DS33Z44含有不同数量的间接写寄存器,DS33Z44的第1路以太网接口与DS33Z11相同,有四个间接写寄存器,而其余三路中,每路只有两个间接写寄存器,原因是只有一个MDIO口管理外部的PHY,通过MAC 1控制。因此,SU.MACMIID和SU.MACMIIA是仅有的有效MAC 1寄存器组。为了通过MAC 1的MDIO口控制多个外部PHY,所有PHY MDIO口都要连接在一起,并配置成同一外部地址。
表3列举一个例子,将0x1018000C写入以太网MAC控制寄存器(SU.MACCR),间接地址为0x0000。如果需要关于DS33Z11/DS33Z44的SPI串口EEPROM编程支持,可通过后续参考文献部分中的链接获得。
表3. DS33Z11间接写指令举例
EEPROM 7-Byte Record | EEPROM Address Base from Table 1 (Hexadecimal) | EEPROM Address (Hexadecimal) | MAC Register Write 1 Used to Initialize SU.MACCR (Hexadecimal) |
MAC data byte 1 | Base + 00 | 180 | 0C - written to SU.MACWD0 |
MAC data byte 2 | Base + 01 | 181 | 00 - written to SU.MACWD1 |
MAC data byte 3 | Base + 02 | 182 | 18 - written to SU.MACWD2 |
MAC data byte 4 | Base + 03 | 183 | 10 - written to SU.MACWD3 |
MAC address low | Base + 04 | 184 | 00 - written to SU.MACAWL |
MAC address high | Base + 05 | 185 | 00 - written to SU.MACAWH |
MAC write command | Base + 06 | 186 | 01 - written to SU.MACRWC |