摘要:Dallas Semiconductor的以太網鏈接及傳輸處理芯片(ELITE)產品線在廣域網(WAN)與局域網(LAN)之間構建了一個橋梁。ELITE有幾種配置方法,最常用的一種是通過微處理器(μP)控制。此外,為了降低成本,芯片還提供了硬件配置模式或外部EEPROM配置模式。對于硬件配置模式,由于芯片引腳數有限,有些功能的配置會受到限制;而EEPROM配置模式,可對芯片的每個寄存器進行配置,功能配置不受限制。本篇應用筆記針對DS33Z11或DS33Z44的EEPROM配置模式,介紹如何編寫它們的EEPROM配置軟件。
圖1. SPI主機時序圖
表1. DS33Z11 EEPROM程序存儲器映射
表2. DS33Z44 EEPROM程序存儲器映射
以太網的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間接寫指令舉例
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 |
評論
查看更多