0
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心
发布
  • 发文章

  • 发资料

  • 发帖

  • 提问

  • 发视频

创作活动
LAN9254-I/JRX

LAN9254-I/JRX

  • 厂商:

    ACTEL(微芯科技)

  • 封装:

    TQFP80_EP

  • 描述:

    LAN9254-I/JRX

  • 数据手册
  • 价格&库存
LAN9254-I/JRX 数据手册
LAN9254 2/3-Port EtherCAT® Slave Controller with Integrated Ethernet PHYs and Demultiplexed HBI / 32 DIGIOs Highlights Key Benefits • 2/3-port EtherCAT slave controller with 8 Fieldbus Memory Management Units (FMMUs) and 8 SyncManagers • Interfaces to most 8/16-bit embedded controllers and 32-bit embedded controllers with an 8/16-bit bus • Integrated Ethernet PHYs with HP Auto-MDIX • Wake on LAN (WoL) support • Low power mode allows systems to enter sleep mode until addressed by the Master • Cable diagnostic support • 1.8V to 3.3V variable voltage I/O • Integrated 1.2V regulator for single 3.3V operation • Integrated high-performance 100Mbps Ethernet transceivers Target Applications • • • • • • Motor Motion Control Process/Factory Automation Communication Modules, Interface Cards Sensors Hydraulic & Pneumatic Valve Systems Operator Interfaces - Compliant with IEEE 802.3/802.3u (Fast Ethernet) Signal Quality Index diagnostics Loop-back modes Automatic polarity detection and correction HP Auto-MDIX Compatible with EtherCAT P • EtherCAT slave controller - Supports 8 FMMUs - Supports 8 SyncManagers - Distributed clock support allows synchronization with other EtherCAT devices - 8K bytes of DPRAM • 8/16-Bit Host Bus Interface - Indexed register, multiplexed or demultiplexed bus - Allows local host to enter sleep mode until addressed by EtherCAT Master - SPI / SQI (Quad SPI) support • Digital I/O Mode for optimized system cost - 32 available Digital I/Os • 3rd port for flexible network configurations • Comprehensive power management features - 3 power-down levels - Wake on link status change (energy detect) - Magic packet wakeup, Wake on LAN (WoL), wake on broadcast, wake on perfect DA - Wakeup indicator event signal • Power and I/O - Integrated power-on reset circuit - Latch-up performance exceeds 150mA per EIA/JESD78, Class II - JEDEC Class 3A ESD performance - Single 3.3V power supply (integrated 1.2V regulator) • Additional Features - EEPROM emulation - Transformer-less link support - Multifunction GPIOs - Ability to use low cost 25MHz crystal for reduced BOM - 25MHz clock output for reference clock daisy chaining • Packaging - Pb-free RoHS compliant 80-pin TQFP-EP • Available in commercial, industrial, and extended industrial temp. ranges  2020 Microchip Technology Inc. DS00003422A-page 1 LAN9254 TO OUR VALUED CUSTOMERS It is our intention to provide our valued customers with the best documentation possible to ensure successful use of your Microchip products. To this end, we will continue to improve our publications to better suit your needs. Our publications will be refined and enhanced as new volumes and updates are introduced. If you have any questions or comments regarding this publication, please contact the Marketing Communications Department via E-mail at docerrors@microchip.com. We welcome your feedback. Most Current Documentation To obtain the most up-to-date version of this documentation, please register at our Worldwide Web site at: http://www.microchip.com You can determine the version of a data sheet by examining its literature number found on the bottom outside corner of any page. The last character of the literature number is the version number, (e.g., DS30000000A is version A of document DS30000000). Errata An errata sheet, describing minor operational differences from the data sheet and recommended workarounds, may exist for current devices. As device/documentation issues become known to us, we will publish an errata sheet. The errata will specify the revision of silicon and revision of document to which it applies. To determine if an errata sheet exists for a particular device, please check with one of the following: • Microchip’s Worldwide Web site; http://www.microchip.com • Your local Microchip sales office (see last page) When contacting a sales office, please specify which device, revision of silicon and data sheet (include -literature number) you are using. Customer Notification System Register on our web site at www.microchip.com to receive the most current information on all of our products. DS00003422A-page 2  2020 Microchip Technology Inc. LAN9254 Table of Contents 1.0 Preface ............................................................................................................................................................................................ 4 2.0 General Description ........................................................................................................................................................................ 8 3.0 Pin Descriptions and Configuration ............................................................................................................................................... 12 4.0 Power Connections ....................................................................................................................................................................... 37 5.0 Register Map ................................................................................................................................................................................. 40 6.0 Clocks, Resets, and Power Management ..................................................................................................................................... 45 7.0 System Interrupts .......................................................................................................................................................................... 60 8.0 Host Bus Interface ........................................................................................................................................................................ 68 9.0 SPI/SQI Slave ............................................................................................................................................................................. 163 10.0 Ethernet PHYs .......................................................................................................................................................................... 201 11.0 EtherCAT .................................................................................................................................................................................. 282 12.0 EEPROM Interface ................................................................................................................................................................... 388 13.0 Chip Mode Configuration .......................................................................................................................................................... 390 14.0 General Purpose Timer & Free-Running Clock ........................................................................................................................ 394 15.0 Miscellaneous ........................................................................................................................................................................... 397 16.0 JTAG ......................................................................................................................................................................................... 401 17.0 Operational Characteristics ....................................................................................................................................................... 403 18.0 Package Information ................................................................................................................................................................. 418 Appendix A: Revision History ............................................................................................................................................................ 419 The Microchip Web Site .................................................................................................................................................................... 420 Customer Change Notification Service ............................................................................................................................................. 420 Customer Support ............................................................................................................................................................................. 420 Product Identification System ........................................................................................................................................................... 421  2020 Microchip Technology Inc. DS00003422A-page 3 LAN9254 1.0 PREFACE 1.1 General Terms TABLE 1-1: GENERAL TERMS Term Description 10BASE-T 10 Mbps Ethernet, IEEE 802.3 compliant 100BASE-TX 100 Mbps Fast Ethernet, IEEE802.3u compliant ADC Analog-to-Digital Converter ALR Address Logic Resolution AN Auto-Negotiation BLW Baseline Wander BM Buffer Manager - Part of the switch fabric BPDU Bridge Protocol Data Unit - Messages which carry the Spanning Tree Protocol information Byte 8 bits CSMA/CD Carrier Sense Multiple Access/Collision Detect CSR Control and Status Registers CTR Counter DA Destination Address DWORD 32 bits EPC EEPROM Controller FCS Frame Check Sequence - The extra checksum characters added to the end of an Ethernet frame, used for error detection and correction. FIFO First In First Out buffer FSM Finite State Machine GPIO General Purpose I/O Host External system (Includes processor, application software, etc.) IGMP Internet Group Management Protocol Inbound Refers to data input to the device from the host Level-Triggered Sticky Bit This type of status bit is set whenever the condition that it represents is asserted. The bit remains set until the condition is no longer true and the status bit is cleared by writing a zero. lsb Least Significant Bit LSB Least Significant Byte LVDS Low Voltage Differential Signaling MDI Medium Dependent Interface MDIX Media Independent Interface with Crossover MII Media Independent Interface MIIM Media Independent Interface Management MIL MAC Interface Layer MLD Multicast Listening Discovery MLT-3 Multi-Level Transmission Encoding (3-Levels). A tri-level encoding method where a change in the logic level represents a code bit “1” and the logic output remaining at the same level represents a code bit “0”. msb Most Significant Bit MSB Most Significant Byte DS00003422A-page 4  2020 Microchip Technology Inc. LAN9254 TABLE 1-1: GENERAL TERMS (CONTINUED) Term Description NRZI Non Return to Zero Inverted. This encoding method inverts the signal for a “1” and leaves the signal unchanged for a “0” N/A Not Applicable NC No Connect OUI Organizationally Unique Identifier Outbound Refers to data output from the device to the host PISO Parallel In Serial Out PLL Phase Locked Loop PTP Precision Time Protocol RESERVED Refers to a reserved bit field or address. Unless otherwise noted, reserved bits must always be zero for write operations. Unless otherwise noted, values are not guaranteed when reading reserved bits. Unless otherwise noted, do not read or write to reserved addresses. RTC Real-Time Clock SA Source Address SFD Start of Frame Delimiter - The 8-bit value indicating the end of the preamble of an Ethernet frame. SIPO Serial In Parallel Out SMI Serial Management Interface SQE Signal Quality Error (also known as “heartbeat”) SSD Start of Stream Delimiter UDP User Datagram Protocol - A connectionless protocol run on top of IP networks UUID Universally Unique IDentifier WORD 16 bits  2020 Microchip Technology Inc. DS00003422A-page 5 LAN9254 1.2 Buffer Types TABLE 1-2: BUFFER TYPES BUFFER TYPE DESCRIPTION IS Schmitt-triggered input O8 3.3V output with 8 mA sink and 8 mA source OD8 3.3V open-drain output with 8 mA sink OD12 3.3V open-drain output with 12 mA sink OS12 3.3V open-source output with 12 mA source VIS Variable voltage Schmitt-triggered input VO8 Variable voltage output with 8 mA sink and 8 mA source VOD8 Variable voltage open-drain output with 8 mA sink VOS8 Variable voltage open-source output with 8 mA source VO12 Variable voltage output with 12 mA sink and 12 mA source VOD12 Variable voltage open-drain output with 12 mA sink VOS12 Variable voltage open-source output with 12 mA source PU 50 µA (typical) internal pull-up. Unless otherwise noted in the pin description, internal pullups are always enabled. Note: PD 50 µA (typical) internal pull-down. Unless otherwise noted in the pin description, internal pull-downs are always enabled. Note: AI Internal pull-up resistors prevent unconnected inputs from floating. Do not rely on internal resistors to drive signals external to the device. When connected to a load that must be pulled high, an external resistor must be added. Internal pull-down resistors prevent unconnected inputs from floating. Do not rely on internal resistors to drive signals external to the device. When connected to a load that must be pulled low, an external resistor must be added. Analog input AIO Analog bidirectional ICLK Crystal oscillator input pin OCLK Crystal oscillator output pin P DS00003422A-page 6 Power pin  2020 Microchip Technology Inc. LAN9254 1.3 Register Nomenclature TABLE 1-3: REGISTER NOMENCLATURE Register Bit Type Notation R Register Bit Description Read: A register or bit with this attribute can be read. W Read: A register or bit with this attribute can be written. RO Read only: Read only. Writes have no effect. WO Write only: If a register or bit is write-only, reads will return unspecified data. W1S Write One to Set: Writing a one sets the value. Writing a zero has no effect W1C Write One to Clear: Writing a one clears the value. Writing a zero has no effect WAC Write Anything to Clear: Writing anything clears the value. RC Read to Clear: Contents is cleared after the read. Writes have no effect. LL Latch Low: Clear on read of register. LH Latch High: Clear on read of register. SC Self-Clearing: Contents are self-cleared after the being set. Writes of zero have no effect. Contents can be read. RO/LH Read Only, Latch High: Bits with this attribute will stay high until the bit is read. After it is read, the bit will either remain high if the high condition remains, or will go low if the high condition has been removed. If the bit has not been read, the bit will remain high regardless of a change to the high condition. This mode is used in some Ethernet PHY registers. NASR Not Affected by Software Reset. The state of NASR bits do not change on assertion of a software reset. RESERVED Reserved Field: Reserved fields must be written with zeros to ensure future compatibility. The value of reserved bits is not guaranteed on a read.  2020 Microchip Technology Inc. DS00003422A-page 7 LAN9254 2.0 GENERAL DESCRIPTION The LAN9254 is a 2/3-port EtherCAT slave controller with dual integrated Ethernet PHYs, each containing a full-duplex 100BASE-TX transceiver that supports 100Mbps (100BASE-TX) operation. The LAN9254 supports HP Auto-MDIX, allowing the use of direct connect or cross-over LAN cables. EtherCAT P and Signal Quality Index PHY diagnostics are supported. The LAN9254 includes an EtherCAT slave controller with 8K bytes of Dual Port memory (DPRAM) and 8 Fieldbus Memory Management Units (FMMUs). Each FMMU performs the task of mapping logical addresses to physical addresses. The EtherCAT slave controller also includes 8 SyncManagers to allow the exchange of data between the EtherCAT master and the local application. Each SyncManager's direction and mode of operation is configured by the EtherCAT master. Two modes of operation are available: buffered mode or mailbox mode. In the buffered mode, both the local microcontroller and EtherCAT master can write to the device concurrently. The buffer within the LAN9254 will always contain the latest data. If newer data arrives before the old data can be read out, the old data will be dropped. In mailbox mode, access to the buffer by the local microcontroller and the EtherCAT master is performed using handshakes, guaranteeing that no data will be dropped. The LAN9254 provides an EtherCAT direct mapping mode, which inserts the EtherCAT registers into the base address space. The EtherCAT direct mapping mode eliminates the need for a command/data access structure, which can increase the speed of smaller data blocks. The LAN9254 supports numerous power management and wakeup features. The LAN9254 can be placed in a reduced power mode and can be programmed to issue an external wake signal (IRQ or PME) via several methods, including “Magic Packet”, “Wake on LAN”, wake on broadcast, wake on perfect DA, and “Link Status Change”. This signal is ideal for triggering system power-up using remote Ethernet wakeup events. The device can be removed from the low power state via a host processor command or one of the wake events. The LAN9254 contains an I2C master EEPROM controller for connection to an EEPROM, allowing for the storage and retrieval of static data. The internal EEPROM Loader automatically loads stored configuration settings from the EEPROM into the device at reset. An EEPROM emulation feature, which requires additional software support, is available for EEPROM-less operation. For simple digital modules without microcontrollers, the LAN9254 can also operate in Digital I/O Mode where 32 digital signals can be controlled or monitored by the EtherCAT master. To enable star or tree network topologies, the device can be configured as a 3-port slave, providing an additional MII port. This port can be connected to an external PHY, forming a tap along the current daisy chain, or to another LAN9254 creating a 4-port solution. The MII port can point upstream (as Port 0) or downstream (as Port 2). LED support consists of a standard RUN indicator and a LINK / Activity indicator per port. Configuration options enable ERR and STATE_RUN indicators. A 64-bit distributed clock is included to enable high-precision synchronization and to provide accurate information about the local timing of data acquisition. The LAN9254 can be configured to operate via a single 3.3V supply utilizing an integrated 3.3V to 1.2V linear regulator. The linear regulator may be optionally disabled, allowing usage of a high efficiency external regulator for lower system power dissipation. The LAN9254 is available in commercial, industrial, and extended industrial temperature ranges. Figure 2-1 details a typical system application, while Figure 2-2 provides an internal block diagram of the LAN9254. Note: Extended temp. (105ºC) is supported only with an external voltage regulator (internal regulator must be disabled) and 2.5V (typ) Ethernet magnetics. DS00003422A-page 8  2020 Microchip Technology Inc. LAN9254 FIGURE 2-1: SYSTEM BLOCK DIAGRAM EtherCAT Slave Microprocessor/ Microcontroller EEPROM (optional) EtherCAT Master Local Bus Magnetics RJ45 Magnetics RJ45 PHY RJ45 LAN9254 32 x DIGIOs 16 x GPIOs EtherCAT Slave EtherCAT Slave EtherCAT Slave 25MHz FIGURE 2-2: INTERNAL BLOCK DIAGRAM Registers / RAM ESC Address Space SyncManager FMMU GPIO / DIGIO Port 0 100 PHY ECAT Mux Port 2 Ethernet Auto Fowarder Loopback Auto Fowarder Loopback Auto Fowarder Loopback SPI Slave Controller Host Bus Interface Registers Port 1 Ethernet PIN Mux To 8/16-bit Host Bus, MII, SPI, Digital IOs, GPIOs EtherCAT Slave Controller 100 PHY Registers LED Controller I2C EEPROM System Interrupt Controller System Clocks/ Reset Controller 25MHz In To optional LEDs  2020 Microchip Technology Inc. To I 2C IRQ External 25MHz Crystal 25MHz Out DS00003422A-page 9 LAN9254 The LAN9254 can operate in Microcontroller, Expansion, or Digital I/O mode: Microcontroller Mode: The LAN9254 communicates with the microcontroller through an SRAM-like slave interface. The simple, yet highly functional host bus interface provides a glue-less connection to most common 8 or 16-bit microprocessors and microcontrollers as well as 32-bit microprocessors with an 8 or 16-bit external bus. The integrated Host Bus Interface (HBI) supports 8/16-bit operation with big, little, and mixed endian operations. Two process data RAM FIFOs interface the HBI to the EtherCAT slave controller and facilitate the transferring of process data information between the host CPU and the EtherCAT slave. A configurable host interrupt pin allows the device to inform the host CPU of any internal interrupts. Three user selectable Microcontroller Mode Host Bus Interface (HBI) options are available: • Indexed register access This implementation provides three index/data register banks, each with independent Byte/WORD to DWORD conversion. Internal registers are accessed by first writing one of the three index registers, followed by reading or writing the corresponding data register. Three index/data register banks support up to 3 independent driver threads without access conflicts. Each thread can write its assigned index register without the issue of another thread overwriting it. Two 16-bit cycles or four 8-bit cycles are required within the same 32-bit index/data register however, these access can be interleaved. Non-indexed read and write accesses are supported to the process data FIFOs. The non-indexed FIFO access provides independent Byte/WORD to DWORD conversion, supporting interleaved accesses with the index/data registers. • Multiplexed address/data bus This implementation provides a multiplexed address and data bus with both single phase and dual phase address support. The address is loaded with an address strobe followed by data access using a read or write strobe. Two back to back 16-bit data cycles or 4 back to back 8-bit data cycles are required within the same 32-bit DWORD. These accesses must be sequential without any interleaved accesses to other registers. • Demultiplexed address/data bus This implementation provides a demultiplexed address and data bus with the address and endianness select inputs directly provided by the host. Two back to back 16-bit data cycles or 4 back to back 8-bit data cycles are required within the same 32-bit DWORD. These accesses must be sequential without any interleaved accesses to other registers. Alternatively, the device can be accessed via SPI/SQI, while also providing up to 16 inputs or outputs for general purpose usage. An SPI / SQI (Quad SPI) slave controller provides a low pin count synchronous slave interface that facilitates communication between the device and a host system. The SPI / SQI slave allows access to the System CSRs, internal FIFOs and memories. It supports single and multiple register read and write commands with incrementing, decrementing and static addressing. Single, Dual and Quad bit lanes are supported with a clock rate of up to 80 MHz. Expansion Mode: While the device is in SPI/SQI mode, a third networking port can be enabled to provide an additional MII port. This port can be connected to an external PHY, to enable star or tree network topologies, or to another LAN9254 to create a four port solution. This port can be configured for the upstream or downstream direction. Digital I/O Mode: For simple digital modules without microcontrollers, the LAN9254 can operate in Digital I/O Mode where 32 digital signals can be controlled or monitored by the EtherCAT master. Up to 7 control signals are also provided. DS00003422A-page 10  2020 Microchip Technology Inc. LAN9254 Figure 2-3 provides a system level overview of each mode of operation. FIGURE 2-3: MODES OF OPERATION Microcontroller Mode Digital I/O Mode (via Host Bus Interface) Microprocessor/ Microcontroller Host Bus Interface RJ45 Magnetics LAN9254 Magnetics RJ45 Magnetics LAN9254 Magnetics RJ45 Magnetics RJ45 RJ45 Digital I/Os Microcontroller Mode Expansion Mode (via SPI) Microprocessor/ Microcontroller Microprocessor/ Microcontroller SPI/SQI SPI/SQI RJ45 RJ45 Magnetics LAN9254 Magnetics Magnetics LAN9254 RJ45 PHY GPIOs Magnetics  2020 Microchip Technology Inc. RJ45 DS00003422A-page 11 LAN9254 3.0 PIN DESCRIPTIONS AND CONFIGURATION 3.1 Pin Assignments RXPA RXNA TXPA TXNA VDD33TXRX1 DIGIO31/LATCH1 DIGIO30/LATCH0 BE1/DIGIO29 D5/AD5/OUTVALID/SCS# D4/AD4/DIGIO3/GPI3/GPO3/MII_LINK LINKACTLED0/TDO/ CHIP_MODE0/100FD_A/LEDPOL0 69 68 67 66 65 64 63 62 61 VDD33BIAS 70 VDD12TX2 74 71 RXPB 75 RBIAS RXNB 76 VDD12TX1 TXPB 77 72 TXNB 78 73 VDD33TXRX2 79 PIN ASSIGNMENTS (TOP VIEW) 80 FIGURE 3-1: OSCI 1 60 VDDIO OSCO 2 59 LINKACTLED1/TDI/CHIP_MODE1/LEDPOL1 OSCVDD12 3 58 RUNLED/STATE_RUNLED/E2PSIZE/EE_EMUL0/LEDPOL3 OSCVSS 4 57 IRQ/LATCH1 VDD33 5 56 EESCL/TCK/EE_EMUL2 VDDCR 6 55 EESDA/TMS/EE_EMUL1 REG_EN 7 54 TESTMODE CLK_25/CLK_25_EN/XTAL_MODE 8 53 D8/AD8/DIGIO2/GPI2/GPO2/MII_MDIO ERRLED/PME/100FD_B/LEDPOL4 9 52 D7/AD7/DIGIO1/GPI1/GPO1/MII_MDC 51 VDDCR 50 VDDIO LAN9254 WAIT_ACK/PME/LATCH0/EE_EMUL_SPI3 10 RST# 11 A5/DIGIO16 12 49 D6/AD6/DIGIO0/GPI0/GPO0/MII_RXCLK A6/DIGIO17 13 48 D3/AD3/WD_TRIG/SIO3/EE_EMUL_SPI1 D2/AD2/SOF/SIO2/EE_EMUL_SPI0 14 47 BE0/DIGIO28 D1/AD1/EOF/SO/SIO1 15 46 END_SEL/DIGIO27 VDDIO 16 45 A15/DIGIO26 A7/DIGIO18 17 44 A14/DIGIO25 A8/DIGIO19 18 43 SYNC0/LATCH0/PME D14/AD14/DIGIO8/GPI8/GPO8/MII_TXD3/TX_SHIFT1 19 42 A13/DIGIO24 D13/AD13/DIGIO7/GPI7/GPO7/MII_TXD2/TX_SHIFT0 20 41 A0/D15/AD15/DIGIO9/GPI9/GPO9/MII_RXER 80-T QFP-EP ( To p Vi ew ) VSS 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 A10/DIGIO21 A11/DIGIO22 D9/AD9/LATCH_IN/SCK VDDIO D12/AD12/DIGIO6/GPI6/GPO6/MII_TXD1/100FD_B D11/AD11/DIGIO5/GPI5/GPO5/MII_TXD0/100FD_A D10/AD10/DIGIO4/GPI4/GPO4/MII_TXEN VDDCR A1/ALELO/OE_EXT/MII_CLK25/EE_EMUL_SPI2 A3/BE0/DIGIO11/GPI11/GPO11/MII_RXDV A4/BE1/DIGIO12/GPI12/GPO12/MII_RXD0 CS/DIGIO13/GPI13/GPO13/MII_RXD1 A2/ALEHI/DIGIO10/GPI10/GPO10/LINKACTLED2/ EE_EMUL_ALELO_POL/MII_LINKPOL/LEDPOL2 WR/ENB/DIGIO14/GPI14/GPO14/MII_RXD2 RD/RD_WR/DIGIO15/GPI15/GPO15/MII_RXD3 VDDIO A12/DIGIO23 22 SYNC1/LATCH1/PME A9/DIGIO20 21 D0/AD0/WD_STATE/SI/SIO0 (Connect exposed pad to ground with a via field) Note: Exposed pad (VSS) on bottom of package must be connected to ground with a via field. Note: When a “#” is used at the end of the signal name, it indicates that the signal is active low. For example, RST# indicates that the reset signal is active low. Configuration straps are identified by an underlined symbol name. Refer to Section 3.3, "Configuration Straps," on page 36 for additional information. The buffer type for each signal is indicated in the “Buffer Type” column of the pin description tables in Section 3.2, "Pin Descriptions". A description of the buffer types is provided in Section 1.2, "Buffer Types". DS00003422A-page 12  2020 Microchip Technology Inc. LAN9254 Table 3-1 details the pin assignments in table format. As shown, select pin functions may change based on the device’s mode of operation. For modes where a specific pin has no function, the table cell will be marked with “-”. TABLE 3-1: PIN ASSIGNMENTS HBI SPI/SQI with Pin HBI Indexed HBI Multiplexed SPI/SQI with MII Digital I/O Demultiplexed GPIO Mode Pin Number Mode Pin Name Mode Pin Name Mode Pin Name Mode Pin Name Mode Pin Name Name 1 OSCI 2 OSCO 3 OSCVDD12 4 OSCVSS 5 VDD33 6 VDDCR 7 REG_EN 8 CLK_25/CLK_25_EN/XTAL_MODE 9 ERRLED/PME/100FD_B/LEDPOL4 10 WAIT_ACK/PME ERRLED/ PME/ LEDPOL4 ERRLED/ 100FD_B/ LEDPOL4 WAIT_ACK/PME/EE_EMUL_SPI3 LATCH0 RST# 11 12 - - A5 - - DIGIO16 13 - - A6 - - DIGIO17 14 D2 AD2 D2 SIO2/EE_EMUL_SPI0 SOF 15 D1 AD1 D1 SO/SIO1 EOF VDDIO 16 17 - - A7 - - DIGIO18 18 - - A8 - - DIGIO19 19 D14 AD14 D14 GPI8/GPO8 MII_TXD3/ TX_SHIFT1 DIGIO8 20 D13 AD13 D13 GPI7/GPO7 MII_TXD2/ TX_SHIFT0 DIGIO7 21 D0 AD0 D0 SI/SIO0 WD_STATE SYNC1/LATCH1/PME 22 SYNC1/ LATCH1 23 - - A9 - - DIGIO20 24 - - A10 - - DIGIO21 25 - - A11 - - DIGIO22 26 D9 AD9 D9 27  2020 Microchip Technology Inc. SCK LATCH_IN VDDIO DS00003422A-page 13 LAN9254 TABLE 3-1: PIN ASSIGNMENTS (CONTINUED) HBI SPI/SQI with Pin HBI Indexed HBI Multiplexed SPI/SQI with MII Digital I/O Demultiplexed GPIO Mode Pin Number Mode Pin Name Mode Pin Name Mode Pin Name Mode Pin Name Mode Pin Name Name 28 D12 AD12 D12 GPI6/GPO6 MII_TXD1/ 100FD_B DIGIO6 29 D11 AD11 D11 GPI5/GPO5 MII_TXD0/ 100FD_A DIGIO5 30 D10 AD10 D10 GPI4/GPO4 MII_TXEN DIGIO4 MII_CLK25/ OE_EXT VDDCR 31 32 A1 ALELO A1 - EE_EMUL_SPI2 33 A3 BE0 A3 GPI11/GPO11 MII_RXDV DIGIO11 34 A4 BE1 A4 GPI12/GPO12 MII_RXD0 DIGIO12 GPI13/GPO13 MII_RXD1 DIGIO13 GPI10/GPO10 LINKACTLED2/ MII_LINKPOL/ LEDPOL2 DIGIO10 CS 35 36 A2 ALEHI/ EE_EMUL_A LELO_POL A2 37 WR/ENB GPI14/GPO14 MII_RXD2 DIGIO14 38 RD/RD_WR GPI15/GPO15 MII_RXD3 DIGIO15 VDDIO 39 40 - - A12 - - DIGIO23 41 A0/D15 AD15 A0/D15 GPI9/GPO9 MII_RXER DIGIO9 42 - - A13 - - DIGIO24 SYNC0/LATCH0/PME 43 SYNC0/ LATCH0 44 - - A14 - - DIGIO25 45 - - A15 - - DIGIO26 46 - - END_SEL - - DIGIO27 47 - - BE0 - - DIGIO28 48 D3 AD3 D3 49 D6 AD6 D6 SIO3/EE_EMUL_SPI1 GPI0/GPO0 50 VDDIO 51 VDDCR WD_TRIG MII_RXCLK DIGIO0 52 D7 AD7 D7 GPI1/GPO1 MII_MDC DIGIO1 53 D8 AD8 D8 GPI2/GPO2 MII_MDIO DIGIO2 TESTMODE 54 55 EESDA/TMS/EE_EMUL1 EESDA/TMS 56 EESCL/TCK/EE_EMUL2 EESCL/TCK 57 IRQ LATCH1 DS00003422A-page 14  2020 Microchip Technology Inc. LAN9254 TABLE 3-1: PIN ASSIGNMENTS (CONTINUED) HBI SPI/SQI with Pin HBI Indexed HBI Multiplexed SPI/SQI with MII Digital I/O Demultiplexed GPIO Mode Pin Number Mode Pin Name Mode Pin Name Mode Pin Name Mode Pin Name Mode Pin Name Name RUNLED/STATE_RUNLED/E2PSIZE/EE_EMUL0/LEDPOL3 58 RUNLED/ STATE_RUNLED/ E2PSIZE/ LEDPOL3 59 LINKACTLED1/TDI/CHIP_MODE1/LEDPOL1 60 VDDIO 61 LINKACTLED0/TDO/CHIP_MODE0/100FD_A/LEDPOL0 LINKACTLED0/ LINKACTLED0/ CHIP_MODE0/ CHIP_MODE0/ MII_LINK DIGIO3 TDO/ LEDPOL0 62 D4 AD4 D4 GPI3/GPO3 63 D5 AD5 D5 64 - - BE1 SCS# - TDO/ 100FD_A/ LEDPOL0 OUTVALID - DIGIO29 65 LATCH0 DIGIO30 66 LATCH1 DIGIO31 67 VDD33TXRX1 68 TXNA 69 TXPA 70 RXNA 71 RXPA 72 VDD12TX1 73 RBIAS 74 VDD33BIAS 75 VDD12TX2 76 RXPB 77 RXNB 78 TXPB 78 TXNB 80 VDD33TXRX2 Exposed Pad VSS  2020 Microchip Technology Inc. DS00003422A-page 15 LAN9254 3.2 Pin Descriptions This section contains descriptions of the various LAN9254 pins. The pin descriptions have been broken into functional groups as follows: • • • • • • • • • • • • • LAN Port A Pins LAN Port B Pins LAN Port A & B Power and Common Pins EtherCAT MII Port & Configuration Strap Pins Host Bus Pins SPI/SQI Pins EtherCAT Distributed Clock Pins EtherCAT Digital I/O and GPIO Pins EEPROM Pins LED & Configuration Strap Pins Miscellaneous Pins JTAG Pins Core and I/O Power and Ground Pins Note: Table 3-1 details how the functions described in this section are mapped on the physical device pins. Not all functions are used for all modes of operation. TABLE 3-2: LAN PORT A PINS NUM PINS NAME SYMBOL BUFFER TYPE 1 Port A TP TX/ RX Positive Channel 1 TXPA AIO Port A Twisted Pair Transmit/Receive Positive Channel 1. See Note 3-1. 1 Port A TP TX/ RX Negative Channel 1 TXNA AIO Port A Twisted Pair Transmit/Receive Negative Channel 1. See Note 3-1. 1 Port A TP TX/ RX Positive Channel 2 RXPA AIO Port A Twisted Pair Transmit/Receive Positive Channel 2. See Note 3-1. 1 Port A TP TX/ RX Negative Channel 2 RXNA AIO Port A Twisted Pair Transmit/Receive Negative Channel 2. See Note 3-1. Note 3-1 Note: DESCRIPTION Either channel 1 or 2 may function as the transmit pair while the other channel functions as the receive pair. The pin name symbols for the twisted pair pins apply to a normal connection. If AutoMDIX is enabled and a reverse connection is detected or manually selected, the RX and TX pins will be swapped internally. Port A is connected EtherCAT port 0 or 2. DS00003422A-page 16  2020 Microchip Technology Inc. LAN9254 TABLE 3-3: LAN PORT B PINS NUM PINS NAME SYMBOL BUFFER TYPE 1 Port B TP TX/ RX Positive Channel 1 TXPB AIO Port B Twisted Pair Transmit/Receive Positive Channel 1. See Note 3-2. 1 Port B TP TX/ RX Negative Channel 1 TXNB AIO Port B Twisted Pair Transmit/Receive Negative Channel 1. See Note 3-2. 1 Port B TP TX/ RX Positive Channel 2 RXPB AIO Port B Twisted Pair Transmit/Receive Positive Channel 2. See Note 3-2. 1 Port B TP TX/ RX Negative Channel 2 RXNB AIO Port B Twisted Pair Transmit/Receive Negative Channel 2. See Note 3-2. Note 3-2 Note: Either channel 1 or 2 may function as the transmit pair while the other channel functions as the receive pair. The pin name symbols for the twisted pair pins apply to a normal connection. If AutoMDIX is enabled and a reverse connection is detected or manually selected, the RX and TX pins will be swapped internally. Port B is connected EtherCAT port 1. TABLE 3-4: NUM PINS DESCRIPTION LAN PORT A & B POWER AND COMMON PINS NAME SYMBOL BUFFER TYPE DESCRIPTION Used for internal bias circuits. Connect to an external 12.1 kΩ, 1% resistor to ground. 1 Bias Reference RBIAS AI Refer to the device reference schematic for connection information. Note: 1 +3.3 V Port A Analog Power Supply VDD33TXRX1 P 1 +3.3 V Port B Analog Power Supply VDD33TXRX2 P 1 +3.3 V Master Bias Power Supply VDD33BIAS P  2020 Microchip Technology Inc. The nominal voltage is 1.2 V and the resistor will dissipate approximately 1 mW of power. See Note 3-3. See Note 3-3. See Note 3-3. DS00003422A-page 17 LAN9254 TABLE 3-4: LAN PORT A & B POWER AND COMMON PINS (CONTINUED) NUM PINS NAME 1 Port A Transmitter +1.2 V Power Supply Port B Transmitter +1.2 V Power Supply 1 Note 3-3 VDD12TX1 BUFFER TYPE P DESCRIPTION This pin is supplied from the VDDCR supply either externally or from the internal voltage regulator. This pin must be tied to the VDD12TX2 pin for proper operation. See Note 3-3. VDD12TX2 P This pin is supplied from the VDDCR supply either externally or from the internal voltage regulator. This pin must be tied to the VDD12TX1 pin for proper operation. See Note 3-3. Refer to the Power Connections section of the datasheet, the device reference schematic, and the device LANCheck schematic checklist for additional connection information. TABLE 3-5: NUM PINS SYMBOL ETHERCAT MII PORT & CONFIGURATION STRAP PINS NAME SYMBOL BUFFER TYPE DESCRIPTION 25MHz Clock MII_CLK25 VO12 Note 3-4 This pin is a free running 25MHz clock that can be used as the clock input to the PHY. VIS (PD) This configuration strap, along with EE_EMUL_SPI0, EE_EMUL_SPI1, and EE_EMUL_SPI3, configures the operation of the Beckhoff SPI interface during EEPROM Emulation mode. EE_EMUL_SPI2 configures SCS# polarity. EEPROM Emulation SPI Configuration Strap 2 EE_EMUL_SPI2 Note 3-5 4 Receive Data MII Port MII_RXD[3:0] VIS (PD) These pins are the receive data from the external PHY. 1 Receive Data Valid MII Port MII_RXDV VIS (PD) This pin is the receive data valid signal from the external PHY. 1 Receive Error MII Port MII_RXER VIS (PD) This pin is the receive error signal from the external PHY. 1 Receive Clock MII Port MII_RXCLK VIS (PD) This pin is the receive clock from the external PHY. 1 DS00003422A-page 18 0: SCS# active low 1: SCS# active high  2020 Microchip Technology Inc. LAN9254 TABLE 3-5: NUM PINS ETHERCAT MII PORT & CONFIGURATION STRAP PINS (CONTINUED) NAME SYMBOL BUFFER TYPE Transmit Data MII Port MII_TXD[3:0] VO8 DESCRIPTION These pins are the transmit data to the external PHY. These straps configure the value of the external MII Bus TX timing. MII Transmit Timing Shift Configuration Straps 4 100Mbps Full Duplex Configuration Strap B TX_SHIFT[1:0] Note 3-5 VIS (PU) Note 3-6 TX_SHIFT1 is on the MII_TXD3 pin and TX_SHIFT0 is on the MII_TXD2 pin. TX_SHIFT[1:0] 00: 20ns 01: 30ns 10: 0ns 11: 10ns For 3 port mode (as selected by CHIP_MODE1), this strap configures the default of the ANEG Disable PHY B and AMDIX Disable PHY B fields in the Hardware Configuration Register (HW_CFG) and sets the PHY to fixed 100Mbps full-duplex operation by default. 100FD_B Note 3-5 VIS (PD) Note 3-6 0: Auto-negotiation and AMDIX enabled by default 1: Auto-negotiation and AMDIX disabled (fixed 100Mbps full-duplex) by default 100FD_B is located on the MII_TXD1 pin. Note: 100Mbps Full Duplex Configuration Strap A In 2 port mode, this strap is on the ERRLED pin. For 3 port mode (as selected by CHIP_MODE1), this strap configures the default of the ANEG Disable PHY A and AMDIX Disable PHY A fields in the Hardware Configuration Register (HW_CFG) and sets the PHY to fixed 100Mbps full-duplex operation by default. 100FD_A Note 3-5 VIS (PD) Note 3-6 0: Auto-negotiation and AMDIX enabled by default 1: Auto-negotiation and AMDIX disabled (fixed 100Mbps full-duplex) by default 100FD_A is located on the MII_TXD0 pin. Note: 1 Transmit Data Enable MII Port 1 Link Status MII Port  2020 Microchip Technology Inc. MII_TXEN MII_LINK In 2 port mode, this strap is on the LINKACTLED0 pin. VO8 This pin is the transmit data enable signal to the external PHY. VIS This pin is the provided by the PHY to indicate that a 100 Mbit/s Full Duplex link is established. The polarity is configurable via the MII_LINKPOL configuration strap. DS00003422A-page 19 LAN9254 TABLE 3-5: ETHERCAT MII PORT & CONFIGURATION STRAP PINS (CONTINUED) NUM PINS NAME SYMBOL BUFFER TYPE 1 SMI Clock MII_MDC VO8 1 SMI Data MII_MDIO VIS/ VO8 DESCRIPTION This pin is the serial management clock to the external PHY. This pin is the serial management Interface data input/output to the external PHY. Note: An external pull-up is required to ensure that the non-driven state of the MDIO signal is a logic one. Note 3-4 A series terminating resistor is recommended for the best PCB signal integrity. Note 3-5 Configuration strap pins are identified by an underlined symbol name. Configuration strap values are latched on power-on reset, EtherCAT reset, or RST# de-assertion. Refer to Section 3.3, "Configuration Straps," on page 36 for further information. Note 3-6 An external supplemental pull-up or pull-down may be needed, depending upon the input current loading of the external MAC/PHY device. TABLE 3-6: NUM PINS HOST BUS PINS NAME SYMBOL BUFFER TYPE DESCRIPTION This pin is the host bus read strobe. Read RD VIS 1 Read or Write RD_WR VIS Normally active low, the polarity can be changed via configuration register settings. This pin is the host bus direction control. Used in conjunction with the ENB pin it indicates a read or write operation. The normal polarity is read when 1, write when 0 (R/nW) but can be changed via configuration register settings. This pin is the host bus write strobe. Write WR VIS 1 Enable ENB VIS Normally active low, the polarity can be changed via configuration register settings. This pin is the host bus data enable strobe. Used in conjunction with the RD_WR pin it indicates the data phase of the operation. Normally active low, the polarity can be changed via configuration register settings. 1 Chip Select DS00003422A-page 20 CS VIS This pin is the host bus chip select and indicates that the device is selected for the current transfer. Normally active low, the polarity can be changed via configuration register settings.  2020 Microchip Technology Inc. LAN9254 TABLE 3-6: NUM PINS HOST BUS PINS (CONTINUED) NAME SYMBOL BUFFER TYPE DESCRIPTION In 16-bit data mode, these pins indicate which byte(s) is(are) to be written or read. In 8-bit data mode, these pins are not used. These pins are only available in multiplexed and demultiplexed modes. 2 Byte Enable BE1 BE0 VIS (PD) Normally active low, the polarity can be changed via configuration register settings. Note: The location of these signals varies dependent on the device mode. Note: The pull-down holds the undriven state of these pins to active, such that previous PCB designs which do not drive these signals may work with 16-bit only bus cycles. These pins provide the address for indexed and demultiplexed address modes. 16 Address A[15:0] VIS In 16-bit data mode, bit 0 is not used. Address bit 0 is shared with data bit 15. In Indexed Address Mode, A[15:5] are not used. Data D[15:0] VIS/ VO8 These pins are the host bus data bus for non-multiplexed address modes. In 8-bit data mode, bits 15-8 are not used. Their input and output drivers are disabled. Address bit 0 is shared with data bit 15. These pins are the host bus address / data bus for multiplexed address mode. 16 Bits 15-8 provide the upper byte of address for single phase multiplexed address mode. Address and Data AD[15:0] VIS/ VO8 Bits 7-0 provide the lower byte of address for single phase multiplexed address mode and both bytes of address for dual phase multiplexed address mode. In 8-bit data dual phase multiplexed address mode, bits 15-8 are not used. Their input and output drivers are disabled.  2020 Microchip Technology Inc. DS00003422A-page 21 LAN9254 TABLE 3-6: NUM PINS HOST BUS PINS (CONTINUED) NAME SYMBOL Address Latch Enable High ALEHI EEPROM Emulation ALELO Polarity Strap 0 EE_EMUL_ALEL O_POL Note 3-7 BUFFER TYPE VIS Address Latch Enable Low This pin indicates the address phase for multiplexed address modes. It is used to load the higher address byte in dual phase multiplexed address mode. Normally active low (address saved on rising edge), the polarity can be changed via configuration register settings. 1 1 DESCRIPTION ALELO VIS (PU) VIS During EEPROM Emulation mode, if the default PDI selection is set to HBI Multiplexed 1 Phase, this strap is used to set the HBI ALE polarity until the EEPROM configuration data has been loaded. This pin indicates the address phase for multiplexed address modes. It is used to load both address bytes in single phase multiplexed address mode and the lower address byte in dual phase multiplexed address mode. Normally active low (address saved on rising edge), the polarity can be changed via configuration register settings. This pin indicates when the host bus cycle may be finished. This pin is tri-state when the device is not selected. 1 Wait / Acknowledge WAIT_ACK VO8/ VOD8 Normally push-pull, the buffer type can be changed to open-drain via configuration register settings. Normally active low indicating wait, for push-pull operation, the polarity can be changed via configuration register settings. This pin is disabled when both bits are low. 1 Note 3-7 Endianess Select This pin provides the endianess control for demultiplexed address mode. END_SEL VIS A high chooses big endian mode and a low chooses little endian mode. This can be dynamically changed or held static. Configuration strap pins are identified by an underlined symbol name. Configuration strap values are latched on power-on reset, EtherCAT reset, or RST# de-assertion. Refer to Section 3.3, "Configuration Straps," on page 36 for further information. DS00003422A-page 22  2020 Microchip Technology Inc. LAN9254 TABLE 3-7: NUM PINS 1 SPI/SQI PINS NAME SYMBOL SPI/SQI Slave Chip Select SCS# BUFFER TYPE VIS (PU) DESCRIPTION This pin is the SPI/SQI slave chip select input. When low, the SPI/SQI slave is selected for SPI/ SQI transfers. When high, the SPI/SQI serial data output(s) is(are) 3-stated. When the Beckhoff SPI interface is used, the polarity of this signal is controlled via an internal register. 1 4 SPI/SQI Slave Serial Clock SCK VIS (PU) This pin is the SPI/SQI slave serial clock input. SPI/SQI Slave Serial Data Input/Output SIO[3:0] VIS/ VO8 (PU) These pins are the SPI/SQI slave data input and output for multiple bit I/O. SPI Slave Serial Data Input SI VIS (PU) This pin is the SPI slave serial data input. SI is shared with SIO0. SPI Slave Serial Data Output SO VO8 (PU) Note 3-8 EEPROM Emulation SPI Configuration Strap 1 EEPROM Emulation SPI Configuration Strap 0 This pin is the SPI slave serial data output. SO is shared with SIO1. This configuration strap, along with EE_EMUL_SPI0, EE_EMUL_SPI2, and EE_EMUL_SPI3, configures the operation of the Beckhoff SPI interface during EEPROM Emulation mode. EE_EMUL_SPI[1:0] configure the SPI mode. EE_EMUL_SPI1 Note 3-9 VIS (PU) EE_EMUL_SPI1 is located on the SIO3 pin. EE_EMUL_SPI[1:0] 00: SPI mode 0 01: SPI mode 1 10: SPI mode 2 11: SPI mode 3 EE_EMUL_SPI0 Note 3-9 VIS (PU) This configuration strap, along with EE_EMUL_SPI1, EE_EMUL_SPI2, and EE_EMUL_SPI3, configures the operation of the Beckhoff SPI interface during EEPROM Emulation mode. EE_EMUL_SPI[1:0] configure the SPI mode. Refer to the EE_EMUL_SPI1 pin description for details. EE_EMUL_SPI0 is located on the SIO2 pin.  2020 Microchip Technology Inc. DS00003422A-page 23 LAN9254 TABLE 3-7: NUM PINS SPI/SQI PINS (CONTINUED) NAME SYMBOL BUFFER TYPE DESCRIPTION This pin indicates when the host bus cycle may be finished. This pin is tri-state when the device is not selected. Wait / Acknowledge WAIT_ACK VO8/ VOD8 Normally push-pull, the buffer type can be changed to open-drain via configuration register settings. Normally active low indicating wait, for push-pull operation, the polarity can be changed via configuration register settings. This pin is disabled when both bits are low. When the Beckhoff SPI interface is used, this pin is not used and is disabled. 1 EEPROM Emulation SPI Configuration Strap 3 This configuration strap, along with EE_EMUL_SPI0, EE_EMUL_SPI1, and EE_EMUL_SPI2, configures the operation of the Beckhoff SPI interface during EEPROM Emulation mode. EE_EMUL_SPI3 configures the Data Out sample mode. EE_EMUL_SPI3 Note 3-9 VIS (PD) 0: Normal Data Out sample (SPI_DO and SPI_DI are sampled at the same SPI_CLK edge) 1: Late Data Out sample (SPI_DO and SPI_DI are sampled at different SPI_CLK edges) Note 3-8 Although this pin is an output for SPI instructions, it includes a pull-up, since it is actually SIO bit 1. Note 3-9 Configuration strap pins are identified by an underlined symbol name. Configuration strap values are latched on power-on reset, EtherCAT reset, or RST# de-assertion. Refer to Section 3.3, "Configuration Straps," on page 36 for further information. DS00003422A-page 24  2020 Microchip Technology Inc. LAN9254 TABLE 3-8: NUM PINS ETHERCAT DISTRIBUTED CLOCK PINS NAME 2 Sync SYMBOL BUFFER TYPE SYNC1 SYNC0 VO8/ VOD8/ VOS8 DESCRIPTION These pins are the Distributed Clock Sync (OUT) signals. Note: These signals are not driven (high impedance) until the EEPROM is loaded. These pins are the Distributed Clock Latch (IN) signals. Note: 2 Latch (See Note) TABLE 3-9: NUM PINS LATCH1 LATCH0 VIS ETHERCAT DIGITAL I/O AND GPIO PINS NAME General Purpose Input SYMBOL GPI[15:0] BUFFER TYPE DESCRIPTION VIS These pins are the general purpose inputs and are directly mapped into the General Purpose Input Register. Consistency of the general purpose inputs is not provided. 16 General Purpose Output 32 Digital I/O GPO[15:0] DIGIO[31:0] VO8/ VOD8 VIS/ VO8 1 Output Valid OUTVALID VO8 1 Latch In LATCH_IN VIS 1 Normally shared with the SYNC0/SYNC1 functions, these signals are mapped onto alternate pins in some device configurations when the SYNC function is enabled. Refer to Section 11.2.1, SYNC/ LATCH Pin Multiplexing for additional information. Watchdog Trigger  2020 Microchip Technology Inc. WD_TRIG VO8 These pins are the general purpose outputs and reflect the values of the General Purpose Output Register without watchdog protection. Note: These signals are not driven (high impedance) until the EEPROM is loaded. These pins are the Input/Output or Bidirectional data. Note: These signals are not driven (high impedance) until the EEPROM is loaded. This pin indicates that the outputs are valid and can be captured into external registers. Note: This signal is not driven (high impedance) until the EEPROM is loaded. This pin is the external data latch signal. The input data is sampled each time a rising edge of LATCH_IN is recognized. This pin is the SyncManager Watchdog Trigger output. Note: This signal is not driven (high impedance) until the EEPROM is loaded. DS00003422A-page 25 LAN9254 TABLE 3-9: NUM PINS 1 1 ETHERCAT DIGITAL I/O AND GPIO PINS (CONTINUED) NAME Watchdog State SYMBOL WD_STATE SOF Start of Frame BUFFER TYPE VO8 VO8 1 End of Frame EOF VO8 1 Output Enable OE_EXT VIS TABLE 3-10: NUM PINS DESCRIPTION This pin is the SyncManager Watchdog State output. A 0 indicates the watchdog has expired. Note: This signal is not driven (high impedance) until the EEPROM is loaded. This pin is the Start of Frame output and indicates the start of an Ethernet/EtherCAT frame. Note: This signal is not driven (high impedance) until the EEPROM is loaded. This pin is the End of Frame output and indicates the end of an Ethernet/EtherCAT frame. Note: This signal is not driven (high impedance) until the EEPROM is loaded. This pin is the Output Enable input. When low, it clears the output data. EEPROM PINS NAME EEPROM I2C Serial Data Input/Output SYMBOL EESDA BUFFER TYPE VIS/ VOD8 DS00003422A-page 26 EE_EMUL1 Note 3-10 When the device is accessing an external EEPROM, this pin is the I2C serial data input/opendrain output. Note: This pin must be pulled-up by an external resistor at all times. This strap, along with EE_EMUL2, configures the value of the EEPROM emulation hard-strap. Either low enables emulation. 1 EEPROM Emulation Configuration Strap 1 DESCRIPTION VIS This strap, along with EE_EMUL0 and EE_EMUL2 configures the default PDI selection during EEPROM Emulation mode. Refer to the EE_EMUL2 pin description for details.  2020 Microchip Technology Inc. LAN9254 TABLE 3-10: NUM PINS EEPROM PINS (CONTINUED) NAME EEPROM I2C Serial Clock SYMBOL EESCL BUFFER TYPE VIS/ VOD8 DESCRIPTION When the device is accessing an external EEPROM this pin is the I2C clock input/open-drain output. Note: If an EEPROM is used, this pin must be pulled-up by an external resistor at all times. This strap, along with EE_EMUL1, configures the value of the EEPROM emulation hard-strap. Either low enables emulation. This strap, along with EE_EMUL0 and EE_EMUL1 configures the default PDI selection during EEPROM Emulation mode. 1 EEPROM Emulation Configuration Strap 2 Note 3-10 EE_EMUL2 Note 3-10 VIS EE_EMUL[2:0] 000: SPI 001: HBI Demultiplexed 16-bit EtherCAT Direct Mapped 010: HBI Multiplexed 1 Phase 16-bit EtherCAT Direct Mapped 011: HBI Multiplexed 2 Phase 16-bit EtherCAT Direct Mapped 100: SPI EtherCAT Direct Mapped 101: Beckhoff SPI Mode 110: N/A (EEPROM is enabled) 111: N/A (EEPROM is enabled) Configuration strap pins are identified by an underlined symbol name. Configuration strap values are latched on power-on reset, EtherCAT reset, or RST# de-assertion. Refer to Section 3.3, "Configuration Straps," on page 36 for further information.  2020 Microchip Technology Inc. DS00003422A-page 27 LAN9254 TABLE 3-11: NUM PINS LED & CONFIGURATION STRAP PINS NAME SYMBOL BUFFER TYPE DESCRIPTION This pin is the ERR LED output and is controlled either by the ESC or the local MCU. ERR LED ERRLED OD12/ OS12 This pin is configured to be an open-drain/opensource output. The default choice of open-drain vs. open-source as well as the default polarity of this pin depends upon the strap value sampled at reset. This pin is enabled as an output via bit 14 - ERR LED Enable of the ASIC Configuration Register (0x0142:0x0143). If active low, this pin is forced enabled in the event of an EEPROM loading error. For 2 port mode (as selected by CHIP_MODE1), this strap configures the default of the ANEG Disable PHY B and AMDIX Disable PHY B fields in the Hardware Configuration Register (HW_CFG) and sets the PHY to fixed 100Mbps full-duplex operation by default. 0: Auto-negotiation and AMDIX enabled by default 1: Auto-negotiation and AMDIX disabled (fixed 100Mbps full-duplex) by default 1 100Mbps Full Duplex Configuration Strap B In 3 port mode (as selected by CHIP_MODE1), this strap is moved to the MII_TXD1 pin. 100FD_B / LEDPOL4 Note 3-12 IS (PD) Note: If an external pull-up is used, it should be connected to VDD33. Note: If ERRLED is used as the PME output (with potential to be a wired-OR’d shared signal), careful consideration must be paid to the strap value. Host software might need to correct the strap results via the AMDIX Disable PHY B and ANEG Disable PHY B bits in the Hardware Configuration Register (HW_CFG) as well as reconfiguring PHY B. Since this pin is shared with a configuration strap, the default polarity of the ERRLED pin is determined during strap loading. LED 4 Polarity Configuration Strap If the strap value is 0, the LED is set as active high by default, since it is assumed that if an LED is present it is used as the pull-down. See Note 3-11. If the strap value is 1, the LED is set as active low by default, since it is assumed that an LED to VDD33 is used as the pull-up. DS00003422A-page 28  2020 Microchip Technology Inc. LAN9254 TABLE 3-11: NUM PINS LED & CONFIGURATION STRAP PINS (CONTINUED) NAME SYMBOL BUFFER TYPE DESCRIPTION This pin is the RUN LED output and is controlled by the AL Status Register. RUNLED RUN LED VOD12/ VOS12 This pin is configured to be open-drain/open-source output. The default choice of open-drain vs. opensource as well as the default polarity of this pin depends upon the strap value sampled at reset. This pin is the STATE_RUN LED output and is equal to the RUN LED combined with the negation of the ERR LED. It can be used to control the RUN side of a bi-color RUN/ERR LED. STATE_RUN LED STATE_RUNLED VOD12/ VOS12 This pin is configured to be open-drain/open-source output. The default choice of open-drain vs. opensource as well as the default polarity of this pin depends upon the strap value sampled at reset. The selection between RUN and STATE_RUN is via bit 6 - STATE_RUN LED enable, of the ASIC Configuration Register (0x0142:0x0143). 1 This strap configures the size of the EEPROM. EEPROM Size Configuration Strap EEPROM Emulation Configuration Strap 0 LED 3 Polarity Configuration Strap 0: Selects 1K bits (128 x 8) through 16K bits (2K x 8). 1: 32K bits (4K x 8) through 4Mbits (512K x 8). E2PSIZE / EE_EMUL0 / LEDPOL3 Note 3-12 VIS (PU) This strap, along with EE_EMUL1 and EE_EMUL2 configures the default PDI selection during EEPROM Emulation mode. Refer to the EE_EMUL2 pin description for details. Since this pin is shared with a configuration strap, the default polarity of the RUNLED / STATE_RUNLED pin is determined during strap loading. If the strap value is 0, the LED is set as active high be default, since it is assumed that an LED to ground is used as the pull-down. See Note 3-11. If the strap value is 1, the LED is set as active low by default, since it is assumed that an LED to VDDIO is used as the pull-up.  2020 Microchip Technology Inc. DS00003422A-page 29 LAN9254 TABLE 3-11: NUM PINS LED & CONFIGURATION STRAP PINS (CONTINUED) NAME Link / Activity LED Port 2 SYMBOL LINKACTLED2 BUFFER TYPE VOD12/ VOS12 DESCRIPTION This pin is the Link/Activity LED output (off=no link, on=link without activity, blinking=link and activity) for port 2. This pin is configured to be open-drain/open-source output. The default choice of open-drain vs. opensource as well as the default polarity of this pin depends upon the strap value sampled at reset. This strap configures the polarity of the MII_LINK pin. 1 MII Port Link Polarity LED 2 Polarity Configuration Strap 0: MII_LINK low indicates a 100 Mbit/s FullDuplex link is established. 1: MII_LINK high indicates a 100 Mbit/s FullDuplex link is established. MII_LINKPOL / LEDPOL2 Note 3-12 VIS (PU) Since this pin is shared with a configuration strap, the default polarity of the LINKACTLED2 pin is determined during strap loading. If the strap value is 0, the LED is set as active high by default, since it is assumed that an LED to ground is used as the pull-down. See Note 3-11. If the strap value is 1, the LED is set as active low by default, since it is assumed that an LED to VDDIO is used as the pull-up. DS00003422A-page 30  2020 Microchip Technology Inc. LAN9254 TABLE 3-11: NUM PINS LED & CONFIGURATION STRAP PINS (CONTINUED) NAME Link / Activity LED Port 1 SYMBOL LINKACTLED1 BUFFER TYPE VOD12/ VOS12 DESCRIPTION This pin is the Link/Activity LED output (off=no link, on=link without activity, blinking=link and activity) for port 1. This pin is configured to be open-drain/open-source output. The default choice of open-drain vs. opensource as well as the default polarity of this pin depends upon the strap value sampled at reset. This strap, along with CHIP_MODE0, configures the value of the EtherCAT Chip Mode: 1 Chip Mode Strap 1 CHIP_MODE1 / LEDPOL1 Note 3-12 LED 1 Polarity Configuration Strap VIS (PU) CHIP_MODE[1:0] 0X: 2-Port Mode. Ports 0 and 1 are connected to the internal PHYs A and B. 10: 3-Port Downstream Mode. Ports 0 and 1 are connected to internal PHYs A and B. Port 2 is connected to the external MII pins. 11: 3-Port Upstream Mode. Ports 2 and 1 are connected to internal PHYs A and B. Port 0 is connected to the external MII pins. Since this pin is shared with a configuration strap, the default polarity of the LINKACTLED1 pin is determined during strap loading. If the strap value is 0, the LED is set as active high by default, since it is assumed that an LED to ground is used as the pull-down. See Note 3-11 If the strap value is 1, the LED is set as active low by default, since it is assumed that an LED to VDDIO is used as the pull-up.  2020 Microchip Technology Inc. DS00003422A-page 31 LAN9254 TABLE 3-11: NUM PINS LED & CONFIGURATION STRAP PINS (CONTINUED) NAME Link / Activity LED Port 0 SYMBOL LINKACTLED0 BUFFER TYPE VOD12/ VOS12 This pin is the Link/Activity LED output (off=no link, on=link without activity, blinking=link and activity) for port 0. This pin is configured to be open-drain/open-source output. The default choice of open-drain vs. opensource as well as the default polarity of this pin depends upon the strap value sampled at reset. This strap, along with CHIP_MODE1, configures the value of the Chip Mode hard-strap. Refer to the CHIP_MODE1 description for details on the chip mode strap settings. Chip Mode Strap 0 Note: CHIP_MODE0 / 100FD_A / LEDPOL0 Note 3-12 CHIP_MODE0 is unused in 2 port mode. For 2 port mode (as selected by CHIP_MODE1), this strap configures the default of the ANEG Disable PHY A and AMDIX Disable PHY A fields in the Hardware Configuration Register (HW_CFG) and sets the PHY to fixed 100Mbps full-duplex operation by default. 1 100Mbps Full Duplex Configuration Strap A DESCRIPTION VIS (PU) 0: Auto-negotiation and AMDIX enabled by default 1: Auto-negotiation and AMDIX disabled (fixed 100Mbps full-duplex) by default In 3 port mode (as selected by CHIP_MODE1), this strap is moved to the MII_TXD0 pin. Since this pin is shared with a configuration strap, the default polarity of the LINKACTLED0 pin is determined during strap loading. LED 0 Polarity Configuration Strap If the strap value is 0, the LED is set as active high by default, since it is assumed that an LED to ground is used as the pull-down. See Note 3-11. If the strap value is 1, the LED is set as active low by default, since it is assumed that an LED to VDDIO is used as the pull-up. Note 3-11 When using a LED as a pull-down strap, a external supplemental pull-down is needed to ensure a valid low level. Note 3-12 Configuration strap pins are identified by an underlined symbol name. Configuration strap values are latched on power-on reset, EtherCAT reset, or RST# de-assertion. Refer to Section 3.3, "Configuration Straps," on page 36 for further information. DS00003422A-page 32  2020 Microchip Technology Inc. LAN9254 TABLE 3-12: MISCELLANEOUS PINS NUM PINS NAME SYMBOL 1 Interrupt Output IRQ VO8/ VOD8 Interrupt request output. The polarity, source and buffer type of this signal is programmable via configuration register settings. 0 Power Management Event Output PME VO8/ VOD8 When programmed accordingly, this signal is asserted upon detection of a wakeup event. The polarity and buffer type of this signal is programmable via an internal register. (See Note) 1 System Reset Input BUFFER TYPE O8/ OD8 (see note) RST# VIS/ VOD8 (PU) DESCRIPTION Refer to the Power Management section for additional information on the power management features. Note: Optionally enabled, this pin may be mapped onto several other pins via an internal register. Note: When mapped into the ERRLED pin, this signal is in the VDD33 voltage domain and has an O8/OD8 buffer type. Note: When mapped onto the ERRLED pin, in the event of an EEPROM loading error, the ERRLED function is forced enabled and false PME events might occur. As an input, this active low signal allows external hardware to reset the device. The device also contains an internal power-on reset circuit. Thus this signal may be left unconnected if an external hardware reset is not needed. When used, this signal must adhere to the reset timing requirements as detailed in the Operational Characteritics section. As an output, this signal is driven low during POR or in response to an EtherCAT reset command sequence from the Master Controller or Host interface. 1 Regulator Enable REG_EN AI When tied to 3.3 V, the internal 1.2 V regulators are enabled. 1 Test Mode Select TESTMODE VIS (PD) This pin must be tied to VSS for proper operation. 1 Crystal Input OSCI ICLK External 25 MHz crystal input. This signal can also be over-driven by a single-ended clock oscillator. When this method is used, OSCO should be left unconnected. Note:  2020 Microchip Technology Inc. In clock daisy chaining configuration, using the CLK_25 of the previous devices as the input clock source, this pin should be set to Schmitt trigger input mode via the XTAL_MODE strap input. DS00003422A-page 33 LAN9254 TABLE 3-12: MISCELLANEOUS PINS (CONTINUED) NUM PINS NAME SYMBOL BUFFER TYPE 1 Crystal Output OSCO OCLK Crystal Clock Output CLK_25 Crystal Clock Output Enable Configuration Strap CLK_25_EN Note 3-14 Crystal Clock Input Mode Configuration Strap XTAL_MODE Note 3-14 O8 AI (see note) DESCRIPTION External 25 MHz crystal output. 25 MHz crystal output. This multiple DC level strap enables the CLK_25 output and selects between the operation of a crystal oscillator amplifier or a Schmitt trigger input on the OSCI pin. A level below 0.8V disables the CLK_25 output and selects the crystal oscillator amplifier. A level of 1.5V enables the CLK_25 output and selects the crystal oscillator amplifier. A level above 2.2V enables the CLK_25 output and selects the Schmitt trigger input. 1 Note: If left floated during strap load, the pin will be biased to VDD33/2. An external voltage divider is not required. If an external pull-up is used to set this pin above 2.2V, it should be connected to VDD33. An external pull-down or connecting to VSS may be used to set this pin to below 0.8V. 1 Crystal +1.2 V Power Supply OSCVDD12 P Supplied by the on-chip regulator unless configured for regulator off mode via the REG_EN pin. See Note 3-13. 1 Crystal Ground OSCVSS P Crystal ground. Note 3-13 Refer to the Power Connections section, the device reference schematic, and the device LANCheck schematic checklist for additional connection information. Note 3-14 Configuration strap pins are identified by an underlined symbol name. Configuration strap values are latched on power-on reset, EtherCAT reset, or RST# de-assertion. Refer to Section 3.3, "Configuration Straps," on page 36 for further information. DS00003422A-page 34  2020 Microchip Technology Inc. LAN9254 TABLE 3-13: NUM PINS JTAG PINS NAME SYMBOL BUFFER TYPE 1 JTAG Test Mux Select TMS VIS JTAG test mode select. 1 JTAG Test Clock TCK VIS JTAG test clock. 1 JTAG Test Data Input TDI VIS JTAG data input. 1 JTAG Test Data Output TDO VO12 TABLE 3-14: NUM PINS 1 5 3 DESCRIPTION JTAG data output. CORE AND I/O POWER AND GROUND PINS NAME SYMBOL BUFFER TYPE Regulator +3.3 V Power Supply VDD33 P +1.8 V to +3.3 V Variable I/O Power VDDIO +1.2 V Digital Core Power Supply VDDCR DESCRIPTION +3.3 V power supply for internal regulators. Note: +3.3 V must be supplied to this pin even if the internal regulators are disabled. See Note 3-15. P +1.8 V to +3.3 V variable I/O power. See Note 3-15. P Supplied by the on-chip regulator unless configured for regulator off mode via the REG_EN pin. 1 µF and 470 pF decoupling capacitors in parallel to ground should be used on pin 6 (the regulator output pin). See Note 3-15. 1 Ground VSS P Common ground. This exposed pad must be connected to the ground plane with a via array. Note: Note 3-15 The crystal oscillator has its own ground pin OSCVSS. Refer to the Power Connections section, the device reference schematic, and the device LANCheck schematic checklist for additional connection information.  2020 Microchip Technology Inc. DS00003422A-page 35 LAN9254 3.3 Configuration Straps Configuration straps allow various features of the device to be automatically configured to user defined values. Configuration straps are latched upon Power-On Reset (POR), EtherCAT reset, or pin reset (RST#). Configuration straps are identified by an underlined symbol name and are defined throughout Section 3.2, "Pin Descriptions," on page 16. Configuration straps include internal resistors in order to prevent the signal from floating when unconnected. If a particular configuration strap is connected to a load, an external pull-up or pull-down resistor should be used to augment the internal resistor to ensure that it reaches the required voltage level prior to latching. The internal resistor can also be overridden by the addition of an external resistor. Note: The system designer must guarantee that configuration strap pins meet the timing requirements specified in Section 17.6.3, "Reset and Configuration Strap Timing". If configuration strap pins are not at the correct voltage level prior to being latched, the device may capture incorrect strap values. DS00003422A-page 36  2020 Microchip Technology Inc. LAN9254 4.0 POWER CONNECTIONS Figure 4-1 and Figure 4-2 illustrate the device power connections for regulator enabled and disabled cases, respectively. Refer to the device reference schematic and the device LANCheck schematic checklist for additional information. Section 4.1 provides additional information on the devices internal voltage regulators. FIGURE 4-1: POWER CONNECTIONS - REGULATORS ENABLED +1.8 V to +3.3 V VDDIO IO Pads VDDIO VDDCR VDDCR VDDIO VDDIO VDDIO Core Logic & PHY digital +3.3 V VDD33 Internal 1.2 V Core Regulator +1.2 V (OUT) +3.3 V (IN) VDDCR (Pin 6) enable 470 pF REG_EN Internal 1.2 V Oscillator Regulator +1.2 V (OUT) +3.3 V (IN) +3.3 V enable 1.0 µF 0.1 ESR OSCVDD12 VSS Crystal Oscillator optional 2.5V magnetics operation VSS +2.5 V OSCVSS CLK_25 To PHY1 Magnetics optional 2.5V magnetics operation VDD33TXRX1 Ethernet PHY 1 Analog VDD33BIAS Ethernet Master Bias VDD33TXRX2 Ethernet PHY 2 Analog VDD12TX1 +2.5 V To PHY2 Magnetics VSS (exposed pad) VDD12TX2 PLL Note: Bypass and bulk caps as needed for PCB  2020 Microchip Technology Inc. DS00003422A-page 37 LAN9254 FIGURE 4-2: POWER CONNECTIONS - REGULATORS DISABLED +1.2 V +1.8 V to +3.3 V VDDIO IO Pads VDDIO VDDCR VDDCR VDDIO VDDIO VDDIO Core Logic & PHY digital +3.3 V VDD33 Internal 1.2 V Core Regulator +1.2 V (OUT) +3.3 V (IN) VDDCR (Pin 6) enable REG_EN Internal 1.2 V Oscillator Regulator +1.2 V (OUT) +3.3 V (IN) enable +3.3 V OSCVDD12 VSS Crystal Oscillator optional 2.5V magnetics operation VSS +2.5 V OSCVSS CLK_25 To PHY1 Magnetics optional 2.5V magnetics operation VDD33TXRX1 Ethernet PHY 1 Analog VDD33BIAS Ethernet Master Bias VDD33TXRX2 Ethernet PHY 2 Analog VDD12TX1 +2.5 V To PHY2 Magnetics VSS (exposed pad) VDD12TX2 PLL Note: Bypass and bulk caps as needed for PCB DS00003422A-page 38  2020 Microchip Technology Inc. LAN9254 4.1 Internal Voltage Regulators The device contains two internal 1.2 V regulators: • 1.2 V Core Regulator • 1.2 V Crystal Oscillator Regulator 4.1.1 1.2 V CORE REGULATOR The core regulator supplies 1.2 V volts to the main core digital logic, the I/O pads, and the PHY’s digital logic and can be used to supply the 1.2 V power to the PHY analog sections (via an external connection). When the REG_EN input pin is connected to 3.3 V, the core regulator is enabled and receives 3.3 V on the VDD33 pin. A 1.0 uF 0.1  ESR capacitor must be connected to the VDDCR pin associated with the regulator. When the REG_EN input pin is connected to VSS, the core regulator is disabled. However, 3.3 V must still be supplied to the VDD33 pin. The 1.2 V core voltage must then be externally input into the VDDCR pins. 4.1.2 1.2 V CRYSTAL OSCILLATOR REGULATOR The crystal oscillator regulator supplies 1.2 V volts to the crystal oscillator and the CLK_25 pin. When the REG_EN input pin is connected to 3.3 V, the crystal oscillator regulator is enabled and receives 3.3 V on the VDD33 pin. An external capacitor is not required. When the REG_EN input pin is connected to VSS, the crystal oscillator regulator is disabled. However, 3.3 V must still be supplied to the VDD33 pin. The 1.2 V crystal oscillator voltage must then be externally input into the OSCVDD12 pin.  2020 Microchip Technology Inc. DS00003422A-page 39 LAN9254 5.0 REGISTER MAP This chapter details the device register map and summarizes the various directly addressable System Control and Status Registers (CSRs). Detailed descriptions of the System CSRs are provided in the chapters corresponding to their function. Additional indirectly addressable registers are available in the various sub-blocks of the device. These registers are also detailed in their corresponding chapters. Directly Addressable Registers • Section 11.15, "EtherCAT CSR and Process Data RAM Access Registers (Directly Addressable)," on page 305 • EtherCAT Core Control and Status Registers and Process RAM while EtherCAT Direct Mapped mode • Section 5.1, "System Control and Status Registers," on page 42 Indirectly Addressable Registers • Section 10.2.18, "PHY Registers," on page 225 • Section 11.16, "EtherCAT Core CSR Registers (Indirectly Addressable)," on page 314 Figure 5-1 contains an overall base register memory map of the device. This memory map is not drawn to scale, and should be used for general reference only. Table 5-1 provides a summary of all directly addressable CSRs and their corresponding addresses. There are two address modes. By default, the register mapping is compatible to the LAN9252 with the EtherCAT Core Control and Status Registers and Process RAM accessed via a command and data register structure. Once enabled, EtherCAT Direct Mapped mode maps the EtherCAT Core Control and Status Registers and EtherCAT Core Process RAM to there native addresses (byte address 0h to FFFh and 1000h to 2FFFh respectively) while remapping the System Control and Status Registers starting at a base offset of 3000h. Note: The Section 11.15, "EtherCAT CSR and Process Data RAM Access Registers (Directly Addressable)," on page 305 (including the EtherCAT Process RAM Read and Write Data FIFO) are not used and are not accessible during EtherCAT Direct Mapped mode. Note: Register bit type definitions are provided in Section 1.3, "Register Nomenclature," on page 7. Not all device registers are memory mapped or directly addressable. For details on the accessibility of the various device registers, refer the register sub-sections listed above. DS00003422A-page 40  2020 Microchip Technology Inc. LAN9254 FIGURE 5-1: REGISTER ADDRESS MAP Compatibility Mode EtherCAT Direct Mapped Mode 3FFFh 3FFh System CSRs 314h EtherCAT 300h not mapped 3040h 2FFFh EtherCAT Core Process RAM Test 1000h 0FFFh 09Ch 08Ch GP Timer and Free Run Counter 05Ch 054h Interrupts EtherCAT Core CSRs 03Ch EtherCAT Process RAM Write FIFO 020h 01Ch EtherCAT Process RAM Read FIFO 000h 0000h Not all registers are shown  2020 Microchip Technology Inc. DS00003422A-page 41 LAN9254 5.1 System Control and Status Registers The System CSRs are directly addressable memory mapped registers with a base address offset range of 050h to 314h or from 3050h to 31FCh while in EtherCAT Direct Mapped mode. These registers are addressable by the Host via the Host Bus Interface (HBI) or SPI/SQI. For more information on the various device modes and their corresponding address configurations, see Section 2.0, "General Description," on page 8. Table 5-1 lists the System CSRs and their corresponding addresses in order. All system CSRs are reset to their default value on the assertion of a chip-level reset. The System CSRs can be divided into the following sub-categories. Each of these sub-categories is located in the corresponding chapter and contains the System CSR descriptions of the associated registers. The register descriptions are categorized as follows: • • • • • • Section 6.2.3, "Reset Registers," on page 50 Section 6.3.5, "Power Management Registers," on page 56 Section 7.3, "Interrupt Registers," on page 63 Section 11.15, "EtherCAT CSR and Process Data RAM Access Registers (Directly Addressable)," on page 305 Section 15.1, "Miscellaneous System Configuration & Status Registers," on page 397 Section 14.3, "General Purpose Timer and Free-Running Clock Registers," on page 394 Note: Unlisted registers are reserved for future use. TABLE 5-1: SYSTEM CONTROL AND STATUS REGISTERS Address EtherCAT Direct Mapped Mode 000h-01Ch N/A EtherCAT Process RAM Read Data FIFO (ECAT_PRAM_RD_DATA) 020h-03Ch N/A EtherCAT Process RAM Write Data FIFO (ECAT_PRAM_WR_DATA) 050h 3050h Chip ID and Revision (ID_REV) 054h 3054h Interrupt Configuration Register (IRQ_CFG) Register Name (Symbol) 058h 3058h Interrupt Status Register (INT_STS) 05Ch 305Ch Interrupt Enable Register (INT_EN) 064h 3064h Byte Order Test Register (BYTE_TEST) 074h 3074h Hardware Configuration Register (HW_CFG) 084h 3084h Power Management Control Register (PMT_CTRL) 08Ch 308Ch General Purpose Timer Configuration Register (GPT_CFG) 090h 3090h General Purpose Timer Count Register (GPT_CNT) 09Ch 309Ch Free Running 25MHz Counter Register (FREE_RUN) 1F8h 31F8h Reset Control Register (RESET_CTL) EtherCAT Registers 300h N/A EtherCAT CSR Interface Data Register (ECAT_CSR_DATA) 304h N/A EtherCAT CSR Interface Command Register (ECAT_CSR_CMD) 308h N/A EtherCAT Process RAM Read Address and Length Register (ECAT_PRAM_RD_ADDR_LEN) 30Ch N/A EtherCAT Process RAM Read Command Register (ECAT_PRAM_RD_CMD) 310h N/A EtherCAT Process RAM Write Address and Length Register (ECAT_PRAM_WR_ADDR_LEN) 314h N/A EtherCAT Process RAM Write Command Register (ECAT_PRAM_WR_CMD) DS00003422A-page 42  2020 Microchip Technology Inc. LAN9254 5.2 Special Restrictions on Back-to-Back Cycles 5.2.1 BACK-TO-BACK WRITE-READ CYCLES It is important to note that there are specific restrictions on the timing of back-to-back host write-read operations. These restrictions concern reading registers after any write cycle that may affect the register. In all cases there is a delay between writing to a register and the new value becoming available to be read. In other cases, there is a delay between writing to a register and the subsequent side effect on other registers. In order to prevent the host from reading stale data after a write operation, minimum wait periods have been established. These periods are specified in Table 5-2. The host processor is required to wait the specified period of time after writing to the indicated register before reading the resource specified in the table. Note that the required wait period is dependent upon the register being read after the write. Performing “dummy” reads of the Byte Order Test Register (BYTE_TEST) register is a convenient way to guarantee that the minimum write-to-read timing restriction is met. Table 5-2 shows the number of dummy reads that are required before reading the register indicated. The number of BYTE_TEST reads in this table is based on the minimum cycle timing of 45ns. For microprocessors with slower busses the number of reads may be reduced as long as the total time is equal to, or greater than the time specified in the table. Note that dummy reads of the BYTE_TEST register are not required as long as the minimum time period is met. Note that depending on the host interface mode in use, the basic host interface cycle may naturally provide sufficient time between writes and read. It is required of the system design and register access mechanisms to ensure the proper timing. For example, a write and read to the same register may occur faster than a write and read to different registers. For 8 and 16-bit write cycles, the wait time for the back-to-back write-read operation applies only to the writing of the last BYTE or WORD of the register, which completes a single DWORD transfer. For Indexed Address mode HBI operation, the wait time for the back-to-back write-read operation applies only to access to the internal registers and FIFOs. It does not apply to the Host Bus Interface Index Registers or the Host Bus Interface Configuration Register. TABLE 5-2: READ AFTER WRITE TIMING RULES After Writing... wait for this many nanoseconds... or Perform this many Reads of BYTE_TEST… (assuming Tcyc of 45ns) any register 45 1 the same register or any other register affected by the write Interrupt Configuration Register (IRQ_CFG) 60 2 Interrupt Configuration Register (IRQ_CFG) Interrupt Enable Register (INT_EN) 90 2 Interrupt Configuration Register (IRQ_CFG) 60 2 Interrupt Status Register (INT_STS) 180 4 Interrupt Configuration Register (IRQ_CFG) 170 4 Interrupt Status Register (INT_STS) 165 4 Power Management Control Register (PMT_CTRL) 170 4 Interrupt Configuration Register (IRQ_CFG) 160 4 Interrupt Status Register (INT_STS) Interrupt Status Register (INT_STS) Power Management Control Register (PMT_CTRL)  2020 Microchip Technology Inc. before reading... DS00003422A-page 43 LAN9254 TABLE 5-2: READ AFTER WRITE TIMING RULES (CONTINUED) After Writing... General Purpose Timer Configuration Register (GPT_CFG) EtherCAT Process RAM Write Data FIFO (ECAT_PRAM_WR_DATA) 5.2.2 wait for this many nanoseconds... or Perform this many Reads of BYTE_TEST… (assuming Tcyc of 45ns) 55 2 General Purpose Timer Configuration Register (GPT_CFG) 170 4 General Purpose Timer Count Register (GPT_CNT) 50 2 EtherCAT Process RAM Write Command Register (ECAT_PRAM_WR_CMD) before reading... BACK-TO-BACK READ CYCLES There are also restrictions on specific back-to-back host read operations. These restrictions concern reading specific registers after reading a resource that has side effects. In many cases there is a delay between reading the device, and the subsequent indication of the expected change in the control and status register values. In order to prevent the host from reading stale data on back-to-back reads, minimum wait periods have been established. These periods are specified in Table 5-3. The host processor is required to wait the specified period of time between read operations of specific combinations of resources. The wait period is dependent upon the combination of registers being read. Performing “dummy” reads of the Byte Order Test Register (BYTE_TEST) register is a convenient way to guarantee that the minimum wait time restriction is met. Table 5-3 below also shows the number of dummy reads that are required for back-to-back read operations. The number of BYTE_TEST reads in this table is based on the minimum timing for Tcyc (45ns). For microprocessors with slower busses the number of reads may be reduced as long as the total time is equal to, or greater than the time specified in the table. Dummy reads of the BYTE_TEST register are not required as long as the minimum time period is met. Note that depending on the host interface mode in use, the basic host interface cycle may naturally provide sufficient time between reads. It is required of the system design and register access mechanisms to ensure the proper timing. For example, multiple reads to the same register may occur faster than reads to different registers. For 8 and 16-bit read cycles, the wait time for the back-to-back read operation is required only after the reading of the last BYTE or WORD of the register, which completes a single DWORD transfer. There is no wait requirement between the BYTE or WORD accesses within the DWORD transfer. TABLE 5-3: READ AFTER READ TIMING RULES After reading... EtherCAT Process RAM Read Data FIFO (ECAT_PRAM_RD_DATA) DS00003422A-page 44 wait for this many nanoseconds... or Perform this many Reads of BYTE_TEST… (assuming Tcyc of 45ns) 50 2 before reading... EtherCAT Process RAM Read Command Register (ECAT_PRAM_RD_CMD)  2020 Microchip Technology Inc. LAN9254 6.0 CLOCKS, RESETS, AND POWER MANAGEMENT 6.1 Clocks The device provides generation of all system clocks as required by the various sub-modules of the device. The clocking sub-system is comprised of the following: • Crystal Oscillator • PHY PLL 6.1.1 CRYSTAL OSCILLATOR The device requires a fixed-frequency 25 MHz clock source for use by the internal clock oscillator and PLL. This is typically provided by attaching a 25 MHz crystal to the OSCI and OSCO pins as specified in Section 17.7, "Clock Circuit," on page 416. Optionally, this clock can be provided by driving the OSCI input pin with a single-ended 25 MHz clock source. If a single-ended source is selected, the clock input must run continuously for normal device operation. Application Note:In clock daisy chaining configuration, using the CLK_25 of the previous devices as the input clock source, this pin should be set to Schmitt trigger input mode via the XTAL_MODE strap input. Power savings modes allow for the oscillator or external clock input to be halted. The crystal oscillator can be disabled as describe in Section 6.3.4, "Chip Level Power Management," on page 54. For system level verification, the crystal oscillator output can be enabled onto the IRQ pin. See Section 7.2.7, "Clock Output Test Mode," on page 63. Power for the crystal oscillator is provided by a dedicated regulator or separate input pin. See Section 4.1.2, "1.2 V Crystal Oscillator Regulator," on page 39. Note: 6.1.1.1 Crystal specifications are provided in Table 17-12, “Crystal Specifications,” on page 416. Crystal Clock Output Pin The crystal clock may be output onto the dedicated CLK_25 pin for use as the reference clock to another device. This pin is enabled when the CLK_25_EN is high. 6.1.2 PHY PLL The PHY module receives the 25 MHz reference clock and, in addition to its internal clock usage, outputs a main system clock that is used to derive device sub-system clocks. The PHY PLL can be disabled as describe in Section 6.3.4, "Chip Level Power Management," on page 54. The PHY PLL will be disabled only when requested and if the PHY ports are in a power down mode. Power for PHY PLL is provided by an external input pin, usually sourced by the device’s 1.2V core regulator. See Section 4.0, "Power Connections," on page 37.  2020 Microchip Technology Inc. DS00003422A-page 45 LAN9254 6.2 Resets The device provides multiple hardware and software reset sources, which allow varying levels of the device to be reset. All resets can be categorized into three reset types as described in the following sections: • Chip-Level Resets - Power-On Reset (POR) - RST# Pin Reset - EtherCAT System Reset • Multi-Module Resets - DIGITAL RESET (DIGITAL_RST) • Single-Module Resets - Port A PHY Reset - Port B PHY Reset - EtherCAT Controller Reset The device supports the use of configuration straps to allow automatic custom configurations of various device parameters. These configuration strap values are set upon de-assertion of all chip-level resets and can be used to easily set the default parameters of the chip at power-on or pin (RST#) reset. Refer to Section 6.3, "Power Management," on page 51 for detailed information on the usage of these straps. Table 6-1 summarizes the effect of the various reset sources on the device. Refer to the following sections for detailed information on each of these reset types. TABLE 6-1: RESET SOURCES AND AFFECTED DEVICE FUNCTIONALITY Module/ Functionality POR 25 MHz Oscillator Voltage Regulators EtherCAT Core PHY A PHY B PHY Common Voltage Supervision PLL SPI/SQI Slave Host Bus Interface Power Management General Purpose Timer Free Running Counter System CSR Config. Straps Latched EEPROM Loader Run Tristate Output Pins(5) RST# Pin Driven Low (1) (2) X X X (3) (3) (3) X X X X X X YES YES YES YES Note 1: 2: 3: 4: 5: RST# Pin EtherCAT System Reset Digital Reset X X X X X X X X X X X X X YES YES YES X X X X X X YES YES YES YES X X X X X X NO(4) YES POR is performed by the XTAL voltage regulator, not at the system level POR is performed internal to the voltage regulators POR is performed internal to the PHY Strap inputs are not re-latched Only those output pins that are used for straps DS00003422A-page 46  2020 Microchip Technology Inc. LAN9254 6.2.1 CHIP-LEVEL RESETS A chip-level reset event activates all internal resets, effectively resetting the entire device. A chip-level reset is initiated by assertion of any of the following input events: • Power-On Reset (POR) • RST# Pin Reset • EtherCAT System Reset Chip-level reset/configuration completion can be determined by first polling the Byte Order Test Register (BYTE_TEST). The returned data will be invalid until the Host interface resets are complete. Once the returned data is the correct byte ordering value, the Host interface resets have completed. The completion of the entire chip-level reset must be determined by polling the READY bit of the Hardware Configuration Register (HW_CFG) or the Power Management Control Register (PMT_CTRL) until it is set. When set, the READY bit indicates that the reset has completed and the device is ready to be accessed. With the exception of the Hardware Configuration Register (HW_CFG), Power Management Control Register (PMT_CTRL), Byte Order Test Register (BYTE_TEST), and Reset Control Register (RESET_CTL), read access to any internal resources should not be done by S/W while the READY bit is cleared. Writes to any address are invalid until the READY bit is set. A chip-level reset involves tuning of the variable output level pads, latching of configuration straps and generation of the master reset. CONFIGURATION STRAPS LATCHING During POR, EtherCAT reset or RST# pin reset, the latches for the straps are open. Following the release of POR, EtherCAT reset or RST# pin reset, the latches for the straps are closed. The CLK_25_EN and the XTAL_MODE configuration straps and the output enable, pull-up, and pull-down for the CLK_25 pin are not controlled by the EtherCAT reset or the RST# pin reset; the latches for the straps are closed. VARIABLE LEVEL I/O PAD TUNING Following the release of the EtherCAT, POR or RST# pin resets, a 1 uS pulse (active low), is sent into the VO tuning circuit. 2 uS later, the output pins are enabled. The 2 uS delay allows time for the variable output level pins to tune before enabling the outputs and also provides input hold time for strap pins that are shared with output pins. MASTER RESET AND CLOCK GENERATION RESET Following the enabling of the output pins, the reset is synchronized to the main system clock to become the master reset. Master reset is used to generate the local resets and to reset the clocks generation. 6.2.1.1 Power-On Reset (POR) A power-on reset occurs whenever power is initially applied to the device or if the power is removed and reapplied to the device. This event resets all circuitry within the device. Configuration straps are latched and EEPROM loading is performed as a result of this reset. The POR is used to trigger the tuning of the Variable Level I/O Pads as well as a chip-level reset. The POR can also used as a system level reset. RST# becomes an open-drain output and is asserted for the POR time. Its purpose is to perform a complete reset of the EtherCAT slave and/or to hold an external PHY in reset while the EtherCAT core is in reset. As an open-drain output, RST is intended to be wired OR’d into the system reset. Note: The Ethernet PHY should be connected to the RST# pin so that the PHY is held in reset until the EtherCAT Slave is ready. Otherwise, the far end Link Partner would detect valid link signals from the PHY and would “open” its port assuming that the local EtherCAT Slave was ready. The RST# pin is not driven until all voltages are operational. External, system level solutions are necessary if the system needs to be held in reset during power ramp-up. Following valid voltage levels, a POR reset typically takes approximately 21 ms.  2020 Microchip Technology Inc. DS00003422A-page 47 LAN9254 6.2.1.2 RST# Pin Reset Driving the RST# input pin low initiates a chip-level reset. This event resets all circuitry within the device. Use of this reset input is optional, but when used, it must be driven for the period of time specified in Section 17.6.3, "Reset and Configuration Strap Timing," on page 413. Configuration straps are latched, and EEPROM loading is performed as a result of this reset. A RST# pin reset typically takes approximately 1.3 ms. Note: The RST# pin is pulled-high internally. If unused, this signal can be left unconnected. Do not rely on internal pull-up resistors to drive signals external to the device. Please refer to Table 3-12, “Miscellaneous Pins,” on page 33 for a description of the RST# pin. 6.2.1.3 EtherCAT System Reset An EtherCAT system reset, initiated by a special sequence of three independent and consecutive frames/commands, is functionally identical to a RST# pin reset, except that during an EtherCAT system reset, the RST# pin becomes an open-drain output and is asserted for the minimum required time of 80 ms. The RST# is an open-drain output intended to be wired OR’d into the system reset. Note: 6.2.2 The purpose of connecting the RST# pin into the system reset is to perform a complete reset of the EtherCAT slave. The EtherCAT master issues this reset in rare and extreme cases when the local microcontroller is seriously halted and can not be otherwise informed to reinitialize. BLOCK-LEVEL RESETS The block level resets contain an assortment of reset register bit inputs and generate resets for the various blocks. Block level resets can affect one or multiple modules. 6.2.2.1 Multi-Module Resets Multi-module resets activate multiple internal resets, but do not reset the entire chip. Configuration straps are not latched upon multi-module resets. A multi-module reset is initiated by assertion of the following: • DIGITAL RESET (DIGITAL_RST) Multi-module reset/configuration completion can be determined by first polling the Byte Order Test Register (BYTE_TEST). The returned data will be invalid until the Host interface resets are complete. Once the returned data is the correct byte ordering value, the Host interface resets have completed. The completion of the entire chip-level reset must be determined by polling the READY bit of the Hardware Configuration Register (HW_CFG) or Power Management Control Register (PMT_CTRL) until it is set. When set, the READY bit indicates that the reset has completed and the device is ready to be accessed. With the exception of the Hardware Configuration Register (HW_CFG), Power Management Control Register (PMT_CTRL), Byte Order Test Register (BYTE_TEST), and Reset Control Register (RESET_CTL), read access to any internal resources should not be done by S/W while the READY bit is cleared. Writes to any address are invalid until the READY bit is set. Note: The digital reset does not reset register bits designated as NASR. DIGITAL RESET (DIGITAL_RST) A digital reset is performed by setting the DIGITAL_RST bit of the Reset Control Register (RESET_CTL). A digital reset will reset all device sub-modules except the Ethernet PHYs. EEPROM loading is performed following this reset. Configuration straps are not latched as a result of a digital reset. A digital reset typically takes approximately 1.3 ms. DS00003422A-page 48  2020 Microchip Technology Inc. LAN9254 6.2.2.2 Single-Module Resets A single-module reset will reset only the specified module. Single-module resets do not latch the configuration straps. A single-module reset is initiated by assertion of the following: • Port A PHY Reset • Port B PHY Reset • EtherCAT Controller Reset Port A PHY Reset A Port A PHY reset is performed by setting the PHY_A_RST bit of the Reset Control Register (RESET_CTL) or the Soft Reset bit in the PHY x Basic Control Register (PHY_BASIC_CONTROL_x). Upon completion of the Port A PHY reset, the PHY_A_RST and Soft Reset bits are automatically cleared. No other modules of the device are affected by this reset. Port A PHY reset completion can be determined by polling the PHY_A_RST bit in the Reset Control Register (RESET_CTL) or the Soft Reset bit in the PHY x Basic Control Register (PHY_BASIC_CONTROL_x) until it clears. Under normal conditions, the PHY_A_RST and Soft Reset bit will clear approximately 102 uS after the Port A PHY reset occurrence. Note: When using the Soft Reset bit to reset the Port A PHY, register bits designated as NASR are not reset. In addition to the methods above, the Port A PHY is automatically reset after returning from a PHY power-down mode. This reset differs in that the PHY power-down mode reset does not reload or reset any of the PHY registers. Refer to Section 10.2.9, "PHY Power-Down Modes," on page 212 for additional information. Refer to Section 10.2.11, "Resets," on page 216 for additional information on Port A PHY resets. Port B PHY Reset A Port B PHY reset is performed by setting the PHY_B_RST bit of the Reset Control Register (RESET_CTL) or the Soft Reset bit in the PHY x Basic Control Register (PHY_BASIC_CONTROL_x). Upon completion of the Port B PHY reset, the PHY_B_RST and Soft Reset bits are automatically cleared. No other modules of the device are affected by this reset. Port B PHY reset completion can be determined by polling the PHY_B_RST bit in the Reset Control Register (RESET_CTL) or the Soft Reset bit in the PHY x Basic Control Register (PHY_BASIC_CONTROL_x) until it clears. Under normal conditions, the PHY_B_RST and Soft Reset bit will clear approximately 102 us after the Port B PHY reset occurrence. Note: When using the Soft Reset bit to reset the Port B PHY, register bits designated as NASR are not reset. In addition to the methods above, the Port B PHY is automatically reset after returning from a PHY power-down mode. This reset differs in that the PHY power-down mode reset does not reload or reset any of the PHY registers. Refer to Section 10.2.9, "PHY Power-Down Modes," on page 212 for additional information. Refer to Section 10.2.11, "Resets," on page 216 for additional information on Port B PHY resets. EtherCAT Controller Reset A compete device and system reset can be initiated by either the EtherCAT master or by the local host by writing the value sequence of 0x52 (‘R’), 0x45 (‘E’) and 0x53 (‘S’) into the ESC Reset ECAT Register (for the master) or the ESC Reset PDI Register (for the local host). This will trigger the reset described in Section 6.2.1.3, "EtherCAT System Reset". A reset of just the EtherCAT Controller may be performed by setting the ETHERCAT_RST bit in the Reset Control Register (RESET_CTL). This will reset the EtherCAT Core and its registers. It will also reset the EtherCAT CSR and Process Data RAM Access logic described in Section 11.13, on page 297 and will reset the registers described in Section 11.15, "EtherCAT CSR and Process Data RAM Access Registers (Directly Addressable)," on page 305. Since the EtherCAT module will reconfigure the device from the EEPROM, the Host interfaces will be disabled until reset is complete. Completion of the reset must be determined by using the methods described in Section 8.4.2.2, on page 78 for HBI and Section 9.2.1.1, on page 167 for SPI/SQI. An EtherCAT Controller reset typically takes approximately 1.3 ms.  2020 Microchip Technology Inc. DS00003422A-page 49 LAN9254 6.2.3 6.2.3.1 RESET REGISTERS Reset Control Register (RESET_CTL) Offset: 1F8h / 31F8h Size: 32 bits This register contains software controlled resets. Note: This register can be read while the device is in the reset or not ready / power savings states without leaving the host interface in an intermediate state. If the host interface is in a reset state, returned data may be invalid. It is not necessary to read all four bytes of this register. DWORD access rules do not apply to this register. Bits Type Default RESERVED RO - EtherCAT Reset (ETHERCAT_RST) Setting this bit resets the EtherCAT core. When the EtherCAT core is released from reset, this bit is automatically cleared. All writes to this bit are ignored while this bit is set. R/W SC 0b RESERVED RO - 2 Port B PHY Reset (PHY_B_RST) Setting this bit resets the Port B PHY. The internal logic automatically holds the PHY reset for a minimum of 102uS. When the Port B PHY is released from reset, this bit is automatically cleared. All writes to this bit are ignored while this bit is set. R/W SC 0b 1 Port A PHY Reset (PHY_A_RST) Setting this bit resets the Port A PHY. The internal logic automatically holds the PHY reset for a minimum of 102uS. When the Port A PHY is released from reset, this bit is automatically cleared. All writes to this bit are ignored while this bit is set. R/W SC 0b 0 Digital Reset (DIGITAL_RST) Setting this bit resets the complete chip except the PLL, Port B PHY and Port A PHY. All system CSRs are reset except for any NASR type bits. Any in progress EEPROM commands are terminated. R/W SC 0b 31:7 6 5:3 Description When the chip is released from reset, this bit is automatically cleared. All writes to this bit are ignored while this bit is set. DS00003422A-page 50  2020 Microchip Technology Inc. LAN9254 6.3 Power Management The device supports several block and chip level power management features as well as wake-up event detection and notification. 6.3.1 6.3.1.1 WAKE-UP EVENT DETECTION PHY A & B Energy Detect Energy Detect Power Down mode reduces PHY power consumption. In energy-detect power-down mode, the PHY will resume from power-down when energy is seen on the cable (typically from link pulses) and set the ENERGYON interrupt bit in the PHY x Interrupt Source Flags Register (PHY_INTERRUPT_SOURCE_x). Refer to Section 10.2.9.2, "Energy Detect Power-Down," on page 212 for details on the operation and configuration of the PHY energy-detect power-down mode. Note: If a carrier is present when Energy Detect Power Down is enabled, then detection will occur immediately. If enabled, via the PHY x Interrupt Mask Register (PHY_INTERRUPT_MASK_x), the PHY will generate an interrupt. This interrupt is reflected in the Interrupt Status Register (INT_STS), bit 26 (PHY_INT_A) for PHY A and bit 27 (PHY_INT_B) for PHY B. The INT_STS register bits will trigger the IRQ interrupt output pin if enabled, as described in Section 7.2.1, "Ethernet PHY Interrupts," on page 61. The energy-detect PHY interrupts will also set the appropriate Energy-Detect / WoL Status Port A (ED_WOL_STS_A) or Energy-Detect / WoL Status Port B (ED_WOL_STS_B) bit of the Power Management Control Register (PMT_CTRL). The Energy-Detect / WoL Enable Port A (ED_WOL_EN_A) and Energy-Detect / WoL Enable Port B (ED_WOL_EN_B) bits will enable the corresponding status bits as a PME event. Note: 6.3.1.2 Any PHY interrupt will set the above status bits. The Host should only enable the appropriate PHY interrupt source in the PHY x Interrupt Mask Register (PHY_INTERRUPT_MASK_x). PHY A & B Wake on LAN (WoL) PHY A and B provide WoL event detection of Perfect DA, Broadcast, Magic Packet, and Wakeup frames. When enabled, the PHY will detect WoL events and set the WoL interrupt bit in the PHY x Interrupt Source Flags Register (PHY_INTERRUPT_SOURCE_x). If enabled via the PHY x Interrupt Mask Register (PHY_INTERRUPT_MASK_x), the PHY will generate an interrupt. This interrupt is reflected in the Interrupt Status Register (INT_STS), bit 26 (PHY_INT_A) for PHY A and bit 27 (PHY_INT_B) for PHY B. The INT_STS register bits will trigger the IRQ interrupt output pin if enabled, as described in Section 7.2.1, "Ethernet PHY Interrupts," on page 61. Refer to Section 10.2.10, "Wake on LAN (WoL)," on page 213 for details on the operation and configuration of the PHY WoL. The WoL PHY interrupts will also set the appropriate Energy-Detect / WoL Status Port A (ED_WOL_STS_A) or EnergyDetect / WoL Status Port B (ED_WOL_STS_B) bit of the Power Management Control Register (PMT_CTRL). The Energy-Detect / WoL Enable Port A (ED_WOL_EN_A) and Energy-Detect / WoL Enable Port B (ED_WOL_EN_B) bits enable the corresponding status bits as a PME event. Note: 6.3.2 Any PHY interrupt will set the above status bits. The Host should only enable the appropriate PHY interrupt source in the PHY x Interrupt Mask Register (PHY_INTERRUPT_MASK_x). WAKE-UP (PME) NOTIFICATION A simplified diagram of the logic that controls the PME interrupt can be seen in Figure 6-1. The PME module handles the latching of the PHY B Energy-Detect / WoL Status Port B (ED_WOL_STS_B) bit and the PHY A Energy-Detect / WoL Status Port A (ED_WOL_STS_A) bit in the Power Management Control Register (PMT_CTRL).  2020 Microchip Technology Inc. DS00003422A-page 51 LAN9254 This module also masks the status bits with the corresponding enable bits (Energy-Detect / WoL Enable Port B (ED_WOL_EN_B) and Energy-Detect / WoL Enable Port A (ED_WOL_EN_A)) and combines the results together to generate the Power Management Interrupt Event (PME_INT) status bit in the Interrupt Status Register (INT_STS). The PME_INT status bit is then masked with the Power Management Event Interrupt Enable (PME_INT_EN) bit and combined with the other interrupt sources to drive the IRQ output pin. Note: The PME interrupt status bit (PME_INT) in the INT_STS register is set regardless of the setting of PME_INT_EN. In addition to generating interrupt events, the PME event can also drive the PME output pin to indicate wake-up events exclusively. The PME event is enabled with the PME Enable (PME_EN) bit in the Power Management Control Register (PMT_CTRL), The PME output pin characteristics can be configured via the PME Buffer Type (PME_TYPE), PME Indication (PME_IND) and PME Polarity (PME_POL) bits of the Power Management Control Register (PMT_CTRL). These bits allow the PME output pin to be open-drain, active high push-pull or active-low push-pull and configure the output to be continuous, or pulse for 50 ms. The PME output does not have a dedicated pin and is mapped onto several other pins as controlled by the PME Pin Map (PME_PIN_SEL) field in the Power Management Control Register (PMT_CTRL), replacing the normal pin function. Even when mapped, the PME output must be enabled, otherwise the mapped pin remains undriven. By default, PME is not enabled or mapped. Note: Before PME is mapped onto another pin, the default state of that pin is that of the pin’s normal function. The pin may or may not be driven and an internal or external pull-up or pull-down may be present. It is the responsibility of the system designer to account for this, keeping in mind: ERRLED: This is enabled via the EEPROM contents and should be set to disabled. In the event of an EEPROM loading error, the ERRLED function is forced enabled and false PME events might occur. ERRLED is also used as the 100FD_B configuration strap pin. If ERRLED is used as the PME output (with potential to be wire-ORed shared signal), careful consideration must be paid to strap value. Host software might need to correct the strap results via the AMDIX Disable PHY B and ANEG Disable PHY B bits in the Hardware Configuration Register (HW_CFG) as well as reconfiguring PHY B. Also note that ERRLED is in the VDD33 I/O voltage domain. WAIT_ACK: This is enabled via the EEPROM contents and should be set to disabled. SYNC0/LATCH0 / SYNC1/LATCH1: This is configured via the EEPROM contents. If set as SYNC0/SYNC1, the driven value could be incorrect until the PME Pin Map (PME_PIN_SEL) value is set. In system configurations where the PME output pin is shared among multiple devices (wired ORed), the ED_WOL_STS_B and ED_WOL_STS_A bits within the PMT_CTRL register can be read to determine which device is driving the PME signal. When the PM_WAKE bit of the Power Management Control Register (PMT_CTRL) is set, the PME event will automatically wake up the system in certain chip level power modes, as described in Section 6.3.4.2, "Exiting Low Power Modes," on page 55. This is done independent from the values of the PME_EN, PME_POL, PME_IND and PME_TYPE register bits. DS00003422A-page 52  2020 Microchip Technology Inc. LAN9254 FIGURE 6-1: PME PIN AND PME INTERRUPT SIGNAL GENERATION ED_WOL_EN_A (bit 14 ) of PMT_CTRL register INT8 (bit 8) o f PHY_INTERRUP T_SOURCE_A register PM_WAK E (bit 28) of PMT_CTRL register INT8_ MA SK (bit 8) of PHY_ INTERRUPT_MASK_A re gister ED_WOL_STS _A (bit 1 6) of PMT_CTRL register PME wake-up INT7 (bit 7) o f PHY_INTERRUP T_SOURCE_A register PHYs A & B INT7_ MA SK (bit 7) of PHY_ INTERRUPT_MASK_A re gister Other P HY Interrupts ED_WOL_EN_B (bit 15 ) of PMT_CTRL register INT8 (bit 8) o f PHY_INTERRUP T_SOURCE_B register INT8_ MA SK (bit 8) of PHY_ INTERRUPT_MASK_B re gister ED_WOL_STS _B (bit 1 7) of PMT_CTRL register INT7 (bit 7) o f PHY_INTERRUP T_SOURCE_B register INT7_ MA SK (bit 7) of PHY_ INTERRUPT_MASK_B re gister Other P HY Interrupts PME_INT (bit 17) of INT_STS register Other System In terrupts Polarit y & Buffer Type Logic Denotes a level-triggered "sticky" status bit PME_INT_EN (bit 17) of INT_EN re gister IRQ IRQ_EN (bit 8) of IRQ_CFG register Power Management Control Normal pin functions PME_EN (bit 1) of PMT_CTRL register 50ms PME_IND (bit 3) of PMT_CTRL register PME Device pins LOGIC PME_POL (bit 2 ) of PMT_CTRL register PME_TYPE (bit 6) of PMT_CTRL register PME_PIN_SEL (bits 9:7) of PMT_CTRL reg ister 6.3.3 BLOCK LEVEL POWER MANAGEMENT The device supports software controlled clock disabling of various modules in order to reduce power consumption. Note: 6.3.3.1 Disabling individual blocks does not automatically reset the block, it only places it into a static non-operational state in order to reduce the power consumption of the device. If a block reset is not performed before re-enabling the block, then care must be taken to ensure that the block is in a state where it can be disabled and then re-enabled. Disabling The EtherCAT Core The entire EtherCAT Core may be disabled by setting the ECAT_DIS bit in the Power Management Control Register (PMT_CTRL). As a safety precaution, in order for this bit to be set, it must be written as a 1 two consecutive times. A write of a 0 will reset the count. 6.3.3.2 PHY Power Down A PHY may be placed into power-down as described in Section 10.2.9, "PHY Power-Down Modes," on page 212.  2020 Microchip Technology Inc. DS00003422A-page 53 LAN9254 6.3.3.3 LED Pins Power Down All LED outputs may be disabled by setting the LED_DIS bit in the Power Management Control Register (PMT_CTRL). Open-drain / open-source LEDs are un-driven. Push-pull LEDs are still driven but are set to their inactive state. 6.3.4 CHIP LEVEL POWER MANAGEMENT The device supports power-down modes to allow applications to minimize power consumption. Power is reduced by disabling the clocks as outlined in Table 6-2, "Power Management States". All configuration data is saved when in any power state. Register contents are not affected unless specifically indicated in the register description. There is one normal operating power state, D0, and three power saving states: D1, D2 and D3. Although appropriate for various wake-up detection functions, the power states do not directly enable and are not enforced by these functions. D0: Normal Mode - This is the normal mode of operation of this device. In this mode, all functionality is available. This mode is entered automatically on any chip-level reset (POR, RST# pin reset, EtherCAT system reset). D1: System Clocks Disabled, XTAL, PLL and network clocks enabled - In this low power mode, all clocks derived from the PLL clock are disabled. The network clocks remain enabled if supplied by the PHYs or externally. The crystal oscillator and the PLL remain enabled. Exit from this mode may be done manually or automatically. This mode could be used for PHY General Power Down mode, PHY WoL mode and PHY Energy Detect Power Down mode. D2: System Clocks Disabled, PLL disable requested, XTAL enabled - In this low power mode, all clocks derived from the PLL clock are disabled. The PLL is allowed to be disabled (and will disable if both of the PHYs are in either Energy Detect or General Power Down). The network clocks remain enabled if supplied by the PHYs or externally. The crystal oscillator remains enabled. Exit from this mode may be done manually or automatically. This mode is useful for PHY Energy Detect Power Down mode and PHY WoL mode. This mode could be used for PHY General Power Down mode. D3: System Clocks Disabled, PLL disabled, XTAL disabled - In this low power mode, all clocks derived from the 100 MHz PLL clock are disabled. The PLL will be disabled. External network clocks are gated off. The crystal oscillator is disabled. Exit from this mode may be only be done manually. This mode is useful for PHY General Power Down mode. The Host must place the PHY into General Power Down mode by setting the Power Down (PHY_PWR_DWN) bit of the PHY x Basic Control Register (PHY_BASIC_CONTROL_x) before setting this power state. Note: Disabling the crystal oscillator will disable the CLK_25 output signal. TABLE 6-2: POWER MANAGEMENT STATES Clock Source 25 MHz Crystal Oscillator PLL system clocks (100 MHz, 50 MHz, 25 MHz and others) network clocks Note 1: 2: 3: D0 ON ON ON available(1) D1 ON ON OFF available(1) D2 ON OFF(2) OFF available(1) D3 OFF OFF OFF OFF(3) If supplied by the PHYs or externally PLL is requested to be turned off and will disable if both of the PHYs are in either Energy Detect or General Power Down PHY clocks are off, external clocks are gated off DS00003422A-page 54  2020 Microchip Technology Inc. LAN9254 6.3.4.1 Entering Low Power Modes To enter any of the low power modes (D1 - D3) from normal mode (D0), follow these steps: 1. 2. 3. 4. 5. Write the PM_MODE and PM_WAKE fields in the Power Management Control Register (PMT_CTRL) to their desired values Set the wake-up detection desired per Section 6.3.1, "Wake-Up Event Detection". Set the appropriate wake-up notification per Section 6.3.2, "Wake-Up (PME) Notification". Ensure that the device is in a state where it can safely be placed into a low power mode (all packets transmitted, receivers disabled, packets processed / flushed, etc.) Set the PM_SLEEP_EN bit in the Power Management Control Register (PMT_CTRL). Note: The PM_MODE field cannot be changed at the same time as the PM_SLEEP_EN bit is set and the PM_SLEEP_EN bit cannot be set at the same time that the PM_MODE field is changed. Upon entering any low power mode, the Device Ready (READY) bit in the Hardware Configuration Register (HW_CFG) and the Power Management Control Register (PMT_CTRL) is forced low. Note: 6.3.4.2 Upon entry into any of the power saving states the host interfaces are not functional. Exiting Low Power Modes Exiting from a low power mode can be done manually or automatically. An automatic wake-up will occur based on the events described in Section 6.3.2, "Wake-Up (PME) Notification". Automatic wake-up is enabled with the Power Management Wakeup (PM_WAKE) bit in the Power Management Control Register (PMT_CTRL). A manual wake-up is initiated by the host when: • an HBI write (CS and WR or CS, RD_WR and ENB) is performed to the device. Although all writes are ignored until the device has been woken and a read performed, the host should direct the write to the Byte Order Test Register (BYTE_TEST). Writes to any other addresses should not be attempted until the device is awake. • an SPI/SQI cycle (SCS# low and SCK high) is performed to the device. Although all reads and writes are ignored until the device has been woken, the host should direct the use a read of the Byte Order Test Register (BYTE_TEST) to wake the device. Reads and writes to any other addresses should not be attempted until the device is awake. To determine when the host interface is functional, the Byte Order Test Register (BYTE_TEST) should be polled. Once the correct pattern is read, the interface can be considered functional. At this point, the Device Ready (READY) bit in the Hardware Configuration Register (HW_CFG) or the Power Management Control Register (PMT_CTRL) can be polled to determine when the device is fully awake. For both automatic and manual wake-up, the Device Ready (READY) bit will go high once the device is returned to power savings state D0 and the PLL has re-stabilized. The PM_MODE and PM_SLEEP_EN fields in the Power Management Control Register (PMT_CTRL) will also clear at this point. Under normal conditions, the device will wake-up within 2 ms.  2020 Microchip Technology Inc. DS00003422A-page 55 LAN9254 6.3.5 6.3.5.1 POWER MANAGEMENT REGISTERS Power Management Control Register (PMT_CTRL) Offset: 084h / 3084h Size: 32 bits This read-write register controls the power management features and the PME pin of the device. The ready state of the device be determined via the Device Ready (READY) bit of this register. Note: This register can be read while the device is in the reset or not ready / power savings states without leaving the host interface in an intermediate state. If the host interface is in a reset state, returned data may be invalid. It is not necessary to read all four bytes of this register. DWORD access rules do not apply to this register. Bits 31:29 Description Power Management Mode (PM_MODE) This register field determines the chip level power management mode that will be entered when the Power Management Sleep Enable (PM_SLEEP_EN) bit is set. Type Default R/W/SC 000b R/W/SC 0b 000: D0 001: D1 010: D2 011: D3 100: Reserved 101: Reserved 110: Reserved 111: Reserved Writes to this field are ignored if Power Management Sleep Enable (PM_SLEEP_EN) is also being written with a 1. This field is cleared when the device wakes up. 28 Power Management Sleep Enable (PM_SLEEP_EN) Setting this bit enters the chip level power management mode specified with the Power Management Mode (PM_MODE) field. 0: Device is not in a low power sleep state 1: Device is in a low power sleep state This bit can not be written at the same time as the PM_MODE register field. The PM_MODE field must be set, and then this bit must be set for proper device operation. Writes to this bit with a value of 1 are ignored if Power Management Mode (PM_MODE) is being written with a new value. Note: Although not prevented by H/W, this bit should not be written with a value of 1 while Power Management Mode (PM_MODE) has a value of “D0”. This field is cleared when the device wakes up. DS00003422A-page 56  2020 Microchip Technology Inc. LAN9254 Bits 27 Description Type Default R/W 0b R/W 0b RESERVED RO - EtherCAT Core Clock Disable (ECAT_DIS) This bit disables the clocks for the EtherCAT core. R/W 0b RO - R/W1C 0b R/W1C 0b Power Management Wakeup (PM_WAKE) When set, this bit enables automatic wake-up based on PME events. 0: Manual Wakeup only 1: Auto Wakeup enabled 26 LED Disable (LED_DIS) This bit disables LED outputs. Open-drain / open-source LEDs are un-driven. Push-pull LEDs are still driven but are set to their inactive state. 0: LEDs are enabled 1: LEDs are disabled 25:22 21 0: Clocks are enabled 1: Clocks are disabled In order for this bit to be set, it must be written as a 1 two consecutive times. A write of a 0 will reset the count. 20:18 17 RESERVED Energy-Detect / WoL Status Port B (ED_WOL_STS_B) This bit indicates an energy detect or WoL event occurred on the Port B PHY. In order to clear this bit, it is required that the event in the PHY be cleared as well. The event sources are described in Section 6.3, "Power Management," on page 51. 16 Energy-Detect / WoL Status Port A (ED_WOL_STS_A) This bit indicates an energy detect or WoL event occurred on the Port A PHY. In order to clear this bit, it is required that the event in the PHY be cleared as well. The event sources are described in Section 6.3, "Power Management," on page 51. 15 Energy-Detect / WoL Enable Port B (ED_WOL_EN_B) When set, the PME_INT bit in the Interrupt Status Register (INT_STS) will be asserted upon an energy-detect or WoL event from Port B. R/W 0b 14 Energy-Detect / WoL Enable Port A (ED_WOL_EN_A) When set, the PME_INT bit in the Interrupt Status Register (INT_STS) will be asserted upon an energy-detect or WoL event from Port A. R/W 0b RESERVED RO - 13:10  2020 Microchip Technology Inc. DS00003422A-page 57 LAN9254 Bits 9:7 Description Type Default R/W NASR Note 000b R/W NASR Note 0b RESERVED RO - PME Indication (PME_IND) The PME signal can be configured as a pulsed output or a static signal, which is asserted upon detection of a wake-up event. When set, the PME signal will pulse active for 50mS upon detection of a wake-up event. When cleared, the PME signal is driven continuously upon detection of a wake-up event. R/W 0b R/W NASR Note 0b R/W 0b PME Pin Map (PME_PIN_SEL) This field is used to map the PME signal to one of the various device pins. 000: None 001: ERRLED 010: WAIT_ACK 011: SYNC0/LATCH0 100: SYNC1/LATCH1 101: Reserved 110: Reserved 111: Reserved Note: 6 Even when mapped, the PME output must be enabled, otherwise the mapped pin remains undriven. PME Buffer Type (PME_TYPE) When this bit is cleared, the PME output pin functions as an open-drain buffer for use in a wired-or configuration. When set, the PME output pin is a push-pull driver. 0: PME pin open-drain output 1: PME pin push-pull driver Note: 5:4 3 When the PME output pin is configured as an open-drain output, the PME_POL field of this register is ignored and the output is always active low. 0: PME driven continuously on detection of event 1: PME 50mS pulse on detection of event The PME signal can be deactivated by clearing the above status bit(s) or by clearing the appropriate enable(s). 2 PME Polarity (PME_POL) This bit controls the polarity of the PME signal. When set, the PME output is an active high signal. When cleared, it is active low. Note: When PME is configured as an open-drain output, this field is ignored and the output is always active low. 0: PME active low 1: PME active high 1 PME Enable (PME_EN) When set, this bit enables the external PME signal pin. When cleared, the external PME signal is disabled. Note: This bit does not affect the PME_INT interrupt bit of the Interrupt Status Register (INT_STS). 0: PME pin disabled 1: PME pin enabled DS00003422A-page 58  2020 Microchip Technology Inc. LAN9254 Bits Description Type Default 0 Device Ready (READY) When set, this bit indicates that the device is ready to be accessed. Upon power-up, RST# reset, return from power savings states, EtherCAT chip level or module level reset, or digital reset, the host processor may interrogate this field as an indication that the device has stabilized and is fully active. RO 0b This rising edge of this bit will assert the Device Ready (READY) bit in INT_STS and can cause an interrupt if enabled. Note: 6.4 Note: With the exception of the HW_CFG, PMT_CTRL, BYTE_TEST, and RESET_CTL registers, read access to any internal resources is forbidden while the READY bit is cleared. Writes to any address are invalid until this bit is set. Note: This bit is identical to bit 27 of the Hardware Configuration Register (HW_CFG). Register bits designated as NASR are not reset when the DIGITAL_RST bit in the Reset Control Register (RESET_CTL) is set. Device Ready Operation The device supports a Ready status register bit that indicates to the Host software when the device is fully ready for operation. This bit may be read via the Power Management Control Register (PMT_CTRL) or the Hardware Configuration Register (HW_CFG). Following power-up reset, RST# reset, EtherCAT chip level reset or digital reset (see Section 6.2, "Resets"), the Device Ready (READY) bit indicates that the device has read, and is configured from, the contents of the EEPROM. An EtherCAT reset via the Reset Control Register (RESET_CTL) will cause the EtherCAT core to reload from the EEPROM, temporarily causing the Device Ready (READY) to be low. Entry into any power savings state (see Section 6.3.4, "Chip Level Power Management") other than D0 will cause Device Ready (READY) to be low. Upon wake-up, the Device Ready (READY) bit will go high once the device is returned to power savings state D0 and the PLL has re-stabilized.  2020 Microchip Technology Inc. DS00003422A-page 59 LAN9254 7.0 SYSTEM INTERRUPTS 7.1 Functional Overview This chapter describes the system interrupt structure of the device. The device provides a multi-tier programmable interrupt structure which is controlled by the System Interrupt Controller. The programmable system interrupts are generated internally by the various device sub-modules and can be configured to generate a single external host interrupt via the IRQ interrupt output pin. The programmable nature of the host interrupt provides the user with the ability to optimize performance dependent upon the application requirements. The IRQ interrupt buffer type, polarity and de-assertion interval are modifiable. The IRQ interrupt can be configured as an open-drain output to facilitate the sharing of interrupts with other devices. All internal interrupts are maskable and capable of triggering the IRQ interrupt. 7.2 Interrupt Sources The device is capable of generating the following interrupt types: • • • • • • • Ethernet PHY Interrupts Power Management Interrupts General Purpose Timer Interrupt (GPT) EtherCAT Interrupt Software Interrupt (General Purpose) Device Ready Interrupt Clock Output Test Mode All interrupts are accessed and configured via registers arranged into a multi-tier, branch-like structure, as shown in Figure 7-1. At the top level of the device interrupt structure are the Interrupt Status Register (INT_STS), Interrupt Enable Register (INT_EN) and Interrupt Configuration Register (IRQ_CFG). The Interrupt Status Register (INT_STS) and Interrupt Enable Register (INT_EN) aggregate and enable/disable all interrupts from the various device sub-modules, combining them together to create the IRQ interrupt. These registers provide direct interrupt access/configuration to the General Purpose Timer, software and device ready interrupts. These interrupts can be monitored, enabled/disabled and cleared, directly within these two registers. In addition, event indications are provided for the EtherCAT Slave, Power Management, and Ethernet PHY interrupts. These interrupts differ in that the interrupt sources are generated and cleared in other sub-block registers. The INT_STS register does not provide details on what specific event within the sub-module caused the interrupt and requires the software to poll an additional sub-module interrupt register (as shown in Figure 7-1) to determine the exact interrupt source and clear it. For interrupts which involve multiple registers, only after the interrupt has been serviced and cleared at its source will it be cleared in the INT_STS register. The Interrupt Configuration Register (IRQ_CFG) is responsible for enabling/disabling the IRQ interrupt output pin as well as configuring its properties. The IRQ_CFG register allows the modification of the IRQ pin buffer type, polarity and de-assertion interval. The de-assertion timer guarantees a minimum interrupt de-assertion period for the IRQ output and is programmable via the Interrupt De-assertion Interval (INT_DEAS) field of the Interrupt Configuration Register (IRQ_CFG). A setting of all zeros disables the de-assertion timer. The de-assertion interval starts when the IRQ pin deasserts, regardless of the reason. Note: The de-assertion timer does not apply to the PME interrupt. The PME interrupt is ORed into the IRQ logic following the deassertion timer gating. Assertion of the PME interrupt does not affect the de-assertion timer. DS00003422A-page 60  2020 Microchip Technology Inc. LAN9254 FIGURE 7-1: FUNCTIONAL INTERRUPT HIERARCHY Top Level Interrupt Registers (System CSRs) INT_CFG INT_STS INT_EN PHY B Interrupt Registers Bit 27 (PHY_INT_B) of INT_STS register PHY_INTERRUPT_SOURCE_B PHY_INTERRUPT_MASK_B PHY A Interrupt Registers Bit 26 (PHY_INT _A) of INT_STS register PHY_INTERRUPT_SOURCE_A PHY_INTERRUPT_MASK_A Bit 17 (PME_INT) of INT_STS register Power Management Control Register PMT_CTRL EtherCAT Interrupt Registers Bit 0 (ECAT_INT) of INT_STS register ECAT_AL_EVENT_REQUEST ECAT_AL_EVENT_MASK The following sections detail each category of interrupts and their related registers. Refer to the corresponding function’s chapter for bit-level definitions of all interrupt registers. 7.2.1 ETHERNET PHY INTERRUPTS The Ethernet PHYs each provide a set of identical interrupt sources. The top-level PHY A Interrupt Event (PHY_INT_A) and PHY B Interrupt Event (PHY_INT_B) bits of the Interrupt Status Register (INT_STS) provides indication that a PHY interrupt event occurred in the PHY x Interrupt Source Flags Register (PHY_INTERRUPT_SOURCE_x). PHY interrupts are enabled/disabled via their respective PHY x Interrupt Mask Register (PHY_INTERRUPT_MASK_x). The source of a PHY interrupt can be determined and cleared via the PHY x Interrupt Source Flags Register (PHY_INTERRUPT_SOURCE_x). Unique interrupts are generated based on the following events: • • • • • • • • • ENERGYON Activated Auto-Negotiation Complete Remote Fault Detected Link Down (Link Status Negated) Link Up (Link Status Asserted) Auto-Negotiation LP Acknowledge Parallel Detection Fault Auto-Negotiation Page Received Wake-on-LAN Event Detected In order for an interrupt event to trigger the external IRQ interrupt pin, the desired PHY interrupt event must be enabled in the corresponding PHY x Interrupt Mask Register (PHY_INTERRUPT_MASK_x), the PHY A Interrupt Event Enable (PHY_INT_A_EN) and/or PHY B Interrupt Event Enable (PHY_INT_B_EN) bits of the Interrupt Enable Register (INT_EN) must be set and the IRQ output must be enabled via the IRQ Enable (IRQ_EN) bit of the Interrupt Configuration Register (IRQ_CFG).  2020 Microchip Technology Inc. DS00003422A-page 61 LAN9254 For additional details on the Ethernet PHY interrupts, refer to Section 10.2.8, "PHY Interrupts," on page 209. 7.2.2 POWER MANAGEMENT INTERRUPTS Multiple Power Management Event interrupt sources are provided by the device. The top-level Power Management Interrupt Event (PME_INT) bit of the Interrupt Status Register (INT_STS) provides indication that a Power Management interrupt event occurred in the Power Management Control Register (PMT_CTRL). The Power Management Control Register (PMT_CTRL) provides enabling/disabling and status of all Power Management conditions. These include energy-detect on the PHYs and Wake-On-LAN (Perfect DA, Broadcast, Wake-up frame or Magic Packet) detection by PHYs A&B. In order for a Power Management interrupt event to trigger the external IRQ interrupt pin, the desired Power Management interrupt event must be enabled in the Power Management Control Register (PMT_CTRL), the Power Management Event Interrupt Enable (PME_INT_EN) bit of the Interrupt Enable Register (INT_EN) must be set and the IRQ output must be enabled via the IRQ Enable (IRQ_EN) bit 8 of the Interrupt Configuration Register (IRQ_CFG). The power management interrupts are only a portion of the power management features of the device. For additional details on power management, refer to Section 6.3, "Power Management," on page 51. 7.2.3 GENERAL PURPOSE TIMER INTERRUPT A GP Timer (GPT_INT) interrupt is provided in the top-level Interrupt Status Register (INT_STS) and Interrupt Enable Register (INT_EN). This interrupt is issued when the General Purpose Timer Count Register (GPT_CNT) wraps past zero to FFFFh and is cleared when the GP Timer (GPT_INT) bit of the Interrupt Status Register (INT_STS) is written with 1. In order for a General Purpose Timer interrupt event to trigger the external IRQ interrupt pin, the GPT must be enabled via the General Purpose Timer Enable (TIMER_EN) bit in the General Purpose Timer Configuration Register (GPT_CFG), the GP Timer Interrupt Enable (GPT_INT_EN) bit of the Interrupt Enable Register (INT_EN) must be set and the IRQ output must be enabled via the IRQ Enable (IRQ_EN) bit of the Interrupt Configuration Register (IRQ_CFG). For additional details on the General Purpose Timer, refer to Section 14.1, "General Purpose Timer," on page 394. 7.2.4 ETHERCAT INTERRUPT The top-level EtherCAT Interrupt Event (ECAT_INT) of the Interrupt Status Register (INT_STS) provides indication that an EtherCAT interrupt event occurred in the AL Event Request Register. The AL Event Mask Register provides enabling/disabling of all EtherCAT interrupt conditions. The AL Event Request Register provides the status of all EtherCAT interrupts. In order for an EtherCAT interrupt event to trigger the external IRQ interrupt pin, the desired EtherCAT interrupt must be enabled in the AL Event Mask Register, the EtherCAT Interrupt Event Enable (ECAT_INT_EN) bit of the Interrupt Enable Register (INT_EN) must be set and the IRQ output must be enabled via the IRQ Enable (IRQ_EN) bit of the Interrupt Configuration Register (IRQ_CFG). For additional details on the EtherCAT interrupts, refer to Section 11.0, "EtherCAT," on page 282. 7.2.5 SOFTWARE INTERRUPT A general purpose software interrupt is provided in the top level Interrupt Status Register (INT_STS) and Interrupt Enable Register (INT_EN). The Software Interrupt (SW_INT) bit of the Interrupt Status Register (INT_STS) is generated when the Software Interrupt Enable (SW_INT_EN) bit of the Interrupt Enable Register (INT_EN) changes from cleared to set (i.e. on the rising edge of the enable). This interrupt provides an easy way for software to generate an interrupt and is designed for general software usage. In order for a Software interrupt event to trigger the external IRQ interrupt pin, the IRQ output must be enabled via the IRQ Enable (IRQ_EN) bit of the Interrupt Configuration Register (IRQ_CFG). 7.2.6 DEVICE READY INTERRUPT A device ready interrupt is provided in the top-level Interrupt Status Register (INT_STS) and Interrupt Enable Register (INT_EN). The Device Ready (READY) bit of the Interrupt Status Register (INT_STS) indicates that the device is ready to be accessed after a power-up or reset condition. Writing a 1 to this bit in the Interrupt Status Register (INT_STS) will clear it. DS00003422A-page 62  2020 Microchip Technology Inc. LAN9254 In order for a device ready interrupt event to trigger the external IRQ interrupt pin, the Device Ready Enable (READY_EN) bit of the Interrupt Enable Register (INT_EN) must be set and the IRQ output must be enabled via the IRQ Enable (IRQ_EN) bit of the Interrupt Configuration Register (IRQ_CFG). 7.2.7 CLOCK OUTPUT TEST MODE In order to facilitate system level debug, the crystal clock can be enabled onto the IRQ pin by setting the IRQ Clock Select (IRQ_CLK_SELECT) bit of the Interrupt Configuration Register (IRQ_CFG). The IRQ pin should be set to a push-pull driver by using the IRQ Buffer Type (IRQ_TYPE) bit for the best result. 7.3 Interrupt Registers This section details the directly addressable interrupt related System CSRs. These registers control, configure and monitor the IRQ interrupt output pin and the various device interrupt sources. For an overview of the entire directly addressable register map, refer to Section 5.0, "Register Map," on page 40. TABLE 7-1: INTERRUPT REGISTERS ADDRESS ETHERCAT DIRECT MAPPED MODE 054h 3054h Interrupt Configuration Register (IRQ_CFG) 058h 3058h Interrupt Status Register (INT_STS) 05Ch 305Ch Interrupt Enable Register (INT_EN)  2020 Microchip Technology Inc. REGISTER NAME (SYMBOL) DS00003422A-page 63 LAN9254 7.3.1 INTERRUPT CONFIGURATION REGISTER (IRQ_CFG) Offset: 054h / 3054h Size: 32 bits This read/write register configures and indicates the state of the IRQ signal. Bits Description Type Default 31:24 Interrupt De-assertion Interval (INT_DEAS) This field determines the Interrupt Request De-assertion Interval in multiples of 10 microseconds. R/W 00h RESERVED RO - Interrupt De-assertion Interval Clear (INT_DEAS_CLR) Writing a 1 to this register clears the de-assertion counter in the Interrupt Controller, thus causing a new de-assertion interval to begin (regardless of whether or not the Interrupt Controller is currently in an active de-assertion interval). R/W SC 0h RO 0b RO 0b RESERVED RO - IRQ Enable (IRQ_EN) This bit controls the final interrupt output to the IRQ pin. When clear, the IRQ output is disabled and permanently de-asserted. This bit has no effect on any internal interrupt status bits. R/W 0b RO - Setting this field to zero causes the device to disable the INT_DEAS Interval, reset the interval counter and issue any pending interrupts. If a new, non-zero value is written to this field, any subsequent interrupts will obey the new setting. This field does not apply to the PME_INT interrupt. 23:15 14 0: Normal operation 1: Clear de-assertion counter 13 Interrupt De-assertion Status (INT_DEAS_STS) When set, this bit indicates that the interrupt controller is currently in a deassertion interval and potential interrupts will not be sent to the IRQ pin. When this bit is clear, the interrupt controller is not currently in a de-assertion interval and interrupts will be sent to the IRQ pin. 0: Interrupt controller not in de-assertion interval 1: Interrupt controller in de-assertion interval 12 Master Interrupt (IRQ_INT) This read-only bit indicates the state of the internal IRQ line, regardless of the setting of the IRQ_EN bit, or the state of the interrupt de-assertion function. When this bit is set, one of the enabled interrupts is currently active. 0: No enabled interrupts active 1: One or more enabled interrupts active 11:9 8 0: Disable output on IRQ pin 1: Enable output on IRQ pin 7:5 RESERVED DS00003422A-page 64  2020 Microchip Technology Inc. LAN9254 Bits Description Type Default 4 IRQ Polarity (IRQ_POL) When cleared, this bit enables the IRQ line to function as an active low output. When set, the IRQ output is active high. When the IRQ is configured as an open-drain output (via the IRQ_TYPE bit), this bit is ignored and the interrupt is always active low. R/W NASR Note 1 0b RESERVED RO - IRQ Clock Select (IRQ_CLK_SELECT) When this bit is set, the crystal clock may be output on the IRQ pin. This is intended to be used for system debug purposes in order to observe the clock and not for any functional purpose. R/W 0b R/W NASR Note 1 0b 0: IRQ active low output 1: IRQ active high output 3:2 1 Note: 0 When using this bit, the IRQ pin should be set to a push-pull driver. IRQ Buffer Type (IRQ_TYPE) When this bit is cleared, the IRQ pin functions as an open-drain output for use in a wired-or interrupt configuration. When set, the IRQ is a push-pull driver. Note: When configured as an open-drain output, the IRQ_POL bit is ignored and the interrupt output is always active low. 0: IRQ pin open-drain output 1: IRQ pin push-pull driver Note 1: Register bits designated as NASR are not reset when the DIGITAL_RST bit in the Reset Control Register (RESET_CTL) is set.  2020 Microchip Technology Inc. DS00003422A-page 65 LAN9254 7.3.2 INTERRUPT STATUS REGISTER (INT_STS) Offset: 058h / 3058h Size: 32 bits This register contains the current status of the generated interrupts. A value of 1 indicates the corresponding interrupt conditions have been met, while a value of 0 indicates the interrupt conditions have not been met. The bits of this register reflect the status of the interrupt source regardless of whether the source has been enabled as an interrupt in the Interrupt Enable Register (INT_EN). Where indicated as R/W1C, writing a 1 to the corresponding bits acknowledges and clears the interrupt. Bits Description Type Default 31 Software Interrupt (SW_INT) This interrupt is generated when the Software Interrupt Enable (SW_INT_EN) bit of the Interrupt Enable Register (INT_EN) is set high. Writing a one clears this interrupt. R/W1C 0b 30 Device Ready (READY) This interrupt indicates that the device is ready to be accessed after a power-up or reset condition. R/W1C 0b RESERVED RO - 27 PHY B Interrupt Event (PHY_INT_B) This bit indicates an interrupt event from the PHY B. The source of the interrupt can be determined by polling the PHY x Interrupt Source Flags Register (PHY_INTERRUPT_SOURCE_x). RO 0b 26 PHY A Interrupt Event (PHY_INT_A) This bit indicates an interrupt event from the PHY A. The source of the interrupt can be determined by polling the PHY x Interrupt Source Flags Register (PHY_INTERRUPT_SOURCE_x). RO 0b RESERVED RO - R/W1C 0b RO - R/W1C 0b RESERVED RO - EtherCAT Interrupt Event (ECAT_INT) This bit indicates an EtherCAT interrupt event. The source of the interrupt can be determined by polling the AL Event Request Register. RO 0b 29:28 25:20 19 GP Timer (GPT_INT) This interrupt is issued when the General Purpose Timer Count Register (GPT_CNT) wraps past zero to FFFFh. 18 RESERVED 17 Power Management Interrupt Event (PME_INT) This interrupt is issued when a Power Management Event is detected as configured in the Power Management Control Register (PMT_CTRL). This interrupt functions independent of the PME signal and will still function if the PME signal is disabled. Writing a '1' clears this bit regardless of the state of the PME hardware signal. In order to clear this bit, all unmasked bits in the Power Management Control Register (PMT_CTRL) must first be cleared. Note: 16:1 0 DS00003422A-page 66 The Interrupt De-assertion interval does not apply to the PME interrupt.  2020 Microchip Technology Inc. LAN9254 7.3.3 INTERRUPT ENABLE REGISTER (INT_EN) Offset: 05Ch / 305Ch Size: 32 bits This register contains the interrupt enables for the IRQ output pin. Writing 1 to any of the bits enables the corresponding interrupt as a source for IRQ. Bits in the Interrupt Status Register (INT_STS) register will still reflect the status of the interrupt source regardless of whether the source is enabled as an interrupt in this register (with the exception of Software Interrupt Enable (SW_INT_EN). For descriptions of each interrupt, refer to the Interrupt Status Register (INT_STS) bits, which mimic the layout of this register. Bits Description Type Default 31 Software Interrupt Enable (SW_INT_EN) R/W 0b 30 Device Ready Enable (READY_EN) R/W 0b RESERVED RO - 27 PHY B Interrupt Event Enable (PHY_INT_B_EN) R/W 0b 26 PHY A Interrupt Event Enable (PHY_INT_A_EN) R/W 0b RESERVED RO - 19 GP Timer Interrupt Enable (GPT_INT_EN) R/W 0b 18 RESERVED RO - 17 Power Management Event Interrupt Enable (PME_INT_EN) R/W 0b RESERVED RO - EtherCAT Interrupt Event Enable (ECAT_INT_EN) R/W 0b 29:28 25:20 16:1 0  2020 Microchip Technology Inc. DS00003422A-page 67 LAN9254 8.0 HOST BUS INTERFACE 8.1 Functional Overview The Host Bus Interface (HBI) module provides a high-speed asynchronous slave interface that facilitates communication between the device and a host system. The HBI allows access to the System CSRs and internal FIFOs and memories and handles byte swapping based on the endianness select. The following is an overview of the functions provided by the HBI: • Address bus input: Three addressing modes are supported. These are a Multiplexed Address / Data Mode, a Demultiplexed Address Mode, and a Indexed Address Mode. The mode selection is done through a configuration input. • Selectable data bus width: Selected through a configuration input, the host data bus width is selectable. LAN9252 compatibility Mode: 16 and 8-bit data modes are supported. The HBI performs BYTE and WORD to DWORD assembly on write data and keeps track of the BYTE / WORD count for reads. Individual BYTE access is not supported. • • • • • EtherCAT Direct Mapped Mode: 16 and 8-bit data modes are supported. BE1 and BE0 are used for byte selection. For the non-EtherCAT Core registers, The HBI performs BYTE and WORD to DWORD assembly / disassembly. Individual BYTE access (in 16-bit mode) is not supported. For the EtherCAT Core registers and Process RAM, individual BYTE access is supported. BYTE to DWORD assembly / disassembly is not necessary. Selectable read / write control modes: Two control modes are available. Separate read and write pins or an enable and direction pin. The mode selection is done through a configuration input. Selectable control line polarity / buffer type: The polarity of the wait / acknowledge chip select, read / write, byte enables, and address latch signals, and the buffer type of the wait / acknowledge signal are selectable through configuration inputs. Dynamic Endianness control: The HBI supports the selection of big and little endian host byte ordering based on the endianness signal. This highly flexible interface provides mixed endian access for registers and memory. Depending on the addressing mode of the device, this signal is either configuration register controlled, pin controlled, or as part of the strobed address input. Bus Wait State support: Used with EtherCAT Direct Mapped mode, the HBI provides a Wait / Acknowledge signal to indicate when read data is available or write cycles may be completed. Direct FIFO access: A FIFO direct select signal directs all host write operations to the EtherCAT Process RAM Write Data FIFO (Multiplexed Address Mode only) and all host read operations from the EtherCAT Process RAM Read Data FIFO (Multiplexed Address Mode only). This signal is strobed as part of the address input. 8.1.1 ETHERCAT DIRECT MAPPED MODE PCB BACKWARDS COMPATIBILITY While in EtherCAT Direct Mapped Mode, additional pins are required for full functionality. However with some caveats, EtherCAT Direct Mapped Mode can be made to work with PCBs designed for the LAN9252. WAIT_ACK: The WAIT_ACK pin on the LAN9252 functioned as the fiber mode signal detect as well as the Port B FXSD Enable. For copper twisted pair operation, this pin would either be tied to or pulled down to ground. WAIT_ACK is disabled by default to avoid a short. Without the WAIT_ACK connected to the host processor, the host bus cycles must assume worst case cycle timing. BE1/BE0: When in 16-bit data width mode, the byte enables are required to select which byte or bytes are written or read from the EtherCAT core. In multiplexed mode, these pins on the LAN9252 are unused and most likely not driven. The BE1/BE0 pins have internal pull-downs such that if left undriven, they would assume an active state, This allows 16-bit only access to the device. Caution is required to not over-write the adjacent byte when only BYTE access is desired. 8.2 8.2.1 Control Logic READ / WRITE CONTROL SIGNALS The device supports two distinct read / write signal methods: • read (RD) and write (WR) strobes are input on separate pins. • read and write signals are decoded from an enable input (ENB) and a direction input (RD_WR). DS00003422A-page 68  2020 Microchip Technology Inc. LAN9254 8.2.2 CONTROL LINE POLARITY AND BUFFER TYPE The device supports polarity control on the following: • • • • • • chip select input (CS) read strobe (RD) / direction input (RD_WR) write strobe (WR) / enable input (ENB) byte enable (BE0 and BE1) address latch control (ALELO and ALEHI) wait / acknowledge (WAIT_ACK) The device supports buffer type control on the following: • wait / acknowledge (WAIT_ACK) 8.2.3 CS QUALIFICATION OF ALE (MULTIPLEXED ADDRESS / DATA MODE ONLY) Qualification of the ALELO and ALEHI signals with the CS signal is selectable. When qualification is enabled, CS must be active during ALELO and ALEHI in order to strobe the address inputs. When qualification is not enabled, CS is a don’t care during the address phase. 8.2.4 WAIT / ACKNOWLEDGE OPERATION When operating in EtherCAT Direct Mapped mode (refer to Section 5.0, Register Map), the host system must meet the device’s timing access requirements. For reads from the EtherCAT Core CSR or Process Data RAM, the read cycles must wait until read data has been internally retrieved. All write cycles must wait for any prior write access to the EtherCAT Core CSR or Process Data RAM to internally complete. The host system may either wait the specified worst case access time, or may use the WAIT_ACK signal. WAIT_ACK is only used when operating in EtherCAT Direct Mapped mode. When not in EtherCAT Direct Mapped mode, if WAIT_ACK is enabled it is always inactive (showing ACK). WAIT_ACK may be set as an active low open drain output for wire-AND systems or as a three-stated push-pull output. WAIT_ACK operation is described in Section 8.4.3.3. 8.3 8.3.1 Device Addressing, Endianess Control and Data FIFO Selection MULTIPLEXED ADDRESS / DATA MODE In Multiplexed Address / Data mode, the address, FIFO Direct Select and endianness select inputs are shared with the data bus. Two methods are supported, Single Phase Address Latching, utilizing up to 16 address / data pins and Dual Phase Address Latching, utilizing only the lower 8 data bits. 8.3.1.1 Single Phase Address Latching In Single Phase mode, all address bits, the FIFO Direct Select signal and the endianness select are strobed into the device using the trailing edge of the ALELO signal. The address latch is implemented on all 16 address / data pins. In 8-bit data mode, where pins AD[15:8] are used exclusively for addressing, it is not necessary to drive these upper address lines with a valid address continually through read and write operations. However, this operation, referred to as Partial Address Multiplexing, is acceptable since the device will never drive these pins. Qualification of the ALELO signal with the CS signal is selectable. When qualification is enabled, CS must be active during ALELO in order to strobe the address inputs. When qualification is not enabled, CS is a don’t care during the address phase. The address is retained for all future read and write operations. It is retained until either a reset event occurs or a new address is loaded. This allows multiple read and write requests to take place to the same address, without requiring multiple address latching operations. 8.3.1.2 Dual Phase Address Latching In Dual Phase mode, the lower 8 address bits are strobed into the device using the inactive going edge of the ALELO signal and the remaining upper address bits, the FIFO Direct Select signals and the endianness select are strobed into the device using the trailing edge of the ALEHI signal. The strobes can be in either order. In 8-bit data mode, pins AD[15:8] are not used. In 16-bit data mode, pins D[15:8] are used only for data.  2020 Microchip Technology Inc. DS00003422A-page 69 LAN9254 Qualification of the ALELO and ALEHI signals with the CS signal is selectable. When qualification is enabled, CS must be active during ALELO and ALEHI in order to strobe the address inputs. When qualification is not enabled, CS is a don’t care during the address phase. The address is retained for all future read and write operations. It is retained until either a reset event occurs or a new address is loaded. This allows multiple read and write requests to take place to the same address, without requiring multiple address latching operations. 8.3.1.3 Address Bit to Address / Data Pin Mapping In 8-bit data mode, address bit 0 is multiplexed onto pin AD[0], address bit 1 onto pin AD[1], etc. In LAN9252 compatible address mode, the highest address bit is bit 9 and is multiplexed onto pin AD[9] (single phase) or AD[1] (dual phase). The address latched into the device is considered a BYTE address and covers 1K bytes (0 to 3FFh). In EtherCAT Direct Mapped mode, the highest address bit is bit 13 and is multiplexed onto pin AD[13] (single phase) or AD[5] (dual phase). The address latched into the device is considered a BYTE address and covers 16K bytes (0 to 3FFFh). In 16-bit data mode, address bit 1 is multiplexed onto pin AD[0], address bit 2 onto pin AD[1], etc. In LAN9252 compatible address mode, the highest address bit is bit 9 and is multiplexed onto pin AD[8] (single phase) or AD[0] (dual phase). The address latched into the device is considered a WORD address and covers 512 words (0 to 1FFh). In EtherCAT Direct Mapped mode, the highest address bit is bit 13 and is multiplexed onto pin AD[12] (single phase) or AD[4] (dual phase). The address latched into the device is considered a WORD address and covers 8K words (0 to 1FFFh). EtherCAT Direct Mapped mode increases the address bit count by 4. When the address is sent to the rest of the device, it is converted to a BYTE address. 8.3.1.4 Endianness Select to Address / Data Pin Mapping The endianness select is included into the multiplexed address to allow the host system to dynamically select the endianness based on the memory address used. This allows for mixed endian access for registers and memory. The endianness selection is multiplexed to the data pin one bit above the last address bit as shown in Table 8-1. TABLE 8-1: ENDIANNESS SELECT TO ADDRESS / DATA PIN MAPPING Address Mode LAN9252 compatible address mode EtherCAT Direct Mapped mode Data Mode Single Phase Dual Phase Single Phase Dual Phase 8-bit AD10 AD2 AD14 AD6 16-bit AD9 AD1 AD13 AD5 8.3.1.5 FIFO Direct Select to Address / Data Pin Mapping The FIFO Direct Select signal is included into the multiplexed address to allow the host system to address the EtherCAT Process RAM Data FIFOs as if they were a large flat address space. FIFO Direct Select is not used in EtherCAT Direct Mapped mode since the Process RAM FIFOs are not used. DS00003422A-page 70  2020 Microchip Technology Inc. LAN9254 The FIFO Direct Select signal is multiplexed to the data pin two bits above the last address bit as shown in Table 8-2. TABLE 8-2: FIFO DIRECT SELECT TO ADDRESS / DATA PIN MAPPING Address Mode LAN9252 compatible address mode EtherCAT Direct Mapped mode Data Mode Single Phase Dual Phase Single Phase Dual Phase 8-bit AD11 AD3 N/A N/A 16-bit AD10 AD2 N/A N/A 8.3.2 DEMULTIPLEXED ADDRESS MODE In Demultiplexed Address mode, the address and endianness select inputs are directly provided by the host. A FIFO Direct Select signal is not provided by the host and is internally held inactive. The address mode is controlled by PDI Control Register. 8.3.2.1 Address Bit Usage The address input to the device is always considered a BYTE address. In 8-bit data mode, all address bits are used. In 16-bit data mode, address bit 0 is unused. 8.3.3 INDEXED ADDRESS MODE In Indexed Address mode, access to the internal registers and memory of the device are indirectly mapped using Index and Data registers. The desired internal address is written into the device at a particular offset. The value written is then used as the internal address when the associate Data register address is accessed. Three Index / Data register sets are provided allowing for multi-threaded operation without the concern of one thread corrupting the Index set by another thread. The selection of the appropriate Index register which then selects the internal register is done using the host address inputs directly (asynchronously). A FIFO Direct Select signal is not provided by the host however, it is emulated when the host accesses the Data register located at BYTE address 18h-1Bh. As discussed below in Section 8.3.4.2, "Index Register Bypass FIFO Access (Indexed Address Mode Only)", the EtherCAT Process RAM Data FIFOs are accessed when reading or writing the Data register located at BYTE address 18h-1Bh. Index Register Bypass FIFO Access is not used in EtherCAT Direct Mapped mode since the Process RAM FIFOs are not used. An endianness signal is not provided by the host, however, endianness can be configured per Index / Data pair and for the Index Register Bypass FIFO Access method. The host address register map is given below. In 8-bit data mode, the host address input (ADDR[4:0]) is a BYTE address. In 16-bit data mode, ADDR0 is not provided and the host address input (ADDR[4:1]) is a WORD address. TABLE 8-3: HOST BUS INTERFACE INDEXED ADDRESS MODE REGISTER MAP BYTE ADDRESS SYMBOL 00h-03h HBI_IDX_0 Host Bus Interface Index Register 0 04h-07h HBI_DATA_0 Host Bus Interface Data Register 0 08h-0Bh HBI_IDX_1 Host Bus Interface Index Register 1 0Ch-0Fh HBI_DATA_1 Host Bus Interface Data Register 1  2020 Microchip Technology Inc. REGISTER NAME DS00003422A-page 71 LAN9254 TABLE 8-3: 8.3.3.1 HOST BUS INTERFACE INDEXED ADDRESS MODE REGISTER MAP BYTE ADDRESS SYMBOL 10h-13h HBI_IDX_2 Host Bus Interface Index Register 2 14h-17h HBI_DATA_2 Host Bus Interface Data Register 2 18h-1Bh PROCESS_RAM_FIFO (not used for when in EtherCAT Direct Mapped mode) 1Ch-1Fh HBI_CFG REGISTER NAME Process RAM Write Data FIFO Process RAM Read Data FIFO Host Bus Interface Configuration Register Host Bus Interface Index Register The Index registers are writable as WORDs or as BYTEs, depending upon the data mode. There is no concern about DWORD assembly rules when writing these registers. The Index registers are formatted as follows: Bits 31:17 16 Description Type Default RESERVED RO - Byte High Enable When in 16-bit data mode with EtherCAT Direct Mapped mode enabled, this active low bit enables the upper byte of the WORD for accesses to the EtherCAT Core registers or Process Data RAM. 0 = upper byte enabled 1 = upper byte disabled This bit is used for reads as well as writes. R/W 0b R/W 1234h Note 2 This bit is unused for accesses to the non-EtherCAT Core registers since they are always DWORD wide (via the DWORD assembly / disassemble process). 15:0 Internal Address The address used when the corresponding Data register is accessed. Note: The internal address provided by each Index register is always considered to be a BYTE address. For accesses to the non-EtherCAT Core registers, address 1:0 are unused since these registers are always DWORD aligned. When in 16-bit data mode with EtherCAT Direct Mapped mode enabled, address 0 acts as an active low Byte Low Enable, enabling the lower byte of the WORD for accesses to the EtherCAT Core registers or Process Data RAM. 0 = lower byte enabled 1 = lower byte disabled This bit is used for reads as well as writes. Note 2: The default may be used to help determine the endianness of the register. 8.3.3.2 Host Bus Interface Data Registers Usage The Host Bus Interface Data Registers provide a 4 byte window onto the internal registers. Accesses to the non-EtherCAT Core registers are always DWORD aligned and sized.The lower two bits of the address field in the index registers are not used. DS00003422A-page 72  2020 Microchip Technology Inc. LAN9254 The HBI performs the DWORD assemble / disassemble with the internal access being a DWORD. Bits 1 and 0 (8-bit data mode only) of the host bus address are used to select one of the four BYTEs (8-bit data mode) or one of the two WORDs (16-bit data mode) of the data register. Software may choose to address these BYTEs (8-bit data mode) or WORDs (16-bit data mode) as BYTEs/WORDs at the various addresses (e.g. @HBI_DATA_0, @HBI_DATA_0+1, etc.) within the data register or it may choose to address these as a DWORD and let the host’s Bus Interface Unit (BIU) split the larger DWORD data type into BYTEs or WORDs. In either case, the data register would be accessed multiple times at increasing addresses (e.g. @HBI_DATA_0, @HBI_DATA_0+1, etc.). When using EtherCAT Direct Mapped mode, accesses to the EtherCAT Core registers or Process Data RAM do not require DWORD alignment. Bits 1 and 0 (8-bit data mode only) of the address field in the index registers are used as part of the internal pointer. Internal data access is done at the native host bus width, however the selected EtherCAT Core register or Process Data RAM may be a DWORD, WORD or BYTE. Two methods exist to access the multiple WORDs/BYTEs when the register is wider than the host bus. • Access the lower WORD/BYTE by addressing the lower WORD/BYTE of the data register (e.g. @HBI_DATA_0). Increment the address field in the index register. Access the next WORD/BYTE by once again addressing the lower WORD/BYTE of the data register (e.g. @HBI_DATA_0). (repeat twice more for 8-bit data mode) • Access the lower WORD/BYTE by addressing the lower WORD/BYTE of the data register (e.g. @HBI_DATA_0). Access the next WORD/BYTE by addressing the next WORD/BYTE of the data register (e.g. @HBI_DATA_0+1 or +2). (repeat twice more for 8-bit data mode) With the first method, software would need to reassemble or split the data. With the second method, although software does not need to increment the address field between data accesses, it would still need to reassemble or split the data. The second method, however, allows S/W to address the data register as a DWORD or WORD and let the host’s Bus Interface Unit (BIU) split larger data types (DWORDs or WORDs) into WORDs and BYTEs. In order to access sequential locations of the EtherCAT Core registers or Process Data RAM when sequential locations of the data register are addressed, hardware adds the lower 2 bits of the host address to the address field of the index register, emulating the incrementing of the address field. 8.3.3.3 Host Bus Interface Configuration Register The HBI Configuration register is used to specify the endianness of the interface. Endianess for each Index / Data pair and for the Index Register Bypass FIFO Access method can be individually specified. The endianness of this register is irrelevant since each byte is shadowed into 4 positions. The HBI Configuration register is writable as a DWORD, as WORDs or as BYTEs, depending upon the data mode. There is no concern about DWORD assembly rules when writing this register.The Configuration register is formatted as follows: Bits Type Default RESERVED RO - 27 FIFO Endianness Shadow 3 This bit is a shadow of bit 3. R/W 0b 26 Host Bus Interface Index / Data Register 2 Endianness Shadow 3 This bit is a shadow of bit 2. R/W 0b 25 Host Bus Interface Index / Data Register 1 Endianness Shadow 3 This bit is a shadow of bit 1. R/W 0b 24 Host Bus Interface Index / Data Register 0 Endianness Shadow 3 This bit is a shadow of bit 0. R/W 0b RESERVED RO - FIFO Endianness Shadow 2 This bit is a shadow of bit 3. R/W 0b 31:28 23:20 19 Description  2020 Microchip Technology Inc. DS00003422A-page 73 LAN9254 Bits Description Type Default 18 Host Bus Interface Index / Data Register 2 Endianness Shadow 2 This bit is a shadow of bit 2. R/W 0b 17 Host Bus Interface Index / Data Register 1 Endianness Shadow 2 This bit is a shadow of bit 1. R/W 0b 16 Host Bus Interface Index / Data Register 0 Endianness Shadow 2 This bit is a shadow of bit 0. R/W 0b RESERVED RO - 11 FIFO Endianness Shadow 1 This bit is a shadow of bit 3. R/W 0b 10 Host Bus Interface Index / Data Register 2 Endianness Shadow 1 This bit is a shadow of bit 2. R/W 0b 9 Host Bus Interface Index / Data Register 1 Endianness Shadow 1 This bit is a shadow of bit 1. R/W 0b 8 Host Bus Interface Index / Data Register 0 Endianness Shadow 1 This bit is a shadow of bit 0. R/W 0b RESERVED RO - FIFO Endianness This bit specifies the endianness of FIFO accesses when they are accessed by means other than the Index / Data Register method. R/W 0b R/W 0b R/W 0b 15:12 7:4 3 0 = Little Endian 1 = Big Endian Note: 2 In order to avoid any ambiguity with the endianness of this register, bits 3, 11, 19 and 27 are shadowed. If any of these bits are set during a write, all of the bits will be set. Host Bus Interface Index / Data Register 2 Endianness This bit specifies the endianness of the Index and Data register set 2. 0 = Little Endian 1 = Big Endian Note: 1 In order to avoid any ambiguity with the endianness of this register, bits 2, 10, 18 and 26 are shadowed. If any of these bits are set during a write, all of the bits will be set. Host Bus Interface Index / Data Register 1 Endianness This bit specifies the endianness of the Index and Data register set 1. 0 = Little Endian 1 = Big Endian Note: DS00003422A-page 74 In order to avoid any ambiguity with the endianness of this register, bits 1, 9, 17 and 25 are shadowed. If any of these bits are set during a write, all of the bits will be set.  2020 Microchip Technology Inc. LAN9254 Bits 0 Description Host Bus Interface Index / Data Register 0 Endianness This bit specifies the endianness of the Index and Data register set 0. Type Default R/W 0b 0 = Little Endian 1 = Big Endian Note: 8.3.4 8.3.4.1 In order to avoid any ambiguity with the endianness of this register, bits 0, 8, 16 and 24 are shadowed. If any of these bits are set during a write, all of the bits will be set. ETHERCAT PROCESS RAM DATA FIFO ACCESS FIFO Direct Select Access (Multiplexed Address / Data Mode Only) As mentioned in Section 8.3.1.5, a FIFO Direct Select signal is provided allows the host system to address the EtherCAT Process RAM Data FIFOs as if they were a large flat address space. When the FIFO Direct Select signal, which was latched during the address latch cycle, is active all host write operations are to the EtherCAT Process RAM Write Data FIFO and all host read operations are from the EtherCAT Process RAM Read Data FIFO. Only the lower latched address signals are decoded in order to select the proper BYTE or WORD. All other address inputs are ignored in this mode. All other operations are the same (DWORD assembly, FIFO popping, etc.). 8.3.4.2 Index Register Bypass FIFO Access (Indexed Address Mode Only) In addition to the indexed access, the Index Registers can be bypassed and the FIFOs accessed at address 18h-1Bh. At this address, host write operations are to the EtherCAT Process RAM Write Data FIFO and host read operations are from the EtherCAT Process RAM Read Data FIFO. There is no associated Index Register. 8.4 Data Cycles Data cycles consist of read and write cycles to the internal device registers, and for Indexed Address mode, read and write cycles to the Index and Configuration registers. Data cycles are similar for all address modes. Differences are noted where appropriate. 8.4.1 Note: INTERNAL REGISTER DATA ACCESS Internal registers do not include the EtherCAT Core registers and Process Data RAM which are directly accessible from the host while in EtherCAT Direct Mapped mode. Access to the EtherCAT Core is described in Section 8.4.3. The host data bus can be 16 or 8-bits wide while all internal registers are 32 bits wide. The Host Bus Interface performs the conversion from WORDs or BYTEs to DWORD, while in 8 or 16-bit data mode.Two or four contiguous accesses within the same DWORD are required in order to perform a write or read. For Indexed Address mode, each Data register (four total including one for the Index Register Bypass FIFO Access), has a separate WORD or BYTE to DWORD conversion. Accesses may be mixed among these (and the HBI Index and Configuration registers) without concern of data corruption. 8.4.1.1 Write Cycles A write cycle occurs when CS and WR are active (or when CS and ENB are active with RD_WR indicating write). On the trailing edge of the write cycle (either WR or CS or ENB going inactive), the host data is captured into registers (one of four sets for Indexed Address mode) in the HBI. Depending on the bus width, either a WORD or a BYTE is captured. For 8 or 16-bit data modes, this functions as the DWORD assembly with the affected WORD or BYTE determined by the lower address inputs (the live host address inputs in the case of Indexed Address mode). BYTE swapping is also done at this point based on the endianness. Endianness determination is described in Section 8.4.4. WRITES FOLLOWING INITIALIZATION  2020 Microchip Technology Inc. DS00003422A-page 75 LAN9254 Following device initialization, writes from the Host Bus are ignored until after a read cycle is performed. WRITES DURING AND FOLLOWING POWER MANAGEMENT During and following any power management mode other than D0, writes from the Host Bus are ignored until after a read cycle is performed. 8 AND 16-BIT ACCESS While in 8 or 16-bit data mode, the host is required to perform two or four, 16 or 8-bit writes to complete a single DWORD transfer. No ordering requirements exist. The host can access either the low or high WORD or BYTE first, as long as the other write(s) is(are) performed to the remaining WORD or BYTEs. Note: Writing the same WORD or BYTEs into the same DWORD may cause undefined or undesirable operation. The HBI hardware does not protect against this operation. For Indexed Address mode, accessing the same internal register using two Index / Data register pairs may cause undefined or undesirable operation. The HBI hardware does not protect against this operation. For Indexed Address mode, mixing reads and writes into the same Data register may cause undefined or undesirable operation. The HBI hardware does not protect against this operation. A write BYTE / WORD counter (a separate counter for each of the four Data Registers in Indexed Address mode) keeps track of the number of writes. At the trailing edge of the write cycle, the counter (one of four for Indexed Address mode based on the captured host address) is incremented. Once all writes occur, a 32-bit write is performed to the internal register using the address captured on the leading edge of the write cycle and the data captured on the trailing edge of the write cycle. (For Indexed Address mode one of the four Data Registers sets is selected based on the captured host address.) The write BYTE / WORD counter(s) is(are) reset if the power management mode is set to anything other than D0. 8.4.1.2 Read Cycles A read cycle occurs when CS and RD are active (or when CS and ENB are active with RD_WR indicating read). At the beginning of the read cycle, the appropriate device register is selected and its data is driven onto the data pins. Depending on the bus width, either a WORD or a BYTE is read. For 8 or 16-bit data modes, the returned BYTE or WORD is determined by the endianness and the lower address inputs (the live host address inputs in the case of Indexed Address mode). Endianness determination is described in Section 8.4.4. POLLING FOR INITIALIZATION COMPLETE Before device initialization, the HBI will not return valid data. To determine when the HBI is functional the following procedure should be followed: For Multiplexed Address / Data mode, the Byte Order Test Register (BYTE_TEST) should be polled. Each poll should consist of an address latch cycle(s) and a data cycle. Once the correct pattern is read, the interface can be considered functional. At this point, the Device Ready (READY) bit in the Hardware Configuration Register (HW_CFG) can be polled to determine when the device is fully configured. For Demultiplexed Address mode, the Byte Order Test Register (BYTE_TEST) should be polled. Once the correct pattern is read, the interface can be considered functional. At this point, the Device Ready (READY) bit in the Hardware Configuration Register (HW_CFG) can be polled to determine when the device is fully configured. For Indexed Address mode, first the Host Bus Interface Index Register 0 should be polled, then the Byte Order Test Register (BYTE_TEST) should be polled. Once the correct pattern is read, the interface can be considered functional. At this point, the Device Ready (READY) bit in the Hardware Configuration Register (HW_CFG) can be polled to determine when the device is fully configured. READS DURING AND FOLLOWING POWER MANAGEMENT During any power management mode other than D0, reads from the Host Bus are ignored. If the power management mode changes back to D0 during an active read cycle, the tail end of the read cycle is ignored. Internal registers are not affected and the state of the HBI does not change. 8 AND 16-BIT ACCESS DS00003422A-page 76  2020 Microchip Technology Inc. LAN9254 For certain register accesses, the host is required to perform two or four consecutive 16 or 8-bit reads to complete a single DWORD transfer. No ordering requirements exist. The host can access either the low or high WORD or BYTE first, as long as the other read(s) is(are) performed from the remaining WORD or BYTEs. Note: Reading the same WORD or BYTEs from the same DWORD may cause undefined or undesirable operation. The HBI hardware does not protect against this operation. The HBI simply counts that four BYTEs have been read. For Indexed Address mode, accessing the same internal register using two Index / Data register pairs may cause undefined or undesirable operation. The HBI hardware does not protect against this operation. For Indexed Address mode, mixing reads and writes into the same Data register may cause undefined or undesirable operation. The HBI hardware does not protect against this operation. A read BYTE / WORD counter (a separate counter for each of the four Data Registers in Indexed Address mode) keeps track of the number of reads. This(these) counter(s) is(are) separate from the write counter(s) above. At the trailing edge of the read cycle, the counter (one of four for Indexed Address mode based on the captured host address) is incremented. On the last read for the DWORD, an internal read is performed to update any Change on Read CSRs or FIFOs. The read BYTE / WORD counter(s) is(are) reset if the power management mode is set to anything other than D0. SPECIAL CSR HANDLING Live Bits Any register bit that is updated by a hardware event is held at the beginning of the read cycle to prevent it from changing during the read cycle. Multiple BYTE / WORD Live Registers in 16 or 8-Bit Modes Some registers have “live” fields or related fields that span across multiple BYTEs or WORDs. For 16 and 8-bit data reads, it is possible for the value of these fields to change between host read cycles. In order to prevent reading intermediate values, these registers are locked when the first byte or word is read and unlocked when the last byte or word is read. Registers that have this function, have a note in their register description. The registers are unlocked if the power management mode is set to anything other than D0. Register Polling During Reset or Initialization Some registers support polling during reset or device initialization to determine when the device is accessible. For these registers, only one read may be performed without the need to read the other WORD or BYTEs. The same BYTE or WORD of the register may be re-read repeatedly. A register that is 16 or 8-bit readable or readable during reset or device initialization, is noted in its register description. 8.4.2 INDEXED ADDRESS MODE INDEX AND CONFIGURATION REGISTER DATA ACCESS As described in Section 8.3.3, Indexed Address mode, contains Index and Configuration registers. The host data bus can be 16 or 8-bits wide. The HBI Index registers and the HBI Configuration register are 32-bits wide and are writable as WORDs or as BYTEs, depending upon the data mode. They do not have nor do they require WORDs or BYTEs to DWORD conversion. 8.4.2.1 Write Cycles A write cycle occurs when CS and WR are active (or when CS and ENB are active with RD_WR indicating write). On the trailing edge of the write cycle (either WR or CS or ENB going inactive), the host data is captured into the Configuration register or one for the Index registers. Depending on the bus width, either a WORD or a BYTE is written. The affected WORD or BYTE is determined by the endianness of the register (specified in the Host Bus Interface Configuration Register) and the lower address inputs. Individual BYTE (in 16-bit data mode) access is not supported. WRITES FOLLOWING INITIALIZATION Following device initialization, writes from the Host Bus are ignored until after a read cycle is performed.  2020 Microchip Technology Inc. DS00003422A-page 77 LAN9254 WRITES DURING AND FOLLOWING POWER MANAGEMENT During and following any power management mode other than D0, writes from the Host Bus are ignored until after a read cycle is performed. 8.4.2.2 Read Cycles A read cycle occurs when CS and RD are active (or when CS and ENB are active with RD_WR indicating read). The host address is used directly from the Host Bus. At the beginning of the read cycle, the appropriate register is selected and its data is driven onto the data pins. Depending on the bus width, either a WORD or a BYTE is read. For 8 or 16-bit data modes, the returned BYTE or WORD is determined by the endianness of the register (specified in the Host Bus Interface Configuration Register) and the lower host address inputs. 8.4.3 Note: ETHERCAT DIRECT MAPPED MODE While in EtherCAT Direct Mapped mode, non-EtherCAT Core registers continue to be accessed using the methods described in Section 8.4.1.1 and Section 8.4.2.2. While in EtherCAT Direct Mapped mode, Indexed Address Mode Index and Configuration registers continue to be accessed using the methods described in Section 8.4.2.1 and Section 8.4.2.2. While in EtherCAT Direct Mapped mode, the EtherCAT Core registers and Process Data RAM are mapped into the host address space. The host data bus can be 16 or 8-bits wide and the EtherCAT Core interface is set to match. The Host Bus Interface does not perform any BYTE to WORD conversion. While in 16-bit mode, BYTE or WORD access may be performed. 8.4.3.1 EtherCAT Core Register and Process Data RAM Write Access A write cycle starts when CS and WR are active (or when CS and ENB are active with RD_WR indicating write). The host address and byte high enable must be valid at the start of the write cycle. Depending on the configuration, the internal write access is either performed during (non-posted) or following (posted) the host write cycle. If non-posted write is selected, the internal write operation begins at the start of the write cycle with the WAIT_ACK pin indicating wait. When the internal write operation is finished, the WAIT_ACK pin indicates acknowledge allowing the host write cycle to complete. Note that non-posted writes require that the host data be valid at the start of the host write cycle. If posted write is selected, the internal operation begins at the end of the host write cycle. In this case, the external write access is very fast but any access that follows immediately will be delayed by the pending write (as controlled by the WAIT_ACK pin). The maximum device access time is higher in this case. Write cycles may be WORD or BYTE wide. WORD assembly is not performed by the HBI for accesses to the EtherCAT Core. All host accesses are sent to the EtherCAT Core interface. Note: In Indexed 16-bit mode, although the host bus may have byte enables available, they are not used by the device. The byte enables are provided internally as bits in the index register. The host may actually perform a WORD access however the byte enable bits specify the actually bytes affected. WRITES FOLLOWING INITIALIZATION Following device initialization, writes from the Host Bus are ignored until after a read cycle is performed. WRITES DURING AND FOLLOWING POWER MANAGMENT During and following any power management mode other than D0, writes from the Host Bus are ignored until after a read cycle is performed. DS00003422A-page 78  2020 Microchip Technology Inc. LAN9254 8.4.3.2 EtherCAT Core Register and Process Data RAM Read Access A read cycle occurs when CS and RD are active (or when CS and ENB are active with RD_WR indicating read). The host address and byte high enable must be valid at the start of the read cycle. The internal read operation begins at the start of the read cycle with the WAIT_ACK pin indicating wait. Following any potential posted internal write, the read operation is performed and valid data is available from the EtherCAT Core interface. Read data is saved in the EtherCAT Core interface and returned to the HBI where it is multiplexed based on the asynchronous host address. The WAIT_ACK pin changes to indicate acknowledge allowing the host read cycle to complete. Configured within the EtherCAT Core interface, WAIT_ACK deassertion for read accesses can be additionally delayed for 15 ns to provided additional external DATA setup requirements with respect to WAIT_ACK. Read cycles may be WORD or BYTE wide. WORD disassembly is not performed by the HBI for accesses to the EtherCAT Core. All host accesses are sent to the EtherCAT Core interface. 8.4.3.3 Wait / Acknowledge Operation When operating in EtherCAT Direct Mapped mode, the host system must meet the device’s timing access requirements. All read and write cycles must wait for any posted write access to internally complete. All reads and non-posted writes must wait until the internal data cycle completes. The host system may either wait the specified worst case access time, or may use the WAIT_ACK signal. For consistency, reads and writes to the non-EtherCAT Core registers as well as to the Indexed Address Mode Index and Configuration registers follow the same WAIT_ACK operation. Read and write data cycles start with the leading edge of CS, which enables the WAIT_ACK output. The host may start the read or write cycle at any point following or along with CS. If a posted EtherCAT Core write operation is internally pending, the WAIT_ACK will initially indicate wait. In the absence of a pending posted write, WAIT_ACK will initially indicate acknowledge (not busy). For posted writes, if a prior posted write operation was not internally pending or once a prior posted write operation has completed, WAIT_ACK will indicate acknowledge. Once acknowledge is indicated, the host may complete the write cycle on its bus. The write cycle is internally captured and executed by the EtherCAT Core interface. For non-posted writes and for reads, WAIT_ACK indicate wait when the host starts the data portion of the cycle. Once the write or read cycle is completed internally, WAIT_ACK will indicate acknowledge and the host may complete its cycle. WAIT_ACK becomes undriven with the negation of CS. 8.4.4 HOST ENDIANNESS The device supports big and little endian host byte ordering. the endianness selection is provided differently for the different addressing modes. For Multiplexed Address / Data mode, the endianness selection is latched during the address latch cycle. For Demultiplexed Address mode, the endianness selection is an input pin along with the address. For Indexed Address mode, the endianness selection is from the four endianness bits (one for each Index / Data pair and one for Index Register Bypass FIFO Access method) in the Host Bus Interface Configuration Register. When the endianness select is low, host access is little endian and when high, host access is big endian. For multiplexed and demultiplexed modes, the endianness select may be connected to a high-order address line, making endian selection address-based. This highly flexible interface provides mixed endian access for registers and memory for both PIO and host DMA access. Most internal buses are 32-bit with little endian byte ordering used internally. Logic within the Host Bus Interface reorders bytes based on the appropriate endianness bit, and the state of the least significant host address bits. Data path operations for the supported endian configurations and data bus sizes are illustrated in Figure 8-1 and Figure 8-2.  2020 Microchip Technology Inc. DS00003422A-page 79 LAN9254 . FIGURE 8-1: LITTLE ENDIAN BYTE ORDERING 8-BIT LITTLE ENDIAN 16-BIT LITTLE ENDIAN INTERNAL ORDER INTERNAL ORDER MSB 31 MSB LSB 24 23 3 16 15 2 8 7 1 0 31 0 LSB 24 23 16 15 8 3 2 1 A=3 3 A=1 3 2 A=2 2 A= 0 1 0 A=1 1 15 7 0 0 0 HOST DATA BUS 0 A=0 8 7 7 0 HOST DATA BUS . FIGURE 8-2: BIG ENDIAN BYTE ORDERING 8-BIT BIG ENDIAN 16-BIT BIG ENDIAN INTERNAL ORDER INTERNAL ORDER MSB 31 MSB LSB 24 23 3 16 15 2 8 1 7 0 0 31 1 1 A=0 7 8 0 A=2 3 15 1 A= 1 A=0 16 2 0 2 23 3 A=3 A=1 LSB 24 2 15 7 0 0 3 8 7 0 HOST DATA BUS 0 HOST DATA BUS 8.4.4.1 EtherCAT Direct Mapped Mode While in EtherCAT Direct Mapped mode, the EtherCAT Core interface is 8-bit or 16-bit wide matching the host bus width selection. Endianess in 8-bit mode is not applicable (the upper 8 bits of the internal data bus are unused). When 16-bits in width, little endian byte ordering is used internally. The Host Bus Interface swaps the low and high order bytes if the host access is big endian. DS00003422A-page 80  2020 Microchip Technology Inc. LAN9254 Note: The byte enables BE1/BE0 always follow the host bus pins, therefore in big endian mode, the byte enables are also swapped. FIGURE 8-3: BYTE ORDERING - ETHERCAT DIRECT MAPPED MODE, ETHERCAT CORE 8-BIT n/a ENDIAN 16-BIT LITTLE ENDIAN 16-BIT BIG ENDIAN INTERNAL ORDER INTERNAL ORDER INTERNAL ORDER MSB 7 0 15 MSB LSB 8 7 0 1 0 be1 be0 15 LSB 8 7 0 be1 1 7 0 HOST DATA BUS  2020 Microchip Technology Inc. 15 0 8 7 HOST DATA BUS 0 1 be0 0 0 15 1 8 7 0 HOST DATA BUS DS00003422A-page 81 LAN9254 8.5 Functional Timing Diagrams - Legacy Mode The following sections present functional timing diagrams while in LAN9252 compatible Legacy mode (i.e. not in EtherCAT Direct Mapped mode). Byte Enables BE1/BE0 are not used in Legacy mode and are not shown. If enabled for output, WAIT_ACK is held inactive (ACK) and is shown as such. 8.5.1 MULTIPLEXED ADDRESSING MODE FUNCTIONAL TIMING DIAGRAMS The following timing diagrams illustrate example multiplexed addressing mode read and write cycles for various address/data configurations and bus sizes. These diagrams do not cover every supported host bus permutation, but are selected to detail the main configuration differences (bus size, dual/single phase address latching) within the multiplexed addressing mode of operation. The following should be noted for the timing diagrams in this section: • The diagrams in this section depict active-low push-pull WAIT_ACK and active-high ALEHI/ALELO, CS, RD, and WR signals. The polarities of these signals are selectable via the HBI WAIT_ACK Polarity, HBI ALE Polarity, HBI Chip Select Polarity, HBI Read, Read/Write Polarity, and HBI Write, Enable Polarity bits of the PDI Configuration Register (HBI Modes), respectively. Refer to Section 8.2.2, "Control Line Polarity and Buffer Type," on page 69 for additional details. • The diagrams in this section depict little endian byte ordering. However, dynamic big and little endianess are supported via the endianess signal. Endianess changes only the order of the bytes involved, and not the overall timing requirements. Refer to Section 8.3.1.4, "Endianness Select to Address / Data Pin Mapping," on page 70 for additional information. • The diagrams in Section 8.5.1.1, "Dual Phase Address Latching" and Section 8.5.1.2, "Single Phase Address Latching" utilize RD and WR signals. Alternative RD_WR and ENB signaling is also supported, as shown in Section 8.5.1.3, "RD_WR / ENB Control Mode Examples". The HBI read/write mode is selectable via the HBI Read/ Write Mode bit of the PDI Configuration Register (HBI Modes). The polarities of the RD_WR and ENB signals are selectable via the HBI Read, Read/Write Polarity and HBI Write, Enable Polarity bits of the PDI Configuration Register (HBI Modes). • Qualification of the ALELO and/or ALEHI with the CS signal is selectable via the HBI ALE Qualification bit of the PDI Configuration Register (HBI Modes). Refer to Section 8.3.1.1, "Single Phase Address Latching," on page 69 and Section 8.3.1.2, "Dual Phase Address Latching," on page 69 for additional information. • In dual phase address latching mode, the ALEHI and ALELO cycles can be in any order. Either or both ALELO and ALEHI cycles may be skipped and the device retains the last latched address. • In single phase address latching mode, the ALELO cycle may be skipped and the device retains the last latched address. Note: In 8 and 16-bit modes, the ALELO cycle is normally not skipped since sequential BYTEs or WORDs are accessed in order to satisfy a complete DWORD cycle. However, there are registers for which a single BYTE or WORD access is allowed, in which case multiple accesses to these registers may be performed without the need to re-latch the repeated address. • For 16 and 8-bit modes, consecutive address cycles must be within the same DWORD until the DWORD is completely accessed (with the register exceptions noted above). Although BYTEs and WORDs can be accessed in any order, the diagrams in this section depict accessing the lower address BYTE or WORD first. DS00003422A-page 82  2020 Microchip Technology Inc. LAN9254 8.5.1.1 Dual Phase Address Latching The figures in this section detail read and write operations in multiplexed addressing mode with dual phase address latching for 16 and 8-bit modes. 16-BIT READ The WORD address is latched sequentially from AD[7:0]. A read on D[15:8] and AD[15:0] follows. The cycle is repeated for the other 16-bits of the DWORD. FIGURE 8-4: MULTIPLEXED ADDRESSING WITH DUAL PHASE LATCHING - 16-BIT READ ALELO ALEHI CS Optional Optional RD WR WAIT_ACK D[15:8] AD[7:0] Data 15:8 Address Low Address High Data 7:0 Data 31:24 Address+1 Low Address High Data 23:16 16-BIT READ WITH SUPPRESSED ALEHI The WORD address is latched sequentially from AD[7:0]. A read on D[15:8] and AD[7:0] follows. The lower address is then updated to access the opposite WORD. FIGURE 8-5: MULTIPLEXED ADDRESSING WITH DUAL PHASE LATCHING - 16-BIT READ W/ O ALEHI ALELO ALEHI CS Optional Optional RD WR WAIT_ACK D[15:8] AD[7:0] Data 15:8 Address Low  2020 Microchip Technology Inc. Address High Data 7:0 Data 31:24 Address+1 Low Data 23:16 DS00003422A-page 83 LAN9254 16-BIT WRITE The WORD address is latched sequentially from AD[7:0]. A write on D[15:8] and AD[7:0] follows. The cycle is repeated for the other 16-bits of the DWORD. FIGURE 8-6: MULTIPLEXED ADDRESSING WITH DUAL PHASE LATCHING - 16-BIT WRITE ALELO ALEHI CS Optional Optional RD WR WAIT_ACK D[15:8] AD[7:0] Data 15:8 Address Low Address High Data 7:0 Data 31:24 Address+1 Low Address High Data 23:16 16-BIT WRITE WITH SUPRESSED ALEHI The WORD address is latched sequentially from AD[7:0]. A write on D[15:8] and AD[7:0] follows. The lower address is then updated to access the opposite WORD. FIGURE 8-7: MULTIPLEXED ADDRESSING WITH DUAL PHASE LATCHING - 16-BIT WRITE W/ O ALEHI ALELO ALEHI CS Optional Optional RD WR WAIT_ACK D[15:8] AD[7:0] DS00003422A-page 84 Data 15:8 Address Low Address High Data 7:0 Data 31:24 Address+1 Low Data 23:16  2020 Microchip Technology Inc. LAN9254 16-BIT READ AND WRITES TO CONSTANT ADDRESS The WORD address is latched sequentially from AD[7:0]. A mix of reads and writes on D[15:8] and AD[7:0] follows. Note: Generally, two 16-bit reads to opposite WORDs of the same DWORD are required, with at least the lower address changing using ALELO. 16-bit reads and writes to the same WORD is a special case. FIGURE 8-8: MULTIPLEXED ADDRESSING WITH DUAL PHASE LATCHING - 16-BIT READS AND WRITES CONSTANT ADDRESS ALELO ALEHI CS Optional RD WR WAIT_ACK D[15:8] AD[7:0] Address Low Address High Data 15:8 Data 15:8 Data 15:8 Data 15:8 Data 15:8 Data 7:0 Data 7:0 Data 7:0 Data 7:0 Data 7:0 8-BIT READ The BYTE address is latched sequentially from AD[7:0]. A read on AD[7:0] follows. D[15:8] pins are not used or driven. The cycle is repeated for the other BYTEs of the DWORD. FIGURE 8-9: MULTIPLEXED ADDRESSING WITH DUAL PHASE LATCHING - 8-BIT READ ALELO ALEHI CS Optional Optional Optional Optional RD WR WAIT_ACK D[15:8] AD[7:0] Hi-Z Address Low Address High Data 7:0  2020 Microchip Technology Inc. Address+1 Low Address High Data 15:8 Address+2 Low Address High Data 23:16 Address+3 Low Address High Data 31:24 DS00003422A-page 85 LAN9254 8-BIT READ WITH SUPRESSED ALEHI The BYTE address is latched sequentially from AD[7:0]. A read on AD[7:0] follows. D[15:8] pins are not used or driven. The lower address is then updated to access the other BYTEs. FIGURE 8-10: MULTIPLEXED ADDRESSING WITH DUAL PHASE LATCHING - 8-BIT READ W/O ALEHI ALELO ALEHI CS Optional Optional Optional Optional RD WR WAIT_ACK D[15:8] AD[7:0] Hi-Z Address Low Address High Data 7:0 Address+1 Low Data 15:8 Address+2 Low Data 23:16 Address+3 Low Data 31:24 8-BIT WRITE The BYTE address is latched sequentially from AD[7:0]. A write on AD[7:0] follows. D[15:8] pins are not used or driven. The cycle is repeated for the other BYTEs of the DWORD. FIGURE 8-11: MULTIPLEXED ADDRESSING WITH DUAL PHASE LATCHING - 8-BIT WRITE ALELO ALEHI CS Optional Optional Optional Optional RD WR WAIT_ACK D[15:8] AD[7:0] Hi-Z Address Low Address High DS00003422A-page 86 Data 7:0 Address+1 Low Address High Data 15:8 Address+2 Low Address High Data 23:16 Address+3 Low Address High Data 31:24  2020 Microchip Technology Inc. LAN9254 8-BIT WRITE WITH SUPRESSED ALEHI The BYTE address is latched sequentially from AD[7:0]. A write on AD[7:0] follows. D[15:8] pins are not used or driven. The lower address is then updated to access the other BYTEs. FIGURE 8-12: MULTIPLEXED ADDRESSING WITH DUAL PHASE LATCHING - 8-BIT WRITE W/ O ALEHI ALELO ALEHI CS Optional Optional Optional Optional RD WR WAIT_ACK Hi-Z D[15:8] AD[7:0] Address Low Address High Data 7:0 Address+1 Low Data 15:8 Address+2 Low Data 23:16 Address+3 Low Data 31:24 8-BIT READS AND WRITES TO CONSTANT ADDRESS The BYTE address is latched sequentially from AD[7:0]. A mix of reads and writes on AD[7:0] follows. D[15:8] pins are not used or driven. Note: Generally, four 8-bit reads to opposite BYTEs of the same DWORD are required, with at least the lower address changing using ALELO. 8-bit reads and writes to the same BYTE is a special case. FIGURE 8-13: MULTIPLEXED ADDRESSING WITH DUAL PHASE LATCHING - 8-BIT READS AND WRITES CONSTANT ADDRESS ALELO ALEHI CS Optional RD WR WAIT_ACK D[15:8] AD[7:0] Hi-Z Address Low Address High  2020 Microchip Technology Inc. Data 7:0 Data 7:0 Data 7:0 Data 7:0 Data 7:0 DS00003422A-page 87 LAN9254 8.5.1.2 Single Phase Address Latching The figures in this section detail multiplexed addressing mode with single phase addressing for 16 and 8-bit modes of operation. 16-BIT READ The WORD address is latched simultaneously from AD[7:0] and AD[15:8]. A read on AD[15:0] follows. The cycle is repeated for the other 16-bits of the DWORD. FIGURE 8-14: MULTIPLEXED ADDRESSING WITH SINGLE PHASE LATCHING - 16-BIT READ ALELO ALEHI CS Optional Optional RD WR WAIT_ACK AD[15:8] Address High Data 15:8 Address High Data 31:24 AD[7:0] Address Low Data 7:0 Address+1 Low Data 23:16 16-BIT WRITE The WORD address is latched simultaneously from AD[7:0] and AD[15:8]. A write on AD[15:0] follows. The cycle is repeated for the other 16-bits of the DWORD. FIGURE 8-15: MULTIPLEXED ADDRESSING WITH SINGLE PHASE LATCHING - 16-BIT WRITE ALELO ALEHI CS Optional Optional RD WR WAIT_ACK DS00003422A-page 88 AD[15:8] Address High Data 15:8 Address High Data 31:24 AD[7:0] Address Low Data 7:0 Address+1 Low Data 23:16  2020 Microchip Technology Inc. LAN9254 16-BIT READS AND WRITES TO CONSTANT ADDRESS The WORD address is latched simultaneously from AD[7:0] and AD[15:8]. A mix of reads and writes on AD[15:0] follows. Note: Generally, two 16-bit reads to opposite WORDs of the same DWORD are required. 16-bit reads and writes to the same WORD is a special case.  2020 Microchip Technology Inc. DS00003422A-page 89 LAN9254 FIGURE 8-16: MULTIPLEXED ADDRESSING WITH SINGLE PHASE LATCHING - 16-BIT READS AND WRITES CONSTANT ADDRESS ALELO ALEHI CS Optional RD WR WAIT_ACK AD[15:8] Address High Data 15:8 Data 15:8 Data 15:8 Data 15:8 Data 15:8 AD[7:0] Address Low Data 7:0 Data 7:0 Data 7:0 Data 7:0 Data 7:0 8-BIT READ The BYTE address is latched simultaneously from AD[7:0] and AD[15:8]. A read on AD[7:0] follows. AD[15:8] pins are not used or driven for the data phase as the host could potentially continue to drive the upper address on these signals. The cycle is repeated for the other BYTEs of the DWORD. FIGURE 8-17: MULTIPLEXED ADDRESSING WITH SINGLE PHASE LATCHING - 8-BIT READ ALELO ALEHI CS Optional Optional Optional Optional AD[15:8] Address High Address High Address High Address High AD[7:0] Address Low RD WR WAIT_ACK DS00003422A-page 90 Data 7:0 Address+1 Low Data 15:8 Address+2 Low Data 23:16 Address+3 Low Data 31:24  2020 Microchip Technology Inc. LAN9254 8-BIT WRITE The BYTE address is latched simultaneously from AD[7:0] and AD[15:8]. A write on AD[7:0] follows. AD[15:8] pins are not used or driven for the data phase as the host could potentially continue to drive the upper address on these signals. The cycle is repeated for the other BYTEs of the DWORD. FIGURE 8-18: MULTIPLEXED ADDRESSING WITH SINGLE PHASE LATCHING - 8-BIT WRITE ALELO ALEHI CS Optional Optional Optional Optional RD WR WAIT_ACK AD[15:8] Address High AD[7:0] Address Low Address High Data 7:0 Address+1 Low Address High Data 15:8 Address+2 Low Address High Data 23:16 Address+3 Low Data 31:24 8-BIT READS AND WRITES TO CONSTANT ADDRESS The BYTE address is latched simultaneously from AD[7:0] and AD[15:8]. A mix of reads and writes on AD[7:0] follows. AD[15:8] pins are not used or driven for the data phase as the host could potentially continue to drive the upper address on these signals. Note: Generally, four 8-bit reads to opposite BYTEs of the same DWORD are required. 8-bit reads and writes to the same BYTE is a special case. FIGURE 8-19: MULTIPLEXED ADDRESSING WITH SINGLE PHASE LATCHING - 8-BIT READS AND WRITES CONSTANT ADDRESS ALELO ALEHI CS Optional RD WR WAIT_ACK AD[15:8] Address High AD[7:0] Address Low  2020 Microchip Technology Inc. Data 7:0 Data 7:0 Data 7:0 Data 7:0 Data 7:0 DS00003422A-page 91 LAN9254 8.5.1.3 RD_WR / ENB Control Mode Examples The figures in this section detail read and write operations utilizing the alternative RD_WR and ENB signaling. The HBI read/write mode is selectable via the HBI Read/Write Mode bit of the PDI Configuration Register (HBI Modes). Note: The examples in this section detail 16-bit mode with dual phase latching. However, the RD_WR and ENB signaling can be used identically in all other multiplexed addressing modes of operation as well as in 8-bit modes. The examples in this section show the ENB signal active-high and the RD_WR signal low for read and high for write. The polarities of the RD_WR and ENB signals are selectable via the HBI Read, Read/Write Polarity and HBI Write, Enable Polarity bits of the PDI Configuration Register (HBI Modes). 16-BIT FIGURE 8-20: MULTIPLEXED ADDRESSING RD_WR / ENB CONTROL MODE EXAMPLE - 16BIT READ ALELO ALEHI CS Optional Optional RD_WR ENB WAIT_ACK AD[15:8] AD[7:0] DS00003422A-page 92 Data 15:8 Address Low Address High Data 7:0 Data 31:24 Address+1 Low Address High Data 23:16  2020 Microchip Technology Inc. LAN9254 FIGURE 8-21: MULTIPLEXED ADDRESSING RD_WR / ENB CONTROL MODE EXAMPLE - 16BIT WRITE ALELO ALEHI CS Optional Optional RD_WR ENB WAIT_ACK AD[15:8] AD[7:0] 8.5.2 Data 15:8 Address Low Address High Data 7:0 Data 31:24 Address+1 Low Address High Data 23:16 DEMULTIPLEXED ADDRESSING MODE FUNCTIONAL TIMING DIAGRAMS The following timing diagrams illustrate example demultiplexed addressing mode read and write cycles for various configurations and bus sizes. These diagrams do not cover every supported host bus permutation, but are selected to detail the main configuration differences (bus size) within the demultiplexed addressing mode of operation. The following should be noted for the timing diagrams in this section: • The diagrams in this section depict active-low push-pull WAIT_ACK and active-high CS, RD, and WR signals. The polarities of these signals are selectable via the HBI WAIT_ACK Polarity, HBI Chip Select Polarity, HBI Read, Read/Write Polarity, and HBI Write, Enable Polarity bits of the PDI Configuration Register (HBI Modes), respectively. Refer to Section 8.2.2, "Control Line Polarity and Buffer Type," on page 69 for additional details. • The diagrams in this section depict little endian byte ordering. However, dynamic big and little endianness are supported via the endianness signal. Endianness changes only the order of the bytes involved, and not the overall timing requirements. Refer to Section 8.4.4, "Host Endianness," on page 79 for additional information. • The diagrams in this section utilize RD and WR signals. Alternative RD_WR and ENB signaling is also supported, as shown in Section 8.5.2.1, "RD_WR / ENB Control Mode Examples". The HBI read/write mode is selectable via the HBI Read/Write Mode bit of the PDI Configuration Register. The polarities of the RD_WR and ENB signals are selectable via the HBI Read, Read/Write Polarity and the HBI Write, Enable Polarity configuration inputs. • For 16 and 8-bit modes, consecutive address cycles must be within the same DWORD until the DWORD is completely accessed (with the register exceptions noted above). Although BYTEs and WORDs can be accessed in any order, the diagrams in this section depict accessing the lower address BYTE or WORD first.  2020 Microchip Technology Inc. DS00003422A-page 93 LAN9254 16-BIT READ The WORD address and endianess is input concurrently with the control. Read data is driven on D[15:0] during RD active. The cycle is repeated for the other 16-bits of the DWORD. FIGURE 8-22: DEMULTIPLEXED ADDRESSING - 16-BIT READ CS RD WR END_SEL endianess endianess Address Address+1 D[15:8] Data 15:8 Data 31:24 D[7:0] Data 7:0 Data 23:16 A[15:1] WAIT_ACK 16-BIT WRITE The WORD address and endianess is input concurrently with the control. Data on D[15:0] is written on the trailing edge of WR. The cycle is repeated for the other 16-bits of the DWORD. FIGURE 8-23: DEMULTIPLEXED ADDRESSING - 16-BIT WRITE CS RD WR END_SEL A[15:1] endianess endianess Address Address+1 WAIT_ACK DS00003422A-page 94 D[15:8] Data 15:8 Data 31:24 D[7:0] Data 7:0 Data 23:16  2020 Microchip Technology Inc. LAN9254 8-BIT READ The BYTE address and endianess is input concurrently with the control. Read data is driven on D[7:0] during RD active. D[15:8] pins are not used or driven. The cycle is repeated for the other BYTEs of the DWORD. FIGURE 8-24: DEMULTIPLEXED ADDRESSING - 8-BIT READ CS RD WR END_SEL A[15:0] endianess endianess endianess endianess Address Address+1 Address+2 Address+3 Data 23:16 Data 31:24 WAIT_ACK D[15:8] D[7:0] Hi-Z Data 7:0 Data 15:8 8-BIT WRITE The BYTE address and endianess is input concurrently with the control. Data on D[7:0] is written on the trailing edge of WR. D[15:8] pins are not used or driven. The cycle is repeated for the other BYTEs of the DWORD. FIGURE 8-25: DEMULTIPLEXED ADDRESSING - 8-BIT WRITE CS RD WR END_SEL A[15:0] endianess endianess endianess endianess Address Address+1 Address+2 Address+3 WAIT_ACK D[15:8] D[7:0]  2020 Microchip Technology Inc. Hi-Z Data 7:0 Data 15:8 Data 23:16 Data 31:24 DS00003422A-page 95 LAN9254 8.5.2.1 RD_WR / ENB Control Mode Examples The figures in this section detail read and write operations utilizing the alternative RD_WR and ENB signaling. The HBI read/write mode is selectable via the HBI Read/Write Mode bit of the PDI Configuration Register (HBI Modes). Note: The examples in this section detail 16-bit mode. However, the RD_WR and ENB signaling can be used identically in 8-bit modes. The examples in this section show the ENB signal active-high and the RD_WR signal low for read and high for write. The polarities of the RD_WR and ENB signals are selectable via the HBI Read, Read/Write Polarity and HBI Write, Enable Polarity bits of the PDI Configuration Register (HBI Modes). 16-BIT FIGURE 8-26: DEMULTIPLEXED ADDRESSING RD_WR / ENB CONTROL MODE EXAMPLE 16-BIT WRITE/READ CS RD_WR ENB END_SEL A[15:1] endianess endianess endianess endianess Address Address+1 Address Address+1 WAIT_ACK DS00003422A-page 96 D[15:8] Data 15:8 Data 31:24 Data 15:8 Data 31:24 D[7:0] Data 7:0 Data 23:16 Data 7:0 Data 23:16  2020 Microchip Technology Inc. LAN9254 8.5.3 INDEXED ADDRESS MODE FUNCTIONAL TIMING DIAGRAMS The following timing diagrams illustrate example indexed (non-multiplexed) addressing mode read and write cycles for various configurations and bus sizes. These diagrams do not cover every supported host bus permutation, but are selected to detail the main configuration differences (bus size, Configuration / Index / Data cycles) within the indexed addressing mode of operation. The following should be noted for the timing diagrams in this section: • The diagrams in this section depict active-low push-pull WAIT_ACK and active-high CS, RD, and WR signals. The polarities of these signals are selectable via the HBI WAIT_ACK Polarity, HBI Chip Select Polarity, HBI Read, Read/Write Polarity, and HBI Write, Enable Polarity bits of the PDI Configuration Register (HBI Modes), respectively. Refer to Section 8.2.2, "Control Line Polarity and Buffer Type," on page 69 for additional details. • The diagrams in this section depict little endian byte ordering. However, configurable big and little endianness are supported via the endianness bits in the Host Bus Interface Configuration Register. Endianness changes only the order of the bytes involved, and not the overall timing requirements. Refer to Section 8.4.4, "Host Endianness," on page 79 for additional information. • The diagrams in this section utilize RD and WR signals. Alternative RD_WR and ENB signaling is also supported, as shown in Section 8.5.3.4, "RD_WR / ENB Control Mode Examples". The HBI read/write mode is selectable via the HBI Read/Write Mode bit of the PDI Configuration Register. The polarities of the RD_WR and ENB signals are selectable via the HBI Read, Read/Write Polarity and HBI Write, Enable Polarity configuration inputs. • For 16 and 8-bit modes, consecutive address cycles must be within the same DWORD until the DWORD is completely accessed (some internal registers are excluded from this requirement). Although BYTEs and WORDs can be accessed in any order, the diagrams in this section depict accessing the lower address BYTE or WORD first. 8.5.3.1 Configuration Register Data Access The figures in this section detail configuration register read and write operations in indexed address mode for 16 and 8bit modes. 16-BIT READ AND WRITE For writes, the address is set to access the lower WORD of the Configuration Register. Data on D[15:0] is written on the trailing edge of WR. The cycle repeats for the upper WORD of the Configuration Register, if desired by the host. For reads, the address is set to access the lower WORD of the Configuration Register. Read data is driven on D[15:0] during RD active. The cycle repeats for the upper WORD of the Configuration Register, if desired by the host. FIGURE 8-27: INDEXED ADDRESSING CONFIGURATION REGISTER ACCESS - 16-BIT WRITE/ READ A[4:1] CONFIG,1'b0 CONFIG,1'b1 CONFIG,1'b0 CONFIG,1'b1 CS RD WR WAIT_ACK D[15:8] D[7:0]  2020 Microchip Technology Inc. Data 15:8 Data 31:24 Data 15:8 Data 31:24 Data 7:0 Data 23:16 Data 7:0 Data 23:26 DS00003422A-page 97 LAN9254 8-Bit READ AND WRITE For writes, the address is set to access the lower BYTE of the Configuration Register. Data on D[7:0] is written on the trailing edge of WR. D[15:8] pins are not used or driven. The cycle repeats for the remaining BYTEs of the Configuration Register, if desired by the host. For reads, the address is set to access the lower BYTE of the Configuration Register. Read data is driven on D[7:0] during RD active. D[15:8] pins are not used or driven. The cycle repeats for the remaining BYTEs of the Configuration Register, if desired by the host. FIGURE 8-28: A[4:0] INDEXED ADDRESSING CONFIGURATION REGISTER ACCESS - 8-BIT WRITE/ READ CONFIG,2'b00 CONFIG,2'b01 CONFIG,2'b10 CONFIG,2'b11 CONFIG,2'b00 CONFIG,2'b01 CONFIG,2'b10 CONFIG,2'b11 Data 7:0 Data 15:8 Data 23:16 Data 31:24 CS RD WR WAIT_ACK D[15:8] D[7:0] 8.5.3.2 Hi-Z Data 7:0 Data 15:8 Data 23:16 Data 31:24 Index Register Data Access The figures in this section detail index register read and write operations in indexed address mode for 16 and 8-bit modes. 16-BIT READ AND WRITE For writes, the address is set to access the lower WORD of one of the Index Registers. Data on D[15:0] is written on the trailing edge of WR. The cycle repeats for the upper WORD of the Index Register, if desired by the host. For reads, the address is set to access the lower WORD of one of the Index Registers. Read data is driven on D[15:0] during RD active. The cycle repeats for the upper WORD of the Index Register, if desired by the host. Note: The upper BYTE of Index Register is reserved and don’t care. FIGURE 8-29: INDEXED ADDRESSING INDEX REGISTER ACCESS - 16-BIT WRITE/READ A[4:1] INDEX,1'b0 INDEX,1'b1 INDEX,1'b0 INDEX,1'b1 CS RD WR WAIT_ACK DS00003422A-page 98 D[15:8] Index 15:8 8'hXX Index 15:8 8'hXX D[7:0] Index 7:0 Index 23:16 Index 7:0 Index 23:16  2020 Microchip Technology Inc. LAN9254 8-BIT READ AND WRITE For writes, the address is set to access the lower BYTE of one of the Index Registers. Data on D[7:0] is written on the trailing edge of WR. D[15:8] pins are not used or driven. The cycle repeats for the remaining BYTEs of the Index Register, if desired by the host. For reads, the address is set to access the lower BYTE of one of the Index Registers. Read data is driven on D[7:0] during RD active. D[15:8] pins are not used or driven. The cycle repeats for the remaining BYTEs of the Index Register, if desired by the host. Note: The upper BYTE of Index Register is reserved and don’t care. Therefore reads and writes to that BYTE is not useful. FIGURE 8-30: A[4:0] INDEX,2'b00 INDEXED ADDRESSING INDEX REGISTER ACCESS - 8-BIT WRITE/READ INDEX,2'b01 INDEX,2'b10 INDEX,2'b11 INDEX,2'b00 INDEX,2'b01 INDEX,2'b10 INDEX,2'b11 Index 7:0 Index 15:8 Index 23:16 8'hXX CS RD WR WAIT_ACK D[15:8] D[7:0] Hi -Z Index 7:0 Index 15:8  2020 Microchip Technology Inc. Index 23:16 8'hXX DS00003422A-page 99 LAN9254 8.5.3.3 Internal Register Data Access The figures in this section detail typical internal register data read and write cycles in indexed address mode for 16 and 8-bit modes. This includes an index register write followed by either a data read or write. 16-BIT READ One of the Index Registers is set as described above. The address is then set to access the lower WORD of the corresponding Data Register. Read data is driven on D[15:0] during RD active. The cycle repeats for the upper WORD of the Data Register. FIGURE 8-31: INDEXED ADDRESSING INTERNAL REGISTER DATA ACCESS - 16-BIT READ A[4:1] INDEX,1'b0 INDEX,1'b1 DATA,1'b0 DATA,1'b1 CS RD WR WAIT_ACK D[15:8] Index 15:8 8'hXX Data 15:8 Data 31:24 D[7:0] Index 7:0 Index 23:16 Data 7:0 Data 23:16 16-BIT WRITE One of the Index Registers is set as described above. The address is then set to access the corresponding Data Register. Data on D[15:0] is written on the trailing edge of WR. The cycle repeats for the upper WORD of the Data Register. FIGURE 8-32: INDEXED ADDRESSING INTERNAL REGISTER DATA ACCESS - 16-BIT WRITE A[4:1] INDEX,1'b0 INDEX,1'b1 DATA,1'b0 DATA,1'b1 CS RD WR WAIT_ACK D[15:8] Index 15:8 8'hXX Data 15:8 Data 31:24 D[7:0] Index 7:0 Index 23:16 Data 7:0 Data 23:16 DS00003422A-page 100  2020 Microchip Technology Inc. LAN9254 16-BIT READ AND WRITES TO CONSTANT INTERNAL ADDRESS One of the Index Registers is set as described above. A mix of reads and writes on D[15:0] follows, with each read or write consisting of an access to both the lower and upper WORDs of the corresponding Data Register. FIGURE 8-33: A[4:1] INDEXED ADDRESSING INTERNAL REGISTER DATA ACCESS - 16-BIT READS AND WRITES CONSTANT ADDRESS INDEX,1'b0 INDEX,1'b1 DATA,1'b0 DATA,1'b1 DATA,1'b0 DATA,1'b1 DATA,1'b0 DATA,1'b1 DATA,1'b0 DATA,1'b1 DATA,1'b0 DATA,1'b1 CS RD WR WAIT_ACK D[15:8] D[7:0] Index 15:8 8'hXX Data 15:8 Data 31:24 Data 15:8 Data 31:24 Data 15:8 Data 31:24 Data 15:8 Data 31:24 Data 15:8 Data 31:24 Index 7:0 Index 23:16 Data 7:0 Data 23:16 Data 7:0 Data 23:16 Data 7:0 Data 23:16 Data 7:0 Data 23:16 Data 7:0 Data 23:16 8-BIT READ One of the Index Registers is set as described above. The address is then set to access the lower BYTE of the corresponding Data Register. Read data is driven on D[7:0] during RD active. D[15:8] pins are not used or driven. The cycle repeats for the remaining BYTEs of the Data Register. FIGURE 8-34: A[4:0] INDEXED ADDRESSING INTERNAL REGISTER DATA ACCESS - 8-BIT READ INDEX,2'b00 INDEX,2'b01 INDEX,2'b10 INDEX,2'b11 DATA,2'b00 DATA,2'b01 DATA,2'b10 DATA,2'b11 Data 7:0 Data 15:8 Data 23:16 Data 31:24 CS RD WR WAIT_ACK D[15:8] Hi-Z D[7:0] Index 7:0 Index 15:8 Index 23:16 8'hXX 8-BIT WRITE One of the Index Registers is set as described above. The address is then set to access the corresponding Data Register. Data on D[7:0] is written on the trailing edge of WR. D[15:8] pins are not used or driven. The cycle repeats for the remaining BYTEs of the Data Register. FIGURE 8-35: A[4:0] INDEXED ADDRESSING INTERNAL REGISTER DATA ACCESS - 8-BIT WRITE INDEX,2'b00 INDEX,2'b01 INDEX,2'b10 INDEX,2'b11 DATA,2'b00 DATA,2'b01 DATA,2'b10 DATA,2'b11 CS RD WR WAIT_ACK D[15:8] D[7:0] Hi-Z Index 7:0 Index 15:8  2020 Microchip Technology Inc. Index 23:16 8'hXX Data 7:0 Data 15:8 Data 23:16 Data 31:24 DS00003422A-page 101 LAN9254 8-BIT READS AND WRITES TO CONSTANT INTERNAL ADDRESS One of the Index Registers is set as described above. A mix of reads and writes on D[7:0] follows, with each read or write consisting of an access to all four BYTES of the corresponding Data Register. FIGURE 8-36: A[4:0] INDEX,2'b00 INDEXED ADDRESSING INTERNAL REGISTER DATA ACCESS - 8-BIT READS AND WRITES CONSTANT ADDRESS INDEX,2'b01 INDEX,2'b10 INDEX,2'b11 DATA,2'b00 DATA,2'b01 DATA,2'b10 DATA,2'b10 DATA,2'b11 Data 23:16 Data 31:24 DATA,2'b00 DATA,2'b01 DATA,2'b10 CS RD WR WAIT_ACK D[15:8] D[7:0] A[4:0] Hi-Z Index 7:0 Index 15:8 DATA,2'b10 Index 23:16 DATA,2'b11 8'hXX Data 7:0 Data 15:8 Data 23:16 DATA,2'b00 DATA,2'b01 DATA,2'b10 DATA,2'b10 DATA,2'b11 Data 7:0 Data 15:8 Data 23:16 Data 23:16 Data 31:24 Data 7:0 Data 15:8 Data 23:16 CS RD WR WAIT_ACK D[15:8] D[7:0] Data 23:16 DS00003422A-page 102 Data 31:24  2020 Microchip Technology Inc. LAN9254 8.5.3.4 RD_WR / ENB Control Mode Examples The figures in this section detail read and write operations utilizing the alternative RD_WR and ENB signaling. The HBI read/write mode is selectable via the HBI Read/Write Mode bit of the PDI Configuration Register (HBI Modes). Note: The examples in this section detail 16-bit mode access to an Index Register. However, the RD_WR and ENB signaling can be used identically for all other accesses including Index Register Bypass FIFO Access as well as in 8-bit modes. The examples in this section show the ENB signal active-high and the RD_WR signal low for read and high for write. The polarities of the RD_WR and ENB signals are selectable via the HBI Read, Read/Write Polarity and HBI Write, Enable Polarity bits of the PDI Configuration Register (HBI Modes). 16-BIT FIGURE 8-37: INDEXED ADDRESSING RD_WR / ENB CONTROL MODE EXAMPLE - 16-BIT WRITE/READ A[4:1] INDEX,1'b0 INDEX,1'b1 INDEX,1'b0 INDEX,1'b1 CS RD_WR ENB WAIT_ACK D[15:8] Index 15:8 8'hXX Index 15:8 8'hXX D[7:0] Index 7:0 Index 23:16 Index 7:0 Index 23:16  2020 Microchip Technology Inc. DS00003422A-page 103 LAN9254 8.6 Functional Timing Diagrams - EtherCAT Direct Mapped Mode The following sections present functional timing diagrams while in EtherCAT Direct Mapped mode. 8.6.1 MULTIPLEXED ADDRESSING MODE FUNCTIONAL TIMING DIAGRAMS The following timing diagrams illustrate example multiplexed addressing mode read and write cycles for various address/data configurations and bus sizes. These diagrams do not cover every supported host bus permutation, but are selected to detail the main configuration differences (bus size, dual/single phase address latching) within the multiplexed addressing mode of operation. The following should be noted for the timing diagrams in this section: • The diagrams in this section depict active-low push-pull WAIT_ACK and active-high BE1/0, ALEHI/ALELO, CS, RD, and WR signals. The polarities of these signals are selectable via the HBI WAIT_ACK Polarity, HBI BE1/BE0 Polarity, HBI ALE Polarity, HBI Chip Select Polarity, HBI Read, Read/Write Polarity, and HBI Write, Enable Polarity bits of the PDI Configuration Register and Extended PDI Configuration Register (HBI Modes), respectively. Refer to Section 8.2.2, "Control Line Polarity and Buffer Type," on page 69 for additional details. • The diagrams in this section depict little endian byte ordering. However, dynamic big and little endianness are supported for 16-bit mode via the endianess signal. Endianness changes only the order of the bytes involved, and not the overall timing requirements. Refer to Section 8.4.4, "Host Endianness," on page 79 for additional information. • The diagrams in this section utilize RD and WR signals. Alternative RD_WR and ENB signaling is also supported, similar to the multiplexed examples in Section 8.5.1.3, "RD_WR / ENB Control Mode Examples". The HBI read/ write mode is selectable via the HBI Read/Write Mode bit of the PDI Configuration Register. The polarities of the RD_WR and ENB signals are selectable via the HBI Read, Read/Write Polarity and HBI Write, Enable Polarity configuration inputs. • Qualification of the ALELO and/or ALEHI with the CS signal is selectable via the HBI ALE Qualification bit of the PDI Configuration Register. Refer to Section 8.3.1.1, "Single Phase Address Latching," on page 69 and Section 8.3.1.2, "Dual Phase Address Latching," on page 69 for additional information. • In dual phase address latching mode, the ALEHI and ALELO cycles can be in any order. Either or both ALELO and ALEHI cycles may be skipped and the device retains the last latched address. • In single phase address latching mode, the ALELO cycle may be skipped and the device retains the last latched address. Note: While accessing non-EtherCAT Core registers the ALELO cycle is normally not skipped since sequential BYTEs or WORDs are accessed in order to satisfy a complete DWORD cycle. However, there are registers for which a single BYTE or WORD access is allowed, in which case multiple accesses to these registers may be performed without the need to re-latch the repeated address. • While accessing non-EtherCAT Core registers, for proper DWORD assembly, consecutive address cycles must be within the same DWORD until the DWORD is completely accessed (with the register exceptions noted above). Although BYTEs and WORDs can be accessed in any order, the diagrams in this section depict accessing the lower address BYTE or WORD first. • While accessing non-EtherCAT Core registers in 16-bit mode, all cycles are 16-bit wide with BE1/BE0 unused. While accessing EtherCAT Core registers and the Process RAM in 16-bit mode, 8 or 16-bit transfers can be selected via the BE1/BE0 pins. DS00003422A-page 104  2020 Microchip Technology Inc. LAN9254 8.6.1.1 Dual Phase Address Latching The figures in this section detail read and write operations in multiplexed addressing mode with dual phase address latching for 16 and 8-bit modes. 16-BIT MODE READ The WORD address is latched sequentially from AD[7:0]. WAIT_ACK is driven upon CS active. WAIT_ACK is initially driven active if there was a prior pending write, otherwise it is initially driven inactive. WAIT_ACK is driven active upon RD active. CS and RD may become active simultaneously in which case WAIT_ACK is always initially driven active (second example). D[15:8] and AD[7:0] are driven active on during RD active and valid once WAIT_ACK becomes inactive. The cycle is repeated for the other 16-bits of the DWORD if required. FIGURE 8-38: MULTIPLEXED ADDRESSING WITH DUAL PHASE LATCHING - 16-BIT READ ALELO ALEHI CS Optional Optional RD WR BE[1:0] BE[1:0] BE[1:0] WAIT_ACK (initially active if prior write pending) D[15:8] AD[7:0] (initially active due to rd) Data 15:8 Address Low Address High  2020 Microchip Technology Inc. Data 7:0 Data 31:24 Address+1 Low Address High Data 23:16 DS00003422A-page 105 LAN9254 16-BIT MODE POSTED WRITE The WORD address is latched sequentially from AD[7:0]. WAIT_ACK is driven upon CS active. WAIT_ACK is initially driven active if there was a prior pending write, otherwise it is initially driven inactive. WAIT_ACK is driven active upon WR inactive. CS and WR may become inactive simultaneously in which case WAIT_ACK active is not seen (second example). Data on D[15:8] and AD[7:0] is written on the trailing edge of WR. The cycle is repeated for the other 16-bits of the DWORD if required. FIGURE 8-39: MULTIPLEXED ADDRESSING WITH DUAL PHASE LATCHING - 16-BIT POSTED WRITE ALELO ALEHI CS Optional Optional RD WR BE[1:0] BE[1:0] BE[1:0] WAIT_ACK (initially active if prior write pending) D[15:8] AD[7:0] (initially active due to write pending) Data 15:8 Address Low DS00003422A-page 106 Address High Data 7:0 Data 31:24 Address+1 Low Address High Data 23:16  2020 Microchip Technology Inc. LAN9254 16-BIT MODE NON-POSTED WRITE The WORD address is latched sequentially from AD[7:0]. WAIT_ACK is driven upon CS active. WAIT_ACK is initially driven inactive since there will never be a prior pending write. WAIT_ACK is driven active upon WR active. CS and WR may become active simultaneously in which case WAIT_ACK is always initially driven active (second example). Data on D[15:8] and AD[7:0] is written starting on the leading edge of WR. WR may be made inactive once WAIT_ACK becomes inactive. For EtherCAT Core registers and the Process RAM, the write cycle occurs during WR active. For-non EtherCAT Core registers, the write cycle occurs upon WR inactive. Therefore Data is held until WR inactive. The cycle is repeated for the other 16-bits of the DWORD if required. FIGURE 8-40: MULTIPLEXED ADDRESSING WITH DUAL PHASE LATCHING - 16-BIT NONPOSTED WRITE ALELO ALEHI CS Optional Optional RD WR BE[1:0] BE[1:0] BE[1:0] WAIT_ACK (initially active due to write) D[15:8] AD[7:0] Data 15:8 Address Low Address High  2020 Microchip Technology Inc. Data 7:0 Data 31:24 Address+1 Low Address High Data 23:16 DS00003422A-page 107 LAN9254 8-BIT MODE READ The BYTE address is latched sequentially from AD[7:0]. WAIT_ACK is driven upon CS active. WAIT_ACK is initially driven active if there was a prior pending write, otherwise it is initially driven inactive. WAIT_ACK is driven active upon RD active. CS and RD may become active simultaneously in which case WAIT_ACK is always initially driven active (second example). AD[7:0] are driven active on during RD active and valid once WAIT_ACK becomes inactive. D[15:8] pins are not used or driven. The cycle is repeated for the other BYTEs of the DWORD if required. FIGURE 8-41: MULTIPLEXED ADDRESSING WITH DUAL PHASE LATCHING - 8-BIT READ ALELO ALEHI CS Optional Optional Optional Optional RD WR WAIT_ACK (initially active if prior write pending) (initially active due to rd) (initially active due to rd) D[15:8] AD[7:0] (initially active due to rd) Hi-Z Address Low Address High Data 7:0 Address+1 Low Address High Data 15:8 Address+2 Low Address High Data 23:16 Address+3 Low Address High Data 31:24 8-BIT MODE POSTED WRITE The BYTE address is latched sequentially from AD[7:0]. WAIT_ACK is driven upon CS active. WAIT_ACK is initially driven active if there was a prior pending write, otherwise it is initially driven inactive. WAIT_ACK is driven active upon WR inactive. CS and WR may become inactive simultaneously in which case WAIT_ACK active is not seen (second example). Data on AD[7:0] is written on the trailing edge of WR. D[15:8] pins are not used or driven. The cycle is repeated for the other BYTEs of the DWORD if required. FIGURE 8-42: MULTIPLEXED ADDRESSING WITH DUAL PHASE LATCHING - 8-BIT POSTED WRITE ALELO ALEHI CS Optional Optional Optional Optional RD WR WAIT_ACK (initially active if prior write pending) (initially active due to write pending) (initially active due to write pending) D[15:8] AD[7:0] (initially active due to write pending) Hi-Z Address Low Address High DS00003422A-page 108 Data 7:0 Address+1 Low Address High Data 15:8 Address+2 Low Address High Data 23:16 Address+3 Low Address High Data 31:24  2020 Microchip Technology Inc. LAN9254 8-BIT MODE NON-POSTED WRITE The BYTE address is latched sequentially from AD[7:0]. WAIT_ACK is driven upon CS active. WAIT_ACK is initially driven inactive since there will never be a prior pending write. WAIT_ACK is driven active upon WR active. CS and WR may become active simultaneously in which case WAIT_ACK is always initially driven active (second example). Data on AD[7:0] is written starting on the leading edge of WR. WR may be made inactive once WAIT_ACK becomes inactive. D[15:8] pins are not used or driven. For EtherCAT Core registers and the Process RAM, the write cycle occurs during WR active. For-non EtherCAT Core registers, the write cycle occurs upon WR inactive. Therefore Data is held until WR inactive. The cycle is repeated for the other BYTEs of the DWORD if required. FIGURE 8-43: MULTIPLEXED ADDRESSING WITH DUAL PHASE LATCHING - 8-BIT NONPOSTED WRITE ALELO ALEHI CS Optional Optional Optional Optional RD WR WAIT_ACK (initially active due to write) (initially active due to write) D[15:8] AD[7:0] (initially active due to write) Hi-Z Address Low Address High Data 7:0  2020 Microchip Technology Inc. Address+1 Low Address High Data 15:8 Address+2 Low Address High Data 23:16 Address+3 Low Address High Data 31:24 DS00003422A-page 109 LAN9254 8.6.1.2 Single Phase Address Latching The figures in this section detail read and write operations in multiplexed addressing mode with single phase address latching for 16 and 8-bit modes. 16-BIT MODE READ The WORD address is latched simultaneously from AD[7:0] and AD[15:8]. WAIT_ACK is driven upon CS active. WAIT_ACK is initially driven active if there was a prior pending write, otherwise it is initially driven inactive. WAIT_ACK is driven active upon RD active. CS and RD may become active simultaneously in which case WAIT_ACK is always initially driven active (second example). AD[15:0] are driven active on during RD active and valid once WAIT_ACK becomes inactive. The cycle is repeated for the other 16-bits of the DWORD if required. FIGURE 8-44: MULTIPLEXED ADDRESSING WITH SINGLE PHASE LATCHING - 16-BIT READ ALELO CS Optional Optional RD WR BE[1:0] BE[1:0] BE[1:0] WAIT_ACK (initially active if prior write pending) (initially active due to rd) AD[15:8] Address High Data 15:8 Address High Data 31:24 AD[7:0] Address Low Data 7:0 Address+1 Low Data 23:16 DS00003422A-page 110  2020 Microchip Technology Inc. LAN9254 16-BIT MODE POSTED WRITE The WORD address is latched simultaneously from AD[7:0] and AD[15:8]. WAIT_ACK is driven upon CS active. WAIT_ACK is initially driven active if there was a prior pending write, otherwise it is initially driven inactive. WAIT_ACK is driven active upon WR inactive. CS and WR may become inactive simultaneously in which case WAIT_ACK active is not seen (second example). Data on AD[15:8] is written on the trailing edge of WR. The cycle is repeated for the other 16-bits of the DWORD if required. FIGURE 8-45: MULTIPLEXED ADDRESSING WITH SINGLE PHASE LATCHING - 16-BIT POSTED WRITE ALELO CS Optional Optional RD WR BE[1:0] BE[1:0] BE[1:0] WAIT_ACK (initially active if prior write pending) (initially active due to write pending) AD[15:8] Address High Data 15:8 Address High Data 31:24 AD[7:0] Address Low Data 7:0 Address+1 Low Data 23:16  2020 Microchip Technology Inc. DS00003422A-page 111 LAN9254 16-BIT MODE NON-POSTED WRITE The WORD address is latched simultaneously from AD[7:0] and AD[15:8]. WAIT_ACK is driven upon CS active. WAIT_ACK is initially driven inactive since there will never be a prior pending write. WAIT_ACK is driven active upon WR active. CS and WR may become active simultaneously in which case WAIT_ACK is always initially driven active (second example). Data on AD[15:0] is written starting on the leading edge of WR. WR may be made inactive once WAIT_ACK becomes inactive. For EtherCAT Core registers and the Process RAM, the write cycle occurs during WR active. For-non EtherCAT Core registers, the write cycle occurs upon WR inactive. Therefore Data is held until WR inactive. The cycle is repeated for the other 16-bits of the DWORD if required. FIGURE 8-46: MULTIPLEXED ADDRESSING WITH SINGLE PHASE LATCHING - 16-BIT NONPOSTED WRITE ALELO CS Optional Optional RD WR BE[1:0] BE[1:0] BE[1:0] WAIT_ACK (initially active due to write) AD[15:8] Address High Data 15:8 Address High Data 31:24 AD[7:0] Address Low Data 7:0 Address+1 Low Data 23:16 DS00003422A-page 112  2020 Microchip Technology Inc. LAN9254 8-BIT MODE READ The BYTE address is latched simultaneously from AD[7:0] and AD[15:8]. WAIT_ACK is driven upon CS active. WAIT_ACK is initially driven active if there was a prior pending write, otherwise it is initially driven inactive. WAIT_ACK is driven active upon RD active. CS and RD may become active simultaneously in which case WAIT_ACK is always initially driven active (second example). AD[7:0] are driven active on during RD active and valid once WAIT_ACK becomes inactive. AD[15:8] pins are not used or driven for the data phase as the host could potentially continue to drive the upper address on these signals. The cycle is repeated for the other BYTEs of the DWORD if required. FIGURE 8-47: MULTIPLEXED ADDRESSING WITH SINGLE PHASE LATCHING - 8-BIT READ ALELO CS Optional Optional Optional Optional RD WR WAIT_ACK (initially active if prior write pending) AD[15:8] Address High AD[7:0] Address Low (initially active due to rd) (initially active due to rd) Address High Data 7:0 (initially active due to rd) Address High Address+1 Low Data 15:8 Address High Address+2 Low Data 23:16 Address+3 Low Data 31:24 8-BIT MODE POSTED WRITE The BYTE address is latched simultaneously from AD[7:0] and AD[15:8]. WAIT_ACK is driven upon CS active. WAIT_ACK is initially driven active if there was a prior pending write, otherwise it is initially driven inactive. WAIT_ACK is driven active upon WR inactive. CS and WR may become inactive simultaneously in which case WAIT_ACK active is not seen (second example). Data on AD[7:0] is written on the trailing edge of WR. AD[15:8] pins are not used or driven for the data phase as the host could potentially continue to drive the upper address on these signals. The cycle is repeated for the other BYTEs of the DWORD if required. FIGURE 8-48: MULTIPLEXED ADDRESSING WITH SINGLE PHASE LATCHING - 8-BIT POSTED WRITE ALELO CS Optional Optional Optional Optional RD WR WAIT_ACK (initially active if prior write pending) AD[15:8] Address High AD[7:0] Address Low (initially active due to write pending) (initially active due to write pending) Address High Data 7:0  2020 Microchip Technology Inc. Address+1 Low (initially active due to write pending) Address High Data 15:8 Address+2 Low Address High Data 23:16 Address+3 Low Data 31:24 DS00003422A-page 113 LAN9254 8-BIT MODE NON-POSTED WRITE The BYTE address is latched simultaneously from AD[7:0] and AD[15:8]. WAIT_ACK is driven upon CS active. WAIT_ACK is initially driven inactive since there will never be a prior pending write. WAIT_ACK is driven active upon WR active. CS and WR may become active simultaneously in which case WAIT_ACK is always initially driven active (second example). Data on AD[7:0] is written starting on the leading edge of WR. WR may be made inactive once WAIT_ACK becomes inactive. AD[15:8] pins are not used or driven for the data phase as the host could potentially continue to drive the upper address on these signals. For EtherCAT Core registers and the Process RAM, the write cycle occurs during WR active. For-non EtherCAT Core registers, the write cycle occurs upon WR inactive. Therefore Data is held until WR inactive. The cycle is repeated for the other BYTEs of the DWORD if required. FIGURE 8-49: MULTIPLEXED ADDRESSING WITH SINGLE PHASE LATCHING - 8-BIT NONPOSTED WRITE ALELO CS Optional Optional Optional Optional RD WR WAIT_ACK (initially active due to write) AD[15:8] Address High AD[7:0] Address Low DS00003422A-page 114 (initially active due to write) Address High Data 7:0 Address+1 Low (initially active due to write) Address High Data 15:8 Address+2 Low Address High Data 23:16 Address+3 Low Data 31:24  2020 Microchip Technology Inc. LAN9254 8.6.2 DEMULTIPLEXED ADDRESSING MODE FUNCTIONAL TIMING DIAGRAMS The following timing diagrams illustrate example demultiplexed addressing mode read and write cycles for various configurations and bus sizes. These diagrams do not cover every supported host bus permutation, but are selected to detail the main configuration differences (bus size) within the demultiplexed addressing mode of operation. The following should be noted for the timing diagrams in this section: • The diagrams in this section depict active-low push-pull WAIT_ACK and active-high BE1/0, CS, RD, and WR signals. The polarities of these signals are selectable via the HBI WAIT_ACK Polarity, HBI BE1/BE0 Polarity, HBI Chip Select Polarity, HBI Read, Read/Write Polarity, and HBI Write, Enable Polarity bits of the PDI Configuration Register and Extended PDI Configuration Register (HBI Modes), respectively. Refer to Section 8.2.2, "Control Line Polarity and Buffer Type," on page 69 for additional details. • The diagrams in this section depict little endian byte ordering. However, dynamic big and little endianness are supported for 16-bit mode via the endianness signal. Endianness changes only the order of the bytes involved, and not the overall timing requirements. Refer to Section 8.4.4, "Host Endianness," on page 79 for additional information. • The diagrams in this section utilize RD and WR signals. Alternative RD_WR and ENB signaling is also supported, similar to the demultiplexed examples in Section 8.5.2.1, "RD_WR / ENB Control Mode Examples". The HBI read/ write mode is selectable via the HBI Read/Write Mode bit of the PDI Configuration Register. The polarities of the RD_WR and ENB signals are selectable via the HBI Read, Read/Write Polarity and HBI Write, Enable Polarity configuration inputs. • While accessing non-EtherCAT Core registers, for proper DWORD assembly, consecutive address cycles must be within the same DWORD until the DWORD is completely accessed (with the register exceptions noted above). Although BYTEs and WORDs can be accessed in any order, the diagrams in this section depict accessing the lower address BYTE or WORD first. • While accessing non-EtherCAT Core registers in 16-bit mode, all cycles are 16-bit wide with BE1/BE0 unused. While accessing EtherCAT Core registers and the Process RAM in 16-bit mode, 8 or 16-bit transfers can be selected via the BE1/BE0 pins.  2020 Microchip Technology Inc. DS00003422A-page 115 LAN9254 16-BIT MODE READ The WORD address, byte enables and endianess is input concurrently with the control. WAIT_ACK is driven upon CS active. WAIT_ACK is initially driven active if there was a prior pending write, otherwise it is initially driven inactive. WAIT_ACK is driven active upon RD active. CS and RD may become active simultaneously in which case WAIT_ACK is always initially driven active (second example). D[15:0] are driven active on during RD active and valid once WAIT_ACK becomes inactive. The cycle is repeated for the other 16-bits of the DWORD if required. FIGURE 8-50: DEMULTIPLEXED ADDRESSING - 16-BIT READ CS RD WR END_SEL endianess endianess A[15:1] Address Address+1 BE[1:0] BE[1:0] BE[1:0] WAIT_ACK (initially active if prior write pending) DS00003422A-page 116 (initially active due to rd) D[15:8] Data 15:8 Data 31:24 D[7:0] Data 7:0 Data 23:16  2020 Microchip Technology Inc. LAN9254 16-BIT MODE POSTED WRITE The WORD address, byte enables and endianess is input concurrently with the control. WAIT_ACK is driven upon CS active. WAIT_ACK is initially driven active if there was a prior pending write, otherwise it is initially driven inactive. WAIT_ACK is driven active upon WR inactive. CS and WR may become inactive simultaneously in which case WAIT_ACK active is not seen (second example). Data on D[15:0] is written on the trailing edge of WR. The cycle is repeated for the other 16-bits of the DWORD if required. FIGURE 8-51: DEMULTIPLEXED ADDRESSING - 16-BIT POSTED WRITE CS RD WR END_SEL endianess endianess A[15:1] Address Address+1 BE[1:0] BE[1:0] BE[1:0] WAIT_ACK (initially active if prior write pending)  2020 Microchip Technology Inc. (initially active due to write pending) D[15:8] Data 15:8 Data 31:24 D[7:0] Data 7:0 Data 23:16 DS00003422A-page 117 LAN9254 16-BIT MODE NON-POSTED WRITE The WORD address, byte enables and endianess is input concurrently with the control. WAIT_ACK is driven upon CS active. WAIT_ACK is initially driven inactive since there will never be a prior pending write. WAIT_ACK is driven active upon WR active. CS and WR may become active simultaneously in which case WAIT_ACK is always initially driven active (second example). Data on D[15:0] is written starting on the leading edge of WR. WR may be made inactive once WAIT_ACK becomes inactive. For EtherCAT Core registers and the Process RAM, the write cycle occurs during WR active. For-non EtherCAT Core registers, the write cycle occurs upon WR inactive. Therefore Data is held until WR inactive. The cycle is repeated for the other 16-bits of the DWORD if required. FIGURE 8-52: DEMULTIPLEXED ADDRESSING - 16-BIT NON-POSTED WRITE CS RD WR END_SEL endianess endianess A[15:1] Address Address+1 BE[1:0] BE[1:0] BE[1:0] WAIT_ACK (initially active due to write) DS00003422A-page 118 D[15:8] Data 15:8 Data 31:24 D[7:0] Data 7:0 Data 23:16  2020 Microchip Technology Inc. LAN9254 8-BIT MODE READ The BYTES address is input concurrently with the control. WAIT_ACK is driven upon CS active. WAIT_ACK is initially driven active if there was a prior pending write, otherwise it is initially driven inactive. WAIT_ACK is driven active upon RD active. CS and RD may become active simultaneously in which case WAIT_ACK is always initially driven active (second example). D[7:0] are driven active on during RD active and valid once WAIT_ACK becomes inactive. D[15:8] pins are not used or driven. The cycle is repeated for the other BYTEs of the DWORD if required. FIGURE 8-53: DEMULTIPLEXED ADDRESSING - 8-BIT READ CS RD WR A[15:0] Address Address+1 Address+2 Address+3 WAIT_ACK (initially active if prior write pending) (initially active due to rd) (initially active due to rd) D[15:8] D[7:0]  2020 Microchip Technology Inc. (initially active due to rd) Hi-Z Data 7:0 Data 15:8 Data 23:16 Data 31:24 DS00003422A-page 119 LAN9254 8-BIT MODE POSTED WRITE The BYTE address is input concurrently with the control. WAIT_ACK is driven upon CS active. WAIT_ACK is initially driven active if there was a prior pending write, otherwise it is initially driven inactive. WAIT_ACK is driven active upon WR inactive. CS and WR may become inactive simultaneously in which case WAIT_ACK active is not seen (second example). Data on D[7:0] is written on the trailing edge of WR. D[15:8] pins are not used or driven. The cycle is repeated for the other BYTEs of the DWORD if required. FIGURE 8-54: DEMULTIPLEXED ADDRESSING - 8-BIT POSTED WRITE CS RD WR A[15:0] Address Address+1 Address+2 Address+3 WAIT_ACK (initially active if prior write pending) (initially active due to write pending) D[15:8] D[7:0] DS00003422A-page 120 (initially active due to write pending) (initially active due to write pending) Hi-Z Data 7:0 Data 15:8 Data 23:16 Data 31:24  2020 Microchip Technology Inc. LAN9254 8-BIT MODE NON-POSTED WRITE The BYTE address is input concurrently with the control. WAIT_ACK is driven upon CS active. WAIT_ACK is initially driven inactive since there will never be a prior pending write. WAIT_ACK is driven active upon WR active. CS and WR may become active simultaneously in which case WAIT_ACK is always initially driven active (second example). Data on D[7:0] is written starting on the leading edge of WR. WR may be made inactive once WAIT_ACK becomes inactive. D[15:8] pins are not used or driven. For EtherCAT Core registers and the Process RAM, the write cycle occurs during WR active. For-non EtherCAT Core registers, the write cycle occurs upon WR inactive. Therefore Data is held until WR inactive. The cycle is repeated for the other BYTEs of the DWORD if required. FIGURE 8-55: DEMULTIPLEXED ADDRESSING - 8-BIT NON-POSTED WRITE CS RD WR A[15:0] Address Address+1 Address+2 Address+3 WAIT_ACK (initially active due to write) (initially active due to write) D[15:8] D[7:0]  2020 Microchip Technology Inc. (initially active due to write) Hi-Z Data 7:0 Data 15:8 Data 23:16 Data 31:24 DS00003422A-page 121 LAN9254 8.6.3 INDEXED ADDRESS MODE FUNCTIONAL TIMING DIAGRAMS The following timing diagrams illustrate example indexed (non-multiplexed) addressing mode read and write cycles for various configurations and bus sizes. These diagrams do not cover every supported host bus permutation, but are selected to detail the main configuration differences (bus size, Configuration / Index / Data cycles) within the indexed addressing mode of operation. The following should be noted for the timing diagrams in this section: • The diagrams in this section depict active-low push-pull WAIT_ACK and active-high CS, RD, and WR signals. The polarities of these signals are selectable via the HBI WAIT_ACK Polarity, HBI Chip Select Polarity, HBI Read, Read/Write Polarity, and HBI Write, Enable Polarity bits of the PDI Configuration Register (HBI Modes), respectively. Refer to Section 8.2.2, "Control Line Polarity and Buffer Type," on page 69 for additional details. • The diagrams in this section depict little endian byte ordering. However, configurable big and little endianness are supported for 16-bit mode via the endianness bits in the Host Bus Interface Configuration Register. Endianness changes only the order of the bytes involved, and not the overall timing requirements. Refer to Section 8.4.4, "Host Endianness," on page 79 for additional information. • The diagrams in this section utilize RD and WR signals. Alternative RD_WR and ENB signaling is also supported, similar to the Indexed examples in Section 8.5.3.4, "RD_WR / ENB Control Mode Examples". The HBI read/write mode is selectable via the HBI Read/Write Mode bit of the PDI Configuration Register. The polarities of the RD_WR and ENB signals are selectable via the HBI Read, Read/Write Polarity and HBI Write, Enable Polarity configuration inputs. • While accessing non-EtherCAT Core registers, for proper DWORD assembly, consecutive address cycles must be within the same DWORD until the DWORD is completely accessed (some internal registers are excluded from this requirement). Although BYTEs and WORDs can be accessed in any order, the diagrams in this section depict accessing the lower address BYTE or WORD first. • While accessing index and configuration registers in 16-bit mode, all cycles are 16-bit wide with the internal BE1/ BE0 unused. While accessing non-EtherCAT Core registers in 16-bit mode, all cycles are 16-bit wide with the internal BE1/BE0 unused.While accessing EtherCAT Core registers and the Process RAM in 16-bit mode, 8 or 16bit transfers can be selected via the internal BE1/BE0. 8.6.3.1 Configuration Register Data Access The figures in this section detail Configuration register read and write operations in indexed address mode for 16 and 8-bit modes. 16-BIT MODE READ AND WRITE Posted Writes For posted writes, the address is set to access the Configuration Register. WAIT_ACK is driven upon CS active. WAIT_ACK is initially driven active if there was a prior pending write, otherwise it is initially driven inactive. WAIT_ACK is driven active upon WR inactive. CS and WR may become inactive simultaneously in which case WAIT_ACK active is not seen (third example). Data on D[15:0] is written on the trailing edge of WR. The cycle repeats for the other WORD of the Configuration Register, if desired by the host. Non-Posted Writes For non-posted writes, the address is set to access the Configuration Register. WAIT_ACK is driven upon CS active. WAIT_ACK is initially driven inactive since there will never be a prior pending write. WAIT_ACK is driven active upon WR active. CS and WR may become active simultaneously in which case WAIT_ACK is always initially driven active (fifth example). Data on D[15:0] is written starting on the leading edge of WR. WR may be made inactive once WAIT_ACK becomes inactive. The write cycle occurs upon WR inactive, therefore Data is held until WR inactive. The cycle repeats for the other WORD of the Configuration Register, if desired by the host. Reads For reads, the address is set to access the Configuration Register. WAIT_ACK is driven upon CS active. WAIT_ACK is initially driven active if there was a prior pending write, otherwise it is initially driven inactive. WAIT_ACK is driven active upon RD active. CS and RD may become active simultaneously in which case WAIT_ACK is always initially driven active (second example). DS00003422A-page 122  2020 Microchip Technology Inc. LAN9254 D[15:0] are driven active on during RD active and valid once WAIT_ACK becomes inactive. The cycle repeats for the other WORD of the Configuration Register, if desired by the host. FIGURE 8-56: INDEXED ADDRESSING CONFIGURATION REGISTER ACCESS - 16-BIT POSTED WRITE / NON-POSTED WRITE / READ Posted Write A[4:1] CONFIG,1'b0 Non-Posted Write CONFIG,1'b1 CONFIG,1'b0 Read CONFIG,1'b1 CONFIG,1'b0 CONFIG,1'b1 CS RD WR WAIT_ACK (initially active if prior w rite pending) (initially active due to write pending) (initially active due to write) (initially active if prior w rite pending) (initially active due to rd) D[15:8] Data 15:8 Data 31:24 Data 15:8 Data 31:24 Data 15:8 Data 31:24 D[7:0] Data 7:0 Data 23:16 Data 7:0 Data 23:16 Data 7:0 Data 23:16 8-BIT MODE READ AND WRITE Posted Writes For posted writes, the address is set to access the Configuration Register. WAIT_ACK is driven upon CS active. WAIT_ACK is initially driven active if there was a prior pending write, otherwise it is initially driven inactive. WAIT_ACK is driven active upon WR inactive. CS and WR may become inactive simultaneously in which case WAIT_ACK active is not seen (second example). Data on D[7:0] is written on the trailing edge of WR. D[15:8] pins are not used or driven. The cycle repeats for the remaining BYTEs of the Configuration Register, if desired by the host. The first and last BYTEs are shown here. Non-Posted Writes For non-posted writes, the address is set to access the Configuration Register. WAIT_ACK is driven upon CS active. WAIT_ACK is initially driven inactive since there will never be a prior pending write. WAIT_ACK is driven active upon WR active. CS and WR may become active simultaneously in which case WAIT_ACK is always initially driven active (fourth example). Data on D[7:0] is written starting on the leading edge of WR. WR may be made inactive once WAIT_ACK becomes inactive. D[15:8] pins are not used or driven. The write cycle occurs upon WR inactive, therefore Data is held until WR inactive. The cycle repeats for the remaining BYTEs of the Configuration Register, if desired by the host. The first and last BYTEs are shown here. Reads For reads, the address is set to access the Configuration Register. WAIT_ACK is driven upon CS active. WAIT_ACK is initially driven active if there was a prior pending write, otherwise it is initially driven inactive. WAIT_ACK is driven active upon RD active. CS and RD may become active simultaneously in which case WAIT_ACK is always initially driven active (sixth example). D[7:0] are driven active on during RD active and valid once WAIT_ACK becomes inactive. D[15:8] pins are not used or driven.  2020 Microchip Technology Inc. DS00003422A-page 123 LAN9254 The cycle repeats for the remaining BYTEs of the Configuration Register, if desired by the host. The first and last BYTEs are shown here. FIGURE 8-57: INDEXED ADDRESSING CONFIGURATION REGISTER ACCESS - 8-BIT POSTED WRITE / NON-POSTED WRITE / READ Posted Write A[4:0] CONFIG,2'b00 Non-Posted Write CONFIG,2'b11 CONFIG,2'b00 Read CONFIG,2'b11 CONFIG,2'b00 CONFIG,2'b11 CS RD WR WAIT_ACK (initially active if prior w rite pending) (initially active due to write pending) (initially active due to write) (initially active due to rd) Hi-Z D[15:8] D[7:0] 8.6.3.2 (initially active if prior w rite pending) Data 7:0 Data 31:24 Data 7:0 Data 31:24 Data 7:0 Data 31:24 Index Register Data Access The figures in this section detail index register read and write operations in indexed address mode for 16 and 8-bit modes. 16-BIT MODE READ AND WRITE Posted Writes For posted writes, the address is set to access one of the Index Registers. WAIT_ACK is driven upon CS active. WAIT_ACK is initially driven active if there was a prior pending write, otherwise it is initially driven inactive. WAIT_ACK is driven active upon WR inactive. CS and WR may become inactive simultaneously in which case WAIT_ACK active is not seen (second example). Data on D[15:0] is written on the trailing edge of WR. The cycle repeats for the other WORD of the Index Register, if desired by the host. Non-Posted Writes For non-posted writes, the address is set to access one of the Index Registers. WAIT_ACK is driven upon CS active. WAIT_ACK is initially driven inactive since there will never be a prior pending write. WAIT_ACK is driven active upon WR active. CS and WR may become active simultaneously in which case WAIT_ACK is always initially driven active (fourth example). Data on D[15:0] is written starting on the leading edge of WR. WR may be made inactive once WAIT_ACK becomes inactive. The write cycle occurs upon WR inactive, therefore Data is held until WR inactive. The cycle repeats for the other WORD of the Index Register, if desired by the host. Reads For reads, the address is set to access one of the Index Registers. WAIT_ACK is driven upon CS active. WAIT_ACK is initially driven active if there was a prior pending write, otherwise it is initially driven inactive. WAIT_ACK is driven active upon RD active. CS and RD may become active simultaneously in which case WAIT_ACK is always initially driven active (sixth example). D[15:0] are driven active on during RD active and valid once WAIT_ACK becomes inactive. The cycle repeats for the other WORD of the Index Register, if desired by the host. Note: The upper BYTE of Index Register is reserved and don’t care. DS00003422A-page 124  2020 Microchip Technology Inc. LAN9254 FIGURE 8-58: INDEXED ADDRESSING INDEX REGISTER ACCESS - 16-BIT POSTED WRITE / NON-POSTED WRITE / READ Posted Write A[4:1] INDEX,1'b0 Non-Posted Write INDEX,1'b1 INDEX,1'b0 Read INDEX,1'b1 INDEX,1'b0 INDEX,1'b1 CS RD WR WAIT_ACK (initially active if prior w rite pending) (initially active due to write pending) (initially active due to write) (initially active if prior w rite pending) (initially active due to rd) D[15:8] Data 15:8 8'hXX Data 15:8 8'hXX Data 15:8 8'hXX D[7:0] Data 7:0 Data 23:16 Data 7:0 Data 23:16 Data 7:0 Data 23:16 8-BIT MODE READ AND WRITE Posted Writes For posted writes, the address is set to access one of the Index Registers. WAIT_ACK is driven upon CS active. WAIT_ACK is initially driven active if there was a prior pending write, otherwise it is initially driven inactive. WAIT_ACK is driven active upon WR inactive. CS and WR may become inactive simultaneously in which case WAIT_ACK active is not seen (second example). Data on D[7:0] is written on the trailing edge of WR. D[15:8] pins are not used or driven. The cycle repeats for the remaining BYTEs of the Index Register, if desired by the host. The first and second BYTEs are shown here. Non-Posted Writes For non-posted writes, the address is set to access one of the Index Registers. WAIT_ACK is driven upon CS active. WAIT_ACK is initially driven inactive since there will never be a prior pending write. WAIT_ACK is driven active upon WR active. CS and WR may become active simultaneously in which case WAIT_ACK is always initially driven active (fourth example). Data on D[7:0] is written starting on the leading edge of WR. WR may be made inactive once WAIT_ACK becomes inactive. D[15:8] pins are not used or driven. The write cycle occurs upon WR inactive, therefore Data is held until WR inactive. The cycle repeats for the remaining BYTEs of the Index Register, if desired by the host. The first and second BYTEs are shown here. Reads For reads, the address is set to access one of the Index Registers. WAIT_ACK is driven upon CS active. WAIT_ACK is initially driven active if there was a prior pending write, otherwise it is initially driven inactive. WAIT_ACK is driven active upon RD active. CS and RD may become active simultaneously in which case WAIT_ACK is always initially driven active (sixth example). D[7:0] are driven active on during RD active and valid once WAIT_ACK becomes inactive. D[15:8] pins are not used or driven. The cycle repeats for the remaining BYTEs of the Index Register, if desired by the host. The first and second BYTEs are shown here. Note: The upper BYTE of Index Register is reserved and don’t care. Therefore reads and writes to that BYTE is not useful.  2020 Microchip Technology Inc. DS00003422A-page 125 LAN9254 FIGURE 8-59: INDEXED ADDRESSING INDEX REGISTER ACCESS - 8-BIT POSTED WRITE / NON-POSTED WRITE / READ Posted Write A[4:0] INDEX,2'b00 Non-Posted Write INDEX,2'b01 INDEX,2'b00 Read INDEX,2'b01 INDEX,2'b00 INDEX,2'b01 CS RD WR WAIT_ACK (initially active if prior w rite pending) (initially active due to write pending) (initially active due to write) (initially active due to rd) Hi-Z D[15:8] D[7:0] 8.6.3.3 (initially active if prior w rite pending) Data 7:0 Data 15:8 Data 7:0 Data 15:8 Data 7:0 Data 15:8 Internal Register Data Access The figures in this section detail typical internal register data read and write cycles in indexed address mode for 16 and 8-bit modes. Although not shown here, a data read or write is usually preceded by an index register write. 16-BIT MODE READ AND WRITE One of the Index Registers is set as described above. Posted Writes For posted writes, the address is then set to access the corresponding Data Register. WAIT_ACK is driven upon CS active. WAIT_ACK is initially driven active if there was a prior pending write, otherwise it is initially driven inactive. WAIT_ACK is driven active upon WR inactive. CS and WR may become inactive simultaneously in which case WAIT_ACK active is not seen (second example). Data on D[15:0] is written on the trailing edge of WR. D[15:8] pins are not used or driven. The cycle repeats for the other WORD of the Data Register, if required. Non-Posted Writes For non-posted writes, the address is then set to access the corresponding Data Register. WAIT_ACK is driven upon CS active. WAIT_ACK is initially driven inactive since there will never be a prior pending write. WAIT_ACK is driven active upon WR active. CS and WR may become active simultaneously in which case WAIT_ACK is always initially driven active (fourth example). Data on D[15:0] is written starting on the leading edge of WR. WR may be made inactive once WAIT_ACK becomes inactive. D[15:8] pins are not used or driven. The write cycle occurs upon WR inactive, therefore Data is held until WR inactive. The cycle repeats for the other WORD of the Data Register, if required. Reads For reads, the address is then set to access the corresponding Data Register. WAIT_ACK is driven upon CS active. WAIT_ACK is initially driven active if there was a prior pending write, otherwise it is initially driven inactive. WAIT_ACK is driven active upon RD active. CS and RD may become active simultaneously in which case WAIT_ACK is always initially driven active (sixth example). D[15:0] are driven active on during RD active and valid once WAIT_ACK becomes inactive. The cycle repeats for the other WORD of the Data Register, if required. DS00003422A-page 126  2020 Microchip Technology Inc. LAN9254 FIGURE 8-60: INDEXED ADDRESSING INTERNAL REGISTER DATA ACCESS - 16-BIT POSTED WRITE / NON-POSTED WRITE / READ Posted Write A[4:1] DATA,1'b0 Non-Posted Write DATA,1'b1 DATA,1'b0 Read DATA,1'b1 DATA,1'b0 DATA,1'b1 CS RD WR WAIT_ACK (initially active if prior w rite pending) (initially active due to write pending) (initially active due to write) (initially active if prior w rite pending) (initially active due to rd) D[15:8] Data 15:8 Data 31:24 Data 15:8 Data 31:24 Data 15:8 Data 31:24 D[7:0] Data 7:0 Data 23:16 Data 7:0 Data 23:16 Data 7:0 Data 23:16 8-BIT MODE READ AND WRITE One of the Index Registers is set as described above. Posted Writes For posted writes, the address is then set to access the corresponding Data Register. WAIT_ACK is driven upon CS active. WAIT_ACK is initially driven active if there was a prior pending write, otherwise it is initially driven inactive. WAIT_ACK is driven active upon WR inactive. CS and WR may become inactive simultaneously in which case WAIT_ACK active is not seen (second example). Data on D[7:0] is written on the trailing edge of WR. D[15:8] pins are not used or driven. The cycle repeats for the remaining BYTEs of the Data Register, if required. The first and last BYTEs are shown here. Non-Posted Writes For non-posted writes, the address is then set to access the corresponding Data Register. WAIT_ACK is driven upon CS active. WAIT_ACK is initially driven inactive since there will never be a prior pending write. WAIT_ACK is driven active upon WR active. CS and WR may become active simultaneously in which case WAIT_ACK is always initially driven active (fourth example). Data on D[7:0] is written starting on the leading edge of WR. WR may be made inactive once WAIT_ACK becomes inactive. D[15:8] pins are not used or driven. The write cycle occurs upon WR inactive, therefore Data is held until WR inactive. The cycle repeats for the remaining BYTEs of the Data Register, if required. The first and last BYTEs are shown here. Reads For reads, the address is then set to access the corresponding Data Register. WAIT_ACK is driven upon CS active. WAIT_ACK is initially driven active if there was a prior pending write, otherwise it is initially driven inactive. WAIT_ACK is driven active upon RD active. CS and RD may become active simultaneously in which case WAIT_ACK is always initially driven active (sixth example). D[7:0] are driven active on during RD active and valid once WAIT_ACK becomes inactive. D[15:8] pins are not used or driven. The cycle repeats for the remaining BYTEs of the Data Register, if required. The first and last BYTEs are shown here.  2020 Microchip Technology Inc. DS00003422A-page 127 LAN9254 FIGURE 8-61: INDEXED ADDRESSING INTERNAL REGISTER DATA ACCESS - 8-BIT POSTED WRITE / NON-POSTED WRITE / READ Posted Write A[4:0] DATA,2'b00 Non-Posted Write DATA,2'b11 DATA,2'b00 Read DATA,2'b11 DATA,2'b00 DATA,2'b11 CS RD WR WAIT_ACK (initially active if prior w rite pending) (initially active due to write pending) (initially active due to write) 8.7 8.7.1 (initially active due to rd) Hi-Z D[15:8] D[7:0] (initially active if prior w rite pending) Data 7:0 Data 31:24 Data 7:0 Data 31:24 Data 7:0 Data 31:24 Timing Requirements MULTIPLEXED ADDRESSING MODE TIMING REQUIREMENTS The following figures and tables specify the timing requirements during Multiplexed Address / Data mode. Since timing requirements are similar across the multitude of operations (e.g. dual vs. single phase, 8 vs. 16-bit), many timing requirements are illustrated onto the same figures and do not necessarily represent any particular functional operation. The following should be noted for the timing specifications in this section: • The diagrams in this section depict active-low push-pull WAIT_ACK and active-high ALEHI/ALELO, CS, RD, WR, RD_WR and ENB signals. The polarities of these signals are selectable via the HBI WAIT_ACK Polarity, HBI ALE Polarity, HBI Chip Select Polarity, HBI Read, Read/Write Polarity, and HBI Write, Enable Polarity bits of the PDI Configuration Register (HBI Modes), respectively. Refer to Section 8.2.2, "Control Line Polarity and Buffer Type," on page 69 for additional details. • Qualification of the ALELO and/or ALEHI with the CS signal is selectable via the HBI ALE Qualification bit of the PDI Configuration Register. This is shown as a dashed line. Timing requirements between ALELO / ALEHI and CS only apply when this mode is active. • In dual phase address latching mode, the ALEHI and ALELO cycles can be in any order. ALEHI first is depicted in solid line. ALELO first is depicted in dashed line. • A read cycle may be followed by followed by an address cycle, a write cycle or another read cycle. A write cycle may be followed by followed by an address cycle, a read cycle or another write cycle. These are shown in dashed line. DS00003422A-page 128  2020 Microchip Technology Inc. LAN9254 8.7.1.1 Read Timing Requirements - Legacy Mode The following sections present timing requirements while in LAN9252 compatible Legacy mode (i.e. not in EtherCAT Direct Mapped mode). Byte Enables BE1/BE0 are not used in Legacy mode and are not shown. If enabled for output, WAIT_ACK is held inactive (ACK) and is shown as such. If RD and WR signaling is used, a host read cycle begins when RD is asserted with CS active. The cycle ends when RD is deasserted. CS may be asserted and deasserted along with RD but not during RD active. Alternatively, if RD_WR and ENB signaling is used, a host read cycle begins when ENB is asserted with CS active and RD_WR indicating a read. The cycle ends when ENB is deasserted. CS may be asserted and deasserted along with ENB but not during ENB active. Please refer to Section 8.5.1, "Multiplexed Addressing Mode Functional Timing Diagrams," on page 82 for functional descriptions. FIGURE 8-62: MULTIPLEXED ADDRESSING READ CYCLE TIMING tcsale tcsrd trdcs CS twale trdale ALEHI taleale trdale ALELO tadrs tadrh AD[7:0] input AD[15:8] input RD_WR trdwrs talerd trdwrh t rd trdcyc trdrd ENB, RD trdwr WR taledv trdon, tcson t rddv, tcsdv trddh, tcsdh trddz, tcsdz AD[15:8] output AD[7:0] output tcswa tcswa tcswaz WAIT_ACK  2020 Microchip Technology Inc. DS00003422A-page 129 LAN9254 TABLE 8-4: MULTIPLEXED ADDRESSING READ CYCLE TIMING VALUES Symbol Description Min Typ Max Units tcsale CS Setup to ALELO, ALEHI Active Note 3, Note 2 0 nS tcsrd CS Setup to RD or ENB Active 0 nS trdcs CS Hold from RD or ENB Inactive 0 nS twale ALELO, ALEHI Pulse Width 10 nS tadrs Address Setup to ALELO, ALEHI Inactive 10 nS tadrh Address Hold from ALELO, ALEHI Inactive 5 nS taleale ALELO Inactive to ALEHI Active ALEHI Inactive to ALELO Active Note 1, Note 2 0 nS talerd ALELO, ALEHI Inactive to RD or ENB Active Note 2 5 nS trdwrs RD_WR Setup to ENB Active Note 4 5 nS trdwrh RD_WR Hold from ENB Inactive Note 4 5 nS trdon RD or ENB to Data Buffer Turn On 0 nS trddv RD or ENB Active to Data Valid trddh Data Output Hold Time from RD or ENB Inactive trddz Data Buffer Turn Off Time from RD or ENB Inactive tcson CS to Data Buffer Turn On tcsdv CS Active to Data Valid tcsdh Data Output Hold Time from CS Inactive tcsdz Data Buffer Turn Off Time from CS Inactive 9 nS taledv ALELO, ALEHI Inactive to Data Valid Note 2 35 nS 30 0 nS nS 9 0 nS nS 30 0 nS nS trd RD or ENB Active Time 32 nS trdcyc RD or ENB Cycle Time 45 nS trdale RD or ENB De-assertion Time before Address Phase 13 nS trdrd RD or ENB De-assertion Time before Next RD or ENB Note 5 13 nS trdwr RD De-assertion Time before Next WR Note 5, Note 6 13 nS tcswa CS Active to WAIT_ACK Valid 10 nS tcswaz WAIT_ACK Turn Off Time from CS Inactive 9 nS DS00003422A-page 130  2020 Microchip Technology Inc. LAN9254 Note 1: Dual Phase Addressing Note 2: Depends on ALEHI / ALELO order. Note 3: ALELO and/or ALEHI qualified with the CS. Note 4: RD_WR and ENB signaling. Note 5: No interposed address phase. Note 6: RD and WR signaling. Note: Timing values are with respect to an equivalent test load of 25 pF.  2020 Microchip Technology Inc. DS00003422A-page 131 LAN9254 8.7.1.2 Read Timing Requirements - EtherCAT Direct Mapped Mode The following sections present functional timing diagrams while in EtherCAT Direct Mapped mode. If enabled for output, WAIT_ACK is used to indicate when data is valid to be captured, otherwise the host must assume the worst case data access time listed. WAIT_ACK is output with CS active and if not already active due to a pending prior write, becomes active upon RD or ENB. If CS and RD/ENB are concurrent, WAIT_ACK is driven active. If RD and WR signaling is used, a host read cycle begins when RD is asserted with CS active. The cycle ends when RD is deasserted. CS may be asserted and deasserted along with RD but not during RD active. Alternatively, if RD_WR and ENB signaling is used, a host read cycle begins when ENB is asserted with CS active and RD_WR indicating a read. The cycle ends when ENB is deasserted. CS may be asserted and deasserted along with ENB but not during ENB active. Please refer to Section 8.6.1, "Multiplexed Addressing Mode Functional Timing Diagrams," on page 104 for functional descriptions. FIGURE 8-63: MULTIPLEXED ADDRESSING READ CYCLE TIMING tcsale tcsrd trdcs CS twale trdale ALEHI taleale trdale ALELO tadrs tadrh AD[7:0] input AD[15:8] input tbes tbeh BE[1:0] RD_WR trdwrs trdwrh talerd trdrd ENB, RD trdwr WR tcson tread trdon twadv trddh, tcsdh trddz, tcsdz AD[15:8] output AD[7:0] output tcswa tcswa trdwa tdvwa tcswaz WAIT_ACK (with pending prior write) DS00003422A-page 132 (delayed WAIT_ACK)  2020 Microchip Technology Inc. LAN9254 TABLE 8-5: MULTIPLEXED ADDRESSING READ CYCLE TIMING VALUES Symbol Description Min Typ Max Units tcsale CS Setup to ALELO, ALEHI Active Note 9, Note 8 0 nS tcsrd CS Setup to RD or ENB Active 0 nS trdcs CS Hold from RD or ENB Inactive 0 nS twale ALELO, ALEHI Pulse Width 10 nS tadrs Address Setup to ALELO, ALEHI Inactive 10 nS tadrh Address Hold from ALELO, ALEHI Inactive 5 nS taleale ALELO Inactive to ALEHI Active ALEHI Inactive to ALELO Active Note 7, Note 8 0 nS talerd ALELO, ALEHI Inactive to RD or ENB Active Note 8 5 nS tbes Byte Enable Setup to RD or ENB Active 0 nS tbeh Byte Enable Hold from RD or ENB Inactive 0 nS trdwrs RD_WR Setup to ENB Active Note 10 5 nS trdwrh RD_WR Hold from ENB Inactive Note 10 5 nS trdon RD or ENB to Data Buffer Turn On 0 nS trddh Data Output Hold Time from RD or ENB Inactive 0 nS trddz Data Buffer Turn Off Time from RD or ENB Inactive tcson CS to Data Buffer Turn On 0 nS tcsdh Data Output Hold Time from CS Inactive 0 nS tcsdz Data Buffer Turn Off Time from CS Inactive trdale RD or ENB De-assertion Time before Address Phase 13 nS trdrd RD or ENB De-assertion Time before Next RD or ENB Note 10 13 nS trdwr RD De-assertion Time before Next WR Note 11, Note 12 13 nS tcswa CS Active to WAIT_ACK Valid 10 nS trdwa RD or ENB Active to WAIT_ACK Active 10 nS  2020 Microchip Technology Inc. 9 9 nS nS DS00003422A-page 133 LAN9254 TABLE 8-5: MULTIPLEXED ADDRESSING READ CYCLE TIMING VALUES Symbol tread Description Max Units RD or ENB Active to WAIT_ACK Inactive - 8-bit read - no pending prior write Note 13 235 nS RD or ENB Active to WAIT_ACK Inactive - 8-bit read - 8-bit pending prior write Note 13 435 nS RD or ENB Active to WAIT_ACK Inactive - 8-bit read - 16-bit pending prior write Note 13 495 nS RD or ENB Active to WAIT_ACK Inactive - 16-bit read - no pending prior write Note 13 315 nS RD or ENB Active to WAIT_ACK Inactive - 16-bit read - 8-bit pending prior write Note 13 515 nS RD or ENB Active to WAIT_ACK Inactive - 16-bit read - 16-bit pending prior write Note 13 575 nS 5 nS twadv WAIT_ACK Inactive to Data Valid - normal WAIT_ACK tdvwa Data Valid Before WAIT_ACK Inactive - delayed WAIT_ACK tcswaz WAIT_ACK Turn Off Time from CS Inactive Min Typ 15 nS 9 nS Note 7: Dual Phase Addressing Note 8: Depends on ALEHI / ALELO order. Note 9: ALELO and/or ALEHI qualified with the CS. Note 10: RD_WR and ENB signaling. Note 11: No interposed address phase. Note 12: RD and WR signaling. Note 13: Add 20nS if delayed WAIT_ACK is enabled. Note: Timing values are with respect to an equivalent test load of 25 pF. DS00003422A-page 134  2020 Microchip Technology Inc. LAN9254 8.7.1.3 Write Timing Requirements - Legacy Mode The following sections present timing requirements while in LAN9252 compatible Legacy mode (i.e. not in EtherCAT Direct Mapped mode). Byte Enables BE1/BE0 are not used in Legacy mode and are not shown. If enabled for output, WAIT_ACK is held inactive (ACK) and is shown as such. If RD and WR signaling is used, a host write cycle begins when WR is asserted with CS active. The cycle ends when WR is deasserted. CS may be asserted and deasserted along with WR but not during WR active. Alternatively, if RD_WR and ENB signaling is used, a host write cycle begins when ENB is asserted with CS active and RD_WR indicating a write. The cycle ends when ENB is deasserted. CS may be asserted and deasserted along with ENB but not during ENB active. Please refer to Section 8.5.1, "Multiplexed Addressing Mode Functional Timing Diagrams," on page 82 for functional descriptions. FIGURE 8-64: MULTIPLEXED ADDRESSING WRITE CYCLE TIMING tcsale tcswr twrcs CS twale twrale ALEHI taleale twrale ALELO tadrs tadrh AD[7:0] input AD[15:8] input RD_WR tds tdh trdwrh trdwrs talewr twr twrcyc twrwr ENB, WR twrrd RD tcswa tcswa tcswaz WAIT_ACK  2020 Microchip Technology Inc. DS00003422A-page 135 LAN9254 TABLE 8-6: MULTIPLEXED ADDRESSING WRITE CYCLE TIMING VALUES Symbol Description Min Typ Max Units tcsale CS Setup to ALELO, ALEHI Active Note 16, Note 15 0 nS tcswr CS Setup to WR or ENB Active 0 nS twrcs CS Hold from WR or ENB Inactive 0 nS twale ALELO, ALEHI Pulse Width 10 nS tadrs Address Setup to ALELO, ALEHI Inactive 10 nS tadrh Address Hold from ALELO, ALEHI Inactive 5 nS taleale ALELO Inactive to ALEHI Active ALEHI Inactive to ALELO Active Note 14, Note 15 0 nS talewr ALELO, ALEHI Inactive to WR or ENB Active Note 15 5 nS trdwrs RD_WR Setup to ENB Active Note 17 5 nS trdwrh RD_WR Hold from ENB Inactive Note 17 5 nS tds Data Setup to WR or ENB Inactive 10 nS tdh Data Hold from WR or ENB Inactive 0 nS twr WR or ENB Active Time 32 nS twrcyc WR or ENB Cycle Time 45 nS twrale WR or ENB De-assertion Time before Address Phase 13 nS twrwr WR or ENB De-assertion Time before Next WR or ENB Note 18 13 nS twrrd WR De-assertion Time before Next RD Note 18, Note 19 13 nS tcswa CS Active to WAIT_ACK Valid 10 nS tcswaz WAIT_ACK Turn Off Time from CS Inactive 9 nS Note 14: Dual Phase Addressing Note 15: Depends on ALEHI / ALELO order. Note 16: ALELO and/or ALEHI qualified with the CS. Note 17: RD_WR and ENB signaling. Note 18: No interposed address phase. Note 19: RD and WR signaling. DS00003422A-page 136  2020 Microchip Technology Inc. LAN9254 8.7.1.4 Posted Write Timing Requirements - EtherCAT Direct Mapped Mode The following sections present functional timing diagrams while in EtherCAT Direct Mapped mode. If enabled for output, WAIT_ACK is used to indicate when the write cycle may be concluded, otherwise the host must assume the worst case write access time listed. WAIT_ACK is output with CS active and will be active if there was a pending prior write. Otherwise it will be inactive. The write strobe (WR or ENB) may be made active. Once WAIT_ACK is inactive the write strobe may be made inactive. WAIT_ACK becomes active upon an inactive WR or ENB. If CS and WD/ENB become inactive concurrently, WAIT_ACK is released and the active state may not be seen. If RD and WR signaling is used, a host write cycle begins when WR is asserted with CS active. The cycle ends when WR is deasserted. CS may be asserted and deasserted along with WR but not during WR active. Alternatively, if RD_WR and ENB signaling is used, a host write cycle begins when ENB is asserted with CS active and RD_WR indicating a write. The cycle ends when ENB is deasserted. CS may be asserted and deasserted along with ENB but not during ENB active. Please refer to Section 8.6.1, "Multiplexed Addressing Mode Functional Timing Diagrams," on page 104 for functional descriptions. FIGURE 8-65: MULTIPLEXED ADDRESSING POSTED WRITE CYCLE TIMING tcsale tcswr twrcs CS twale twrale ALEHI taleale twrale ALELO tadrs tadrh AD[7:0] input AD[15:8] input tbes tbeh BE[1:0] RD_WR tds tdh trdwrh trdwrs talewr twr twrcyc twrwr ENB, WR twrite twawr twrrd RD tcswa tcswa twrwa tcswaz WAIT_ACK (with pending prior write)  2020 Microchip Technology Inc. DS00003422A-page 137 LAN9254 TABLE 8-7: MULTIPLEXED ADDRESSING POSTED WRITE CYCLE TIMING VALUES Symbol Description Min Typ Max Units tcsale CS Setup to ALELO, ALEHI Active Note 22, Note 21 0 nS tcswr CS Setup to WR or ENB Active 0 nS twrcs CS Hold from WR or ENB Inactive 0 nS twale ALELO, ALEHI Pulse Width 10 nS tadrs Address Setup to ALELO, ALEHI Inactive 10 nS tadrh Address Hold from ALELO, ALEHI Inactive 5 nS taleale ALELO Inactive to ALEHI Active ALEHI Inactive to ALELO Active Note 20, Note 21 0 nS talewr ALELO, ALEHI Inactive to WR or ENB Active Note 21 5 nS tbes Byte Enable Setup to WR or ENB Active 0 nS tbeh Byte Enable Hold from WR or ENB Inactive 0 nS trdwrs RD_WR Setup to ENB Active Note 23 5 nS trdwrh RD_WR Hold from ENB Inactive Note 23 5 nS tds Data Setup to WR or ENB Inactive 10 nS tdh Data Hold from WR or ENB Inactive 0 nS twr WR or ENB Active Time - no pending prior write 32 nS twrcyc WR or ENB Cycle Time - no pending prior write 45 nS twrale WR or ENB De-assertion Time before Address Phase 13 nS twrwr WR or ENB De-assertion Time before Next WR or ENB Note 24 13 nS twrrd WR De-assertion Time before Next RD Note 24, Note 25 13 nS tcswa CS Active to WAIT_ACK Valid 10 nS WR or ENB Active to WAIT_ACK Inactive - pending prior 8-bit write 200 nS WR or ENB Active to WAIT_ACK Inactive - pending prior 16-bit write 280 nS twrite twawr WAIT_ACK Inactive to WR or ENB Inactive twrwa WR or ENB Inactive to WAIT_ACK Active Note 26 10 nS tcswaz WAIT_ACK Turn Off Time from CS Inactive 9 nS DS00003422A-page 138 0 nS  2020 Microchip Technology Inc. LAN9254 Note 20: Dual Phase Addressing Note 21: Depends on ALEHI / ALELO order. Note 22: ALELO and/or ALEHI qualified with the CS. Note 23: RD_WR and ENB signaling. Note 24: No interposed address phase. Note 25: RD and WR signaling. Note 26: If not three-stated first. 8.7.1.5 Non-Posted Write Timing Requirements - EtherCAT Direct Mapped Mode The following sections present functional timing diagrams while in EtherCAT Direct Mapped mode. If enabled for output, WAIT_ACK is used to indicate when the write cycle may be concluded, otherwise the host must assume the worst case write access time listed. WAIT_ACK is output with CS active. It will be initially inactive and becomes active with write strobe (WR or ENB) active. Once WAIT_ACK is inactive the write strobe may be made inactive. If RD and WR signaling is used, a host write cycle begins when WR is asserted with CS active. The cycle ends when WR is deasserted. CS may be asserted and deasserted along with WR but not during WR active. Alternatively, if RD_WR and ENB signaling is used, a host write cycle begins when ENB is asserted with CS active and RD_WR indicating a write. The cycle ends when ENB is deasserted. CS may be asserted and deasserted along with ENB but not during ENB active. Please refer to Section 8.6.1, "Multiplexed Addressing Mode Functional Timing Diagrams," on page 104 for functional descriptions. FIGURE 8-66: MULTIPLEXED ADDRESSING NON-POSTED WRITE CYCLE TIMING tcsale tcswr twrcs CS twale twrale ALEHI taleale twrale ALELO tadrs tadrh AD[7:0] input AD[15:8] input tbes tbeh BE[1:0] RD_WR tds tdh trdwrs trdwrh t alewr twrwr ENB, WR twrite twawr twrrd RD tcswa tcswa twrwa tcswaz WAIT_ACK  2020 Microchip Technology Inc. DS00003422A-page 139 LAN9254 TABLE 8-8: MULTIPLEXED ADDRESSING NON-POSTED WRITE CYCLE TIMING VALUES Symbol Description Min Typ Max Units tcsale CS Setup to ALELO, ALEHI Active Note 29, Note 28 0 nS tcswr CS Setup to WR or ENB Active 0 nS twrcs CS Hold from WR or ENB Inactive 0 nS twale ALELO, ALEHI Pulse Width 10 nS tadrs Address Setup to ALELO, ALEHI Inactive 10 nS tadrh Address Hold from ALELO, ALEHI Inactive 5 nS taleale ALELO Inactive to ALEHI Active ALEHI Inactive to ALELO Active Note 27, Note 28 0 nS talewr ALELO, ALEHI Inactive to WR or ENB Active Note 28 5 nS tbes Byte Enable Setup to WR or ENB Active 0 nS tbeh Byte Enable Hold from WR or ENB Inactive 0 nS trdwrs RD_WR Setup to ENB Active Note 30 5 nS trdwrh RD_WR Hold from ENB Inactive Note 30 5 nS tds Data Setup to WR or ENB Active 0 nS tdh Data Hold from WR or ENB Inactive 0 nS twrale WR or ENB De-assertion Time before Address Phase 13 nS twrwr WR or ENB De-assertion Time before Next WR or ENB Note 31 13 nS twrrd WR De-assertion Time before Next RD Note 31, Note 32 13 nS tcswa CS Active to WAIT_ACK Valid 10 nS twrwa WR or ENB Active to WAIT_ACK Active 10 nS WR or ENB Active to WAIT_ACK Inactive - 8-bit write 200 nS WR or ENB Active to WAIT_ACK Inactive - 16-bit write 280 nS twrite twawr WAIT_ACK Inactive to WR or ENB Inactive tcswaz WAIT_ACK Turn Off Time from CS Inactive 0 nS 9 nS Note 27: Dual Phase Addressing Note 28: Depends on ALEHI / ALELO order. DS00003422A-page 140  2020 Microchip Technology Inc. LAN9254 Note 29: ALELO and/or ALEHI qualified with the CS. Note 30: RD_WR and ENB signaling. Note 31: No interposed address phase. Note 32: RD and WR signaling. 8.7.2 DEMULTIPLEXED ADDRESSING MODE TIMING REQUIREMENTS The following figures and tables specify the timing requirements during Demultiplexed Address mode. Since timing requirements are similar across the multitude of operations (8 vs. 16-bit), many timing requirements are illustrated onto the same figures and do not necessarily represent any particular functional operation. The following should be noted for the timing specifications in this section: • The diagrams in this section depict active-low push-pull WAIT_ACK and active-high CS, RD, and WR signals. The polarities of these signals are selectable via the HBI WAIT_ACK Polarity, HBI Chip Select Polarity, HBI Read, Read/Write Polarity, and HBI Write, Enable Polarity bits of the PDI Configuration Register (HBI Modes), respectively. Refer to Section 8.2.2, "Control Line Polarity and Buffer Type," on page 69 for additional details. • A read cycle may be followed by followed by a write cycle or another read cycle. A write cycle may be followed by a read cycle or another write cycle. These are shown in dashed line. 8.7.2.1 Read Timing Requirements - Legacy Mode The following sections present timing requirements while in LAN9252 compatible Legacy mode (i.e. not in EtherCAT Direct Mapped mode). Byte Enables BE1/BE0 are not used in Legacy mode and are not shown. If enabled for output, WAIT_ACK is held inactive (ACK) and is shown as such. If RD and WR signaling is used, a host read cycle begins when RD is asserted with CS active. The cycle ends when RD is deasserted. CS may be asserted and deasserted along with RD but not during RD active. Alternatively, if RD_WR and ENB signaling is used, a host read cycle begins when ENB is asserted with CS active and RD_WR indicating a read. The cycle ends when ENB is deasserted. CS may be asserted and deasserted along with ENB but not during ENB active. Please refer to Section 8.5.2, "Demultiplexed Addressing Mode Functional Timing Diagrams," on page 93 for functional descriptions. FIGURE 8-67: DEMULTIPLEXED ADDRESSING READ CYCLE TIMING tcsrd trdcs tas tah CS A[15:0], END_SEL RD_WR trdwrs trdwrh trd trdcyc trdrd ENB, RD trdwr WR tadv trdon, tcson trddv, tcsdv trddh, tcsdh trddz, tcsdz D[15:8] D[7:0] tcswa tcswaz WAIT_ACK  2020 Microchip Technology Inc. DS00003422A-page 141 LAN9254 TABLE 8-9: DEMULTIPLEXED ADDRESSING READ CYCLE TIMING VALUES Symbol Description Min Typ Max Units tcsrd CS Setup to RD or ENB Active 0 nS trdcs CS Hold from RD or ENB Inactive 0 nS tas Address, END_SEL Setup to RD or ENB Active 0 nS tah Address, END_SEL Hold from RD or ENB Inactive 0 nS trdwrs RD_WR Setup to ENB Active Note 33 5 nS trdwrh RD_WR Hold from ENB Inactive Note 33 5 nS trdon RD or ENB to Data Buffer Turn On 0 nS trddv RD or ENB Active to Data Valid trddh Data Output Hold Time from RD or ENB Inactive trddz Data Buffer Turn Off Time from RD or ENB Inactive tcson CS to Data Buffer Turn On tcsdv CS Active to Data Valid tcsdh Data Output Hold Time from CS Inactive tcsdz Data Buffer Turn Off Time from CS Inactive 9 nS tadv Address, END_SEL to Data Valid 30 nS trd RD or ENB Active Time 32 nS trdcyc RD or ENB Cycle Time 45 nS trdrd RD or ENB De-assertion Time before Next RD or ENB 13 nS trdwr RD De-assertion Time before Next WR Note 34 13 nS tcswa CS Active to WAIT_ACK Valid 10 nS tcswaz WAIT_ACK Turn Off Time from CS Inactive 9 nS 30 0 nS nS 9 0 nS nS 30 0 nS nS Note 33: RD_WR and ENB signaling. Note 34: RD and WR signaling. Note: Timing values are with respect to an equivalent test load of 25 pF. DS00003422A-page 142  2020 Microchip Technology Inc. LAN9254 8.7.2.2 Read Timing Requirements - EtherCAT Direct Mapped Mode The following sections present functional timing diagrams while in EtherCAT Direct Mapped mode. If enabled for output, WAIT_ACK is used to indicate when data is valid to be captured, otherwise the host must assume the worst case data access time listed. WAIT_ACK is output with CS active and if not already active due to a pending prior write, becomes active upon RD or ENB. If CS and RD/ENB are concurrent, WAIT_ACK is driven active. If RD and WR signaling is used, a host read cycle begins when RD is asserted with CS active. The cycle ends when RD is deasserted. CS may be asserted and deasserted along with RD but not during RD active. Alternatively, if RD_WR and ENB signaling is used, a host read cycle begins when ENB is asserted with CS active and RD_WR indicating a read. The cycle ends when ENB is deasserted. CS may be asserted and deasserted along with ENB but not during ENB active. Please refer to Section 8.6.2, "Demultiplexed Addressing Mode Functional Timing Diagrams," on page 115 for functional descriptions. FIGURE 8-68: DEMULTIPLEXED ADDRESSING READ CYCLE TIMING tcsrd trdcs CS tas A[15:0], BE[1:0], END_SEL tah RD_WR trdwrs trdwrh trdrd ENB, RD trdwr WR tcson tread trdon twadv trddh, tcsdh trddz, tcsdz D[15:8] D[7:0] tcswa trdwa tdvwa tcswaz WAIT_ACK (with pending prior write)  2020 Microchip Technology Inc. (delayed WAIT_ACK) DS00003422A-page 143 LAN9254 TABLE 8-10: DEMULTIPLEXED ADDRESSING READ CYCLE TIMING VALUES Symbol Description Min Typ Max Units tcsrd CS Setup to RD or ENB Active 0 nS trdcs CS Hold from RD or ENB Inactive 0 nS tas Address, Byte Enable, END_SEL Setup to RD or ENB Active 0 nS tah Address, Byte Enable, END_SEL Hold from RD or ENB Inactive 0 nS trdwrs RD_WR Setup to ENB Active Note 35 5 nS trdwrh RD_WR Hold from ENB Inactive Note 35 5 nS trdon RD or ENB to Data Buffer Turn On 0 nS trddh Data Output Hold Time from RD or ENB Inactive 0 nS trddz Data Buffer Turn Off Time from RD or ENB Inactive tcson CS to Data Buffer Turn On 0 nS tcsdh Data Output Hold Time from CS Inactive 0 nS tcsdz Data Buffer Turn Off Time from CS Inactive trdrd RD or ENB De-assertion Time before Next RD or ENB 13 nS trdwr RD De-assertion Time before Next WR Note 36 13 nS tcswa CS Active to WAIT_ACK Valid 10 nS trdwa RD or ENB Active to WAIT_ACK Active 10 nS DS00003422A-page 144 9 9 nS nS  2020 Microchip Technology Inc. LAN9254 TABLE 8-10: tread DEMULTIPLEXED ADDRESSING READ CYCLE TIMING VALUES (CONTINUED) RD or ENB Active to WAIT_ACK Inactive - 8-bit read - no pending prior write Note 37 235 nS RD or ENB Active to WAIT_ACK Inactive - 8-bit read - 8-bit pending prior write Note 37 435 nS RD or ENB Active to WAIT_ACK Inactive - 8-bit read - 16-bit pending prior write Note 37 495 nS RD or ENB Active to WAIT_ACK Inactive - 16-bit read - no pending prior write Note 37 315 nS RD or ENB Active to WAIT_ACK Inactive - 16-bit read - 8-bit pending prior write Note 37 515 nS RD or ENB Active to WAIT_ACK Inactive - 16-bit read - 16-bit pending prior write Note 37 575 nS 5 nS twadv WAIT_ACK Inactive to Data Valid - normal WAIT_ACK tdvwa Data Valid Before WAIT_ACK Inactive - delayed WAIT_ACK tcswaz WAIT_ACK Turn Off Time from CS Inactive 15 nS 9 nS Note 35: RD_WR and ENB signaling. Note 36: RD and WR signaling. Note 37: Add 20nS if delayed WAIT_ACK is enabled. Note: Timing values are with respect to an equivalent test load of 25 pF.  2020 Microchip Technology Inc. DS00003422A-page 145 LAN9254 8.7.2.3 Write Timing Requirements - Legacy Mode The following sections present timing requirements while in LAN9252 compatible Legacy mode (i.e. not in EtherCAT Direct Mapped mode). Byte Enables BE1/BE0 are not used in Legacy mode and are not shown. If enabled for output, WAIT_ACK is held inactive (ACK) and is shown as such. If RD and WR signaling is used, a host write cycle begins when WR is asserted with CS active. The cycle ends when WR is deasserted. CS may be asserted and deasserted along with WR but not during WR active. Alternatively, if RD_WR and ENB signaling is used, a host write cycle begins when ENB is asserted with CS active and RD_WR indicating a write. The cycle ends when ENB is deasserted. CS may be asserted and deasserted along with ENB but not during ENB active. Please refer to Section 8.5.2, "Demultiplexed Addressing Mode Functional Timing Diagrams," on page 93 for functional descriptions. FIGURE 8-69: DEMULTIPLEXED ADDRESSING WRITE CYCLE TIMING tcswr twrcs tas tah CS A[15:0], END_SEL D[15:8] D[7:0] RD_WR tds trdwrs tdh trdwrh twr twrcyc twrwr ENB, WR twrrd RD tcswa tcswaz WAIT_ACK DS00003422A-page 146  2020 Microchip Technology Inc. LAN9254 TABLE 8-11: DEMULTIPLEXED ADDRESSING WRITE CYCLE TIMING VALUES Symbol Description Min Typ Max Units tcswr CS Setup to WR or ENB Active 0 nS twrcs CS Hold from WR or ENB Inactive 0 nS tas Address, END_SEL Setup to WR or ENB Active 0 nS tah Address, END_SEL Hold from WR or ENB Inactive 0 nS trdwrs RD_WR Setup to ENB Active Note 38 5 nS trdwrh RD_WR Hold from ENB Inactive Note 38 5 nS tds Data Setup to WR or ENB Inactive 10 nS tdh Data Hold from WR or ENB Inactive 0 nS twr WR or ENB Active Time 32 nS twrcyc WR or ENB Cycle Time 45 nS twrwr WR or ENB De-assertion Time before Next WR or ENB 13 nS twrrd WR De-assertion Time before Next RD Note 39 13 nS tcswa CS Active to WAIT_ACK Valid 10 nS tcswaz WAIT_ACK Turn Off Time from CS Inactive 9 nS Note 38: RD_WR and ENB signaling. Note 39: RD and WR signaling.  2020 Microchip Technology Inc. DS00003422A-page 147 LAN9254 8.7.2.4 Posted Write Timing Requirements - EtherCAT Direct Mapped Mode The following sections present functional timing diagrams while in EtherCAT Direct Mapped mode. If enabled for output, WAIT_ACK is used to indicate when the write cycle may be concluded, otherwise the host must assume the worst case write access time listed. WAIT_ACK is output with CS active and will be active if there was a pending prior write. Otherwise it will be inactive. The write strobe (WR or ENB) may be made active. Once WAIT_ACK is inactive the write strobe may be made inactive. WAIT_ACK becomes active upon an inactive WR or ENB. If CS and WD/ENB become inactive concurrently, WAIT_ACK is released and the active state may not be seen. If RD and WR signaling is used, a host write cycle begins when WR is asserted with CS active. The cycle ends when WR is deasserted. CS may be asserted and deasserted along with WR but not during WR active. Alternatively, if RD_WR and ENB signaling is used, a host write cycle begins when ENB is asserted with CS active and RD_WR indicating a write. The cycle ends when ENB is deasserted. CS may be asserted and deasserted along with ENB but not during ENB active. Please refer to Section 8.6.2, "Demultiplexed Addressing Mode Functional Timing Diagrams," on page 115 for functional descriptions. FIGURE 8-70: DEMULTIPLEXED ADDRESSING POSTED WRITE CYCLE TIMING tcswr twrcs CS tas A[15:0], BE[1:0], END_SEL tah D[15:8] D[7:0] RD_WR trdwrs twr tds tdh trdwrh twrwr twrcyc ENB, WR twrite twawr twrrd RD tcswa twrwa tcswaz WAIT_ACK (with pending prior write) DS00003422A-page 148  2020 Microchip Technology Inc. LAN9254 TABLE 8-12: DEMULTIPLEXED ADDRESSING POSTED WRITE CYCLE TIMING VALUES Symbol Description Min Typ Max Units tcswr CS Setup to WR or ENB Active 0 nS twrcs CS Hold from WR or ENB Inactive 0 nS tas Address, Byte Enable, END_SEL Setup to WR or ENB Active 0 nS tah Address, Byte Enable, END_SEL Hold from WR or ENB Inactive 0 nS trdwrs RD_WR Setup to ENB Active Note 40 5 nS trdwrh RD_WR Hold from ENB Inactive Note 40 5 nS tds Data Setup to WR or ENB Inactive 10 nS tdh Data Hold from WR or ENB Inactive 0 nS twr WR or ENB Active Time - no pending prior write 32 nS twrcyc WR or ENB Cycle Time - no pending prior write 45 nS twrwr WR or ENB De-assertion Time before Next WR or ENB 13 nS twrrd WR De-assertion Time before Next RD Note 41 13 nS tcswa CS Active to WAIT_ACK Valid 10 nS WR or ENB Active to WAIT_ACK Inactive - pending prior 8-bit write 200 nS WR or ENB Active to WAIT_ACK Inactive - pending prior 16-bit write 280 nS twrite twawr WAIT_ACK Inactive to WR or ENB Inactive twrwa WR or ENB Inactive to WAIT_ACK Active Note 42 10 nS tcswaz WAIT_ACK Turn Off Time from CS Inactive 9 nS 0 nS Note 40: RD_WR and ENB signaling. Note 41: RD and WR signaling. Note 42: If not three-stated first.  2020 Microchip Technology Inc. DS00003422A-page 149 LAN9254 8.7.2.5 Non-Posted Write Timing Requirements - EtherCAT Direct Mapped Mode The following sections present functional timing diagrams while in EtherCAT Direct Mapped mode. If enabled for output, WAIT_ACK is used to indicate when the write cycle may be concluded, otherwise the host must assume the worst case write access time listed. WAIT_ACK is output with CS active. It will be initially inactive and becomes active with write strobe (WR or ENB) active. Once WAIT_ACK is inactive the write strobe may be made inactive. If RD and WR signaling is used, a host write cycle begins when WR is asserted with CS active. The cycle ends when WR is deasserted. CS may be asserted and deasserted along with WR but not during WR active. Alternatively, if RD_WR and ENB signaling is used, a host write cycle begins when ENB is asserted with CS active and RD_WR indicating a write. The cycle ends when ENB is deasserted. CS may be asserted and deasserted along with ENB but not during ENB active. Please refer to Section 8.6.2, "Demultiplexed Addressing Mode Functional Timing Diagrams," on page 115 for functional descriptions. FIGURE 8-71: DEMULTIPLEXED ADDRESSING NON-POSTED WRITE CYCLE TIMING tcswr twrcs CS tas A[15:0], BE[1:0], END_SEL tah D[15:8] D[7:0] RD_WR tds tdh trdwrs trdwrh twrwr ENB, WR twrite twawr twrrd RD tcswa twrwa tcswaz WAIT_ACK DS00003422A-page 150  2020 Microchip Technology Inc. LAN9254 TABLE 8-13: DEMULTIPLEXED ADDRESSING NON-POSTED WRITE CYCLE TIMING VALUES Symbol Description Min Typ Max Units tcswr CS Setup to WR or ENB Active 0 nS twrcs CS Hold from WR or ENB Inactive 0 nS tas Address, Byte Enable, END_SEL Setup to WR or ENB Active 0 nS tah Address, Byte Enable, END_SEL Hold from WR or ENB Inactive 0 nS trdwrs RD_WR Setup to ENB Active Note 43 5 nS trdwrh RD_WR Hold from ENB Inactive Note 43 5 nS tds Data Setup to WR or ENB Active 0 nS tdh Data Hold from WR or ENB Inactive 0 nS twrwr WR or ENB De-assertion Time before Next WR or ENB 13 nS twrrd WR De-assertion Time before Next RD Note 44 13 nS tcswa CS Active to WAIT_ACK Valid 10 nS twrwa WR or ENB Active to WAIT_ACK Active 10 nS WR or ENB Active to WAIT_ACK Inactive - 8-bit write 200 nS WR or ENB Active to WAIT_ACK Inactive - 16-bit write 280 nS twrite twawr WAIT_ACK Inactive to WR or ENB Inactive tcswaz WAIT_ACK Turn Off Time from CS Inactive 0 nS 9 nS Note 43: RD_WR and ENB signaling. Note 44: RD and WR signaling.  2020 Microchip Technology Inc. DS00003422A-page 151 LAN9254 8.7.3 INDEXED ADDRESSING MODE TIMING REQUIREMENTS The following figures and tables specify the timing requirements during Indexed Address mode. Since timing requirements are similar across the multitude of operations (e.g. 8 vs. 16-bit, Index vs. Configuration vs. Data registers, Index Register Bypass FIFO Access), many timing requirements are illustrated onto the same figures and do not necessarily represent any particular functional operation. The following should be noted for the timing specifications in this section: • The diagrams in this section depict active-low push-pull WAIT_ACK and active-high CS, RD, WR, RD_WR, and ENB signals. The polarities of these signals are selectable via the HBI WAIT_ACK Polarity, HBI Chip Select Polarity, HBI Read, Read/Write Polarity, and HBI Write, Enable Polarity bits of the PDI Configuration Register (HBI Modes), respectively. Refer to Section 8.2.2, "Control Line Polarity and Buffer Type," on page 69 for additional details. • A read cycle may be followed by followed by a write cycle or another read cycle. A write cycle may be followed by a read cycle or another write cycle. These are shown in dashed line. 8.7.3.1 Read Timing Requirements - Legacy Mode The following sections present timing requirements while in LAN9252 compatible Legacy mode (i.e., not in EtherCAT Direct Mapped mode). If enabled for output, WAIT_ACK is held inactive (ACK) and is shown as such. If RD and WR signaling is used, a host read cycle begins when RD is asserted with CS active. The cycle ends when RD is deasserted. CS may be asserted and deasserted along with RD but not during RD active. Alternatively, if RD_WR and ENB signaling is used, a host read cycle begins when ENB is asserted with CS active and RD_WR indicating a read. The cycle ends when ENB is deasserted. CS may be asserted and deasserted along with ENB but not during ENB active. Please refer to Section 8.5.3, "Indexed Address Mode Functional Timing Diagrams," on page 97 for functional descriptions. FIGURE 8-72: INDEXED ADDRESSING READ CYCLE TIMING tcsrd trdcs tas tah CS A[4:0] RD_WR trdwrs trdwrh trd trdcyc trdrd ENB, RD trdwr WR tadv trdon, tcson trddv, tcsdv trddh, tcsdh trddz, tcsdz D[15:8] D[7:0] tcswa tcswaz WAIT_ACK DS00003422A-page 152  2020 Microchip Technology Inc. LAN9254 TABLE 8-14: INDEXED ADDRESSING READ CYCLE TIMING VALUES Symbol Description Min Typ Max Units tcsrd CS Setup to RD or ENB Active 0 nS trdcs CS Hold from RD or ENB Inactive 0 nS tas Address Setup to RD or ENB Active 0 nS tah Address Hold from RD or ENB Inactive 0 nS trdwrs RD_WR Setup to ENB Active Note 45 5 nS trdwrh RD_WR Hold from ENB Inactive Note 45 5 nS trdon RD or ENB to Data Buffer Turn On 0 nS trddv RD or ENB Active to Data Valid trddh Data Output Hold Time from RD or ENB Inactive trddz Data Buffer Turn Off Time from RD or ENB Inactive tcson CS to Data Buffer Turn On tcsdv CS Active to Data Valid tcsdh Data Output Hold Time from CS Inactive tcsdz Data Buffer Turn Off Time from CS Inactive 9 nS tadv Address to Data Valid 30 nS trd RD or ENB Active Time 32 nS trdcyc RD or ENB Cycle Time 45 nS trdrd RD or ENB De-assertion Time before Next RD or ENB 13 nS trdwr RD De-assertion Time before Next WR Note 46 13 nS tcswa CS Active to WAIT_ACK Valid 10 nS tcswaz WAIT_ACK Turn Off Time from CS Inactive 9 nS 30 0 nS nS 9 0 nS nS 30 0 nS nS Note 45: RD_WR and ENB signaling. Note 46: RD and WR signaling. Note: Timing values are with respect to an equivalent test load of 25 pF.  2020 Microchip Technology Inc. DS00003422A-page 153 LAN9254 8.7.3.2 Read Timing Requirements - EtherCAT Direct Mapped Mode The following sections present functional timing diagrams while in EtherCAT Direct Mapped mode. If enabled for output, WAIT_ACK is used to indicate when data is valid to be captured, otherwise the host must assume the worst case data access time listed. WAIT_ACK is output with CS active and if not already active due to a pending prior write, becomes active upon RD or ENB. If CS and RD/ENB are concurrent, WAIT_ACK is driven active. If RD and WR signaling is used, a host read cycle begins when RD is asserted with CS active. The cycle ends when RD is deasserted. CS may be asserted and deasserted along with RD but not during RD active. Alternatively, if RD_WR and ENB signaling is used, a host read cycle begins when ENB is asserted with CS active and RD_WR indicating a read. The cycle ends when ENB is deasserted. CS may be asserted and deasserted along with ENB but not during ENB active. Please refer to Section 8.6.3, "Indexed Address Mode Functional Timing Diagrams," on page 122 for functional descriptions. FIGURE 8-73: INDEXED ADDRESSING READ CYCLE TIMING tcsrd trdcs CS tas tah A[4:0] RD_WR trdwrs trdwrh trdrd ENB, RD trdwr WR tcson tread trdon twadv trddh, tcsdh trddz, tcsdz D[15:8] D[7:0] tcswa trdwa tdvwa tcswaz WAIT_ACK (with pending prior write) DS00003422A-page 154 (delayed WAIT_ACK)  2020 Microchip Technology Inc. LAN9254 TABLE 8-15: INDEXED ADDRESSING READ CYCLE TIMING VALUES Symbol Description Min Typ Max Units tcsrd CS Setup to RD or ENB Active 0 nS trdcs CS Hold from RD or ENB Inactive 0 nS tas Address, END_SEL Setup to RD or ENB Active 0 nS tah Address, END_SEL Hold from RD or ENB Inactive 0 nS trdwrs RD_WR Setup to ENB Active Note 47 5 nS trdwrh RD_WR Hold from ENB Inactive Note 47 5 nS trdon RD or ENB to Data Buffer Turn On 0 nS trddh Data Output Hold Time from RD or ENB Inactive 0 nS trddz Data Buffer Turn Off Time from RD or ENB Inactive tcson CS to Data Buffer Turn On 0 nS tcsdh Data Output Hold Time from CS Inactive 0 nS tcsdz Data Buffer Turn Off Time from CS Inactive trdrd RD or ENB De-assertion Time before Next RD or ENB 13 nS trdwr RD De-assertion Time before Next WR Note 48 13 nS tcswa CS Active to WAIT_ACK Valid 10 nS trdwa RD or ENB Active to WAIT_ACK Active 10 nS  2020 Microchip Technology Inc. 9 9 nS nS DS00003422A-page 155 LAN9254 TABLE 8-15: tread INDEXED ADDRESSING READ CYCLE TIMING VALUES (CONTINUED) RD or ENB Active to WAIT_ACK Inactive - 8-bit read - no pending prior write Note 49 235 nS RD or ENB Active to WAIT_ACK Inactive - 8-bit read - 8-bit pending prior write Note 49 435 nS RD or ENB Active to WAIT_ACK Inactive - 8-bit read - 16-bit pending prior write Note 49 495 nS RD or ENB Active to WAIT_ACK Inactive - 16-bit read - no pending prior write Note 49 315 nS RD or ENB Active to WAIT_ACK Inactive - 16-bit read - 8-bit pending prior write Note 49 515 nS RD or ENB Active to WAIT_ACK Inactive - 16-bit read - 16-bit pending prior write Note 49 575 nS 5 nS twadv WAIT_ACK Inactive to Data Valid - normal WAIT_ACK tdvwa Data Valid Before WAIT_ACK Inactive - delayed WAIT_ACK tcswaz WAIT_ACK Turn Off Time from CS Inactive 15 nS 9 nS Note 47: RD_WR and ENB signaling. Note 48: RD and WR signaling. Note 49: Add 20nS if delayed WAIT_ACK is enabled. Note: Timing values are with respect to an equivalent test load of 25 pF. DS00003422A-page 156  2020 Microchip Technology Inc. LAN9254 8.7.3.3 Write Timing Requirements - Legacy Mode The following sections present timing requirements while in LAN9252 compatible Legacy mode (i.e. not in EtherCAT Direct Mapped mode). If enabled for output, WAIT_ACK is held inactive (ACK) and is shown as such. If RD and WR signaling is used, a host write cycle begins when WR is asserted with CS active. The cycle ends when WR is deasserted. CS may be asserted and deasserted along with WR but not during WR active. Alternatively, if RD_WR and ENB signaling is used, a host write cycle begins when ENB is asserted with CS active and RD_WR indicating a write. The cycle ends when ENB is deasserted. CS may be asserted and deasserted along with ENB but not during ENB active. Please refer to Section 8.5.3, "Indexed Address Mode Functional Timing Diagrams," on page 97 for functional descriptions. FIGURE 8-74: INDEXED ADDRESSING WRITE CYCLE TIMING tcswr twrcs tas tah CS A[4:0] D[15:8] D[7:0] RD_WR t ds tdh trdwrh trdwrs twr twrcyc twrwr ENB, WR twrrd RD tcswa tcswaz WAIT_ACK  2020 Microchip Technology Inc. DS00003422A-page 157 LAN9254 TABLE 8-16: INDEXED ADDRESSING WRITE CYCLE TIMING VALUES Symbol Description Min Typ Max Units tcswr CS Setup to WR or ENB Active 0 nS twrcs CS Hold from WR or ENB Inactive 0 nS tas Address Setup to WR or ENB Active 0 nS tah Address Hold from WR or ENB Inactive 0 nS trdwrs RD_WR Setup to ENB Active Note 50 5 nS trdwrh RD_WR Hold from ENB Inactive Note 50 5 nS tds Data Setup to WR or ENB Inactive 10 nS tdh Data Hold from WR or ENB Inactive 0 nS twr WR or ENB Active Time 32 nS twrcyc WR or ENB Cycle Time 45 nS twrwr WR or ENB De-assertion Time before Next WR or ENB 13 nS twrrd WR De-assertion Time before Next RD Note 51 13 nS tcswa CS Active to WAIT_ACK Valid 10 nS tcswaz WAIT_ACK Turn Off Time from CS Inactive 9 nS Note 50: RD_WR and ENB signaling. Note 51: RD and WR signaling. DS00003422A-page 158  2020 Microchip Technology Inc. LAN9254 8.7.3.4 Posted Write Timing Requirements - EtherCAT Direct Mapped Mode The following sections present functional timing diagrams while in EtherCAT Direct Mapped mode. If enabled for output, WAIT_ACK is used to indicate when the write cycle may be concluded, otherwise the host must assume the worst case write access time listed. WAIT_ACK is output with CS active and will be active if there was a pending prior write. Otherwise it will be inactive. The write strobe (WR or ENB) may be made active. Once WAIT_ACK is inactive the write strobe may be made inactive. WAIT_ACK becomes active upon an inactive WR or ENB. If CS and WD/ENB become inactive concurrently, WAIT_ACK is released and the active state may not be seen. If RD and WR signaling is used, a host write cycle begins when WR is asserted with CS active. The cycle ends when WR is deasserted. CS may be asserted and deasserted along with WR but not during WR active. Alternatively, if RD_WR and ENB signaling is used, a host write cycle begins when ENB is asserted with CS active and RD_WR indicating a write. The cycle ends when ENB is deasserted. CS may be asserted and deasserted along with ENB but not during ENB active. Please refer to Section 8.6.3, "Indexed Address Mode Functional Timing Diagrams," on page 122 for functional descriptions. FIGURE 8-75: INDEXED ADDRESSING POSTED WRITE CYCLE TIMING tcswr twrcs CS tas tah A[4:0] D[15:8] D[7:0] RD_WR t ds tdh trdwrh trdwrs twr twrcyc twrwr ENB, WR twrite twawr twrrd RD tcswa twrwa tcswaz WAIT_ACK (with pending prior write)  2020 Microchip Technology Inc. DS00003422A-page 159 LAN9254 TABLE 8-17: INDEXED ADDRESSING POSTED WRITE CYCLE TIMING VALUES Symbol Description Min Typ Max Units tcswr CS Setup to WR or ENB Active 0 nS twrcs CS Hold from WR or ENB Inactive 0 nS tas Address Setup to WR or ENB Active 0 nS tah Address Hold from WR or ENB Inactive 0 nS trdwrs RD_WR Setup to ENB Active Note 52 5 nS trdwrh RD_WR Hold from ENB Inactive Note 52 5 nS tds Data Setup to WR or ENB Inactive 10 nS tdh Data Hold from WR or ENB Inactive 0 nS twr WR or ENB Active Time - no pending prior write 32 nS twrcyc WR or ENB Cycle Time - no pending prior write 45 nS twrwr WR or ENB De-assertion Time before Next WR or ENB 13 nS twrrd WR De-assertion Time before Next RD Note 53 13 nS tcswa CS Active to WAIT_ACK Valid 10 nS WR or ENB Active to WAIT_ACK Inactive - pending prior 8-bit write 200 nS WR or ENB Active to WAIT_ACK Inactive - pending prior 16-bit write 280 nS twrite twawr WAIT_ACK Inactive to WR or ENB Inactive twrwa WR or ENB Inactive to WAIT_ACK Active Note 54 10 nS tcswaz WAIT_ACK Turn Off Time from CS Inactive 9 nS 0 nS Note 52: RD_WR and ENB signaling. Note 53: RD and WR signaling. Note 54: If not three-stated first. DS00003422A-page 160  2020 Microchip Technology Inc. LAN9254 8.7.3.5 Non-Posted Write Timing Requirements - EtherCAT Direct Mapped Mode The following sections present functional timing diagrams while in EtherCAT Direct Mapped mode. If enabled for output, WAIT_ACK is used to indicate when the write cycle may be concluded, otherwise the host must assume the worst case write access time listed. WAIT_ACK is output with CS active. It will be initially inactive and becomes active with write strobe (WR or ENB) active. Once WAIT_ACK is inactive the write strobe may be made inactive. If RD and WR signaling is used, a host write cycle begins when WR is asserted with CS active. The cycle ends when WR is deasserted. CS may be asserted and deasserted along with WR but not during WR active. Alternatively, if RD_WR and ENB signaling is used, a host write cycle begins when ENB is asserted with CS active and RD_WR indicating a write. The cycle ends when ENB is deasserted. CS may be asserted and deasserted along with ENB but not during ENB active. Please refer to Section 8.6.3, "Indexed Address Mode Functional Timing Diagrams," on page 122 for functional descriptions. FIGURE 8-76: INDEXED ADDRESSING NON-POSTED WRITE CYCLE TIMING tcswr twrcs CS tas tah A[4:0] D[15:8] D[7:0] RD_WR tds tdh trdwrs trdwrh twrwr ENB, WR twrite twawr twrrd RD tcswa twrwa tcswaz WAIT_ACK  2020 Microchip Technology Inc. DS00003422A-page 161 LAN9254 TABLE 8-18: INDEXED ADDRESSING NON-POSTED WRITE CYCLE TIMING VALUES Symbol Description Min Typ Max Units tcswr CS Setup to WR or ENB Active 0 nS twrcs CS Hold from WR or ENB Inactive 0 nS tas Address Setup to WR or ENB Active 0 nS tah Address Hold from WR or ENB Inactive 0 nS trdwrs RD_WR Setup to ENB Active Note 55 5 nS trdwrh RD_WR Hold from ENB Inactive Note 55 5 nS tds Data Setup to WR or ENB Active 0 nS tdh Data Hold from WR or ENB Inactive 0 nS twrwr WR or ENB De-assertion Time before Next WR or ENB 13 nS twrrd WR De-assertion Time before Next RD Note 56 13 nS tcswa CS Active to WAIT_ACK Valid 10 nS twrwa WR or ENB Active to WAIT_ACK Active 10 nS WR or ENB Active to WAIT_ACK Inactive - 8-bit write 200 nS WR or ENB Active to WAIT_ACK Inactive - 16-bit write 280 nS twrite twawr WAIT_ACK Inactive to WR or ENB Inactive tcswaz WAIT_ACK Turn Off Time from CS Inactive 0 nS 9 nS Note 55: RD_WR and ENB signaling. Note 56: RD and WR signaling. DS00003422A-page 162  2020 Microchip Technology Inc. LAN9254 9.0 SPI/SQI SLAVE 9.1 Functional Overview The SPI/SQI Slave module provides a low pin count synchronous slave interface that facilitates communication between the device and a host system. The SPI/SQI Slave allows access to the System CSRs and internal FIFOs and memories. It supports single and multiple register read and write commands with incrementing, decrementing and static addressing. Single, Dual and Quad bit lanes are supported in SPI mode with a clock rate of up to 80 MHz. SQI mode always uses four bit lanes and also operates at up to 80 MHz. The following is an overview of the functions provided by the SPI/SQI Slave: • Serial Read: 4-wire (clock, select, data in and data out) reads at up to 30 MHz. Serial command, address and data. Single and multiple register reads with incrementing, decrementing or static addressing. • Fast Read: 4-wire (clock, select, data in and data out) reads at up to 80 MHz. Serial command, address and data. Dummy byte(s) for first access. Single and multiple register reads with incrementing, decrementing or static addressing. • Dual / Quad Output Read: 4 or 6-wire (clock, select, data in / out) reads at up to 80 MHz. Serial command and address, parallel data. Dummy byte(s) for first access. Single and multiple register reads with incrementing, decrementing or static addressing. • Dual / Quad I/O Read: 4 or 6-wire (clock, select, data in / out) reads at up to 80 MHz. Serial command, parallel address and data. Dummy byte(s) for first access. Single and multiple register reads with incrementing, decrementing or static addressing. • SQI Read: 6-wire (clock, select, data in / out) writes at up to 80 MHz. Parallel command, address and data. Dummy byte(s) for first access. Single and multiple register reads with incrementing, decrementing or static addressing. • Write: 4-wire (clock, select, data in and data out) writes at up to 80 MHz. Serial command, address and data. Single and multiple register writes with incrementing, decrementing or static addressing. • Dual / Quad Data Write: 4 or 6-wire (clock, select, data in / out) writes at up to 80 MHz. Serial command and address, parallel data. Single and multiple register writes with incrementing, decrementing or static addressing. • Dual / Quad Address / Data Write: 4 or 6-wire (clock, select, data in / out) writes at up to 80 MHz. Serial command, parallel address and data. Single and multiple register writes with incrementing, decrementing or static addressing. • SQI Write: 6-wire (clock, select, data in / out) writes at up to 80 MHz. Parallel command, address and data. Single and multiple register writes with incrementing, decrementing or static addressing. 9.1.1 ETHERCAT DIRECT MAPPED MODE PCB BACKWARDS COMPATIBILITY While in EtherCAT Direct Mapped Mode, additional pins are required for full functionality. However with some caveats, EtherCAT Direct Mapped Mode can be made to work with PCBs designed for the Microchip LAN9252. WAIT_ACK: The WAIT_ACK pin on the LAN9252 functioned as the fiber mode signal detect as well as the Port B FXSD Enable. For copper twisted pair operation, this pin would either be tied to or pulled down to ground. WAIT_ACK is disabled by default to avoid a short. Without the WAIT_ACK connected to the host processor, the host SPI bus cycles must assume worst case cycle timing. 9.2 SPI/SQI Slave Operation Input data on the SIO[3:0] pins is sampled on the rising edge of the SCK input clock. Output data is sourced on the SIO[3:0] pins with the falling edge of the clock. The SCK input clock can be either an active high pulse or an active low pulse. When the SCS# chip select input is high, the SIO[3:0] inputs are ignored and the SIO[3:0] outputs are threestated. In SPI mode, the 8-bit instruction is started on the first rising edge of the input clock after SCS# goes active. The instruction is always input serially on SI/SIO0. For read and write instructions, two address bytes follow the instruction byte. Depending on the instruction, the address bytes are input either serially, or 2 or 4 bits per clock. Although some registers are accessed as DWORDs, the address field is considered a byte address. Fourteen address bits specify the address. Bits 15 and 14 of the address field specifies that the address is auto-decremented (10b) or auto-incremented (01b) for continuous accesses.  2020 Microchip Technology Inc. DS00003422A-page 163 LAN9254 For read commands (except the READ instruction), one or two transfer length bytes follow the address bytes. Depending on the instruction, the transfer length bytes are input either serially, or 2 or 4 bits per clock. Although some registers are accessed as DWORDs, the transfer length field is considered a byte length. For the one byte transfer length format, bit 7 is low and bits 6-0 specify the length up to 127 bytes. For the two byte transfer length format, bit 7 of the first byte is high and bits 6-0 specify the lower 7 bits of the length. Bits 6-0 of the of the second byte field specify the upper 7 bits of the length with a maximum transfer length of 16,383 bytes (16K-1). The transfer length does not include any Dummy Bytes. For read and write instructions, a programmable number of initial Dummy Byte cycles follow the address or transfer length (if applicable) bytes (preceding the first data byte). For read and write instructions, one or more data bytes follow the Dummy Bytes (if present, else they follow the address or transfer length (if applicable) bytes). The data is input or output either serially, or 2 or 4 bits per clock. A programmable number of Dummy Bytes (including zero) separates each data byte within a DWORD. A separately programmable number of Dummy Bytes (including zero) separates each DWORD. The device does not drive the outputs during the initial Dummy Byte cycles (that follow the address bytes) or Dummy Bytes for write instructions. It does drive the outputs during the subsequent Dummy Byte cycles for read commands. Dummy input bytes should be zero for future compatibility. Dummy output bytes are undefined. The Dummy Byte(s) are input and output either serially, or 2 or 4 bits per clock. The number of Dummy Bytes is individually programmable per read and write command type and is set with the Set SPI Config (SPICFG) instruction. The SPICFG instruction itself does not utilize Dummy Bytes so that its format is consistent. SQI mode is entered from SPI with the Enable Quad I/O (EQIO) instruction. Once in SQI mode, all further command, addresses, dummy bytes and data bytes are 4 bits per clock. SQI mode can be exited using the Reset Quad I/O (RSTQIO) instruction. All instructions, addresses, transfer lengths, and data are transferred with the most-significant bit (msb) or di-bit (msd) or nibble (msn) first. Addresses are transferred with the most-significant byte (MSB) first. Transfer lengths are transferred with the most-significant byte (LSB) first. Multiple BYTE Data is transferred with the least-significant byte (LSB) first (little endian). The SPI interface supports up to a 80 MHz input clock. Normal (non-high speed) reads instructions are limited to 30 MHz. The programmable Dummy Byte count may be used to pace the data rate or the initial read access time. The SPI interface supports a minimum time of 50 ns between successive commands (a minimum SCS# inactive time of 50 ns). The instructions supported in SPI mode are listed in Table 9-1. SQI instructions are listed in Table 9-2. Unsupported instructions are must not be used. TABLE 9-1: Instruction SPI INSTRUCTIONS Description Bit Width Note 1 Inst. code Addr. Bytes Length Bytes Initial Dummy Bytes Note 2 Note 3 Per BYTE or DWORD Dummy Bytes Note 4 Data bytes Note 5 Max Freq. Configuration SETCFG Set Configuration 1-0-1 01h 0 0 0 0 39 80 MHz EQIO Enable SQI 1-0-0 38h 0 0 0 0 0 80 MHz RSTQIO Reset SQI 1-0-0 FFh 0 0 0 0 0 80 MHz DS00003422A-page 164  2020 Microchip Technology Inc. LAN9254 TABLE 9-1: Instruction SPI INSTRUCTIONS (CONTINUED) Description Bit Width Note 1 Inst. code Addr. Bytes Length Bytes Initial Dummy Bytes Note 2 Note 3 Per BYTE or DWORD Dummy Bytes Note 4 Data bytes Note 5 Max Freq. Read READ Read 1-1-1 03h 2 0 0 to 255 0 to 255 4 to  / 1 to  30 MHz FASTREAD Read at higher speed 1-1-1 0Bh 2 1 or 2 1 to 255 0 to 255 4 to 16K / 1 to 16K 80 MHz SDOR SPI Dual Output Read 1-1-2 3Bh 2 1 or 2 1 to 255 0 to 255 4 to 16K / 1 to 16K 80 MHz SDIOR SPI Dual I/O Read 1-2-2 BBh 2 1 or 2 2 to 255 0 to 255 4 to 16K / 1 to 16K 80 MHz SQOR SPI Quad Output Read 1-1-4 6Bh 2 1 or 2 1 to 255 0 to 255 4 to 16K / 1 to 16K 80 MHz SQIOR SPI Quad I/O Read 1-4-4 EBh 2 1 or 2 4 to 255 0 to 255 4 to 16K / 1 to 16K 80 MHz Write WRITE Write 1-1-1 02h 2 0 0 to 255 0 to 255 4 to  / 1 to  80 MHz SDDW SPI Dual Data Write 1-1-2 32h 2 0 0 to 255 0 to 255 4 to  / 1 to  80 MHz SDADW SPI Dual Address / Data Write 1-2-2 B2h 2 0 0 to 255 0 to 255 4 to  / 1 to  80 MHz SQDW SPI Quad Data Write 1-1-4 62h 2 0 0 to 255 0 to 255 4 to  / 1 to  80 MHz SQADW SPI Quad Address / Data Write 1-4-4 E2h 2 0 0 to 255 0 to 255 4 to  / 1 to  80 MHz Note 1: The bit width format is: instruction code bit width, address / transfer length / initial dummy bit width, data / subsequent dummy bit width. Note 2: Although they are set as the default, the minimum values are not enforced by the hardware and should be used by software.  2020 Microchip Technology Inc. DS00003422A-page 165 LAN9254 The minimum values support operation in LAN9252 compatibility mode for operation up to 80 MHz. In EtherCAT Direct Mapped Mode alternate minimum values should be used as described in Section 9.3, EtherCAT Direct Mapped Mode. Note 3: Th bit width of the initial Dummy Bytes follows that of the address. Note 4: The bit width of the inter-data Dummy Bytes follows that of the data. Note 5: In LAN9252 compatibility mode, the minimum number of Data Bytes is 4 since all registers must be DWORD accessed. In EtherCAT Direct Mapped Mode, for non-EtherCAT core CSRs, the minimum number of Data Bytes remains as 4. For EtherCAT core CSRs or the Process RAM, the minimum number of Data Bytes is 1. TABLE 9-2: Instruction SQI INSTRUCTIONS Description Bit Width Note 6 Inst. code Addr. Bytes Length Bytes Initial Dummy Bytes Note 7 Note 8 Per BYTE or DWORD Dummy Bytes Note 9 Data bytes Note 10 Max Freq. Configuration SETCFG Set Configuration 4-0-4 01h 0 0 0 0 39 80 MHz RSTQIO Reset SQI 4-0-0 FFh 0 0 0 0 0 80 MHz 1 or 2 3 to 255 0 to 255 4 to 16K / 1 to 16K 80 MHz 0 0 to 255 0 to 255 4 to  / 1 to  80 MHz Read FASTREAD Read at higher speed 4-4-4 0Bh 2 Write WRITE Write 4-4-4 02h 2 Note 6: The bit width format is: instruction code bit width, address / transfer length / initial dummy bit width, data / subsequent dummy bit width. Note 7: Although they are set as the default, the minimum values are not enforced by the hardware and should be used by software. The minimum values support operation in LAN9252 compatibility mode for operation up to 80 MHz. In EtherCAT Direct Mapped Mode alternate minimum values should be used as described in Section 9.3, EtherCAT Direct Mapped Mode. Note 8: Th bit width of the initial Dummy Bytes follows that of the address. Note 9: The bit width of the inter-data Dummy Bytes follows that of the data. Note 10: In LAN9252 compatibility mode, the minimum number of Data Bytes is 4 since all registers must be DWORD accessed. In EtherCAT Direct Mapped Mode, for non-EtherCAT core CSRs, the minimum number of Data Bytes remains as 4. For EtherCAT core CSRs or the Process RAM, the minimum number of Data Bytes is 1. DS00003422A-page 166  2020 Microchip Technology Inc. LAN9254 9.2.1 DEVICE INITIALIZATION Until the device has been initialized to the point where the various configuration inputs are valid, the SPI/SQI interface does not respond to and is not affected by any external pin activity. Once device initialization completes, the SPI/SQI interface will ignore the pins until a rising edge of SCS# is detected. 9.2.1.1 SPI/SQI Slave Read Polling for Initialization Complete Before device initialization, the SPI/SQI interface will not return valid data. To determine when the SPI/SQI interface is functional, the Byte Order Test Register (BYTE_TEST) should be polled. Once the correct pattern is read, the interface can be considered functional. At this point, the Device Ready (READY) bit in the Hardware Configuration Register (HW_CFG) can be polled to determine when the device is fully configured. Note: 9.2.2 The Host should only use single register reads (one data cycle per SCS# low) while polling the BYTE_TEST register. ACCESS DURING AND FOLLOWING POWER MANAGEMENT During any power management mode other than D0, reads and writes are ignored and the SPI/SQI interface does not respond to and is not affected by any external pin activity. Once the power management mode changes back to D0, the SPI/SQI interface will ignore the pins until a rising edge of SCS# is detected. To determine when the SPI/SQI interface is functional, the Byte Order Test Register (BYTE_TEST) should be polled. Once the correct pattern is read, the interface can be considered functional. At this point, the Device Ready (READY) bit in the Hardware Configuration Register (HW_CFG) can be polled to determine when the device is fully configured. Note: 9.2.3 The Host should only use single register reads (one data cycle per SCS# low) while polling the BYTE_TEST register. WAIT / ACKNOWLEDGMENT OPERATION When operating in EtherCAT Direct Mapped mode (see Section 9.3, EtherCAT Direct Mapped Mode), the host system must meet the device’s timing access requirements. For reads from the EtherCAT Core CSR or Process Data RAM, the read cycles must wait until read data has been internally retrieved. All write cycles must wait for any prior write access to the EtherCAT Core CSR or Process Data RAM to internally complete. The host system may either wait the specified worst case access time, or may use the WAIT_ACK signal. The WAIT_ACK pin is enabled via the combination of the SPI WAIT_ACK Polarity and SPI WAIT_ACK Buffer Type bits of the PDI Configuration Register (SPI Modes). WAIT_ACK is only used when operating in EtherCAT Direct Mapped mode. When not in EtherCAT Direct Mapped mode, if WAIT_ACK is enabled it is always inactive (showing ACK). WAIT_ACK may be set as an active low open drain output for wire-AND systems or as a three-stated push-pull output. This is controlled by the SPI WAIT_ACK Buffer Type bit of the PDI Configuration Register (SPI Modes). As a push-pull output, its polarity is set by the SPI WAIT_ACK Polarity bit of the PDI Configuration Register (SPI Modes). WAIT_ACK operation is described in Section 9.3.2.3, Wait States. 9.2.4 9.2.4.1 SPI CONFIGURATION COMMANDS Set Configuration The Set Configuration instruction sets the number of Dummy Bytes expected for each instruction. This instruction is supported in SPI and SQI bus protocols with clock frequencies up to 80 MHz. The SPI/SQI slave interface is selected by first bringing SCS# active. The 8-bit SETCFG instruction, 01h, is input into the SI/SIO[0] pin, one bit per clock, in SPI mode and into the SIO[3:0] pins, four bits per clock, in SQI mode. The data follows the command byte. For SPI mode, the data is input into the SI/SIO[0] pin starting with the msb of the first byte. For SQI mode the data is input nibble wide using SIO[3:0] starting with the msn of the first byte. The remaining bits/nibbles are shifted in on subsequent clock edges. The SCS# input is brought inactive to conclude the cycle.  2020 Microchip Technology Inc. DS00003422A-page 167 LAN9254 The order of the Dummy Bytes along with their defaults follow. There are three values per instruction. The first is the number of Dummy Bytes that will precede the first data byte. The second is the number of Dummy Bytes that occur between bytes within a DWORD. The third is the number of Dummy Bytes that occur between DWORDs. Note there are no Dummy Bytes after the last data byte of a command. The hardware defaults shown support operation in LAN9252 compatibility mode for operation up to 80 MHz. In EtherCAT Direct Mapped Mode, alternate minimum values should be set as described in Section 9.3, EtherCAT Direct Mapped Mode. TABLE 9-3: Byte Order DUMMY BYTE ORDER AND DEFAULT Initial Instruction Within a DWORD Between DWORDs Default SPI 0 READ 1 0 - - - 0 - - 0 1 - - - 0 - - 0 1 - - - 0 - - 0 2 - - - 0 - - 0 1 - - - 0 - - 0 4 - - - 0 - - 0 0 - - - 0 - - 0 0 - - - 0 - - 0 2 3 FASTREAD 4 5 6 SDOR 7 8 9 SDIOR 10 11 12 SQOR 13 14 15 SQIOR 16 17 18 WRITE 19 20 21 22 23 DS00003422A-page 168 SDDW  2020 Microchip Technology Inc. LAN9254 TABLE 9-3: DUMMY BYTE ORDER AND DEFAULT (CONTINUED) Byte Order Within a DWORD Initial Instruction Between DWORDs Default 24 SDADW 25 0 - - - 0 - - 0 0 - - - 0 - - 0 0 - - - 0 - - 0 3 - - - 0 - - 0 0 - - - 0 - - 0 26 27 SQDW 28 29 30 SQADW 31 32 SQI 33 FASTREAD 34 35 36 WRITE 37 38 Figure 9-1 illustrates the Set Configuration instruction for SPI mode. Figure 9-2 illustrates the Set Configuration instruction for SQI mode. FIGURE 9-1: SPI MODE SET CONFIGURATION SCS# SCK (active low) X SCK (active high) X 1 2 1 3 2 4 3 5 4 6 5 7 6 8 7 1 0 9 8 9 1 1 1 0 Instruction SI X 0 0 0 SO 0 0 0 1 2 1 1 1 3 1 2 1 4 1 3 1 5 1 4 1 6 1 5 1 7 1 6 1 8 1 7 1 9 1 8 Cfg Byte 0 0 1 D 7 D 6 D 5 D 4 D 3 D 2 2 0 1 9 2 1 2 0 2 2 2 1 2 3 2 2 2 4 2 3 2 5 2 4 Cfg Byte 1 D 1 D 0 D 7 D 6 D 5 D 4 D 3 D 2 2 6 ... 2 5 2 6 X ... X Cfg 2 ... Cfg Byte 39 D 1 D 0 D 7 D 6 ... D 4 D 3 D 2 D 1 D 0 X Z SPI Set Configuration  2020 Microchip Technology Inc. DS00003422A-page 169 LAN9254 FIGURE 9-2: SQI MODE SET CONFIGURATION SCS# SCK (active low) X SCK (active high) X 1 2 1 3 2 4 3 5 4 6 5 7 6 8 7 1 0 9 8 1 1 1 0 9 1 2 1 1 1 3 1 2 1 4 1 3 1 5 1 4 1 6 1 5 ... ... 1 6 Inst Cfg0 Cfg1 Cfg2 ... SIO[3:0] X 0 1 H L H L H L X X ‫ ﺫ‬Cfg25 H L H L H L H ... L H L X SQI Set Configuration 9.2.4.2 Enable SQI The Enable SQI instruction changes the mode of operation to SQI. This instruction is supported in SPI bus protocol only with clock frequencies up to 80 MHz. This instruction is not supported in SQI bus protocol. The SPI slave interface is selected by first bringing SCS# active. The 8-bit EQIO instruction, 38h, is input into the SI/ SIO[0] pin one bit per clock. The SCS# input is brought inactive to conclude the cycle. Figure 9-3 illustrates the Enable SQI instruction. FIGURE 9-3: ENABLE SQI SCS# SCK (active low) X SCK (active high) X 1 2 1 3 2 4 3 5 4 6 5 7 6 8 7 X 8 X Instruction SI X 0 0 1 1 SO 1 0 0 0 X Z SPI Enable SQI DS00003422A-page 170  2020 Microchip Technology Inc. LAN9254 9.2.4.3 Reset SQI The Reset SQI instruction changes the mode of operation to SPI. This instruction is supported in SPI and SQI bus protocols with clock frequencies up to 80 MHz. The SPI/SQI slave interface is selected by first bringing SCS# active. The 8-bit RSTQIO instruction, FFh, is input into the SI/SIO[0] pin, one bit per clock, in SPI mode and into the SIO[3:0] pins, four bits per clock, in SQI mode. The SCS# input is brought inactive to conclude the cycle. Figure 9-4 illustrates the Reset SQI instruction for SPI mode. Figure 9-5 illustrates the Reset SQI instruction for SQI mode. FIGURE 9-4: SPI MODE RESET SQI SCS# SCK (active low) X SCK (active high) X 1 2 1 3 2 4 3 5 6 4 5 7 6 8 7 X 8 X Instruction SI X 1 1 1 1 SO 1 1 1 1 X Z SPI Mode Reset SQI FIGURE 9-5: SQI MODE RESET SQI SCS# SCK (active low) X SCK (active high) X 1 2 1 X 2 X Inst SIO[3:0] X F F X SQI Mode Reset SQI  2020 Microchip Technology Inc. DS00003422A-page 171 LAN9254 9.2.5 SPI READ COMMANDS Various read commands are support by the SPI/SQI slave. The following applies to all read commands. MULTIPLE READS Additional reads, beyond the first, are performed by continuing the clock pulses while SCS# is active. The upper two bits of the address specify auto-incrementing (address[15:14]=01b) or auto-decrementing (address[15:14]=10b). The internal address is incremented, decremented, or maintained based on these bits. Maintaining a fixed internal address is useful for register polling. Towards the end of the current output shift the address is incremented or decremented, if appropriate, and another synchronized capture sequence is done. Constant address and Auto-increment/decrement operation for multiple DWORDs operates as follows. Note that it is the DWORD address that remains constant or is incremented or decremented. The byte address within the DWORD always increments: dec/inc=00: constant DWORD aligned address read 4 bytes within the DWORD in incrementing byte order internal address repeats each DWORD starting address : yyyy internal address : yyyy byte address : First data output : yyyy valid +1 valid +2 valid +3 valid internal address : yyyy byte address : Second data output : yyyy valid +1 valid +2 valid +3 valid internal address : yyyy byte address : Last data output : yyyy valid +1 valid +2 valid +3 valid dec/inc=01: incrementing DWORD aligned starting address read 4 bytes within each DWORD in incrementing byte order internal address is incremented by 4 each DWORD starting address : yyyy internal address : yyyy byte address : First data output : yyyy valid +1 valid +2 valid +3 valid next internal address : next DWORD byte address : +4 Second data output : valid +5 valid +6 valid +7 valid next internal address : next DWORD byte address : +8 Last data output : valid +9 valid +10 valid +11 valid dec/inc=10: decrementing DWORD aligned starting address read 4 bytes within each DWORD in incrementing byte order internal address is decremented by 4 each DWORD starting address : yyyy internal address : yyyy byte address : First data output : yyyy valid +1 valid +2 valid +3 valid next internal address : previous DWORD DS00003422A-page 172  2020 Microchip Technology Inc. LAN9254 byte address : Second data output : -4 valid next internal address : previous DWORD byte address : -8 Last data output : valid -3 valid -2 valid -1 valid -7 valid -6 valid -5 valid dec/inc=11: RESERVED The above apply to full DWORD accesses starting at DWORD aligned addresses. See Section 9.3.2.1 for partial DWORD accesses or non-DWORD aligned starting addresses utilized during EtherCAT Direct Mapped mode. READ TERMINATION To avoid internally prefetching additional data past the last data that will be output, two methods are utilized. For the READ instruction, the SI input is used. During the last output byte, the SPI master must set SI high (input byte = FFh), otherwise an internal prefetch will occur with the potential of loosing data. For other read commands (FASTREAD, SDOR, SDIOR, SQOR, SQIOR), the transfer length in bytes is provided following the address. DUMMY BYTES In order to provide sufficient time to retrieve the register data (especially when reading from the EtherCAT Core CSRs or Process RAM while in EtherCAT Direct Mapped mode) Dummy Byte cycles may be used. The number of Dummy Bytes is set using the Set Configuration instruction and is specified per read command type. There are three values per instruction. The first is the number of Dummy Bytes that will precede the first data byte. The second is the number of Dummy Bytes that occur between bytes within a DWORD (intra-DWORD). The third is the number of Dummy Bytes that occur between DWORDs (inter-DWORD). There are no Dummy Bytes after the last data byte of a command. APPLICATION NOTE: The number of Dummy Bytes between DWORDs is strictly the third configuration value. It is not in addition to or paralleled with a Dummy Byte count using the second configuration value. APPLICATION NOTE: The DWORD boundary applies to all read commands even if the command is BYTE oriented (e.g. the READ command). The intra- and inter- number of Dummy Bytes can be set the same if appropriate. APPLICATION NOTE: For the READ command, a Dummy byte configuration which has second parameter (intraDWORD) equal to 0 and the third parameter (inter-DWORD) not equal to 0 is not supported. Normally the second and third parameters would be the same value in this case. APPLICATION NOTE: The DWORD boundary is based on the address of the last byte read, not on the running byte count (i.e. it is not simply every fourth byte). This is important to consider during EtherCAT Direct Mapped Mode where the starting address could be non-DWORD aligned. Refer to Section 9.3.2.1 for how the address is updated. APPLICATION NOTE: The number of clock cycles for a Dummy Byte varies based on the bit width(s) of the instruction. SPECIAL CSR HANDLING Live Bits Since data is read serially, the selected register’s value is saved at the beginning of each 32-bit read to prevent the host from reading an intermediate value. The saving occurs multiple times in a multiple read sequence.  2020 Microchip Technology Inc. DS00003422A-page 173 LAN9254 9.2.5.1 Read The Read instruction inputs the instruction code, the address and the possible initial Dummy bytes one bit per clock and outputs the data and any subsequent Dummy Byte(s) one bit per clock. This instruction is supported in SPI bus protocol only with clock frequencies up to 30 MHz. This instruction is not supported in SQI bus protocol. The SPI slave interface is selected by first bringing SCS# active. The 8-bit READ instruction, 03h, is input into the SI/ SIO[0] pin, followed by the two address bytes and 0 to 255 Dummy Byte(s). The address bytes specify a BYTE address within the device. On the falling clock edge following the rising edge of the last address or Dummy bit, the SO/SIO[1] pin is driven starting with the msb of the LSB of the selected register. The remaining register bits are shifted out on subsequent falling clock edges. For multiple byte registers, the next byte follows the last bit of the preceding byte or Dummy Byte(s). For reads of multiple registers, the first bit of the next register follows the last bit of the preceding register or Dummy Byte(s). To avoid internally prefetching additional data past the last data that will be output, the SI input is used. During the last output byte, the SPI master must set SI high (input byte = FFh), otherwise an internal prefetch will occur with the potential of loosing data. For all but the last output byte, SPI master must set SI low (input byte = 00h). The SCS# input is brought inactive to conclude the cycle. The SO/SIO[1] pin is three-stated at this time. Figure 9-6 illustrates a typical single and multiple register read. A DWORD aligned full DWORD register is shown. The final DWORD is not followed by Dummy Bytes. A partial DWORD register read is also possible and would terminate after the last data BYTE without subsequent Dummy Byte(s). It is also possible for a partial DWORD read to start on a non-DWORD aligned boundary. Application Note:A Dummy byte configuration which has second parameter (intra-DWORD) equal to 0 and the third parameter (inter-DWORD) not equal to 0 is not supported. Normally the second and third parameters would be the same value in this case. FIGURE 9-6: SPI READ SCS# SCK (active low) X SCK (active high) X 1 2 1 3 2 4 3 5 4 6 5 7 6 8 7 1 0 9 8 1 1 1 0 9 1 2 1 1 1 3 1 2 1 4 1 3 1 5 1 4 Instruction SI X 0 0 0 0 0 0 1 6 1 5 1 7 1 6 1 8 1 7 1 9 1 8 2 0 1 9 2 1 2 0 2 2 2 1 2 3 2 2 2 4 2 3 2 5 2 4 2 5 Address 1 1 d e c i n c A 1 3 A 1 2 A 1 1 A 1 0 A 9 A 8 A 7 AL 7 Z AL 6 AL 5 AL 4 AL 3 AL 2 AL 1 AL 0 A 6 AL 15 ... ... ... ... 2 6 0 to 255 Dummy A 5 A 4 A 3 A 2 A 1 A 0 0 AL bits (optionally enabled) SO 2 6 AL 14 AL 13 AL 12 AL 11 ... 0 0 0 1 if last byte else 0 0 I.S. (opt enabled) AL 10 AL 9 AL 8 0 Data I.S. I.S. I.S. I.S. I.S. I.S. I.S. I.S. 31 30 27 26 19 18 17 0 D 7 D 6 D 5 D 5 D 3 0 ... ... ... 0 0 D 1 D 0 x x ... x x X X Data (+Dummy) 0 to 255 Dummy D 2 ... 1 during last byte else 0 X D 1 5 D 1 4 D 1 3 D 1 2 D 1 1 ... X Z For multiple byte register SPI Read Single Register Initial Intra-DWORD SCS# SCK (active low) SCK (active high) X X 1 2 1 3 2 4 3 5 4 6 5 7 6 8 7 1 0 9 8 1 1 1 0 9 1 2 1 1 1 3 1 2 1 4 1 3 1 5 1 4 Instruction SI X 0 0 0 0 0 0 1 6 1 5 1 7 1 6 1 8 1 7 1 9 1 8 2 0 1 9 2 1 2 0 2 2 2 1 2 3 2 2 2 4 2 3 2 5 2 4 Address 1 1 d e c i n c A 1 3 A 1 2 A 1 1 A 1 0 A 9 A 8 A 7 A 6 Z SPI Read Multiple Registers 9.2.5.2 AL 7 AL 6 AL 5 AL 4 AL 3 AL 2 AL 1 AL 0 AL 15 AL 14 ... 2 6 ... ... ... 0 to 255 Dummy A 5 A 4 A 3 A 2 A 1 A 0 AL bits (optionally enabled) SO 2 6 2 5 AL 13 AL 12 AL 11 0 0 ... 0 0 0 0 I.S. (opt enabled) AL 10 AL 9 AL 8 I.S. I.S. I.S. I.S. I.S. I.S. I.S. I.S. 31 30 27 26 19 18 17 0 0 Reg m D 7 D 6 D 5 D 4 D 3 0 ... 0 D 1 D 0 x x ... x x ... ... ... ... 0 0 Reg m (+Dummy) 0 to 255 Dummy D 2 ... D 1 5 D 1 4 D 1 3 D 1 2 D 1 1 ... 0 0 ... ... ... 0 0 1 during last byte else 0 x ... x x X X Reg n (+Dummy) 0 to 255 Dummy x ... X D 7 D 6 D 5 D 4 D 3 ... X Z For multiple byte registers Initial Intra-DWORD Inter-DWO RD Fast Read The Read at higher speed instruction inputs the instruction code and the address, the transfer length, and the initial Dummy Bytes one bit per clock and outputs the data and any subsequent Dummy Byte(s) one bit per clock. In SQI mode, the instruction code, the address, the transfer length, and the initial Dummy Bytes are input four bits per clock and the data and any subsequent Dummy Byte(s) are output four bits per clock. This instruction is supported in SPI and SQI bus protocols with clock frequencies up to 80 MHz. The SPI/SQI slave interface is selected by first bringing SCS# active. For SPI mode, the 8-bit FASTREAD instruction, 0Bh, is input into the SI/SIO[0] pin, followed by the two address bytes, one or two transfer length bytes, and 1 to 255 Dummy Byte(s). For SQI mode, the 8-bit FASTREAD instruction is input into the SIO[3:0] pins, followed by the two DS00003422A-page 174  2020 Microchip Technology Inc. LAN9254 address bytes, one or two transfer length bytes, and 3 to 255 Dummy Bytes. The address bytes specify a BYTE address within the device. The transfer length bytes specify the data length in BYTEs and does not include any Dummy Bytes. The transfer length field is either 7 or 14 bits with maximum transfer length of 127 or 16,383 bytes (16K-1). On the falling clock edge following the rising edge of the last dummy bit (or nibble), the SO/SIO[1] pin is driven starting with the msb of the LSB of the selected register. For SQI mode, SIO[3:0] are driven starting with the msn of the LSB of the selected register. For a non-DWORD aligned starting address, 1-3 padding bytes (and possible Dummy Bytes per padding byte) occur prior to the data bytes. Padding bytes are not counted in the transfer length. The remaining register bits are shifted out on subsequent falling clock edges. For multiple byte registers, the next byte follows the last bit (or nibble) of the preceding byte or Dummy Byte(s). For reads of multiple registers, the first bit (or nibble) of the next register follows the last bit (or nibble) of the preceding register or Dummy Byte(s). The SCS# input is brought inactive to conclude the cycle. The SO/SIO[3:0] pins are three-stated at this time. Figure 9-7 illustrates a typical single and multiple register fast read for SPI mode. Figure 9-8 illustrates a typical single and multiple register fast read for SQI mode. The transfer length field may be one or two bytes. A DWORD aligned full DWORD register is shown. The final DWORD is not followed by Dummy Bytes. A partial DWORD register read is also possible and would terminate after the last data BYTE without subsequent Dummy Byte(s). It is also possible for a partial DWORD read to start on a non-DWORD aligned boundary. FIGURE 9-7: SPI FAST READ SCS# SCK (active low) SCK (active high) X 1 X 2 1 3 2 4 3 5 4 6 5 7 6 8 7 1 0 9 8 1 1 9 X 0 0 0 0 1 0 1 1 d e c i n c ... ... ... Address Transfer Length 1 1 Instruction SI ... 1 0 ... A 1 3 A 2 A 1 A 0 f m t L 6 L 5 ... L9 |2 L8|1 L7|0 AL 7 Z AL 6 AL 5 ... AL 10 AL 9 ... ... ... ... ... 1 to 255 Dummy 0 0 ... 0 0 X 0 I.S. (opt enabled) AL bits (opt enabled) SO ... AL 8 I.S. I.S. I.S. I.S. I.S. I.S. I.S. I.S. 31 30 27 26 19 18 17 0 Z 0 Data D 7 D 6 D 5 D 5 D 3 0 ... 0 D 1 D 0 x x ... x x X X Data (+Dummy) 0 to 255 Dummy D 2 ... X 0 X D 1 5 D 1 4 D 1 3 D 1 2 D 1 1 ... X Z For multiple byte register SPI Fast Read Single Register Initial Intra-DWORD SCS# SCK (active low) X SCK (active high) X 1 2 1 3 2 4 3 5 4 6 5 7 6 8 7 1 0 9 8 1 1 X 0 0 0 0 1 0 1 1 d e c ... ... ... ... Address Transfer Length 1 0 9 Instruction SI ... ... i n c 1 1 A 1 3 ... A 2 A 1 A 0 f m t L 6 L 5 ... Z AL 7 AL 6 AL 5 SPI Fast Read Multiple Registers  2020 Microchip Technology Inc. ... AL 10 AL 9 ... 1 to 255 Dummy 0 0 ... 0 0 X 0 I.S. (opt enabled) AL bits (opt enabled) SO L9 |2 L8|1 L7|0 ... AL 8 Z I.S. I.S. I.S. I.S. I.S. I.S. I.S. I.S. 31 30 27 26 19 18 17 0 0 Reg m D 7 D 6 D 5 D 4 D 3 0 ... 0 D 1 D 0 x x ... x x ... ... ... ... X 0 Reg m (+Dummy) 0 to 255 Dummy D 2 ... D 1 5 D 1 4 D 1 3 D 1 2 D 1 1 ... 0 0 ... ... ... 0 x ... x x X X Reg n (+Dummy) 0 to 255 Dummy x ... X 0 X D 7 D 6 D 5 D 4 D 3 ... X Z For multiple byte registers Initial Intra-DWORD Inter-DWO RD DS00003422A-page 175 LAN9254 FIGURE 9-8: SQI FAST READ SCS# SCK (active low) X SCK (active high) X 1 2 1 3 2 4 3 5 4 6 5 7 6 Inst Address SIO[3:0] X 0 B H 1 L 1 H 0 L 0 8 7 1 0 9 8 1 1 1 2 1 0 9 1 1 ... ... ... ... 1 2 Xfer Len 3 to 255 Dummy H 0 0 L 0 H 1 L 1 ... 0 0 0 Data H 0 L 0 ... ... 0 to 255 Dummy x x ... x x X X Data (+Dummy) H 1 L 1 H 2 L 2 ... X For multiple byte register SQI Fast Read Single Register Initial Intra-DWORD SCS# SCK (active low) X SCK (active high) X 1 2 1 3 2 4 3 5 4 6 5 6 Inst Address SIO[3:0] X 0 B H 1 L 1 H 0 SQI Fast Read Multiple Registers 9.2.5.3 7 L 0 8 7 1 0 9 8 1 1 1 2 1 0 9 1 1 ... ... ... ... 1 2 ... ... Xfer Len 3 to 255 Dummy Reg m 0 to 255 Dummy H 0 0 L 0 H 1 L 1 0 ... 0 0 H 0 L 0 x x ... x x ... ... ... ... Reg m (+Dummy) 0 to 255 Dummy Reg n (+Dummy) H 1 H 0 L 1 H 2 L 2 ... x x ... x x L 0 H 1 L 1 ... X X X For multiple byte register Initial Intra-DWORD Inter-DWORD Dual Output Read The SPI Dual Output Read instruction inputs the instruction code and the address, the transfer length, and the initial Dummy Bytes one bit per clock and outputs the data and any subsequent Dummy Byte(s) two bits per clock. This instruction is supported in SPI bus protocol only with clock frequencies up to 80 MHz. This instruction is not supported in SQI bus protocol. The SPI slave interface is selected by first bringing SCS# active. The 8-bit SDOR instruction, 3Bh, is input into the SIO[0] pin, followed by the two address bytes, one or two transfer length bytes, and 1 to 255 Dummy Byte(s). The address bytes specify a BYTE address within the device. The transfer length bytes specify the data length in BYTEs and does not include any Dummy Bytes. The transfer length field is either 7 or 14 bits with maximum transfer length of 127 or 16,383 bytes (16K-1). On the falling clock edge following the rising edge of the last dummy di-bit, the SIO[1:0] pins are driven starting with the msbs of the LSB of the selected register. For a non-DWORD aligned starting address, 1-3 padding bytes (and possible Dummy Bytes per padding byte) occur prior to the data bytes. Padding bytes are not counted in the transfer length. The remaining register di-bits are shifted out on subsequent falling clock edges. For multiple byte registers, the next byte follows the last bit (or nibble) of the preceding byte or Dummy Byte(s). For reads of multiple registers, the first bit (or nibble) of the next register follows the last bit (or nibble) of the preceding register or Dummy Byte(s). The SCS# input is brought inactive to conclude the cycle. The SIO[1:0] pins are three-stated at this time. DS00003422A-page 176  2020 Microchip Technology Inc. LAN9254 Figure 9-9 illustrates a typical single and multiple register dual output read. The transfer length field may be one or two bytes. A DWORD aligned full DWORD register is shown. The final DWORD is not followed by Dummy Bytes. A partial DWORD register read is also possible and would terminate after the last data BYTE without subsequent Dummy Byte(s). It is also possible for a partial DWORD read to start on a non-DWORD aligned boundary. FIGURE 9-9: SPI DUAL OUTPUT READ SCS# SCK (active low) X SCK (active high) X 1 2 1 3 2 4 3 5 4 6 5 7 6 8 7 1 0 9 8 1 1 1 0 9 X 0 0 1 1 1 0 Address 1 1 d e c i n c ... A 1 3 ... ... ... ... 1 1 Instruction SIO0 ... ... A 2 Transfer Length A 1 A 0 f m t L 6 L 5 ... L9|2 L8|1 L7|0 AL 7 Z AL 6 AL 5 ... AL 10 AL 9 Data 1 to 255 Dummy 0 0 ... 0 0 0 D 6 I.S. (opt enabled) AL bits (opt enabled) SIO1 ... ... AL 8 D 2 0 to 25 5 Dummy D 0 Data I.S . I.S . I.S . I.S . I.S . I.S . I.S . I.S . 31 30 27 26 19 18 17 0 Z D 4 D 7 D 5 D 3 ... ... x x ... x x 0 to 25 5 Dummy D 1 x x ... x x X X Data (+Dummy) D 1 4 D 1 2 D 1 0 D 8 ... X Data (+Dummy) D 1 5 D 1 3 D 1 1 D 9 ... X Z For multiple byte register SPI Dual Output Read Single Register Initial Intra-DWORD SCS# SCK (active low) SCK (active high) X X 1 2 1 3 2 4 3 5 4 6 5 7 6 8 7 1 0 9 8 9 1 1 X 0 0 1 1 1 0 1 1 d e c i n c ... ... ... Address Transfer Length 1 0 Instruction SIO0 ... 1 1 A 1 3 ... A 2 A 1 A 0 f m t L 6 L 5 ... Z AL 7 AL 6 AL 5 ... SPI Dual Output Read Multiple Registers 9.2.5.4 AL 10 AL 9 ... ... ... ... ... ... ... ... ... Reg m 1 to 255 Dummy 0 0 ... 0 0 0 D 6 I.S. (opt enabled) AL bits (opt enabled) SIO1 L9|2 L8|1 L7|0 ... AL 8 Z I.S . I.S . I.S . I.S . I.S . I.S . I.S . I.S . 31 30 27 26 19 18 17 0 D 4 D 2 D 0 Reg m D 7 D 5 D 3 D 1 0 to 25 5 Dummy Reg m (+Dummy) 0 to 25 5 Dummy Reg n (+Du mmy) x D 1 4 D 6 x ... x x D 1 2 D 1 0 D 8 ... x x ... x x D 4 D 2 D 0 ... 0 to 25 5 Dummy Reg m (+Dummy) 0 to 25 5 Dummy Reg n (+Du mmy) x D 1 5 D 7 x ... x x D 1 3 D 1 1 D 9 ... x x ... x x D 5 D 3 D 1 ... X X X X Z For multiple byte register Initial Intra-DWORD Inter-DWORD Quad Output Read The SPI Quad Output Read instruction inputs the instruction code, the address, the transfer length, and the initial Dummy Bytes one bit per clock and outputs the data and any subsequent Dummy Byte(s) four bits per clock. This instruction is supported in SPI bus protocol only with clock frequencies up to 80 MHz. This instruction is not supported in SQI bus protocol. The SPI slave interface is selected by first bringing SCS# active. The 8-bit SQOR instruction, 6Bh, is input into the SIO[0] pin, followed by the two address bytes, one or two transfer length bytes, and 1 to 255 Dummy Byte(s). The address bytes specify a BYTE address within the device. The transfer length bytes specify the data length in BYTEs and does not include any Dummy Bytes. The transfer length field is either 7 or 14 bits with maximum transfer length of 127 or 16,383 bytes (16K-1). On the falling clock edge following the rising edge of the last dummy bit, the SIO[3:0] pins are driven starting with the msn of the LSB of the selected register. For a non-DWORD aligned starting address, 1-3 padding bytes (and possible Dummy Bytes per padding byte) occur prior to the data bytes. Padding bytes are not counted in the transfer length. The remaining register nibbles are shifted out on subsequent falling clock edges. For multiple byte registers, the next byte follows the last bit (or nibble) of the preceding byte or Dummy Byte(s). For reads of multiple registers, the first bit (or nibble) of the next register follows the last bit (or nibble) of the preceding register or Dummy Byte(s). The SCS# input is brought inactive to conclude the cycle. The SIO[3:0] pins are three-stated at this time.  2020 Microchip Technology Inc. DS00003422A-page 177 LAN9254 Figure 9-10 illustrates a typical single and multiple register quad output read. The transfer length field may be one or two bytes. A DWORD aligned full DWORD register is shown. The final DWORD is not followed by Dummy Bytes. A partial DWORD register read is also possible and would terminate after the last data BYTE without subsequent Dummy Byte(s). It is also possible for a partial DWORD read to start on a non-DWORD aligned boundary. FIGURE 9-10: SPI QUAD OUTPUT READ SCS# SCK (active low) X SCK (active high) X 1 2 1 3 2 4 3 5 4 6 5 7 6 8 7 1 0 9 8 1 1 1 0 9 X 0 1 1 0 1 0 Address 1 1 d e c i n c ... A 1 3 ... ... ... 1 1 Instruction SIO0 ... ... A 2 ... Transfer Length A 1 f m t A 0 L 6 L 5 ... L9|2 L8|1 L7|0 1 to 255 Dummy 0 AL 7 Z AL 6 AL 5 ... AL 10 AL 9 0 ... 0 0 0 AL 8 D 0 x D 5 D 1 x D 6 Z D 2 x D 7 Z SPI Quad Output Read Single Register D 3 ... ... x ... X D 1 2 D 8 D 1 3 D 9 D 1 4 D 1 0 D 1 5 D 1 1 ... X Data (+Dummy) x ... X Z Data (+Dummy) x 0 to 255 Dummy Data SIO3 x 0 to 255 Dummy Data SIO2 ... X Data (+Dummy) 0 to 255 Dummy Data I.S . I.S . I.S . I.S. I.S. I.S . I.S . I.S . 31 30 27 26 19 18 17 0 Z D 4 ... ... 0 to 255 Dummy Data I.S. (opt enabled) AL bits (opt enabled) SIO1 ... ... ... X Z Data (+Dummy) x ... X Z For multiple byte register Intra- DWORD Initial SCS# SCK (active low) X SCK (active high) X 1 2 1 3 2 4 3 5 4 6 5 7 6 8 7 1 0 9 8 9 1 1 1 0 Instruction SIO0 X 0 1 1 0 1 0 ... ... 1 1 Address 1 1 d e c i n c A 1 3 ... A 2 Transfer Length A 1 f m t A 0 L 6 L 5 ... Z AL 7 AL 6 AL 5 ... AL 10 AL 9 L9|2 L8|1 L7|0 ... ... Reg m 1 to 255 Dummy 0 0 ... 0 0 0 I.S. (opt enabled) AL bits (opt enabled) SIO1 ... ... ... ... AL 8 Z I.S . I.S . I.S . I.S. I.S. I.S . I.S . I.S . 31 30 27 26 19 18 17 0 D 4 D 0 0 to 255 Dummy x Reg m D 5 D 1 D 6 Z D 2 x SPI Quad Output Read Multiple Registers DS00003422A-page 178 D 7 Z Initial D 3 x ... x ... x ... D 8 D 1 3 D 9 D 1 4 D 1 0 D 1 5 D 1 1 ... ... x ... ... x x x x ... ... x x x D 4 D 0 ... X D 5 D 1 ... X Z Reg n (+Dummy) x 0 to 255 Dummy ... ... X Reg n (+Dummy) 0 to 255 Dummy Reg m (+Dummy) X Reg n (+Dummy) 0 to 255 Dummy Reg m (+Dummy) 0 to 255 Dummy x D 1 2 ... ... 0 to 255 Dummy Reg m (+Dummy) 0 to 255 Dummy Reg m SIO3 ... Reg m (+Dummy) 0 to 255 Dummy Reg m SIO2 ... ... ... ... D 6 D 2 ... X Z Reg n (+Dummy) x D 7 D 3 ... X Z For multiple byte register Intra- DWORD Inter-DWORD  2020 Microchip Technology Inc. LAN9254 9.2.5.5 Dual I/O Read The SPI Dual I/O Read instruction inputs the instruction code one bit per clock and the address, The transfer length, and the initial Dummy Bytes two bits per clock and outputs the data and any subsequent Dummy Byte(s) two bits per clock. This instruction is supported in SPI bus protocol only with clock frequencies up to 80 MHz. This instruction is not supported in SQI bus protocol. The SPI slave interface is selected by first bringing SCS# active. The 8-bit SDIOR instruction, BBh, is input into the SIO[0] pin, followed by the two address bytes, one or two transfer length bytes, and 2 to 255 Dummy Bytes into the SIO[1:0] pins. The address bytes specify a BYTE address within the device. The transfer length bytes specify the data length in BYTEs and does not include any Dummy Bytes. The transfer length field is either 7 or 14 bits with maximum transfer length of 127 or 16,383 bytes (16K-1). On the falling clock edge following the rising edge of the last dummy di-bit, the SIO[1:0] pins are driven starting with the msbs of the LSB of the selected register. For a non-DWORD aligned starting address, 1-3 padding bytes (and possible Dummy Bytes per padding byte) occur prior to the data bytes. Padding bytes are not counted in the transfer length. The remaining register di-bits are shifted out on subsequent falling clock edges. For multiple byte registers, the next byte follows the last bit (or nibble) of the preceding byte or Dummy Byte(s). For reads of multiple registers, the first bit (or nibble) of the next register follows the last bit (or nibble) of the preceding register or Dummy Byte(s). The SCS# input is brought inactive to conclude the cycle. The SIO[1:0] pins are three-stated at this time. Figure 9-11 illustrates a typical single and multiple register dual I/O read. The transfer length field may be one or two bytes. A DWORD aligned full DWORD register is shown. The final DWORD is not followed by Dummy Bytes. A partial DWORD register read is also possible and would terminate after the last data BYTE without subsequent Dummy Byte(s). It is also possible for a partial DWORD read to start on a non-DWORD aligned boundary. FIGURE 9-11: SPI DUAL I/O READ SCS# SCK (active low) X SCK (active high) X 1 2 1 3 2 4 3 5 4 6 5 7 6 8 7 1 0 9 8 X 1 0 1 1 1 ... ... 1 0 9 Instruction SIO0 ... ... Address 0 1 1 i n c ... A 1 2 A 2 Xfer Length A 0 L 6 Address SIO1 d e c Z ... A 1 3 A 3 ... ... L 4 ... L9|2 L7|0 Xfer Length A 1 f m t L 5 ... L10| L8|1 3 ... ... Data 2 to 255 Dummy 0 0 ... 0 0 D 6 0 ... 0 0 D 2 0 to 255 Dummy D 0 Data 2 to 255 Dummy 0 D 4 D 7 D 5 D 3 ... ... x x ... x x 0 to 255 Dummy D 1 x x ... x x X X Data (+Dummy) D 1 4 D 1 2 D 1 0 D 8 ... X Data (+Dummy) D 1 5 D 1 3 D 1 1 D 9 ... X Z For multiple byte register SPI Dual I/O Read Single Register Initial Intra-DWORD SCS# SCK (active low) X SCK (active high) X 1 2 1 3 2 4 3 5 4 6 5 7 6 8 7 8 9 Instruction SIO0 X 1 0 1 1 1 0 1 0 9 ... ... ... ... 1 0 Address 1 1 i n c A 1 2 ... A 2 Xfer Length A 0 L 6 Address SIO1 Z SPI Dual I/O Read Multiple Registers  2020 Microchip Technology Inc. d e c A 1 3 ... A 3 L 4 ... L9|2 L7|0 Xfer Length A 1 f m t L 5 ... ... ... ... ... L10| L8|1 3 Reg m 2 to 255 Dummy 0 0 ... 0 0 D 6 0 ... 0 0 D 2 D 0 Reg m 2 to 255 Dummy 0 D 4 D 7 D 5 D 3 D 1 ... ... ... ... ... ... 0 to 255 Dummy Reg m (+Dummy) 0 to 255 Dummy Reg n (+Dummy) x D 1 4 D 6 x ... x x D 1 2 D 1 0 D 8 ... x x ... x x D 4 D 2 D 0 ... 0 to 255 Dummy Reg m (+Dummy) 0 to 255 Dummy Reg n (+Dummy) x D 1 5 D 7 x ... x x D 1 3 D 1 1 D 9 ... x x ... x x D 5 D 3 D 1 ... X X X X Z For multiple byte register Initial Intra-DWORD Inter-DWORD DS00003422A-page 179 LAN9254 9.2.5.6 Quad I/O Read The SPI Quad I/O Read instruction inputs the instruction code one bit per clock and the address, the transfer length, and the initial Dummy Bytes four bits per clock and outputs the data and any subsequent Dummy Byte(s) four bits per clock. This instruction is supported in SPI bus protocol only with clock frequencies up to 80 MHz. This instruction is not supported in SQI bus protocol. The SPI slave interface is selected by first bringing SCS# active. The 8-bit SQIOR instruction, EBh, is input into the SIO[0] pin, followed by the two address bytes, one or two transfer length bytes, and 4 to 255 Dummy Bytes into the SIO[3:0] pins. The address bytes specify a BYTE address within the device. The transfer length bytes specify the data length in BYTEs and does not include any Dummy Bytes. The transfer length field is either 7 or 14 bits with maximum transfer length of 127 or 16,383 bytes (16K-1). On the falling clock edge following the rising edge of the last dummy nibble, the SIO[3:0] pins are driven starting with the msn of the LSB of the selected register. For a non-DWORD aligned starting address, 1-3 padding bytes (and possible Dummy Bytes per padding byte) occur prior to the data bytes. Padding bytes are not counted in the transfer length. The remaining register nibbles are shifted out on subsequent falling clock edges. For multiple byte registers, the next byte follows the last bit (or nibble) of the preceding byte or Dummy Byte(s). For reads of multiple registers, the first bit (or nibble) of the next register follows the last bit (or nibble) of the preceding register or Dummy Byte(s). The SCS# input is brought inactive to conclude the cycle. The SIO[3:0] pins are three-stated at this time. Figure 9-12 illustrates a typical single and multiple register quad I/O read. The transfer length field may be one or two bytes. A DWORD aligned full DWORD register is shown. The final DWORD is not followed by Dummy Bytes. A partial DWORD register read is also possible and would terminate after the last data BYTE without subsequent Dummy Byte(s). It is also possible for a partial DWORD read to start on a non-DWORD aligned boundary. FIGURE 9-12: SPI QUAD I/O READ SCS# SCK (active low) X SCK (active high) X 1 2 1 3 2 4 3 5 4 6 5 7 6 8 7 8 X 1 1 1 0 SIO1 1 0 1 1 SIO2 Z SIO3 Z 1 2 1 1 1 3 1 2 1 4 1 3 1 5 1 4 1 6 1 5 Xfer Len A 1 2 L 4 A 8 A 9 A 4 A 5 i n c A 1 0 A 6 d e c A 1 1 A 7 A 0 A 1 A 2 A 3 L 1 1 L 0 L 5 L 6 f m t L 7 L 1 2 L 1 L 2 L 3 1 7 1 8 1 6 Address A 1 3 Z 1 1 1 0 9 Instruction SIO0 1 0 9 L 8 L 1 3 L 9 0 L 1 0 1 7 ... ... ... ... 1 8 4 to 255 Dummy Data 0 D 4 ... 0 0 0 D 0 4 to 255 Dummy Data 0 D 5 ... 0 0 0 D 1 4 to 255 Dummy Data 0 D 6 ... 0 0 0 D 2 4 to 255 Dummy Data 0 D 7 ... 0 SPI Quad I/O Read Single Register 0 0 D 3 ... ... 0 to 255 Dummy x ... ... x ... x ... D 8 D 1 3 D 9 D 1 4 D 1 0 D 1 5 D 1 1 ... X ... X Z Data (+Dummy) x 0 to 255 Dummy x D 1 2 Data (+Dummy) 0 to 255 Dummy x X Data (+Dummy) 0 to 255 Dummy x X ... X Z Data (+Dummy) x ... X Z For multiple byte register Intra-DWORD Initial SCS# SCK (active low) X SCK (active high) X 1 2 1 3 2 4 3 5 4 6 5 7 6 8 7 8 Instruction SIO0 SIO1 SIO2 SIO3 X 1 1 1 0 1 0 1 Z Z Z SPI Quad I/O Read Multiple Registers DS00003422A-page 180 1 0 9 1 9 1 1 1 0 1 2 1 1 1 3 1 2 1 4 1 3 1 5 1 4 1 6 1 5 Xfer Len A 1 2 L 4 A 1 3 i n c d e c A 9 A 1 0 A 1 1 A 4 A 5 A 6 A 7 A 0 A 1 A 2 A 3 L 5 L 6 f m t L 0 L 1 L 2 L 3 L 1 1 L 1 2 L 1 3 0 1 8 1 6 Address A 8 1 7 L 7 L 8 L 9 L 1 0 1 7 ... ... ... ... 1 8 4 to 255 Dummy Reg m 0 D 4 0 ... 0 0 D 0 4 to 255 Dummy Reg m 0 D 5 0 ... 0 0 D 1 4 to 255 Dummy Reg m 0 D 6 0 ... 0 0 D 2 4 to 255 Dummy Reg m 0 D 7 0 ... Initial 0 0 D 3 ... ... ... ... 0 to 255 Dummy x ... Reg m (+Dummy) x 0 to 255 Dummy x ... ... x ... D 1 3 D 9 D 1 4 D 1 0 D 1 5 D 1 1 ... ... x ... ... x x x x ... ... x x x D 4 D 0 ... X D 5 D 1 ... X Z Reg n (+Dummy) x 0 to 255 Dummy ... ... X Reg n (+Dummy) 0 to 255 Dummy Reg m (+Dummy) X Reg n (+Dummy) 0 to 255 Dummy Reg m (+Dummy) 0 to 255 Dummy x D 8 0 to 255 Dummy Reg m (+Dummy) 0 to 255 Dummy x D 1 2 ... ... D 6 D 2 ... X Z Reg n (+Dummy) x D 7 D 3 ... X Z For multiple byte register Intra-DWORD Inter-DWORD  2020 Microchip Technology Inc. LAN9254 9.2.6 SPI WRITE COMMANDS Multiple write commands are support by the SPI/SQI slave. The following applies to all write commands. MULTIPLE WRITES Multiple writes are performed by continuing the clock pulses and input data while SCS# is active. The upper two bits of the address specify auto-incrementing (address[15:14]=01b) or auto-decrementing (address[15:14]=10b). The internal DWORD address is incremented, decremented, or maintained based on these bits. Maintaining a fixed internal address may be useful for register “bit-banging” or other repeated writes. Constant address and Auto-increment/decrement operation for multiple DWORDs operates as follows. Note that it is the DWORD address that remains constant or is incremented or decremented. The byte address within the DWORD always increments: dec/inc=00: constant DWORD aligned address write 4 bytes within the DWORD in incrementing byte order internal address repeats each DWORD starting address : yyyy internal address : yyyy byte address : First data input : yyyy valid +1 valid +2 valid +3 valid internal address : yyyy byte address : Second data input : yyyy valid +1 valid +2 valid +3 valid internal address : yyyy byte address : Last data input : yyyy valid +1 valid +2 valid +3 valid dec/inc=01: incrementing DWORD aligned starting address write 4 bytes within each DWORD in incrementing byte order internal address is incremented by 4 each DWORD starting address : yyyy internal address : yyyy byte address : First data input : yyyy valid +1 valid +2 valid +3 valid next internal address : next DWORD byte address : +4 Second data input : valid +5 valid +6 valid +7 valid next internal address : next DWORD byte address : +8 Last data input : valid +9 valid +10 valid +11 valid dec/inc=10: decrementing DWORD aligned starting address write 4 bytes within each DWORD in incrementing byte order internal address is decremented by 4 each DWORD starting address : yyyy internal address : yyyy byte address : First data input : yyyy valid next internal address : previous DWORD byte address : -4 Second data input : valid  2020 Microchip Technology Inc. +1 valid +2 valid +3 valid -3 valid -2 valid -1 valid DS00003422A-page 181 LAN9254 next internal address : previous DWORD byte address : -8 Last data input : valid -7 valid -6 valid -5 valid dec/inc=11: RESERVED The above apply to full DWORD accesses starting at DWORD aligned addresses. See Section 9.3.2.2 for partial DWORD accesses or non-DWORD aligned starting addresses utilized during EtherCAT Direct Mapped mode. DUMMY BYTES In order to provide sufficient time for posted writes to be internally processed (especially when writing to the EtherCAT Core CSRs or Process RAM while in EtherCAT Direct Mapped mode) Dummy Byte cycles may be used. The number of Dummy Bytes is set using the Set Configuration instruction and is specified per write command type. There are three values per instruction. The first is the number of Dummy Bytes that will precede the first data byte. The second is the number of Dummy Bytes that occur between bytes within a DWORD (intra-DWORD). The third is the number of Dummy Bytes that occur between DWORDs (inter-DWORD). There are no Dummy Bytes after the last data byte of a command. APPLICATION NOTE: The number of Dummy Bytes between DWORDs is strictly the third configuration value. It is not in addition to or paralleled with a Dummy Byte count using the second configuration value. APPLICATION NOTE: The DWORD boundary applies to all write commands even if the command is using BYTE buffering mode. The intra- and inter- number of Dummy Bytes can be set the same if appropriate. APPLICATION NOTE: For BYTE buffering mode used in EtherCAT Direct Mapped Mode for EtherCAT core accesses, a Dummy byte configuration which has second parameter (intra-DWORD) equal to 0 and the third parameter (inter-DWORD) not equal to 0 is not supported. Normally the second and third parameters would be the same value in this case. APPLICATION NOTE: The DWORD boundary is based on the address of the last byte written, not on the running byte count (i.e. it is not simply every fourth byte). This is important to consider during EtherCAT Direct Mapped Mode where the starting address could be non-DWORD aligned. Refer to Section 9.3.2.2 for how the address is updated. APPLICATION NOTE: The number of clock cycles for a Dummy Byte varies based on the bit width(s) of the instruction. 9.2.6.1 Write The Write instruction inputs the instruction code, the address, the possible initial Dummy Bytes, the data and any subsequent Dummy Byte(s) one bit per clock. In SQI mode, the instruction code, the address, the possible initial Dummy Byte(s), and the data bytes are input four bits per clock. This instruction is supported in SPI and SQI bus protocols with clock frequencies up to 80 MHz. The SPI/SQI slave interface is selected by first bringing SCS# active. For SPI mode, the 8-bit WRITE instruction, 02h, is input into the SI/SIO[0] pin, followed by the two address bytes and 0 to 255 Dummy Byte(s). For SQI mode, the 8-bit WRITE instruction, 02h, is input into the SIO[3:0] pins, followed by the two address bytes and 0 to 255 Dummy Byte(s). The address bytes specify a BYTE address within the device. The data follows the address bytes. For SPI mode, the data is input into the SI/SIO[0] pin starting with the msb of the LSB. For SQI mode the data is input nibble wide using SIO[3:0] starting with the msn of the LSB. The remaining bits/ nibbles are shifted in on subsequent clock edges. While in LAN9252 compatibility mode, the data write to the register occurs after the 32-bits are input. In the event that 32-bits are not written when the SCS# is returned high, the write is considered invalid and the register is not affected. While in EtherCAT Direct Mapped Mode, data writes to the EtherCAT Core CSRs and Process RAM may occur after BYTEs or completed DWORDs. Data writes to the non-EtherCAT Core CSRs continue to be DWORD aligned however incomplete DWORD writes may result in a corrupted register value. DS00003422A-page 182  2020 Microchip Technology Inc. LAN9254 The SCS# input is brought inactive to conclude the cycle. Figure 9-13 illustrates a typical single and multiple register write for SPI mode. Figure 9-14 illustrates a typical single and multiple register write for SQI mode. A DWORD aligned full DWORD register is shown. The final DWORD is not followed by Dummy Bytes. A partial DWORD register write is also possible and would terminate after the last data BYTE without subsequent Dummy Byte(s). It is also possible for a partial DWORD write to start on a non-DWORD aligned boundary. FIGURE 9-13: SPI WRITE SCS# SCK (active low) X SCK (active high) X 1 2 1 3 2 4 3 5 4 6 5 7 6 8 7 1 0 9 8 1 1 1 0 9 1 2 1 1 1 3 1 2 1 4 1 3 1 5 1 4 1 5 Instruction SI X 0 0 0 0 0 0 1 6 1 7 1 8 1 6 1 7 1 9 1 8 2 0 1 9 2 1 2 0 2 2 2 1 2 3 2 2 2 4 2 3 2 5 2 6 2 4 2 5 Address 1 0 d e c i n c A 1 3 A 1 2 A 1 1 A 1 0 A 9 A 8 A 7 AL 7 Z AL 6 AL 5 AL 4 AL 3 AL 2 AL 1 AL 0 AL 15 ... ... 2 6 Data 0 to 255 Dummy A 6 A 5 A 4 A 3 A 2 A 1 A 0 0 AL 14 AL 13 AL 12 AL 11 ... 0 AL bits (optionally enabled) SO ... ... 0 0 0 D 7 D 6 D 5 D 5 D 3 ... ... D 1 D 0 0 ... 0 0 0 X Data (+Dummy) 0 to 255 Dummy D 2 X D 1 5 D 1 4 D 1 3 D 1 2 ... D 1 1 X I.S. (opt enabled) AL 10 AL 9 AL 8 I.S. I.S. I.S. I.S. I.S. I.S. I.S. I.S. 31 30 27 26 19 18 17 0 Z For multiple byte register SPI Write Single Register Initial Intra-DWO RD SCS# SCK (active low) SCK (active high) X X 1 2 1 3 2 4 3 5 4 6 5 7 6 8 7 1 0 9 8 1 1 1 0 9 1 2 1 1 1 3 1 2 1 4 1 3 1 5 1 4 1 5 Instruction SI X 0 0 0 0 0 0 1 6 1 7 1 8 1 6 1 7 1 9 1 8 2 0 1 9 2 1 2 0 2 2 2 1 2 3 2 2 2 4 2 3 2 5 2 6 2 4 2 5 Address 1 0 d e c i n c A 1 3 A 1 2 A 1 1 A 1 0 A 9 A 8 A 7 Z AL 7 AL 6 AL 5 AL 4 AL 3 AL 2 AL 1 AL 0 AL 15 2 6 ... A 6 A 5 A 4 A 3 A 2 A 1 A 0 0 AL 14 AL 13 AL 12 AL 11 ... 0 0 0 D 7 D 6 D 5 D 4 D 3 D 2 D 1 D 0 0 0 ... ... Reg m (+Dummy) 0 to 255 Dummy ... 0 0 D 1 5 D 1 4 D 1 3 D 1 2 ... 0 to 255 Dummy ... D 1 1 ... 0 0 ... 0 0 X X Reg n (+Dummy) D 7 D 6 D 5 D 4 D 3 ... X I.S. (opt enabled) AL 10 AL 9 AL 8 I.S. I.S. I.S. I.S. I.S. I.S. I.S. I.S. 31 30 27 26 19 18 17 0 Z For multiple byte registers SPI Write Multiple Registers FIGURE 9-14: 0 ... ... ... Reg m 0 to 255 Dummy AL bits (optionally enabled) SO ... ... Initial Intra-DWO RD Inter-DWORD SQI WRITE SCS# SCK (active low) X SCK (active high) X 1 2 1 3 2 4 3 5 4 6 5 7 6 7 Inst Address SIO[3:0] X 0 2 H 1 L 1 H 0 8 ... 8 ... ... 0 ... 0 0 0 Data 0 to 255 Dummy H 0 L 0 0 0 ... X ... ... 0 to 255 Dummy L 0 ... 0 0 X Data (+Dummy) H 1 L 1 H 2 L 2 ... X For multiple byte register SQI Write Single Register Initial Intra-DWORD SCS# SCK (active low) X SCK (active high) X 1 2 1 3 2 4 3 5 4 6 5 X 0 2 H 1 SQI Write Multiple Registers  2020 Microchip Technology Inc. L 1 H 0 8 6 Inst Address SIO[3:0] 7 L 0 7 ... 8 ... ... ... ... ... 0 to 255 Dummy Reg m 0 to 255 Dummy 0 0 ... 0 0 H 0 L 0 0 0 ... ... 0 0 ... ... ... Reg m (+Dummy) 0 to 255 Dummy H 1 L 1 H 2 L 2 ... 0 0 ... 0 0 X X Reg n (+Dummy) H 0 L 0 H 1 L 1 ... X For multiple byte register Initial Intra-DWORD Inter-DWORD DS00003422A-page 183 LAN9254 9.2.6.2 Dual Data Write The SPI Dual Data Write instruction inputs the instruction code, the address and possible initial Dummy Bytes one bit per clock and inputs the data and any subsequent Dummy Byte(s) two bits per clock. This instruction is supported in SPI bus protocol only with clock frequencies up to 80 MHz. This instruction is not supported in SQI bus protocol. The SPI slave interface is selected by first bringing SCS# active. The 8-bit SDDW instruction, 32h, is input into the SIO[0] pin, followed by the two address bytes and 0 to 255 Dummy Byte(s). The address bytes specify a BYTE address within the device. The data follows the address bytes. The data is input into the SIO[1:0] pins starting with the msbs of the LSB. The remaining di-bits are shifted in on subsequent clock edges. While in LAN9252 compatibility mode, the data write to the register occurs after the 32-bits are input. In the event that 32-bits are not written when the SCS# is returned high, the write is considered invalid and the register is not affected. While in EtherCAT Direct Mapped Mode, data writes to the EtherCAT Core CSRs and Process RAM may occur after BYTEs or completed DWORDs. Data writes to the non-EtherCAT Core CSRs continue to be DWORD aligned however incomplete DWORD writes may result in a corrupted register value. The SCS# input is brought inactive to conclude the cycle. Figure 9-15 illustrates a typical single and multiple register dual data write. A DWORD aligned full DWORD register is shown. The final DWORD is not followed by Dummy Bytes. A partial DWORD register write is also possible and would terminate after the last data BYTE without subsequent Dummy Byte(s). It is also possible for a partial DWORD write to start on a non-DWORD aligned boundary. FIGURE 9-15: SPI DUAL DATA WRITE SCS# SCK (active low) SCK (active high) X 1 X 2 1 3 2 4 3 5 4 6 5 7 6 8 7 1 0 9 8 1 1 1 0 9 1 2 1 1 1 3 1 2 1 4 1 3 1 5 1 4 1 5 Instruction SIO0 X 0 0 1 1 0 0 1 6 1 7 1 6 1 8 1 7 1 9 1 8 2 0 1 9 2 1 2 0 2 2 2 1 2 3 2 2 2 4 2 3 2 5 2 4 2 5 1 0 d e c i n c A 1 3 A 1 2 A 1 1 A 1 0 A 9 A 8 A 7 AL 7 Z AL 6 AL 5 AL 4 AL 3 AL 2 AL 1 AL 0 ... ... Data 0 to 255 Dummy A 6 AL 15 ... ... 2 6 Address A 5 A 4 A 3 A 2 A 1 A 0 0 AL bits (optionally enabled) SIO1 2 6 AL 14 AL 13 AL 12 AL 11 ... 0 0 0 0 D 6 I.S. (opt enabled) AL 10 AL 9 AL 8 D 4 D 2 0 to 255 Dummy D 0 Data I.S . I.S . I.S . I.S . I.S . I.S . I.S . I.S . 31 30 27 26 19 18 17 0 D 7 D 5 D 3 ... ... 0 0 ... 0 0 0 to 255 Dummy D 1 0 0 ... 0 0 X X Data (+Dummy) D 1 4 D 1 2 D 1 0 D 8 ... X Data (+Dummy) D 1 5 D 1 3 D 1 1 D 9 ... X Z For multiple byte register SPI Dual Data Write Single Register Initial Intra-DWORD SCS# SCK (active low) X SCK (active high) X 1 2 1 3 2 4 3 5 4 6 5 7 6 8 7 1 0 9 8 9 1 1 1 0 1 2 1 1 1 3 1 2 1 4 1 3 1 5 1 4 Instruction SIO0 X 0 0 1 1 0 0 1 6 1 5 1 7 1 6 1 8 1 7 1 9 1 8 2 0 1 9 2 1 2 0 2 2 2 1 2 3 2 2 2 4 2 3 2 5 2 4 0 d e c i n c A 1 3 A 1 2 A 1 1 A 1 0 A 9 A 8 A 7 A 6 Z SPI Dual Data Write Multiple Registers DS00003422A-page 184 AL 7 AL 6 AL 5 AL 4 AL 3 AL 2 AL 1 AL 0 AL 15 AL 14 2 6 A 5 A 4 A 3 A 2 A 1 A 0 AL 13 AL 12 AL 11 0 0 ... Reg m 0 0 0 D 6 I.S. (opt enabled) AL 10 AL 9 AL 8 ... ... ... ... ... ... 0 to 255 Dummy AL bits (optionally enabled) SIO1 ... ... 2 5 Address 1 2 6 I.S . I.S . I.S . I.S . I.S . I.S . I.S . I.S . 31 30 27 26 19 18 17 0 D 4 D 2 D 0 Reg m D 7 D 5 D 3 D 1 ... ... 0 to 255 Dummy Reg m (+Dummy) 0 to 255 Dummy Reg n (+Dummy) 0 D 1 4 D 6 0 ... 0 0 D 1 2 D 1 0 D 8 ... 0 0 ... 0 0 D 4 D 2 D 0 ... 0 to 255 Dummy Reg m (+Dummy) 0 to 255 Dummy Reg n (+Dummy) 0 D 1 5 D 7 0 ... 0 0 D 1 3 D 1 1 D 9 ... 0 0 ... 0 0 D 5 D 3 D 1 ... X X X X Z For multiple byte register Initial Intra-DWORD Inter-DWORD  2020 Microchip Technology Inc. LAN9254 9.2.6.3 Quad Data Write The SPI Quad Data Write instruction inputs the instruction code, the address and the possible initial Dummy Bytes one bit per clock and inputs the data and any subsequent Dummy Byte(s) four bits per clock. This instruction is supported in SPI bus protocol only with clock frequencies up to 80 MHz. This instruction is not supported in SQI bus protocol. The SPI slave interface is selected by first bringing SCS# active. The 8-bit SQDW instruction, 62h, is input into the SIO[0] pin, followed by the two address bytes and 0 to 255 Dummy Byte(s). The address bytes specify a BYTE address within the device. The data follows the address bytes. The data is input into the SIO[3:0] pins starting with the msn of the LSB. The remaining nibbles are shifted in on subsequent clock edges. While in LAN9252 compatibility mode, the data write to the register occurs after the 32-bits are input. In the event that 32-bits are not written when the SCS# is returned high, the write is considered invalid and the register is not affected. While in EtherCAT Direct Mapped Mode, data writes to the EtherCAT Core CSRs and Process RAM may occur after BYTEs or completed DWORDs. Data writes to the non-EtherCAT Core CSRs continue to be DWORD aligned however incomplete DWORD writes may result in a corrupted register value. The SCS# input is brought inactive to conclude the cycle. Figure 9-16 illustrates a typical single and multiple register quad data write. A DWORD aligned full DWORD register is shown. The final DWORD is not followed by Dummy Bytes. A partial DWORD register write is also possible and would terminate after the last data BYTE without subsequent Dummy Byte(s). It is also possible for a partial DWORD write to start on a non-DWORD aligned boundary. FIGURE 9-16: SPI QUAD DATA WRITE SCS# SCK (active low) X SCK (active high) X 1 2 1 3 2 4 3 5 4 6 5 7 6 8 7 1 0 9 8 1 1 1 0 9 1 2 1 1 1 3 1 2 1 4 1 3 1 5 1 4 1 5 Instruction SIO0 X 0 1 1 0 0 0 1 6 1 7 1 6 1 8 1 7 1 9 1 8 2 0 1 9 2 1 2 0 2 2 2 1 2 3 2 2 2 4 2 3 2 5 2 4 2 5 0 d e c i n c A 1 3 A 1 2 A 1 1 A 1 0 A 9 A 8 A 7 0 to 255 Dummy A 6 A 5 A 4 A 3 A 2 A 1 A 0 0 AL bits (optionally enabled) SIO1 AL 7 Z AL 6 AL 5 AL 4 AL 3 AL 2 AL 1 AL 0 AL 15 ... ... 2 6 Address 1 ... ... 2 6 AL 14 AL 13 AL 12 AL 11 ... 0 0 0 I.S. (opt enabled) AL 10 AL 9 AL 8 0 to 255 Dummy Data 0 D 4 D 0 0 D 5 D 1 0 D 6 Z D 2 0 D 7 Z SPI Quad Data Write Single Register D 3 ... ... 0 ... X D 1 2 D 8 D 1 3 D 9 D 1 4 D 1 0 D 1 5 D 1 1 ... X Data (+Dummy) 0 ... X Z Data (+Dummy) 0 0 to 255 Dummy Data SIO3 0 0 to 255 Dummy Data SIO2 ... X Data (+Dummy) 0 to 255 Dummy Data I.S . I.S . I.S . I.S. I.S. I.S . I.S . I.S . 31 30 27 26 19 18 17 0 ... ... ... X Z Data (+Dummy) 0 ... X Z For multiple byte register Intra- DWORD Initial SCS# SCK (active low) X SCK (active high) X 1 2 1 3 2 4 3 5 4 6 5 7 6 8 7 1 0 9 8 1 1 1 0 9 1 2 1 1 1 3 1 2 1 4 1 3 1 5 1 4 Instruction SIO0 X 0 1 1 0 0 0 1 6 1 5 1 7 1 6 1 8 1 7 1 9 1 8 2 0 1 9 2 1 2 0 2 2 2 1 2 3 2 2 2 4 2 3 2 5 2 4 0 d e c i n c A 1 3 A 1 2 A 1 1 A 1 0 A 9 A 8 A 7 A 6 Z AL 7 AL 6 AL 5 AL 4 AL 3 AL 2 AL 1 AL 0 AL 15 AL 14 ... ... 2 6 Reg m 0 to 255 Dummy A 5 A 4 A 3 A 2 A 1 A 0 AL bits (optionally enabled) SIO1 2 5 Address 1 ... ... 2 6 AL 13 AL 12 AL 11 0 0 ... 0 0 0 I.S. (opt enabled) AL 10 AL 9 AL 8 I.S . I.S . I.S . I.S. I.S. I.S . I.S . I.S . 31 30 27 26 19 18 17 0 D 4 D 0 0 to 255 Dummy 0 Reg m D 5 D 1 D 6 Z D 2 0 SPI Quad Data Write Multiple Registers  2020 Microchip Technology Inc. D 7 Z Initial D 3 0 ... 0 ... 0 ... D 8 D 1 3 D 9 D 1 4 D 1 0 D 1 5 D 1 1 ... ... 0 ... ... 0 0 0 0 ... ... 0 0 0 D 4 D 0 ... X D 5 D 1 ... X Z Reg n (+Dummy) 0 0 to 255 Dummy ... ... X Reg n (+Dummy) 0 to 255 Dummy Reg m (+Dummy) X Reg n (+Dummy) 0 to 255 Dummy Reg m (+Dummy) 0 to 255 Dummy 0 D 1 2 ... ... 0 to 255 Dummy Reg m (+Dummy) 0 to 255 Dummy Reg m SIO3 ... Reg m (+Dummy) 0 to 255 Dummy Reg m SIO2 ... ... ... ... D 6 D 2 ... X Z Reg n (+Dummy) 0 D 7 D 3 ... X Z For multiple byte register Intra- DWORD Inter-DWORD DS00003422A-page 185 LAN9254 9.2.6.4 Dual Address / Data Write The SPI Dual Address / Data Write instruction inputs the instruction code one bit per clock and the address, the possible initial Dummy Bytes, the data and any subsequent Dummy Byte(s) two bits per clock. This instruction is supported in SPI bus protocol only with clock frequencies up to 80 MHz. This instruction is not supported in SQI bus protocol. The SPI slave interface is selected by first bringing SCS# active. The 8-bit SDADW instruction, B2h, is input into the SIO[0] pin, followed by the two address bytes and 0 to 255 Dummy Byte(s) into the SIO[1:0] pins. The address bytes specify a BYTE address within the device. The data follows the address bytes. The data is input into the SIO[1:0] pins starting with the msbs of the LSB. The remaining di-bits are shifted in on subsequent clock edges. While in LAN9252 compatibility mode, the data write to the register occurs after the 32-bits are input. In the event that 32-bits are not written when the SCS# is returned high, the write is considered invalid and the register is not affected. While in EtherCAT Direct Mapped Mode, data writes to the EtherCAT Core CSRs and Process RAM may occur after BYTEs or completed DWORDs. Data writes to the non-EtherCAT Core CSRs continue to be DWORD aligned however incomplete DWORD writes may result in a corrupted register value. The SCS# input is brought inactive to conclude the cycle. Figure 9-17 illustrates a typical single and multiple register dual address / data write. A DWORD aligned full DWORD register is shown. The final DWORD is not followed by Dummy Bytes. A partial DWORD register write is also possible and would terminate after the last data BYTE without subsequent Dummy Byte(s). It is also possible for a partial DWORD write to start on a non-DWORD aligned boundary. FIGURE 9-17: SPI DUAL ADDRESS / DATA WRITE SCS# SCK (active low) SCK (active high) X 1 X 2 1 3 2 4 3 5 4 6 5 7 6 8 7 1 0 9 8 1 1 1 0 9 1 1 Instruction SIO0 X 1 0 1 1 0 0 1 2 1 3 1 2 1 4 1 3 1 5 1 4 1 6 1 5 1 7 1 6 1 7 Address 1 0 i n c A 1 2 A 1 0 A 8 A 6 d e c Z A 1 3 A 1 1 A 9 A 7 ... ... ... ... 1 8 Data 0 to 255 Dummy A 4 A 2 A 0 0 Address SIO1 1 8 ... 0 0 0 D 6 A 5 A 3 A 1 0 ... 0 0 0 D 4 D 2 0 to 255 Dummy D 0 Data 0 to 255 Dummy D 7 D 5 D 3 ... ... 0 0 ... 0 0 0 to 255 Dummy D 1 0 0 ... 0 0 X X Data (+Dummy) D 1 4 D 1 2 D 1 0 D 8 ... X Data (+Dummy) D 1 5 D 1 3 D 1 1 D 9 ... X Z For multiple byte register SPI Dual Address / Data Write Single Register Initial Intra-DWO RD SCS# SCK (active low) X SCK (active high) X 1 2 1 3 2 4 3 5 4 6 5 7 6 8 7 1 0 9 8 9 1 1 1 0 Instruction SIO0 X 1 0 1 1 0 0 1 2 1 1 1 3 1 2 1 4 1 3 1 5 1 4 1 6 1 5 1 7 1 6 Address 1 0 i n c A 1 2 A 1 0 A 8 A 6 A 4 Z d e c A 1 3 SPI Dual Address / Data Write Multiple Registers DS00003422A-page 186 A 1 1 A 9 A 7 A 5 1 7 ... ... ... ... 1 8 Reg m 0 to 255 Dummy A 2 A 0 Address SIO1 1 8 0 0 ... 0 0 D 6 A 1 0 0 ... 0 0 D 2 D 0 Reg m 0 to 255 Dummy A 3 D 4 D 7 D 5 D 3 D 1 ... ... ... ... ... ... 0 to 255 Dummy Reg m (+Dummy) 0 to 255 Dummy 0 D 1 4 0 ... 0 0 D 1 2 D 1 0 D 8 ... 0 0 ... 0 0 0 to 255 Dummy Reg m (+Dummy) 0 to 255 Dummy 0 D 1 5 0 ... 0 0 D 1 3 D 1 1 D 9 ... 0 0 ... 0 0 X X Reg n (+Dummy) D 6 D 4 D 2 D 0 ... X Reg n (+Dummy) D 7 D 5 D 3 D 1 ... X Z For multiple byte register Initial Intra-DWO RD Inter-DWORD  2020 Microchip Technology Inc. LAN9254 9.2.6.5 Quad Address / Data Write The SPI Quad Address / Data Write instruction inputs the instruction code one bit per clock and the address, the possible initial Dummy Bytes, the data and any subsequent Dummy Byte(s) four bits per clock. This instruction is supported in SPI bus protocol only with clock frequencies up to 80 MHz. This instruction is not supported in SQI bus protocol. The SPI slave interface is selected by first bringing SCS# active. The 8-bit SQADW instruction, E2h, is input into the SIO[0] pin, followed by the two address bytes and 0 to 255 Dummy Byte(s) into the SIO[3:0] pins. The address bytes specify a BYTE address within the device. The data follows the address bytes. The data is input into the SIO[3:0] pins starting with the msn of the LSB. The remaining nibbles are shifted in on subsequent clock edges. While in LAN9252 compatibility mode, the data write to the register occurs after the 32-bits are input. In the event that 32-bits are not written when the SCS# is returned high, the write is considered invalid and the register is not affected. While in EtherCAT Direct Mapped Mode, data writes to the EtherCAT Core CSRs and Process RAM may occur after BYTEs or completed DWORDs. Data writes to the non-EtherCAT Core CSRs continue to be DWORD aligned however incomplete DWORD writes may result in a corrupted register value. The SCS# input is brought inactive to conclude the cycle. Figure 9-18 illustrates a typical single and multiple register dual address / data write. A DWORD aligned full DWORD register is shown. The final DWORD is not followed by Dummy Bytes. A partial DWORD register write is also possible and would terminate after the last data BYTE without subsequent Dummy Byte(s). It is also possible for a partial DWORD write to start on a non-DWORD aligned boundary. FIGURE 9-18: SPI QUAD ADDRESS / DATA WRITE SCS# SCK (active low) X SCK (active high) X 1 2 1 3 2 4 3 5 4 6 5 7 6 8 7 8 X 1 1 1 0 0 0 1 1 1 0 9 Instruction SIO0 1 0 9 1 2 1 1 1 3 1 2 1 3 Address 1 0 A 1 2 A 8 A 4 1 4 ... ... ... ... 1 4 0 to 255 Dummy ... A 0 0 0 0 to 255 Dummy SIO1 A 1 3 Z A 9 A 5 ... A 1 0 0 0 to 255 Dummy SIO2 i n c Z A 1 0 A 6 ... A 2 0 0 0 to 255 Dummy SIO3 d e c Z A 1 1 A 7 ... A 3 SPI Quad Address / Data Write Single Register 0 0 0 to 255 Dummy Data D 4 D 0 0 D 1 0 D 2 0 D 3 ... ... 0 ... X D 1 2 D 8 D 1 3 D 9 D 1 4 D 1 0 D 1 5 D 1 1 ... X Data (+Dummy) 0 ... X Z Data (+Dummy) 0 0 to 255 Dummy Data D 7 0 0 to 255 Dummy Data D 6 ... X Data (+Dummy) 0 to 255 Dummy Data D 5 ... ... ... X Z Data (+Dummy) 0 ... X Z For multiple byte register Intra-DWORD Initial SCS# SCK (active low) X SCK (active high) X 1 2 1 3 2 4 3 5 4 6 5 7 6 8 7 8 Instruction SIO0 X SIO1 SIO2 SIO3 1 1 1 0 0 Z Z Z 0 1 1 0 9 0 9 1 1 1 0 1 2 1 1 1 4 1 2 1 3 ... ... ... ... 1 4 Address 0 to 255 Dummy A 1 2 Reg m 0 D 4 A 1 3 i n c d e c A 8 A 9 A 1 0 A 1 1 A 4 A 5 A 6 A 7 SPI Quad Address / Data Write Multiple Registers  2020 Microchip Technology Inc. 1 3 A 0 A 1 A 2 A 3 0 ... 0 0 D 0 0 to 255 Dummy Reg m 0 D 5 0 ... 0 0 D 1 0 to 255 Dummy Reg m 0 D 6 0 ... 0 0 D 2 0 to 255 Dummy Reg m 0 D 7 0 ... Initial 0 0 D 3 ... ... ... ... 0 to 255 Dummy 0 ... Reg m (+Dummy) 0 0 to 255 Dummy 0 ... ... 0 ... D 1 3 D 9 D 1 4 D 1 0 D 1 5 D 1 1 ... ... 0 ... ... 0 0 0 0 ... ... 0 0 0 D 4 D 0 ... X D 5 D 1 ... X Z Reg n (+Dummy) 0 0 to 255 Dummy ... ... X Reg n (+Dummy) 0 to 255 Dummy Reg m (+Dummy) X Reg n (+Dummy) 0 to 255 Dummy Reg m (+Dummy) 0 to 255 Dummy 0 D 8 0 to 255 Dummy Reg m (+Dummy) 0 to 255 Dummy 0 D 1 2 ... ... D 6 D 2 ... X Z Reg n (+Dummy) 0 D 7 D 3 ... X Z For multiple byte register Intra-DWORD Inter-DWORD DS00003422A-page 187 LAN9254 9.2.7 INTERRUPT REQUEST (AL EVENT REQUEST) AND INTERRUPT STATUS (INST_STS) REGISTER OUTPUT During the address phase of the SPI Read, Fast Read, Dual Output Read, Quad Output Read, Write, Dual Data Write and Quad Data Write commands, the lower 16 bits of the AL Event Request register may be shifted out onto the SO/ SIO[1] pin. The order is LSB first. This function is shown in the above diagrams. Output of this data is enabled by the SPI AL Event Request & INT_STS Enable bit in the PDI Configuration Register. If not enabled, the SPI interface remains three-stated during those times. During the first Dummy Byte (if present) following the address phase of the SPI Read, Fast Read, Dual Output Read, Quad Output Read, Write, Dual Data Write and Quad Data Write commands, bits 31:30, 27:26, 19:17 and 0 of the Interrupt Status Register (INT_STS) may be shifted out onto the SO/SIO[1] pin. This function is shown in the above diagrams. 9.3 EtherCAT Direct Mapped Mode In EtherCAT Direct Mapped mode, the device address space is split between the EtherCAT Core CSRs and Process RAM (addresses 0h to 2FFFh) and the non-EtherCAT Core CSRs (addresses 3000h through 3FFFh). Access to the non-EtherCAT Core CSRs remains to be through the existing CSR bus interface. Access to the EtherCAT Core CSRs and Process RAM is no longer through the various EtherCAT CSR and Process RAM Command, Address, Length and Data registers but instead it is directly between the SPI slave and the EtherCAT Core. SPI EtherCAT Direct Mapped mode is selected by the PDI Control Register per the values in Table 13-2, "PDI Mode Selection". 9.3.1 NON-ETHERCAT CORE CSRS The non-EtherCAT Core CSRs continue to be accessed as they would be in LAN9252 compatibility mode. SPI commands must not be started if there is a pending prior EtherCAT Core write. Upon the activation of SCS#, in the absence of a pending prior write, WAIT_ACK will indicate acknowledge (not busy). If an EtherCAT Core write operation is internally pending, the WAIT_ACK will initially indicate wait. The host may deactivate SCS# and retry the cycle at a later time, or it may simply wait until WAIT_ACK indicates not busy. Once not busy, WAIT_ACK will indicate acknowledge through the rest of the cycle. Note: Non-EtherCAT Core CSR accesses do not create wait states using the wait indication on WAIT_ACK. However, the minimum Initial Dummy Byte values listed in Table 9-1 and Table 9-2 must still be used. These are the default values per Table 9-3. Higher values may be used if Dummy Bytes are used for EtherCAT Core CSRs and Process RAM accesses per the Time or Dummy Cycle Based section. Waiting the equivalent time in lieu of using the Initial Dummy bytes is also not acceptable. Registers are DWORD aligned and are a DWORD in length. Non- DWORD aligned / non-DWORD length access is not supported. The address provided to the CSRs and interface logic is forced to be DWORD aligned. 9.3.1.1 Reads The data read(s) from the register(s) occur(s) initially and then after every 32-bits. Registers that are affected by a read operation are updated every 32-bits (once the current DWORD output shift has started). Multiple reads are DWORD oriented. To avoid internally prefetching additional data past the last data that will be output, two methods are utilized. For the READ instruction, the SI input is used as described in Section 9.2.5.1. For other read commands (FASTREAD, SDOR, SDIOR, SQOR, SQIOR), the data length in bytes is used as described in Section 9.2.5.2 through Section 9.2.5.6. Auto-Increment / Decrement Auto-increment/decrement operation for multiple DWORDs remains as described in Section 9.2.5. 9.3.1.2 Writes The data write(s) to the register(s) occur(s) after each 32-bits are shifted in. In the event that 32-bits are not written when SCS# is returned high, a write may occur and the register may be corrupted. Multiple writes are DWORD oriented. DS00003422A-page 188  2020 Microchip Technology Inc. LAN9254 Auto-Increment / Decrement Auto-increment/decrement operation for multiple DWORDs remains as described in Section 9.2.6. 9.3.2 ETHERCAT CORE CSRS AND PROCESS RAM Registers / Process RAM accesses may have any alignment and length (up to the limit of the read transfer length field if applicable). 9.3.2.1 Reads Depending on the read command used, the data reads from the EtherCAT Core occur every 8-bits or every DWORD. It is the responsibility of the Host to only shift the output data when it is available, as described below. READ Command: The initial data request occurs once the address portion of the command has been shifted in. Subsequent data requests occur when the previous data shift output starts. The READ instruction lacks the information to indicate how many bytes of a DWORD the host will shift out. Therefore for the READ instruction, data is requested one byte at a time. To avoid requesting additional data past the last data that will be output, the SI input is used as a read termination as described in Section 9.2.5.1. FASTREAD, SDOR, SDIOR, SQOR, SQIOR Commands: The initial data request occurs once the transfer length portion of the command has been shifted in. In order to provide a consistent time to pre-fetch the next DWORD, 0 to 3 padding bytes (and potentially Dummy Bytes per padding byte) are pre-pended before the first valid data, achieving a DWORD aligned output. The number of bytes is based on the starting address. Subsequent data requests occur when the current data or the first padding byte shift output starts. The FASTREAD, SDOR, SDIOR, SQOR and SQIOR instructions contain the transfer length and, along with the starting address, is used to calculate the number of bytes initially requested. The remaining byte count is used to calculate the number of bytes subsequently requested, avoiding requesting additional data past the last data that will be output. Special Handling of First Bit(s): An active high SCK consists of a series of pulses and will stop low (on a falling edge) following the last address, transfer length or Dummy Byte input. This falling edge corresponds to that which outputs the first data bit(s). However, it is likely that valid data has not yet been read from the EtherCAT Core. To account for this, the first bit(s) are output asynchronously once data is read from the EtherCAT Core. This is illustrated in Figure 9-19.  2020 Microchip Technology Inc. DS00003422A-page 189 LAN9254 FIGURE 9-19: ACTIVE HIGH SCK FIRST DATA BIT(S) SCS# SCK (active low) X SCK (active high) X ... ... ... ... ... ... Note 3 SIO X INST ADDRESS ... ... X X Note 1 X Note 2 D 7 Note 4 DATA 1 1 or 4 bytes Notes 5, 6 X D 7 DATA 2 X ECAT_read_req ECAT Read Data DATA 1 X DATA 2 Note 1: Active high SCK - First data bit is output asynchronously since falling edge already occurred. Note 2: INST is either READ, FASTREAD, SDOR, SDIOR, SQOR or SQIOR. Note 3: ADDRESS could be followed by the transfer length and / or Dummy bytes. The last clock before the data output is the one of concern. Note 4: BYTE access shown (READ command). DWORD access (FASTREAD, SDOR, SDIOR, SQOR and SQIOR commands) could be pre-pended by pad bytes but the same falling edge is still the one of concern. Note 5: Falling edge of concern occurs per byte for READ command and per DWORD for FASTREAD, SDOR, SDIOR, SQOR and SQIOR commands. Note 6: DATA could be followed by Dummy bytes. The last clock before the next byte (READ) or DWORD (others) output is the one of concern. Auto-Increment / Decrement Constant address and Auto-increment/decrement read operations are either BYTE or DWORD oriented depending on the command used (READ vs FASTREAD, SDOR, SDIOR, SQOR, SQIOR). For DWORD oriented, the DWORD address remains constant or is incremented or decremented while the byte address within the DWORD always increments. For Auto-increment operation non-DWORD alignment and partial DWORDs are supported. For Auto-decrement and Constant address operation only DWORD aligned starting addresses and full DWORD transfers are supported. READ Command (BYTE oriented): dec/inc=00: constant BYTE address read BYTE internal address repeats each BYTE starting address : yyyy internal address : yyyy byte address : First data output : yyyy valid next internal address : yyyy byte address : Second data output : yyyy valid next internal address : yyyy byte address : Last data output : yyyy valid dec/inc=01: incrementing BYTE address read BYTE internal address is incremented to next BYTE DS00003422A-page 190  2020 Microchip Technology Inc. LAN9254 starting address : yyyy internal address : yyyy byte address : First data output : yyyy valid next internal address : next BYTE byte address : +1 Second data output : valid next internal address : next BYTE byte address : +2 Last data output : valid dec/inc=10: decrementing BYTE address read BYTE internal address is decremented to previous BYTE starting address : yyyy internal address : yyyy byte address : First data output : yyyy valid next internal address : previous BYTE byte address : -1 Second data output : valid next internal address : previous BYTE byte address : -2 Last data output : valid dec/inc=11: RESERVED FASTREAD, SDOR, SDIOR, SQOR, SQIOR Commands (DWORD oriented): dec/inc=00: constant DWORD aligned address read 4 bytes within the DWORD in incrementing byte order internal address repeats each DWORD starting address : yyyy internal address : yyyy byte address : First data output : yyyy valid +1 valid +2 valid +3 valid internal address : yyyy byte address : Second data output : yyyy valid +1 valid +2 valid +3 valid internal address : yyyy byte address : Last data output : yyyy valid +1 valid +2 valid +3 valid dec/inc=01: incrementing DWORD address read up to 4 bytes within each DWORD in incrementing byte order internal address is incremented to next DWORD each DWORD starting address : yyyy  2020 Microchip Technology Inc. DS00003422A-page 191 LAN9254 internal address : DWORD address of yyyy byte address* : yyyy +1 yyyy valid valid pad* pad* valid valid valid pad* +3 +2 +1 yyyy valid valid valid valid next internal address : next DWORD byte address : +4 +3 +2 +1 Second data output : valid +5 +4 +3 +2 valid +6 +5 +4 +3 valid +7 +6 +5 +4 valid next internal address : next DWORD byte address : +8 +7 +6 +5 Last data output** : valid +9 +8 +7 +6 valid/na** +10 +9 +8 +7 valid/na** +11 +10 +9 +8 valid/na** First data output* : valid pad* pad* pad* +2 +1 yyyy *first data output could start with pad bytes if non-DWORD aligned starting address -- transfer length does not include any pad bytes **last data output could be less than 4 bytes dec/inc=10: decrementing DWORD aligned starting address read 4 bytes within each DWORD in incrementing byte order internal address is decremented by 4 each DWORD starting address : yyyy internal address : yyyy byte address : First data output : yyyy valid +1 valid +2 valid +3 valid next internal address : previous DWORD byte address : -4 Second data output : valid -3 valid -2 valid -1 valid next internal address : previous DWORD byte address : -8 Last data output : valid -7 valid -6 valid -5 valid dec/inc=11: RESERVED DS00003422A-page 192  2020 Microchip Technology Inc. LAN9254 9.3.2.2 Writes The data write(s) to the EtherCAT Core occur either every 8-bits or after the last BYTE of a DWORD is shifted in. The latter achieves better throughput but requires more post command processing time, potentially delaying the next command. Multiple writes can be BYTE or DWORD oriented. Based on the SPI command’s increment / decrement bits, the SPI interface can dynamically accumulate and write up to 32 bits, multiple times, in one SPI bus cycle. In the case where less than 4 bytes are shifted in before the bus cycle ends, the SPI interface commits whatever amount of data it received. BYTE buffering is used normally. DWORD buffering is indicated by using the normally reserved auto decrement / increment value of ‘b11. It is the responsibility of the Host to only shift in the next data when the device is ready. This is described in the following subsection. Auto-Increment / Decrement Constant address and Auto-increment/decrement write operations are either BYTE or DWORD oriented depending on the buffering type used (BYTE buffering vs DWORD buffering). For DWORD buffering, the DWORD address remains constant or is incremented or decremented while the byte address within the DWORD always increments. Only Auto-increment operation is supported with DWORD buffering. dec/inc=00: constant BYTE address write BYTE internal address repeats each BYTE starting address : yyyy internal address : yyyy byte address : First data input : yyyy valid next internal address : yyyy byte address : Second data input : yyyy valid next internal address : yyyy byte address : Last data input : yyyy valid dec/inc=01: incrementing BYTE address write BYTE internal address is incremented to next BYTE starting address : yyyy internal address : yyyy byte address : First data input : yyyy valid next internal address : next BYTE byte address : +1 Second data input : valid next internal address : next BYTE byte address : +2 Last data input : valid dec/inc=10: decrementing BYTE address write BYTE internal address is decremented to previous BYTE  2020 Microchip Technology Inc. DS00003422A-page 193 LAN9254 starting address : yyyy internal address : yyyy byte address : First data input : yyyy valid next internal address : previous BYTE byte address : -1 Second data input : valid next internal address : previous BYTE byte address : -2 Last data input : valid dec/inc=11: incrementing DWORD address write up to 4 bytes within each DWORD in incrementing byte order internal address is incremented to next DWORD each DWORD starting address : yyyy internal address : DWORD address of yyyy byte address* : yyyy yyyy yyyy yyyy First data input* : valid valid valid valid +1 +1 +1 na* valid valid valid na* +2 +2 na* na* valid valid na* na* +3 na* na* na* valid na* na* na* next internal address : next DWORD byte address : +4 +3 +2 +1 Second data input : valid +5 +4 +3 +2 valid +6 +5 +4 +3 valid +7 +6 +5 +4 valid next internal address : next DWORD byte address : +8 +7 +6 +5 Last data input** : valid +9 +8 +7 +6 valid/na** +10 +9 +8 +7 valid/na** +11 +10 +9 +8 valid/na** *first data could be less than 4 bytes if non-DWORD aligned starting address **last data output could be less than 4 bytes 9.3.2.3 Wait States EtherCAT Direct Mapped mode requires the host bus to obey the access arbitration controlled by the EtherCAT Core PDI. Subsequent SPI commands must not be started if there is a pending prior EtherCAT Core write. Read cycles are first arbitrated and data is returned. This requires a delay for all reads. In order to guarantee valid data is returned, the shifting out of the read data must not occur before the worst case access time. Sequential data is prefetched during the initial read data shift. however the shifting out of the subsequent read data must not occur before the worst case access time. DS00003422A-page 194  2020 Microchip Technology Inc. LAN9254 Write cycles are posted and executed after the data has been shifted in. For multiple writes, subsequent write cycles may start to be shifted in but the bus speed must be limited such that the subsequent write cycle does not complete until after the worst case write arbitration time. When DWORD Buffering is used, BYTES within the same DWORD may be shifted in without any delay. However with DWORD Buffering, in the case of a partial DWORD being written on the final write, SCS# must not return high until the prior write has completed. Besides simply waiting the required time or using a sufficiently slow SPI clock speed, two other methods are available for the host. Dummy Byte cycles are available for all read and write commands to pace the data rate.The wait / acknowledge (WAIT_ACK) pin may be used as an indication when read data may be shifted out or when the write data shift in may complete. Time or Dummy Cycle Based Dummy Byte cycles are available for all read and write commands. A programmable number of Dummy Bytes can be set per command type as well as for the first, per BYTE or per DWORD of data. The number of Dummy Bytes to be used depends on the SPI clock speed as well as the SPI command used. Note: Dummy Byte cycles may coexist with the Wait / Acknowledge operation described in the following subsection. It is intended that the Dummy Bytes are shifted while Wait is indicated. The Dummy Bytes are a means to fill the required time indicated by the Wait indication. Waiting for Wait to be negated before shifting the Dummy Bytes would nullify the need for the them. The following timing constraints must be followed: Note: The timing values in this section are preliminary and subject to change. SPI commands must not be started if there is a pending prior EtherCAT Core write. The worst case internal write cycle time is 250ns for a single byte plus 80ns per additional byte. Read first BYTE - From rising edge of SCK that samples last address bit (or last transfer length bit if applicable) to data ready - READ command 370ns, other read commands 610ns. A falling edge on SCK may occur prior to this time in which case data is output when it becomes ready. See Section 9.3.2.1. Note: The “other” read commands are optimized for multiple BYTE reads. Although they have a longer initial access time as well as the overhead of the transfer length byte(s) they may outperform the standard READ command. Read next BYTE - From rising edge of SCK that follows the falling edge of SCK that outputs first data bit of current BYTE to next BYTE ready - READ command 370ns, other read commands 0ns (“read next DWORD” timing still must be meet). Some or all of this wait time might overlap with the time it takes to shift out the current BYTE. Read next DWORD - From rising edge of SCK that follows the falling edge of SCK that outputs first data bit of current DWORD to next DWORD ready - READ command n/a, other read commands 610ns. Some or all of this wait time might overlap with the time it takes to shift out the current DWORD. Write first BYTE (BYTE Buffering mode) - to rising edge of SCK that samples last data bit - 0ns. Write first DWORD (DWORD Buffering mode) - to rising edge of SCK that samples last data bit - 0ns. Write next BYTE (BYTE Buffering mode) - from rising edge of SCK that samples last data bit of current BYTE to rising edge of SCK that samples last data bit of next BYTE - 250ns. Some or all of this wait time might overlap with the time it takes to shift in the next BYTE. Write next full DWORD (DWORD Buffering mode) - from rising edge of SCK that samples last data bit of current DWORD to rising edge of SCK that samples last data bit of next full DWORD - 490ns. Some or all of this wait time might overlap with the time it takes to shift in the next DWORD, Write last partial DWORD (DWORD Buffering mode) - from rising edge of SCK that samples last data bit of current DWORD to rising edge of SCS# which forces write of last partial DWORD - 490ns. Some or all of this wait time might overlap with the time it takes to shift in the partial DWORD.  2020 Microchip Technology Inc. DS00003422A-page 195 LAN9254 Wait / Acknowledge Operation The host system may either wait the specified above worst case access time, or may use the WAIT_ACK signal. Note: Wait / Acknowledge may coexist with the Dummy Byte cycles operation described above. Read and write cycles start with the leading edge of SCS#, which enables the WAIT_ACK output. If an EtherCAT Core write operation is internally pending, the WAIT_ACK will initially indicate wait. In the absence of a pending prior write, WAIT_ACK will initially indicate acknowledge (not busy). SPI commands must not be started if there is a pending prior EtherCAT Core write. The worst case internal write cycle time is 250ns for a single byte plus 80ns per additional byte. The host may deactivate SCS# and retry the cycle at a later time, or it may simply wait until WAIT_ACK indicates not busy. For reads from the EtherCAT Core CSRs and Process RAM (addresses 0h to 2FFFh), following the shift in of the address, WAIT_ACK will change to indicate wait as the SPI interface retrieves the read data from the EtherCAT Core. Once the read data is available, WAIT_ACK will indicate acknowledge and the host may shift out the data. Note: Per “Special Handling of First Bit(s)” in Section 9.3.2.1, the first falling SCK edge of each data may occur before data is ready, in which case data will be output asynchronously when ready. Following the shift out of the first bit of data (on the rising edge following the falling edge that outputs the data), WAIT_ACK will indicate wait once again, as the SPI interface pre-fetches the next read data.(assuming there is a next pre-fetch otherwise WAIT_ACK will remain indicating acknowledge). FIGURE 9-20: SPI WAIT ACK ETHERCAT CORE READ SCS# SCK (active low) X SCK (active high) X SIO ... ... INST X Note 4 ... ... ... ... ... ADDRESS D 7 X Note 5 Note 6 ... D 0 DATA 1 X X D 7 DATA 2 X D 0 X Note 8 ECAT_write_req (internal signal) ECAT_read_req (internal signal) Notes 2, 7 Note 3 ECAT_ack (internal signal) WAIT_ACK Z Note 1 Z Note 1: WAIT_ACK initially high due to no pending internal write. Note 2: Next read request along with next WAIT_ACK starts on rising edge after first data shift started. Note 3: 3 rd read request not performed, therefore WAIT_ACK remains inactive. Note 4: INST is either READ, FASTREAD, SDOR, SDIOR, SQOR or SQIOR. Note 5: ADDRESS could be followed by the transfer length and / or Dummy bytes. WAIT_ACK becomes active on the last address or transfer length input. Any Dummy bytes occur in parallel with WAIT_ACK. Note 6: BYTE access shown (READ command). DWORD access (FASTREAD, SDOR, SDIOR, SQOR and SQIOR commands) could be pre -pended by pad bytes. Note 7: WAIT_ACK occurs per byte (READ) or per DWORD (others). Note 8: DATA could be followed by Dummy bytes which would occur in parallel with WAIT_ACK. Note: Active High Push-Pull WAIT_ACK shown. DS00003422A-page 196  2020 Microchip Technology Inc. LAN9254 For writes to the EtherCAT Core CSRs and Process RAM (addresses 0h to 2FFFh), depending on the write buffering mode, WAIT_ACK will change to indicate wait following the shift in of the last data bit of each BYTE or of each (potentially partial) DWORD. Following the last data bit shift in, an internal write operation is initiated. Once the internal write operation has completed, WAIT_ACK will indicate acknowledge. The host may start the next data input during the internal write wait time, however it may only complete the BYTE / DWORD when acknowledge is indicated. FIGURE 9-21: SPI WAIT ACK ETHERCAT CORE WRITE SCS# SCK (active low) X SCK (active high) X ... ... ... ... ... ... ... ... Note 2 SIO X INST Note 5 ECAT_write_req (internal signal) ADDRESS D 7 DATA 1 Note 6 D 0 D 7 X X Note 3 DATA 2 D 0 X Note 4 Note 7,8 Note 9 ECAT_read_req (internal signal) ECAT_ack (internal signal) WAIT_ACK Z Note 1 Z Note 1: WAIT_ACK initially high due to no pending internal write. Note 2: Host can start next data write shift during internal write. Note 3: Host must wait before finishing next data write. Note 4: Host can finish SPI cycle with final internal write pending. Note 5: INST is either WRITE, SDDW, SDADW, DQDW or SQADW. Note 6: ADDRESS could be followed by Dummy bytes. Note 7: DATA could be followed by Dummy bytes which would occur in parallel with WAIT_ACK. Note 8: BYTE Buffering mode shown. DWORD Buffering mode is the same except internal write and WAIT occurs at the end of a DWO RD (bit D24). Note 9: For DWORD Buffering mode, internal write occurs on SCS# inactive if last bit is not D24. Note: Active High Push -Pull WAIT_ACK shown. WAIT_ACK becomes undriven with the negation of SCS#.  2020 Microchip Technology Inc. DS00003422A-page 197 LAN9254 9.4 Controller Access Errors The following access errors are detected by the SPI interface: • A SPI command started while a prior write was pending (EtherCAT Direct Mapped Mode only). • For non-EtherCAT Core CSR access, the number of clock cycles during the data phase of the transfer does not align to a DWORD multiple (incomplete DWORDs were transferred). • For EtherCAT Core CSR and Process RAM access, the number of clock cycles during the data phase of the transfer does not align to a byte multiple (incomplete BYTEs were transferred) (EtherCAT Direct Mapped Mode only). • For a READ instruction, the data phase was not terminated by setting SI high for the last byte. • For a READ instruction, additional bytes were read after setting SI high for the last byte. • For the FASTREAD, SDOR, SDIOR, SQOR, SQIOR instructions, the incorrect number of bytes were read (not matching the byte length provided). • For a EtherCAT Core CSR and Process RAM read access (EtherCAT Direct Mapped Mode only): a) For the initial access, a rising SCK following the last address, transfer length or Dummy Byte input occurred while the interface was busy fetching the data. b) For subsequent accesses, a rising SCK following the last current data or Dummy Byte output occurred while the interface was busy fetching the next data. (Testing on the rising SCK allows for a falling edge on the address, transfer length, Dummy Bytes or last bit of the current data before the next data is ready for the active high SCK case - see Section 9.3.2.1). • For a write access, the last data clock cycle of the current BYTE (BYTE Buffering) or DWORD (DWORD Buffering) occurred while a prior write was pending (EtherCAT Direct Mapped Mode only). • For a write access, SCS# became inactive (committing the current partial DWORD write) while a prior write was pending (EtherCAT Direct Mapped Mode only). The PDI Error Counter Register will be incremented and the reason of the access error can be read in the PDI Error Code Register. The PDI Error Code Register bit definitions are detailed in Section 11.16.40. Note: A transfer may contain multiple errors. Sequential errors are counted individually as they occur. The error status is updated as each error occurs, overwriting any previous error status. Simultaneous errors that occur at the end of the transfer (“Incomplete BYTE or DWORD”, “Read finished without setting SI high for the last byte” and “Actual read length did not match byte length provided”) cause the PDI Error Counter Register to increment only once more. The error status will still overwrite any previous error status. however, for multiple simultaneous errors, the error status may indicate multiple conditions. DS00003422A-page 198  2020 Microchip Technology Inc. LAN9254 9.5 SPI/SQI Timing Requirements SPI/SQI interface pin timing is described below. Data access time for EtherCAT Direct Mapped Mode is described in Section 9.3.2.3, Wait States. FIGURE 9-22: SPI/SQI INPUT TIMING tscshl SCS# tscss SCK (active high) thigh tlow tscsh thigh tlow tscsh tscss SCK (active low) tsu thd SI/SIO[3:0] FIGURE 9-23: SPI/SQI OUTPUT TIMING SCS# thigh tlow SCK ton tv tho SO/SIO[3:0] FIGURE 9-24: SPI/SQI WAIT_ACK TIMING SCS# SCK (active high) SCK (active low) WAIT_ACK (push pull) WAIT_ACK (open drain) twait_on tscs_wait tsck_wait wait twait_on tscs_wait ack tsck_wait wait tdv_ack SO/SIO[3:0]  2020 Microchip Technology Inc. DS00003422A-page 199 LAN9254 TABLE 9-4: SPI/SQI TIMING VALUES Symbol Description Min Typ Max Units 30 / 80 MHz fsck SCK clock frequency Note 11 thigh SCK high time 5.5 ns tlow SCK low time 5.5 ns tscss SCS# setup time to SCK 5 ns tscsh SCS# hold time from SCK 5 ns tscshl SCS# inactive time 50 ns tsu Data input setup time to SCK 3 ns thd Data input hold time from SCK 4 ns ton Data output turn on time from SCK 0 ns 3.3V VDDIO 30pF: 9 10pF: 8.5 Data output valid time from SCK Note 12 tv Application Note: Depending on the clock frequency and pulse width, data may not be valid until following the next rising edge of SCK. This is normal with high speed SPI slaves (SPI flashes, etc.). The host SPI controller would need to delay the sampling of the data by either a fixed time or by using the falling edge of SCK. tho Data output hold time from SCK tdis Data output disable time from SCS# inactive 1.8V VDDIO 30pF: 13 10pF: 12 0 ns ns 20 ns twait_on WAIT_ACK turn on time from SCS# active tscs_wait WAIT_ACK valid from SCS# active 15 ns tdis_wait WAIT_ACK disable time from SCS# inactive 20 ns tsck_wait WAIT_ACK assertion from SCK 15 ns tdv_ack Read Data asynchronous output valid before WAIT_ACK de-assertion 0 15 ns ns Note 11: The Read instruction is limited to 30 MHz maximum. Note 12: Depends on loading and supply voltage. DS00003422A-page 200  2020 Microchip Technology Inc. LAN9254 10.0 ETHERNET PHYS 10.1 Functional Overview The device contains PHYs A and B, which are identical in functionality. PHY A connects to either port 0 or 2 of the EtherCAT Core. PHY B connects to port 1 of the EtherCAT core. These PHYs interface with their respective MAC via an internal MII interface. The PHYs comply with the IEEE 802.3 Physical Layer for Twisted Pair Ethernet specification and can be configured for full/half duplex 100 Mbps (100BASE-TX) or 10 Mbps (10BASE-T) Ethernet operation. However, only full duplex, 100BASE-TX operation is used for EtherCAT. All PHY registers follow the IEEE 802.3 (clause 22.2.4) specified MII management register set and are fully configurable. 10.1.1 PHY ADDRESSING Each individual PHY is assigned a default PHY address. The address for PHY A is set to 0 or 2, based on the device mode. The address for PHY B is fixed to 1. In addition, the addresses for the PHYs can be changed via the PHY Address (PHYADD) field in the PHY x Special Modes Register (PHY_SPECIAL_MODES_x). 10.2 PHYs A & B The device integrates two IEEE 802.3 PHY functions. The PHYs are configured for 100 Mbps copper (100BASE-TX) Ethernet operation and include Auto-Negotiation and HP Auto-MDIX. Note: 10.2.1 Because PHYs A and B are functionally identical, this section will describe them as “PHY x”, or simply “PHY”. Wherever a lowercase “x” has been appended to a port or signal name, it can be replaced with “A” or “B” to indicate the PHY A or PHY B respectively. In some instances, a “1” or a “2” may be appropriate instead. All references to “PHY” in this section can be used interchangeably for both the PHYs A and B. FUNCTIONAL DESCRIPTION Functionally, each PHY can be divided into the following sections: • • • • • • • • • • 100BASE-TX Transmit and 100BASE-TX Receive Auto-Negotiation HP Auto-MDIX PHY Management Control and PHY Interrupts PHY Power-Down Modes Wake on LAN (WoL) Resets Link Integrity Test Cable Diagnostics Loopback Operation  2020 Microchip Technology Inc. DS00003422A-page 201 LAN9254 A block diagram of the main components of each PHY can be seen in Figure 10-1. FIGURE 10-1: PHY BLOCK DIAGRAM AutoNegotiation 100 Transmitter To Port x EtherCAT MAC MII TXPx/TXNx MII MAC Interface HP Auto-MDIX RXPx/RXNx To External Port x Ethernet Pins 100 Reciever To EtherCAT core MDI O PHY Management Control Regist ers PLL Interrupts To System Interrupt Controller 10.2.2 From System Clocks Controller 100BASE-TX TRANSMIT The 100BASE-TX transmit data path is shown in Figure 10-2. Shaded blocks are those which are internal to the PHY. Each major block is explained in the following sections. FIGURE 10-2: 100BASE-TX TRANSMIT DATA PATH Internal MII Transmit Clock 100M PLL Internal MII 25 MHz by 4 bits MII MAC Interface Port x MAC 25MHz by 4 bits 4B/5B Encoder 25MHz by 5 bits Scrambler and PISO 125 Mbps Serial NRZI Converter NRZI MLT-3 Converter MLT-3 100M TX Driver MLT-3 Magnetics MLT-3 RJ45 10.2.2.1 MLT-3 CAT-5 100BASE-TX Transmit Data Across the Internal MII Interface For a transmission, the EtherCAT Core MAC drives the transmit data onto the internal MII TXD bus and asserts the internal MII TXEN to indicate valid data. The data is in the form of 4-bit wide 25 MHz data. DS00003422A-page 202  2020 Microchip Technology Inc. LAN9254 10.2.2.2 4B/5B Encoder The transmit data passes from the MII block to the 4B/5B Encoder. This block encodes the data from 4-bit nibbles to 5bit symbols (known as “code-groups”) according to Table 10-1. Each 4-bit data-nibble is mapped to 16 of the 32 possible code-groups. The remaining 16 code-groups are either used for control information or are not valid. The first 16 code-groups are referred to by the hexadecimal values of their corresponding data nibbles, 0 through F. The remaining code-groups are given letter designations with slashes on either side. For example, an IDLE code-group is / I/, a transmit error code-group is /H/, etc. TABLE 10-1: 4B/5B CODE TABLE Code Group Sym Receiver Interpretation 11110 0 0 0000 01001 1 1 10100 2 10101 0 0000 0001 1 0001 2 0010 2 0010 3 3 0011 3 0011 01010 4 4 0100 4 0100 01011 5 5 0101 5 0101 01110 6 6 0110 6 0110 01111 7 7 0111 7 0111 10010 8 8 1000 8 1000 10011 9 9 1001 9 1001 10110 A A 1010 A 1010 10111 B B 1011 B 1011 11010 C C 1100 C 1100 11011 D D 1101 D 1101 11100 E E 1110 E 1110 11101 F F 1111 F 1111 11111 /I/ IDLE Sent after /T/R/ until the MII Transmitter Enable signal (TXEN) is received 11000 /J/ First nibble of SSD, translated to “0101” following IDLE, else MII Receive Error (RXER) Sent for rising MII Transmitter Enable signal (TXEN) 10001 /K/ Second nibble of SSD, translated to “0101” following J, else MII Receive Error (RXER) Sent for rising MII Transmitter Enable signal (TXEN) 01101 /T/ First nibble of ESD, causes de-assertion of CRS if followed by /R/, else assertion of MII Receive Error (RXER) Sent for falling MII Transmitter Enable signal (TXEN) 00111 /R/ Second nibble of ESD, causes de-assertion of CRS if following /T/, else assertion of MII Receive Error (RXER) Sent for falling MII Transmitter Enable signal (TXEN) 00100 /H/ Transmit Error Symbol Sent for rising MII Transmit Error (TXER)  2020 Microchip Technology Inc. DATA Transmitter Interpretation DATA DS00003422A-page 203 LAN9254 TABLE 10-1: 4B/5B CODE TABLE (CONTINUED) Code Group Sym 00110 /V/ INVALID, MII Receive Error (RXER) if during MII Receive Data Valid (RXDV) INVALID 11001 /V/ INVALID, MII Receive Error (RXER) if during MII Receive Data Valid (RXDV) INVALID 00000 /V/ INVALID, MII Receive Error (RXER) if during MII Receive Data Valid (RXDV) INVALID 00001 /V/ INVALID, MII Receive Error (RXER) if during MII Receive Data Valid (RXDV) INVALID 00010 /V/ INVALID, MII Receive Error (RXER) if during MII Receive Data Valid (RXDV) INVALID 00011 /V/ INVALID, MII Receive Error (RXER) if during MII Receive Data Valid (RXDV) INVALID 00101 /V/ INVALID, MII Receive Error (RXER) if during MII Receive Data Valid (RXDV) INVALID 01000 /V/ INVALID, MII Receive Error (RXER) if during MII Receive Data Valid (RXDV) INVALID 01100 /V/ INVALID, MII Receive Error (RXER) if during MII Receive Data Valid (RXDV) INVALID 10000 /V/ INVALID, MII Receive Error (RXER) if during MII Receive Data Valid (RXDV) INVALID 10.2.2.3 Receiver Interpretation Transmitter Interpretation Scrambler and PISO Repeated data patterns (especially the IDLE code-group) can have power spectral densities with large narrow-band peaks. Scrambling the data helps eliminate these peaks and spread the signal power more uniformly over the entire channel bandwidth. This uniform spectral density is required by FCC regulations to prevent excessive EMI from being radiated by the physical wiring. The seed for the scrambler is generated from the PHY address, ensuring that each PHY will have its own scrambler sequence. For more information on PHY addressing, refer to Section 10.1.1, "PHY Addressing". The scrambler also performs the Parallel In Serial Out conversion (PISO) of the data. 10.2.2.4 NRZI and MLT-3 Encoding The scrambler block passes the 5-bit wide parallel data to the NRZI converter where it becomes a serial 125MHz NRZI data stream. The NRZI is then encoded to MLT-3. MLT-3 is a tri-level code where a change in the logic level represents a code bit “1” and the logic output remaining at the same level represents a code bit “0”. 10.2.2.5 100M Transmit Driver The MLT-3 data is then passed to the analog transmitter, which drives the differential MLT-3 signal on output pins TXPx and TXNx, to the twisted pair media across a 1:1 ratio isolation transformer. The transmitter drives into the 100  impedance of the CAT-5 cable. Cable termination and impedance matching require external components. 10.2.2.6 100M Phase Lock Loop (PLL) The 100M PLL locks onto the reference clock and generates the 125 MHz clock used to drive the 125 MHz logic and the 100BASE-TX Transmitter. DS00003422A-page 204  2020 Microchip Technology Inc. LAN9254 10.2.3 100BASE-TX RECEIVE The 100BASE-TX receive data path is shown in Figure 10-3. Shaded blocks are those which are internal to the PHY. Each major block is explained in the following sections. FIGURE 10-3: 100BASE-TX RECEIVE DATA PATH 100M PLL Internal MII Receive Clock Port x MAC MII MAC Interface Internal MII 25MHz by 4 bits 25MHz by 4 bits 4B/5B Decoder 25MHz by 5 bits Descrambler and SIPO 125 Mbps Serial NRZI Converter A/D Converter MLT-3 Converter NRZI MLT-3 Magnetics MLT-3 MLT-3 RJ45 DSP: Timing recovery, Equalizer and BLW Correction MLT-3 CAT-5 6 bit Data 10.2.3.1 100M Receive Input The MLT-3 data from the cable is fed into the PHY on inputs RXPx and RXNx via a 1:1 ratio transformer. The ADC samples the incoming differential signal at a rate of 125M samples per second. Using a 64-level quantizer, 6 digital bits are generated to represent each sample. The DSP adjusts the gain of the ADC according to the observed signal levels such that the full dynamic range of the ADC can be used. 10.2.3.2 Equalizer, BLW Correction and Clock/Data Recovery The 6 bits from the ADC are fed into the DSP block. The equalizer in the DSP section compensates for phase and amplitude distortion caused by the physical channel consisting of magnetics, connectors, and CAT- 5 cable. The equalizer can restore the signal for any good-quality CAT-5 cable between 1m and 100m. If the DC content of the signal is such that the low-frequency components fall below the low frequency pole of the isolation transformer, then the droop characteristics of the transformer will become significant and Baseline Wander (BLW) on the received signal will result. To prevent corruption of the received data, the PHY corrects for BLW and can receive the ANSI X3.263-1995 FDDI TP-PMD defined “killer packet” with no bit errors. The 100M PLL generates multiple phases of the 125MHz clock. A multiplexer, controlled by the timing unit of the DSP, selects the optimum phase for sampling the data. This is used as the received recovered clock. This clock is used to extract the serial data from the received signal. 10.2.3.3 NRZI and MLT-3 Decoding The DSP generates the MLT-3 recovered levels that are fed to the MLT-3 converter. The MLT-3 is then converted to an NRZI data stream. 10.2.3.4 Descrambler The descrambler performs an inverse function to the scrambler in the transmitter and also performs the Serial In Parallel Out (SIPO) conversion of the data.  2020 Microchip Technology Inc. DS00003422A-page 205 LAN9254 During reception of IDLE (/I/) symbols. the descrambler synchronizes its descrambler key to the incoming stream. Once synchronization is achieved, the descrambler locks on this key and is able to descramble incoming data. Special logic in the descrambler ensures synchronization with the remote transceiver by searching for IDLE symbols within a window of 4000 bytes (40 us). This window ensures that a maximum packet size of 1514 bytes, allowed by the IEEE 802.3 standard, can be received with no interference. If no IDLE-symbols are detected within this time-period, receive operation is aborted and the descrambler re-starts the synchronization process. The de-scrambled signal is then aligned into 5-bit code-groups by recognizing the /J/K/ Start-of-Stream Delimiter (SSD) pair at the start of a packet. Once the code-word alignment is determined, it is stored and utilized until the next start of frame. 10.2.3.5 5B/4B Decoding The 5-bit code-groups are translated into 4-bit data nibbles according to the 4B/5B table. The translated data is presented on the internal MII RXD[3:0] signal lines. The SSD, /J/K/, is translated to “0101 0101” as the first 2 nibbles of the MAC preamble. Reception of the SSD causes the transceiver to assert the receive data valid signal, indicating that valid data is available on the RXD bus. Successive valid code-groups are translated to data nibbles. Reception of either the End of Stream Delimiter (ESD) consisting of the /T/R/ symbols, or at least two /I/ symbols causes the transceiver to deassert carrier sense and receive data valid signal. Note: 10.2.3.6 These symbols are not translated into data. Receive Data Valid Signal The internal MII’s Receive Data Valid signal (RXDV) indicates that recovered and decoded nibbles are being presented on the RXD[3:0] outputs synchronous to RXCLK. RXDV becomes active after the /J/K/ delimiter has been recognized and RXD is aligned to nibble boundaries. It remains active until either the /T/R/ delimiter is recognized or link test indicates failure or SIGDET becomes false. RXDV is asserted when the first nibble of translated /J/K/ is ready for transfer over the Media Independent Interface. 10.2.3.7 Receiver Errors During a frame, unexpected code-groups are considered receive errors. Expected code groups are the DATA set (0 through F), and the /T/R/ (ESD) symbol pair. When a receive error occurs, the internal MII’s RXER signal is asserted and arbitrary data is driven onto the internal MII’s RXD[3:0] lines. Should an error be detected during the time that the / J/K/ delimiter is being decoded (bad SSD error), RXER is asserted true and the value 1110b is driven onto the RXD[3:0] lines. Note that the internal MII’s data valid signal (RXDV) is not yet asserted when the bad SSD occurs. 10.2.3.8 100M Receive Data Across the Internal MII Interface For reception, the 4-bit data nibbles are sent to the MII MAC Interface block. These data nibbles are clocked to the controller at a rate of 25 MHz. RXCLK is the output clock for the internal MII bus. It is recovered from the received data to clock the RXD bus. If there is no received signal, it is derived from the system reference clock. 10.2.4 10BASE-T TRANSMIT 10BASE-T is not used for EtherCAT. 10.2.5 AUTO-NEGOTIATION The purpose of the Auto-Negotiation function is to automatically configure the transceiver to the optimum link parameters based on the capabilities of its link partner. Auto-Negotiation is a mechanism for exchanging configuration information between two link-partners and automatically selecting the highest performance mode of operation supported by both sides. Auto-Negotiation is fully defined in clause 28 of the IEEE 802.3 specification and is enabled by setting the Auto-Negotiation Enable (PHY_AN) of the PHY x Basic Control Register (PHY_BASIC_CONTROL_x). The advertised capabilities of the PHY are stored in the PHY x Auto-Negotiation Advertisement Register (PHY_AN_ADV_x). The transceiver supports “Next Page” capability which is used to negotiate Energy Efficient Ethernet functionality as well as to support software controlled pages. Many of the default advertised capabilities of the PHY are determined via configuration straps as shown in Section 10.2.18.5, "PHY x Auto-Negotiation Advertisement Register (PHY_AN_ADV_x)," on page 233. Refer to Section 3.3, "Configuration Straps," on page 36 for additional details on how to use the device configuration straps. DS00003422A-page 206  2020 Microchip Technology Inc. LAN9254 Once Auto-Negotiation has completed, information about the resolved link and the results of the negotiation process are reflected in the Speed Indication bits in the PHY x Special Control/Status Register (PHY_SPECIAL_CONTROL_STATUS_x), as well as the PHY x Auto-Negotiation Link Partner Base Page Ability Register (PHY_AN_LP_BASE_ABILITY_x). The Auto-Negotiation protocol is a purely physical layer activity and proceeds independently of the MAC controller. The following blocks are activated during an Auto-Negotiation session: • • • • • • • Auto-Negotiation (digital) 100M ADC (analog) 100M PLL (analog) 100M equalizer/BLW/clock recovery (DSP) 10M SQUELCH (analog) 10M PLL (analog) 10M Transmitter (analog) When enabled, Auto-Negotiation is started by the occurrence of any of the following events: • Power-On Reset (POR) • Hardware reset (RST#) • PHY Software reset (via Reset Control Register (RESET_CTL), or bit 15 of the PHY x Basic Control Register (PHY_BASIC_CONTROL_x)) • PHY Power-down reset (Section 10.2.9, "PHY Power-Down Modes," on page 212) • PHY Link status down (bit 2 of the PHY x Basic Status Register (PHY_BASIC_STATUS_x) is cleared) • Setting the PHY x Basic Control Register (PHY_BASIC_CONTROL_x), bit 9 high (auto-neg restart) • EtherCAT System Reset Note: Refer to Section 6.2, "Resets," on page 46 for information on these and other system resets. On detection of one of these events, the transceiver begins Auto-Negotiation by transmitting bursts of Fast Link Pulses (FLP). These are bursts of link pulses from the 10M TX Driver. They are shaped as Normal Link Pulses and can pass uncorrupted down CAT-3 or CAT-5 cable. A Fast Link Pulse Burst consists of up to 33 pulses. The 17 odd-numbered pulses, which are always present, frame the FLP burst. The 16 even-numbered pulses, which may be present or absent, contain the data word being transmitted. Presence of a data pulse represents a “1”, while absence represents a “0”. The data transmitted by an FLP burst is known as a “Link Code Word.” These are defined fully in IEEE 802.3 clause 28. In summary, the transceiver advertises 802.3 compliance in its selector field (the first 5 bits of the Link Code Word). It advertises its technology ability according to the bits set in the PHY x Auto-Negotiation Advertisement Register (PHY_AN_ADV_x). There are 4 possible matches of the technology abilities. In the order of priority these are: • • • • 100M Full Duplex (Highest priority) 100M Half Duplex (Not used for EtherCAT) 10M Full Duplex (Not used for EtherCAT) 10M Half Duplex (Lowest priority) (Not used for EtherCAT) If the full capabilities of the transceiver are advertised (100M, full-duplex), and if the link partner is capable of 10M and 100M, then Auto-Negotiation selects 100M as the highest performance mode. If the link partner is capable of half and full-duplex modes, then Auto-Negotiation selects full-duplex as the highest performance mode. Once a capability match has been determined, the link code words are repeated with the acknowledge bit set. Any difference in the main content of the link code words at this time will cause Auto-Negotiation to re-start. Auto-Negotiation will also re-start if not all of the required FLP bursts are received. Writing the PHY x Auto-Negotiation Advertisement Register (PHY_AN_ADV_x) bits [8:5] allows software control of the capabilities advertised by the transceiver. Writing the PHY x Auto-Negotiation Advertisement Register (PHY_AN_ADV_x) does not automatically re-start Auto-Negotiation. The Restart Auto-Negotiation (PHY_RST_AN) bit of the PHY x Basic Control Register (PHY_BASIC_CONTROL_x) must be set before the new abilities will be advertised. Auto-Negotiation can also be disabled via software by clearing the Auto-Negotiation Enable (PHY_AN) bit of the PHY x Basic Control Register (PHY_BASIC_CONTROL_x).  2020 Microchip Technology Inc. DS00003422A-page 207 LAN9254 10.2.5.1 Pause Flow Control Pause flow control is not used for EtherCAT. 10.2.5.2 Parallel Detection Parallel detection is not used for EtherCAT. 10.2.5.3 Restarting Auto-Negotiation Auto-Negotiation can be re-started at any time by setting the Restart Auto-Negotiation (PHY_RST_AN) bit of the PHY x Basic Control Register (PHY_BASIC_CONTROL_x). Auto-Negotiation will also re-start if the link is broken at any time. A broken link is caused by signal loss. This may occur because of a cable break, or because of an interruption in the signal transmitted by the Link Partner. Auto-Negotiation resumes in an attempt to determine the new link configuration. If the management entity re-starts Auto-Negotiation by setting the Restart Auto-Negotiation (PHY_RST_AN) bit of the PHY x Basic Control Register (PHY_BASIC_CONTROL_x), the device will respond by stopping all transmission/receiving operations. Once the internal break_link_time is completed in the Auto-Negotiation state-machine (approximately 1200ms), Auto-Negotiation will re-start. In this case, the link partner will have also dropped the link due to lack of a received signal, so it too will resume Auto-Negotiation. 10.2.5.4 Disabling Auto-Negotiation Auto-Negotiation can be disabled by clearing the Auto-Negotiation Enable (PHY_AN) bit of the PHY x Basic Control Register (PHY_BASIC_CONTROL_x). The transceiver will then force its speed of operation to reflect the information in the PHY x Basic Control Register (PHY_BASIC_CONTROL_x) (Speed Select LSB (PHY_SPEED_SEL_LSB) and Duplex Mode (PHY_DUPLEX)). These bits are ignored when Auto-Negotiation is enabled. 10.2.5.5 Half Vs. Full-Duplex Half-duplex operation relies on the CSMA/CD (Carrier Sense Multiple Access / Collision Detect) protocol to handle network traffic and collisions. In this mode, the carrier sense signal, CRS, responds to both transmit and receive activity. If data is received while the transceiver is transmitting, a collision results. In full-duplex mode, the transceiver is able to transmit and receive data simultaneously. In this mode, CRS responds only to receive activity. The CSMA/CD protocol does not apply and collision detection is disabled. EtherCAT requires the use of full-duplex operation. 10.2.6 HP AUTO-MDIX HP Auto-MDIX facilitates the use of CAT-3 (10 BASE-T) or CAT-5 (100 BASE-T) media UTP interconnect cable without consideration of interface wiring scheme. If a user plugs in either a direct connect LAN cable or a cross-over patch cable, as shown in Figure 10-4, the transceiver is capable of configuring the TXPx/TXNx and RXPx/RXNx twisted pair pins for correct transceiver operation. The internal logic of the device detects the TX and RX pins of the connecting device. Since the RX and TX line pairs are interchangeable, special PCB design considerations are needed to accommodate the symmetrical magnetics and termination of an Auto-MDIX design. The default enable state of Auto-MDIX is controlled by the AMDIX Disable PHY A and AMDIX Disable PHY B bits in the Hardware Configuration Register (HW_CFG). Software based control of the Auto-MDIX function may be performed using the Auto-MDIX Control (AMDIXCTRL) bit of the PHY x Special Control/Status Indication Register (PHY_SPECIAL_CONTROL_STAT_IND_x). When AMDIXCTRL is set to 1, the Auto-MDIX capability is determined by the Auto-MDIX Enable (AMDIXEN) and Auto-MDIX State (AMDIXSTATE) bits of the PHY x Special Control/Status Indication Register (PHY_SPECIAL_CONTROL_STAT_IND_x). Note: When operating in 10BASE-T or 100BASE-TX manual modes, the Auto-MDIX crossover time can be extended via the Extend Manual 10/100 Auto-MDIX Crossover Time bit of the PHY x EDPD NLP / Crossover Time / EEE Configuration Register (PHY_EDPD_CFG_x). Refer to Section 10.2.18.12, on page 242 for additional information. When Energy Detect Power-Down is enabled, the Auto-MDIX crossover time can be extended via the EDPD Extend Crossover bit of the PHY x EDPD NLP / Crossover Time / EEE Configuration Register (PHY_EDPD_CFG_x). Refer to Section 10.2.18.12, on page 242 for additional information DS00003422A-page 208  2020 Microchip Technology Inc. LAN9254 FIGURE 10-4: DIRECT CABLE CONNECTION VS. CROSS-OVER CABLE CONNECTION RJ‐45 8‐pin straight‐through for  10BASE‐T/100BASE‐TX signaling RJ‐45 8‐pin cross‐over for  10BASE‐T/100BASE‐TX signaling TXPx 1 1 TXPx TXPx 1 1 TXPx TXNx 2 2 TXNx TXNx 2 2 TXNx RXPx 3 3 RXPx RXPx 3 3 RXPx Not Used 4 4 Not Used Not Used 4 4 Not Used Not Used 5 5 Not Used RXNx 6 6 RXNx Not Used 5 5 Not Used RXNx 6 6 RXNx Not Used 7 7 Not Used Not Used 7 7 Not Used Not Used 8 8 Not Used Not Used 8 8 Not Used Direct Connect Cable 10.2.7 Cross‐Over Cable PHY MANAGEMENT CONTROL The PHY Management Control block is responsible for the management functions of the PHY, including register access and interrupt generation. A Serial Management Interface (SMI) is used to support registers as required by the IEEE 802.3 (Clause 22), as well as the vendor specific registers allowed by the specification. The SMI interface consists of the MII Management Data (MDIO) signal and the MII Management Clock (MDC) signal. These signals allow access to all PHY registers. Refer to Section 10.2.18, "PHY Registers," on page 225 for a list of all supported registers and register descriptions. Non-supported registers will be read as FFFFh. 10.2.8 PHY INTERRUPTS The PHY contains the ability to generate various interrupt events. Reading the PHY x Interrupt Source Flags Register (PHY_INTERRUPT_SOURCE_x) shows the source of the interrupt. The PHY x Interrupt Mask Register (PHY_INTERRUPT_MASK_x) enables or disables each PHY interrupt. The PHY Management Control block aggregates the enabled interrupts status into an internal signal which is sent to the System Interrupt Controller and is reflected via the PHY A Interrupt Event (PHY_INT_A) and PHY B Interrupt Event (PHY_INT_B) bits of the Interrupt Status Register (INT_STS). For more information on the device interrupts, refer to Section 7.0, "System Interrupts," on page 60. The PHY interrupt system provides two modes, a Primary interrupt mode and an Alternative interrupt mode. Both modes will assert the internal interrupt signal sent to the System Interrupt Controller when the corresponding mask bit is set. These modes differ only in how they de-assert the internal interrupt signal. These modes are detailed in the following subsections. Note: The Primary interrupt mode is the default interrupt mode after a power-up or hard reset. The Alternative interrupt mode requires setup after a power-up or hard reset.  2020 Microchip Technology Inc. DS00003422A-page 209 LAN9254 10.2.8.1 Primary Interrupt Mode The Primary interrupt mode is the default interrupt mode. The Primary interrupt mode is always selected after power-up or hard reset. In this mode, to enable an interrupt, set the corresponding mask bit in the PHY x Interrupt Mask Register (PHY_INTERRUPT_MASK_x) (see Table 10-2). When the event to assert an interrupt is true, the internal interrupt signal will be asserted. When the corresponding event to de-assert the interrupt is true, the internal interrupt signal will be de-asserted. TABLE 10-2: Mask INTERRUPT MANAGEMENT TABLE Interrupt Source Flag Interrupt Source Event to Assert interrupt Event to De-assert interrupt 30.9 29.9 Link Up LINKSTAT See Note 1 Link Status Rising LINKSTAT Falling LINKSAT or Reading register 29 30.8 29.8 Wake on LAN WOL_INT See Note 2 Enabled WOL event Rising WOL_INT Falling WOL_INT or Reading register 29 30.7 29.7 ENERGYON 17.1 ENERGYON Rising 17.1 (Note 3) Falling 17.1 or Reading register 29 30.6 29.6 Auto-Negotiation complete 1.5 Auto-Negotiate Complete Rising 1.5 Falling 1.5 or Reading register 29 30.5 29.5 Remote Fault Detected 1.4 Remote Fault Rising 1.4 Falling 1.4, or Reading register 1 or Reading register 29 30.4 29.4 Link Down 1.2 Link Status Falling 1.2 Reading register 1 or Reading register 29 30.3 29.3 Auto-Negotiation LP Acknowledge 5.14 Acknowledge Rising 5.14 Falling 5.14 or Reading register 29 30.2 29.2 Parallel Detection Fault 6.4 Parallel Detection Fault Rising 6.4 Falling 6.4 or Reading register 6, or Reading register 29, or Re-Auto Negotiate or Link down 30.1 29.1 Auto-Negotiation Page Received 6.1 Page Received Rising 6.1 Falling 6.1 or Reading register 6, or Reading register 29, or Re-Auto Negotiate, or Link down. Note 1: LINKSTAT is the internal link status and is not directly available in any register bit. Note 2: WOL_INT is defined as bits 7:4 in the PHY x Wakeup Control and Status Register (PHY_WUCSR_x) ANDed with bits 3:0 of the same register, with the resultant 4 bits OR’ed together. DS00003422A-page 210  2020 Microchip Technology Inc. LAN9254 Note 3: If the mask bit is enabled and the internal interrupt signal has been de-asserted while ENERGYON is still high, the internal interrupt signal will assert for 256 ms, approximately one second after ENERGYON goes low when the Cable is unplugged. To prevent an unexpected assertion of the internal interrupt signal, the ENERGYON interrupt mask should always be cleared as part of the ENERGYON interrupt service routine. Note: 10.2.8.2 The Energy On (ENERGYON) bit in the PHY x Mode Control/Status Register (PHY_MODE_CONTROL_STATUS_x) is defaulted to a ‘1’ at the start of the signal acquisition process, therefore the INT7 bit in the PHY x Interrupt Source Flags Register (PHY_INTERRUPT_SOURCE_x) will also read as a ‘1’ at power-up. If no signal is present, then both Energy On (ENERGYON) and INT7 will clear within a few milliseconds. Alternate Interrupt Mode The Alternate interrupt mode is enabled by setting the ALTINT bit of the PHY x Mode Control/Status Register (PHY_MODE_CONTROL_STATUS_x) to “1”. In this mode, to enable an interrupt, set the corresponding bit of the in the PHY x Interrupt Mask Register (PHY_INTERRUPT_MASK_x) (see Table 10-3). To clear an interrupt, clear the interrupt source and write a ‘1’ to the corresponding Interrupt Source Flag. Writing a ‘1’ to the Interrupt Source Flag will cause the state machine to check the Interrupt Source to determine if the Interrupt Source Flag should clear or stay as a ‘1’. If the condition to de-assert is true, then the Interrupt Source Flag is cleared and the internal interrupt signal is also deasserted. If the condition to de-assert is false, then the Interrupt Source Flag remains set, and the internal interrupt signal remains asserted. TABLE 10-3: Mask ALTERNATIVE INTERRUPT MODE MANAGEMENT TABLE Interrupt Source Flag Interrupt Source Event to Assert interrupt Condition to De-assert Bit to Clear interrupt 30.9 29.9 Link Up LINKSTAT See Note 4 Link Status Rising LINKSTAT LINKSTAT low 29.9 30.8 29.8 Wake on LAN WOL_INT See Note 5 Enabled WOL event Rising WOL_INT WOL_INT low 29.8 30.7 29.7 ENERGYON 17.1 ENERGYON Rising 17.1 17.1 low 29.7 30.6 29.6 Auto-Negotiation complete 1.5 Auto-Negotiate Complete Rising 1.5 1.5 low 29.6 30.5 29.5 Remote Fault Detected 1.4 Remote Fault Rising 1.4 1.4 low 29.5 30.4 29.4 Link Down 1.2 Link Status Falling 1.2 1.2 high 29.4 30.3 29.3 Auto-Negotiation LP Acknowledge 5.14 Acknowledge Rising 5.14 5.14 low 29.3 30.2 29.2 Parallel Detection Fault 6.4 Parallel Detection Fault Rising 6.4 6.4 low 29.2 30.1 29.1 Auto-Negotiation Page Received 6.1 Page Received Rising 6.1 6.1 low 29.1 Note 4: LINKSTAT is the internal link status and is not directly available in any register bit.  2020 Microchip Technology Inc. DS00003422A-page 211 LAN9254 Note 5: WOL_INT is defined as bits 7:4 in the PHY x Wakeup Control and Status Register (PHY_WUCSR_x) ANDed with bits 3:0 of the same register, with the resultant 4 bits OR’ed together. Note: 10.2.9 The Energy On (ENERGYON) bit in the PHY x Mode Control/Status Register (PHY_MODE_CONTROL_STATUS_x) is defaulted to a ‘1’ at the start of the signal acquisition process, therefore the INT7 bit in the PHY x Interrupt Source Flags Register (PHY_INTERRUPT_SOURCE_x) will also read as a ‘1’ at power-up. If no signal is present, then both Energy On (ENERGYON) and INT7 will clear within a few milliseconds. PHY POWER-DOWN MODES There are two PHY power-down modes: General Power-Down Mode and Energy Detect Power-Down Mode. These modes are described in the following subsections. Note: For more information on the various power management features of the device, refer to Section 6.3, "Power Management," on page 51. The power-down modes of each PHY are controlled independently. The PHY power-down modes do not reload or reset the PHY registers. 10.2.9.1 General Power-Down This power-down mode is controlled by the Power Down (PHY_PWR_DWN) bit of the PHY x Basic Control Register (PHY_BASIC_CONTROL_x). In this mode the entire transceiver, except the PHY management control interface, is powered down. The transceiver will remain in this power-down state as long as the Power Down (PHY_PWR_DWN) bit is set. When the Power Down (PHY_PWR_DWN) bit is cleared, the transceiver powers up and is automatically reset. 10.2.9.2 Energy Detect Power-Down This power-down mode is enabled by setting the Energy Detect Power-Down (EDPWRDOWN) bit of the PHY x Mode Control/Status Register (PHY_MODE_CONTROL_STATUS_x). In this mode, when no energy is present on the line, the entire transceiver is powered down (except for the PHY management control interface, the SQUELCH circuit and the ENERGYON logic). The ENERGYON logic is used to detect the presence of valid energy from 100BASE-TX, 10BASET, or Auto-Negotiation signals. In this mode, when the Energy On (ENERGYON) bit in the PHY x Mode Control/Status Register (PHY_MODE_CONTROL_STATUS_x) signal is low, the transceiver is powered down and nothing is transmitted. When energy is received, via link pulses or packets, the Energy On (ENERGYON) bit goes high, and the transceiver powers up. The transceiver automatically resets itself into the state prior to power-down, and asserts the INT7 bit of the PHY x Interrupt Source Flags Register (PHY_INTERRUPT_SOURCE_x). The first and possibly second packet to activate ENERGYON may be lost. When the Energy Detect Power-Down (EDPWRDOWN) bit of the PHY x Mode Control/Status Register (PHY_MODE_CONTROL_STATUS_x) is low, energy detect power-down is disabled. When in EDPD mode, the device’s NLP characteristics may be modified. The device can be configured to transmit NLPs in EDPD via the EDPD TX NLP Enable bit of the PHY x EDPD NLP / Crossover Time / EEE Configuration Register (PHY_EDPD_CFG_x). When enabled, the TX NLP time interval is configurable via the EDPD TX NLP Interval Timer Select field of the PHY x EDPD NLP / Crossover Time / EEE Configuration Register (PHY_EDPD_CFG_x). When in EDPD mode, the device can also be configured to wake on the reception of one or two NLPs. Setting the EDPD RX Single NLP Wake Enable bit of the PHY x EDPD NLP / Crossover Time / EEE Configuration Register (PHY_EDPD_CFG_x) will enable the device to wake on reception of a single NLP. If the EDPD RX Single NLP Wake Enable bit is cleared, the maximum interval for detecting reception of two NLPs to wake from EDPD is configurable via the EDPD RX NLP Max Interval Detect Select field of the PHY x EDPD NLP / Crossover Time / EEE Configuration Register (PHY_EDPD_CFG_x). The energy detect power down feature is part of the broader power management features of the device and can be used to trigger the power management event output pin (PME) or the general interrupt request pin (IRQ). This is accomplished by enabling the energy detect power-down feature of the PHY as described above, and setting the corresponding energy detect enable (bit 14 for PHY A, bit 15 for PHY B) of the Power Management Control Register (PMT_CTRL). Refer to Power Management for additional information. DS00003422A-page 212  2020 Microchip Technology Inc. LAN9254 10.2.10 WAKE ON LAN (WOL) The PHY supports layer 2 WoL event detection of Perfect DA, Broadcast, Magic Packet, and Wakeup frames. Each type of supported wake event (Perfect DA, Broadcast, Magic Packet, or Wakeup frames) may be individually enabled via Perfect DA Wakeup Enable (PFDA_EN), Broadcast Wakeup Enable (BCST_EN), Magic Packet Enable (MPEN), and Wakeup Frame Enable (WUEN) bits of the PHY x Wakeup Control and Status Register (PHY_WUCSR_x), respectively. The WoL event is indicated via the INT8 bit of the PHY x Interrupt Source Flags Register (PHY_INTERRUPT_SOURCE_x). The WoL feature is part of the broader power management features of the device and can be used to trigger the power management event output pin (PME) or the general interrupt request pin (IRQ). This is accomplished by enabling the WoL feature of the PHY as described above, and setting the corresponding WoL enable (bit 14 for PHY A, bit 15 for PHY B) of the Power Management Control Register (PMT_CTRL). Refer to Section 6.3, "Power Management," on page 51 for additional information. The PHY x Wakeup Control and Status Register (PHY_WUCSR_x) also provides a WoL Configured bit, which may be set by software after all WoL registers are configured. Because all WoL related registers are not affected by software resets, software can poll the WoL Configured bit to ensure all WoL registers are fully configured. This allows the software to skip reprogramming of the WoL registers after reboot due to a WoL event. The following subsections detail each type of WoL event. For additional information on the main system interrupts, refer to Section 7.0, "System Interrupts," on page 60. 10.2.10.1 Perfect DA (Destination Address) Detection When enabled, the Perfect DA detection mode allows the detection of a frame with the destination address matching the address stored in the PHY x MAC Receive Address A Register (PHY_RX_ADDRA_x), PHY x MAC Receive Address B Register (PHY_RX_ADDRB_x), and PHY x MAC Receive Address C Register (PHY_RX_ADDRC_x). The frame must also pass the FCS and packet length check. As an example, the Host system must perform the following steps to enable the device to detect a Perfect DA WoL event: 1. 2. 3. Set the desired MAC address to cause the wake event in the PHY x MAC Receive Address A Register (PHY_RX_ADDRA_x), PHY x MAC Receive Address B Register (PHY_RX_ADDRB_x), and PHY x MAC Receive Address C Register (PHY_RX_ADDRC_x). Set the Perfect DA Wakeup Enable (PFDA_EN) bit of the PHY x Wakeup Control and Status Register (PHY_WUCSR_x) to enable Perfect DA detection. Set bit 8 (WoL event indicator) in the PHY x Interrupt Mask Register (PHY_INTERRUPT_MASK_x) to enable WoL events. When a match is triggered, bit 8 of the PHY x Interrupt Source Flags Register (PHY_INTERRUPT_SOURCE_x) will be set, and the Perfect DA Frame Received (PFDA_FR) bit of the PHY x Wakeup Control and Status Register (PHY_WUCSR_x) will be set. 10.2.10.2 Broadcast Detection When enabled, the Broadcast detection mode allows the detection of a frame with the destination address value of FF FF FF FF FF FF. The frame must also pass the FCS and packet length check. As an example, the Host system must perform the following steps to enable the device to detect a Broadcast WoL event: 1. 2. Set the Broadcast Wakeup Enable (BCST_EN) bit of the PHY x Wakeup Control and Status Register (PHY_WUCSR_x) to enable Broadcast detection. Set bit 8 (WoL event indicator) in the PHY x Interrupt Mask Register (PHY_INTERRUPT_MASK_x) to enable WoL events. When a match is triggered, bit 8 of the PHY x Interrupt Source Flags Register (PHY_INTERRUPT_SOURCE_x) will be set, and the Broadcast Frame Received (BCAST_FR) bit of the PHY x Wakeup Control and Status Register (PHY_WUCSR_x) will be set. 10.2.10.3 Magic Packet Detection When enabled, the Magic Packet detection mode allows the detection of a Magic Packet frame. A Magic Packet is a frame addressed to the device - either a unicast to the programmed address, or a broadcast - which contains the pattern 48’h FF_FF_FF_FF_FF_FF after the destination and source address field, followed by 16 repetitions of the desired MAC address (loaded into the PHY x MAC Receive Address A Register (PHY_RX_ADDRA_x), PHY x MAC Receive Address  2020 Microchip Technology Inc. DS00003422A-page 213 LAN9254 B Register (PHY_RX_ADDRB_x), and PHY x MAC Receive Address C Register (PHY_RX_ADDRC_x)) without any breaks or interruptions. In case of a break in the 16 address repetitions, the logic scans for the 48’h FF_FF_FF_FF_FF_FF pattern again in the incoming frame. The 16 repetitions may be anywhere in the frame but must be preceded by the synchronization stream. The frame must also pass the FCS check and packet length checking. As an example, if the desired address is 00h 11h 22h 33h 44h 55h, then the logic scans for the following data sequence in an Ethernet frame: Destination Address Source Address ……………FF FF FF FF FF FF 00 11 22 33 44 55 00 11 22 33 44 55 00 11 22 33 44 55 00 11 22 33 44 55 00 11 22 33 44 55 00 11 22 33 44 55 00 11 22 33 44 55 00 11 22 33 44 55 00 11 22 33 44 55 00 11 22 33 44 55 00 11 22 33 44 55 00 11 22 33 44 55 00 11 22 33 44 55 00 11 22 33 44 55 00 11 22 33 44 55 00 11 22 33 44 55 …FCS As an example, the Host system must perform the following steps to enable the device to detect a Magic Packet WoL event: 1. 2. 3. Set the desired MAC address to cause the wake event in the PHY x MAC Receive Address A Register (PHY_RX_ADDRA_x), PHY x MAC Receive Address B Register (PHY_RX_ADDRB_x), and PHY x MAC Receive Address C Register (PHY_RX_ADDRC_x). Set the Magic Packet Enable (MPEN) bit of the PHY x Wakeup Control and Status Register (PHY_WUCSR_x) to enable Magic Packet detection. Set bit 8 (WoL event indicator) in the PHY x Interrupt Mask Register (PHY_INTERRUPT_MASK_x) to enable WoL events. When a match is triggered, bit 8 of the PHY x Interrupt Source Flags Register (PHY_INTERRUPT_SOURCE_x) will be set, and the Magic Packet Received (MPR) bit of the PHY x Wakeup Control and Status Register (PHY_WUCSR_x) will be set. 10.2.10.4 Wakeup Frame Detection When enabled, the Wakeup Frame detection mode allows the detection of a pre-programmed Wakeup Frame. Wakeup Frame detection provides a way for system designers to detect a customized pattern within a packet via a programmable wake-up frame filter. The filter has a 128-bit byte mask that indicates which bytes of the frame should be compared by the detection logic. A CRC-16 is calculated over these bytes. The result is then compared with the filter’s respective CRC-16 to determine if a match exists. When a wake-up pattern is received, the Remote Wakeup Frame Received (WUFR) bit of the PHY x Wakeup Control and Status Register (PHY_WUCSR_x) is set. If enabled, the filter can also include a comparison between the frame’s destination address and the address specified in the PHY x MAC Receive Address A Register (PHY_RX_ADDRA_x), PHY x MAC Receive Address B Register (PHY_RX_ADDRB_x), and PHY x MAC Receive Address C Register (PHY_RX_ADDRC_x). The specified address can be a unicast or a multicast. If address matching is enabled, only the programmed unicast or multicast address will be considered a match. Non-specific multicast addresses and the broadcast address can be separately enabled. The address matching results are logically OR’d (i.e., specific address match result OR any multicast result OR broadcast result). Whether or not the filter is enabled and whether the destination address is checked is determined by configuring the PHY x Wakeup Filter Configuration Register A (PHY_WUF_CFGA_x). Before enabling the filter, the application program must provide the detection logic with the sample frame and corresponding byte mask. This information is provided by writing the PHY x Wakeup Filter Configuration Register A (PHY_WUF_CFGA_x), PHY x Wakeup Filter Configuration Register B (PHY_WUF_CFGB_x), and PHY x Wakeup Filter Byte Mask Registers (PHY_WUF_MASK_x). The starting offset within the frame and the expected CRC-16 for the filter is determined by the Filter Pattern Offset and Filter CRC16 fields, respectively. If remote wakeup mode is enabled, the remote wakeup function checks each frame against the filter and recognizes the frame as a remote wakeup frame if it passes the filter’s address filtering and CRC value match. The pattern offset defines the location of the first byte that should be checked in the frame. The byte mask is a 128-bit field that specifies whether or not each of the 128 contiguous bytes within the frame, beginning with the pattern offset, should be checked. If bit j in the byte mask is set, the detection logic checks the byte (pattern offset + j) in the frame, otherwise byte (pattern offset + j) is ignored. DS00003422A-page 214  2020 Microchip Technology Inc. LAN9254 At the completion of the CRC-16 checking process, the CRC-16 calculated using the pattern offset and byte mask is compared to the expected CRC-16 value associated with the filter. If a match occurs, a remote wake-up event is signaled. The frame must also pass the FCS check and packet length checking. Table 10-4 indicates the cases that produce a wake-up event. All other cases do not generate a wake-up event. TABLE 10-4: WAKEUP GENERATION CASES Filter Enabled Frame Type CRC Matches Address Match Enabled Any Mcast Enabled Bcast Enabled Frame Address Matches Yes Unicast Yes No X X X Yes Unicast Yes Yes X X Yes Yes Multicast Yes X Yes X X Yes Multicast Yes Yes No X Yes Yes Broadcast Yes X X Yes X As an example, the Host system must perform the following steps to enable the device to detect a Wakeup Frame WoL event: Declare Pattern: 1. 2. Update the PHY x Wakeup Filter Byte Mask Registers (PHY_WUF_MASK_x) to indicate the valid bytes to match. Calculate the CRC-16 value of valid bytes offline and update the PHY x Wakeup Filter Configuration Register B (PHY_WUF_CFGB_x). CRC-16 is calculated as follows: At the start of a frame, CRC-16 is initialized with the value FFFFh. CRC-16 is updated when the pattern offset and mask indicate the received byte is part of the checksum calculation. The following algorithm is used to update the CRC-16 at that time: Let: ^ denote the exclusive or operator. Data [7:0] be the received data byte to be included in the checksum. CRC[15:0] contain the calculated CRC-16 checksum. F0 … F7 be intermediate results, calculated when a data byte is determined to be part of the CRC-16. Calculate: F0 = CRC[15] ^ Data[0] F1 = CRC[14] ^ F0 ^ Data[1] F2 = CRC[13] ^ F1 ^ Data[2] F3 = CRC[12] ^ F2 ^ Data[3] F4 = CRC[11] ^ F3 ^ Data[4] F5 = CRC[10] ^ F4 ^ Data[5] F6 = CRC[09] ^ F5 ^ Data[6] F7 = CRC[08] ^ F6 ^ Data[7] The CRC-32 is updated as follows: CRC[15] = CRC[7] ^ F7 CRC[14] = CRC[6] CRC[13] = CRC[5] CRC[12] = CRC[4] CRC[11] = CRC[3]  2020 Microchip Technology Inc. DS00003422A-page 215 LAN9254 CRC[10] = CRC[2] CRC[9] = CRC[1] ^ F0 CRC[8] = CRC[0] ^ F1 CRC[7] = F0 ^ F2 CRC[6] = F1 ^ F3 CRC[5] = F2 ^ F4 CRC[4] = F3 ^ F5 CRC[3] = F4 ^ F6 CRC[2] = F5 ^ F7 CRC[1] = F6 CRC[0] = F7 3. Determine the offset pattern with offset 0 being the first byte of the destination address. Update the offset in the Filter Pattern Offset field of the PHY x Wakeup Filter Configuration Register A (PHY_WUF_CFGA_x). Determine Address Matching Conditions: 4. 5. 6. Determine the address matching scheme based on Table 10-4 and update the Filter Broadcast Enable, Filter Any Multicast Enable, and Address Match Enable bits of the PHY x Wakeup Filter Configuration Register A (PHY_WUF_CFGA_x) accordingly. If necessary (see step 4), set the desired MAC address to cause the wake event in the PHY x MAC Receive Address A Register (PHY_RX_ADDRA_x), PHY x MAC Receive Address B Register (PHY_RX_ADDRB_x), and PHY x MAC Receive Address C Register (PHY_RX_ADDRC_x). Set the Filter Enable bit of the PHY x Wakeup Filter Configuration Register A (PHY_WUF_CFGA_x) to enable the filter. Enable Wakeup Frame Detection: 7. 8. Set the Wakeup Frame Enable (WUEN) bit of the PHY x Wakeup Control and Status Register (PHY_WUCSR_x) to enable Wakeup Frame detection. Set bit 8 (WoL event indicator) in the PHY x Interrupt Mask Register (PHY_INTERRUPT_MASK_x) to enable WoL events. When a match is triggered, the Remote Wakeup Frame Received (WUFR) bit of the PHY x Wakeup Control and Status Register (PHY_WUCSR_x) will be set. To provide additional visibility to software, the Filter Triggered bit of the PHY x Wakeup Filter Configuration Register A (PHY_WUF_CFGA_x) will be set. 10.2.11 RESETS In addition to the chip-level hardware reset (RST#), EtherCAT system reset, and Power-On Reset (POR), the PHY supports three block specific resets. These are discussed in the following sections. For detailed information on all device resets and the reset sequence refer to Section 6.2, "Resets," on page 46. Note: Only a hardware reset (RST#), Power-On Reset (POR) or EtherCAT system reset will automatically reload the configuration strap values into the PHY registers. The Digital Reset (DIGITAL_RST) bit in the Reset Control Register (RESET_CTL) does not reset the PHYs. For all other PHY resets, PHY registers will need to be manually configured via software. 10.2.11.1 PHY Software Reset via RESET_CTL The PHYs can be reset via the Reset Control Register (RESET_CTL). These bits are self clearing after approximately 102 us. This reset does not reload the configuration strap values into the PHY registers. 10.2.11.2 PHY Software Reset via PHY_BASIC_CTRL_x The PHY can also be reset by setting the Soft Reset (PHY_SRST) bit of the PHY x Basic Control Register (PHY_BASIC_CONTROL_x). This bit is self clearing and will return to 0 after the reset is complete. This reset does not reload the configuration strap values into the PHY registers. DS00003422A-page 216  2020 Microchip Technology Inc. LAN9254 10.2.11.3 PHY Power-Down Reset After the PHY has returned from a power-down state, a reset of the PHY is automatically generated. The PHY powerdown modes do not reload or reset the PHY registers. Refer to Section 10.2.9, "PHY Power-Down Modes," on page 212 for additional information. 10.2.12 LINK INTEGRITY TEST The device performs the link integrity test as outlined in the IEEE 802.3u (clause 24-15) Link Monitor state diagram. The link status is multiplexed with the 10 Mbps link status to form the Link Status bit in the PHY x Basic Status Register (PHY_BASIC_STATUS_x) and to drive the LINK LED functions. The DSP indicates a valid MLT-3 waveform present on the RXPx and RXNx signals as defined by the ANSI X3.263 TPPMD standard, to the Link Monitor state-machine, using the internal DATA_VALID signal. When DATA_VALID is asserted, the control logic moves into a Link-Ready state and waits for an enable from the auto-negotiation block. When received, the Link-Up state is entered, and the Transmit and Receive logic blocks become active. Should auto-negotiation be disabled, the link integrity logic moves immediately to the Link-Up state when the DATA_VALID is asserted. To allow the line to stabilize, the link integrity logic will wait a minimum of 330 ms from the time DATA_VALID is asserted until the Link-Ready state is entered. Should the DATA_VALID input be negated at any time, this logic will immediately negate the Link signal and enter the Link-Down state. 10.2.13 CABLE DIAGNOSTICS The PHYs provide cable diagnostics which allow for open/short and length detection of the Ethernet cable. The cable diagnostics consist of two primary modes of operation: • Time Domain Reflectometry (TDR) Cable Diagnostics TDR cable diagnostics enable the detection of open or shorted cabling on the TX or RX pair, as well as cable length estimation to the open/short fault. • Matched Cable Diagnostics Matched cable diagnostics enable cable length estimation on 100 Mbps-linked cables. Refer to the following sub-sections for details on proper operation of each cable diagnostics mode. Note: 10.2.13.1 Cable diagnostics are not used for 100BASE-FX mode. Time Domain Reflectometry (TDR) Cable Diagnostics The PHYs provide TDR cable diagnostics which enable the detection of open or shorted cabling on the TX or RX pair, as well as cable length estimation to the open/short fault. To utilize the TDR cable diagnostics, Auto-MDIX and Auto Negotiation must be disabled, and the PHY must be forced to 100 Mbps full-duplex mode. These actions must be performed before setting the TDR Enable bit in the PHY x TDR Control/Status Register (PHY_TDR_CONTROL_STAT_x). With Auto-MDIX disabled, the TDR will test the TX or RX pair selected by register bit 27.13 (Auto-MDIX State (AMDIXSTATE)). Proper cable testing should include a test of each pair. When TDR testing is complete, prior register settings may be restored. Figure 10-5 provides a flow diagram of proper TDR usage.  2020 Microchip Technology Inc. DS00003422A-page 217 LAN9254 FIGURE 10-5: TDR USAGE FLOW DIAGRAM Start Disable ANEG and Force 100Mb FullDuplex Write PHY Reg 0: 0x2100 Disable AMDIX and Force MDI (or MDIX) Write PHY Reg 27: 0x8000 (MDI) - OR Write PHY Reg 27: 0xA000 (MDIX) Enable TDR Write PHY Reg 25: 0x8000 Check TDR Control/Status Register Read PHY Reg 25 NO Reg 25.8 == 0 TDR Channel Status Complete? YES Reg 25.8 == 1 Save: TDR Channel Type (Reg 25.10:9) TDR Channel Length (Reg 25.7:0) Repeat Testing in MDIX Mode MDIX Case Tested? YES Done The TDR operates by transmitting pulses on the selected twisted pair within the Ethernet cable (TX in MDI mode, RX in MDIX mode). If the pair being tested is open or shorted, the resulting impedance discontinuity results in a reflected signal that can be detected by the PHY. The PHY measures the time between the transmitted signal and received reflection and indicates the results in the TDR Channel Length field of the PHY x TDR Control/Status Register (PHY_TDR_CONTROL_STAT_x). The TDR Channel Length field indicates the “electrical” length of the cable, and can be multiplied by the appropriate propagation constant in Table 10-5 to determine the approximate physical distance to the fault. Note: The TDR function is typically used when the link is inoperable. However, an active link will drop when operating the TDR. DS00003422A-page 218  2020 Microchip Technology Inc. LAN9254 Since the TDR relies on the reflected signal of an improperly terminated cable, there are several factors that can affect the accuracy of the physical length estimate. These include: 1. 2. 3. 4. Cable Type (CAT 5, CAT5e, CAT6): The electrical length of each cable type is slightly different due to the twistsper-meter of the internal signal pairs and differences in signal propagation speeds. If the cable type is known, the length estimate can be calculated more accurately by using the propagation constant appropriate for the cable type (see Table 10-5). In many real-world applications the cable type is unknown, or may be a mix of different cable types and lengths. In this case, use the propagation constant for the “unknown” cable type. TX and RX Pair: For each cable type, the EIA standards specify different twist rates (twists-per-meter) for each signal pair within the Ethernet cable. This results in different measurements for the RX and TX pair. Actual Cable Length: The difference between the estimated cable length and actual cable length grows as the physical cable length increases, with the most accurate results at less than approximately 100 m. Open/Short Case: The Open and Shorted cases will return different TDR Channel Length values (electrical lengths) for the same physical distance to the fault. Compensation for this is achieved by using different propagation constants to calculate the physical length of the cable. For the Open case, the estimated distance to the fault can be calculated as follows: Distance to Open fault in meters TDR Channel Length * POPEN Where: POPEN is the propagation constant selected from Table 10-5 For the Shorted case, the estimated distance to the fault can be calculated as follows: Distance to Open fault in meters  TDR Channel Length * PSHORT Where: PSHORT is the propagation constant selected from Table 10-5 TABLE 10-5: TDR PROPAGATION CONSTANTS TDR Propagation Constant Cable Type Unknown CAT 6 CAT 5E CAT 5 POPEN 0.769 0.745 0.76 0.85 PSHORT 0.793 0.759 0.788 0.873 The typical cable length measurement margin of error for Open and Shorted cases is dependent on the selected cable type and the distance of the open/short from the device. Table 10-6 and Table 10-7 detail the typical measurement error for Open and Shorted cases, respectively. TABLE 10-6: TYPICAL MEASUREMENT ERROR FOR OPEN CABLE (+/- METERS) Physical Distance to Fault Selected Propagation Constant POPEN = Unknown POPEN = CAT 6 CAT 6 Cable, 0-100 m 9 6 CAT 5E Cable, 0-100 m 5 CAT 5 Cable, 0-100 m 13 CAT 6 Cable, 101-160 m 14 CAT 5E Cable, 101-160 m 8 CAT 5 Cable, 101-160 m 20  2020 Microchip Technology Inc. POPEN = CAT 5E POPEN = CAT 5 5 3 6 6 6 DS00003422A-page 219 LAN9254 TABLE 10-7: TYPICAL MEASUREMENT ERROR FOR SHORTED CABLE (+/- METERS) SELECTED PROPAGATION CONSTANT PHYSICAL DISTANCE TO FAULT 10.2.13.2 PSHORT = Unknown PSHORT = CAT 6 CAT 6 Cable, 0-100 m 8 5 CAT 5E Cable, 0-100 m 5 CAT 5 Cable, 0-100 m 11 CAT 6 Cable, 101-160 m 14 CAT 5E Cable, 101-160 m 7 CAT 5 Cable, 101-160 m 11 PSHORT = CAT 5E PSHORT = CAT 5 5 2 6 6 3 Matched Cable Diagnostics Matched cable diagnostics enable cable length estimation on 100 Mbps-linked cables of up to 120 meters. If there is an active 100 Mb link, the approximate distance to the link partner can be estimated using the PHY x Cable Length Register (PHY_CABLE_LEN_x). If the cable is properly terminated, but there is no active 100 Mb link (the link partner is disabled, nonfunctional, the link is at 10 Mb, etc.), the cable length cannot be estimated and the PHY x Cable Length Register (PHY_CABLE_LEN_x) should be ignored. The estimated distance to the link partner can be determined via the Cable Length (CBLN) field of the PHY x Cable Length Register (PHY_CABLE_LEN_x) using the lookup table provided in Table 10-8. The typical cable length measurement margin of error for a matched cable case is +/- 20 m. The matched cable length margin of error is consistent for all cable types from 0 to 120 m. TABLE 10-8: DS00003422A-page 220 MATCH CASE ESTIMATED CABLE LENGTH (CBLN) LOOKUP CBLN Field Value Estimated Cable Length 0-3 0 4 6 5 17 6 27 7 38 8 49 9 59 10 70 11 81 12 91 13 102 14 113 15 123  2020 Microchip Technology Inc. LAN9254 Note: 10.2.14 10.2.14.1 For a properly terminated cable (Match case), there is no reflected signal. In this case, the TDR Channel Length field is invalid and should be ignored. SIGNAL QUALITY INDEX Background MLT-3 modulation is used for data transmission in 100BASE-TX, with logical signal values of {-1, 0, +1}. These logic levels correspond to maximum positive and negative DSP slicer reference levels. Positive and negative compare thresholds are set between these maximums and zero, such that the analog received data samples may be quantized to -1, 0 and +1. Ideally, each receive data sample would be the maximum distance from the compare thresholds, with error values of 0. But because of noise and imperfection in real applications, the sampled data may be off from its ideal. The closer to the compare threshold, the worse the signal quality. The slicer error is a measurement of how far the processed data off from its ideal location. The largest instantaneous slicer error 100BASE-TX is +/-32. A higher absolute slicer error means a degraded signal receiving condition. Note: The following register sequence must be issued to precondition PHYs A and B to enable the slicer error into the Signal Quality Index logic. // writing bit[10] of reg-20 from 1 -> 0 -> 1 will enable the testmode in PHY Register PHY_TSTCNTL_A/B Data = 0x0400 Register PHY_TSTCNTL_A/B Data = 0x0000 Register PHY_TSTCNTL_A/B Data = 0x0400 // Maps err_nm1_real[5:0] to co_testbus_out[5:0] and rxclk125 to co_clk_out Register PHY_TSTWRITE_A/B Data = 0x7200 // Enables the test bus outputs in PHY Register PHY_TSTCNTL_A/B Data = 0x4401 10.2.14.2 Note: OPEN Alliance TC1 DCQ Mean Square Error All register referenced in this section are in MMD Device Address 30. Refer to Section 10.2.18, "PHY Registers" for additional information. This section defines the implementation of section 6.1.1 of the TC1 specification. The PHY can provide detailed information of the dynamic signal quality by means of a MSE value. This mode is enabled by setting the sqi_enable bit, in the PHY x DCQ Configuration Register (PHY_DCQ_CFG_x). With this method, the slicer error is converted into a squared value and then filtered by a programmable low pass filter. This is similar to taking the average of absolute slicer error over a long moving time window. For each data sample, the difference between the absolute slicer error and the current filtered value is added back into the current filtered value. The sqi_squ_mode_en bit in the PHY x DCQ Configuration Register (PHY_DCQ_CFG_x) must be set to choose square mode. The sqi_kp field in the PHY x DCQ Configuration Register (PHY_DCQ_CFG_x) sets the weighting of the add back as a divide by 2^sqi_kp, effectively setting the filter bandwidth. As the sqi_kp value is increased, the weighing is decreased, and the mean slicer error value takes a longer time to settle to a stable value. Also as the sqi_kp value is increased, there will be less variation in the mean slicer error value reported.  2020 Microchip Technology Inc. DS00003422A-page 221 LAN9254 The scale611 field in the PHY x DCQ Configuration Register (PHY_DCQ_CFG_x) is used to set a divide by factor (divide by 2^scale611) such that the MSE value is linearly scaled to the range of 0 to 511. If the divide by factor is too small, the MSE value is capped at a maximum of 511. The filtered error value is saved every 65,536 symbols (524,288 ns). In order to capture the MSE Value, the DCQ Read Capture bit in the PHY x DCQ Configuration Register (PHY_DCQ_CFG_x) needs to be written as a high. The DCQ Read Capture bit will immediately self-clear and the result will be available in the PHY x DCQ Mean Square Error Register (PHY_DCQ_MSE_x). In addition to the current MSE Value the worst case MSE value since the last read of PHY x DCQ Mean Square Error Register (PHY_DCQ_MSE_x) is stored in PHY x DCQ Mean Square Error Worst Case Register (PHY_DCQ_MSE_WC_x). 10.2.14.3 Note: OPEN Alliance TC1 DCQ Signal Quality Index All register referenced in this section are in MMD Device Address 30. Refer to Section 10.2.18, "PHY Registers" for additional information. This section defines the implementation of section 6.1.2 of the TC1 specification. This mode builds upon the above DCQ Mean Square Error method by mapping the MSE value onto a simple quality index. This mode is enabled by setting the sqi_enable bit, in the PHY x DCQ Configuration Register (PHY_DCQ_CFG_x). Note: As above, the sqi_squ_mode_en bit in the PHY x DCQ Configuration Register (PHY_DCQ_CFG_x) must be set to choose square mode. As above, the scale611 field in the PHY x DCQ Configuration Register (PHY_DCQ_CFG_x) is used to set the divide by factor (divide by 2^scale611) such that the MSE value is linearly scaled to the range of 0 to 511. The MSE value is compared to the thresholds set in the PHY x DCQ SQI Table Registers (PHY_DCQ_SQI_TBL_x) to provide a Signal Quality Index value between 0 (worst value) and 7 (best value) as follows: TABLE 10-9: MSE TO SIGNAL QUALITY INDEX MAPPING MSE Value Greater Than Less Than or Equal To Signal Quality Index Value SQI_TBL7.SQI_VALUE 7 SQI_TBL7.SQI_VALUE SQI_TBL6.SQI_VALUE 6 SQI_TBL6.SQI_VALUE SQI_TBL5.SQI_VALUE 5 SQI_TBL5.SQI_VALUE SQI_TBL4.SQI_VALUE 4 SQI_TBL4.SQI_VALUE SQI_TBL3.SQI_VALUE 3 SQI_TBL3.SQI_VALUE SQI_TBL2.SQI_VALUE 2 SQI_TBL2.SQI_VALUE SQI_TBL1.SQI_VALUE 1 SQI_TBL1.SQI_VALUE 0 In order to capture the SQI value, the DCQ Read Capture bit in the PHY x DCQ Configuration Register (PHY_DCQ_CFG_x) needs to be written as a high. The DCQ Read Capture bit will immediately self-clear and the result will be available in the PHY x DCQ SQI Register (PHY_DCQ_SQI_x). DS00003422A-page 222  2020 Microchip Technology Inc. LAN9254 In addition to the current SQI the worst case (lowest) Signal Quality Index since the last read is available in the SQI Worst Case field. The correlation between the Signal Quality Index values stored in the PHY x DCQ SQI Register (PHY_DCQ_SQI_x) and an according signal to noise ratio (SNR) based on AWG noise (bandwidth of 80MHz @ 100Mbps) is shown in Table 10-10. The bit error rates to be expected in the case of white noise as interference signal is shown in the table as well for information purposes. A link loss only occurs if the Signal Quality Index value is 0. TABLE 10-10: SIGNAL QUALITY INDEX VALUE CORRELATION SQI Value SNR Value @ MDI - AWG Noise 0 < 18 dB 1 18 dB
LAN9254-I/JRX 价格&库存

很抱歉,暂时无法提供与“LAN9254-I/JRX”相匹配的价格&库存,您可以联系我们找货

免费人工找货