Ethernet controller
Summary by NHIP
Multi-scheme Ethernet Controller
The controller uses a register address unit to access registers via direct, combined, or predetermined addressing schemes. A single bank register stores a bank address for combined addressing, while an address register couples with a multiplexer receiving direct, combined, and predetermined addresses.
Claim Score by NHIP
Abstract
A controller, in particular an Ethernet controller has a control unit operable to receive commands and data through an I/O interface; a plurality of registers arranged in a register block which is divided into a plurality of register banks, wherein at least one register controls a function of the controller; a register address unit having logic for accessing one of the plurality of registers by a plurality of addressing schemes, wherein the addressing schemes at least has a direct address provided by received data, a combined address provided by a partial address from a received command and a bank address stored in a bank register, and an address selected form a plurality of predetermined addresses through a received command.

Term
Projected expiry 6 September 2029.
- Priority and filed
- Granted
- Today
- Projected expiry
25 claims: 3 independent, 22 dependent
- 1A controller comprising:a control unit operable to receive commands and data through an I/O interface, wherein the commands comprise an instruction to read or write data from or to an internal register block of said controller;a plurality of registers arranged in the register block which is divided into a plurality of register banks, wherein at least one register controls a function of the controller;a register address unit comprising logic for accessing one of the plurality of registers by a plurality of addressing schemes, wherein the addressing schemes at least comprise a direct address provided by received data, a combined address provided by a partial address from a received command and a bank address stored in a bank register, and an address selected form a plurality of predetermined addresses through a received command.
- 11Broadest claimClaim Score 68, broad(NHIP)A method of controlling the operation of a controller comprising a register bank with a plurality of registers, the method comprising the steps of:receiving a command through an I/O interface;decoding the command and depending on the command determining an address by either receiving a direct address through the I/O interface, extracting a partial address from the command or selecting an address from a plurality of predetermined addresses through the command;in case of extracting a partial address, combining the partial address with a bank address stored in a bank register;addressing the register bank using the address for read or write access.
- 23An Ethernet controller comprising:a control unit operable to receive commands and data through a SPI interface;a plurality of registers arranged in a register block which is divided into a plurality of register banks, wherein at least one register controls the operation of the controller;register address unit comprising logic for accessing one of the plurality of registers by a plurality of addressing schemes, wherein the addressing schemes at least comprise a direct address provided by received data, combined address provided by a partial address from a received command and a bank address stored in a bank register, and selecting an address form a plurality of predetermined addresses through a received command, wherein the bank register is a single register with a single address in the register block.
Independent claims3
127 paragraphs in 5 sections, as filed
TECHNICAL FIELD
p-0002The technical field of the present application relates to Ethernet controllers.
BACKGROUND
p-0003Ethernet controllers, in particular stand alone Ethernet Controllers, are designed to serve as an Ethernet network interface for any type of microprocessor or microcontroller. Such a controller can have a fairly large memory and may include a dedicated interface such as a serial peripheral interface (SPI) bus. In some embodiments, such an Ethernet controller may also be integrated in a microcontroller using the SPI bus or any other capable interface connection. The Ethernet controller handles all communication protocols and comprises a large buffer for intermediate storage of incoming and outgoing messages. The stand alone or integrated Ethernet controller handles coordination of incoming and outgoing data packets as well as packet filtering. It may further comprise an internal direct memory access (DMA) module for fast data throughput and hardware assisted checksum calculation. The communication of an Ethernet controller with a microcontroller or microprocessor can be established interrupt driven. A microcontroller or microprocessor may communicate and control the Ethernet controller via the SPI interface. To this end, the Ethernet controller comprises a system control unit that interprets ands executes a limited amount of commands received through the interface. Many control functions can be provided through a plurality of control registers. In an Ethernet controller with an SPI interface, a commands are 8-bit wide and, thus, only a limited number of bits, for example five bits, can be used to address a register. However, this allows only access to 32 different registers. If an Ethernet controller has, for example, over a hundred registers, direct access to all registers requires more than one command byte. To provide fast read and write access to the registers, a banking scheme is often used. However, each bank is limited in the number of registers and important registers that need to be always accessible need to be mirrored to all banks. This further limits the number of additional usable registers.
SUMMARY
p-0004According to an embodiment, a controller comprises a control unit operable to receive commands and data through an I/O interface; a plurality of registers arranged in a register block which is divided into a plurality of register banks, wherein at least one register controls a function of the controller; a register address unit comprising logic for accessing one of the plurality of registers by a plurality of addressing schemes, wherein the addressing schemes at least comprise a direct address provided by received data, a combined address provided by a partial address from a received command and a bank address stored in a bank register, and an address selected form a plurality of predetermined addresses through a received command.
p-0005According to a further embodiment, the bank register may be a single register with a single address in the register block. According to a further embodiment, the register address unit may comprise an address register coupled with the register bank for addressing the register bank. According to a further embodiment, the address register can be coupled with a controllable auto-increment unit. According to a further embodiment, the combined address can be generated by assembling the partial address and the bank address wherein the partial address form the least significant bits and the bank address the most significant bits of the combined address. According to a further embodiment, the combined address can be generated by adding the partial address to the bank address. According to a further embodiment, the address register can be coupled with an output of a first multiplexer receiving one of the predetermined addresses, the direct address, and the combined address. According to a further embodiment, the controller may comprise a second multiplexer receiving a plurality of bank addresses and outputting the bank address. According to a further embodiment, the I/O interface can be an SPI interface. According to a further embodiment, the controller can be an Ethernet controller.
p-0006According to another embodiment, a method of controlling the operation of a controller comprising a register bank with a plurality of registers, may comprise the steps of: receiving a command through an I/O interface; decoding the command and depending on the command determining an address by either receiving a direct address through the I/O interface, extracting a partial address from the command or selecting an address form a plurality of predetermined addresses through the command; in case of extracting a partial address, combining the partial address with a bank address stored in a bank register; and addressing the register bank using the address for read or write access.
p-0007According to a further embodiment, the bank register can be a single register with a single address in the register block. According to a further embodiment, the step of combining the partial address may comprise assembling the partial address and the bank address wherein the partial address form the least significant bits and the bank address the most significant bits of the combined address. According to a further embodiment, the step of combining the partial address may comprise adding the partial address to the bank address. According to a further embodiment, the step of decoding may comprise the step of decoding a write command and further comprises the steps of receiving data through the I/O interface wherein a first data is written to the register bank under the address and receiving further data through the I/O interface wherein the further data is written to the register bank after incrementing the address. According to a further embodiment, the step of receiving and writing further data can be repeated until a control signal is received through the I/O interface. According to a further embodiment, the control signal can be a chip select signal. According to a further embodiment, the step of decoding may comprise the step of decoding a read command and the method further may comprise the steps of transmitting data through the I/O interface wherein a first data is read from the register bank under the address and transmitted through the I/O interface, and reading further data from the register bank and transmitting the further data through the I/O interface wherein the further data is read from the register bank after incrementing the address. According to a further embodiment, the step of reading and transmitting further data can be repeated until a control signal is received through the I/O interface. According to a further embodiment, the control signal can be a chip select signal. According to a further embodiment, the I/O interface can be an SPI interface. According to a further embodiment, the controller can be an Ethernet controller.
p-0008Other technical advantages of the present disclosure will be readily apparent to one skilled in the art from the following figures, descriptions, and claims. Various embodiments of the present application may obtain only a subset of the advantages set forth. No one advantage is critical to the embodiments.
BRIEF DESCRIPTION OF THE DRAWINGS
A more complete understanding of the present disclosure and advantages thereof may be acquired by referring to the following description taken in conjunction with the accompanying drawings, in which like reference numbers indicate like features, and wherein:
<figref idrefs="DRAWINGS">FIG. 1</figref> is a block diagram of an Ethernet controller module as used in a stand alone Ethernet controller or an integrated module for a microcontroller;
<figref idrefs="DRAWINGS">FIGS. 2</figref><i>a </i>and <b>2</b><i>b </i>illustrate different embodiment of a control logic for accessing registers within an Ethernet controller;
<figref idrefs="DRAWINGS">FIG. 3</figref> shows an exemplary control register according to an embodiment; and
<figref idrefs="DRAWINGS">FIG. 4</figref> shows the command/address/data flow from and to an Ethernet controller according to an embodiment.
p-0014While embodiments of this disclosure have been depicted, described, and are defined by reference to example embodiments of the disclosure, such references do not imply a limitation on the disclosure, and no such limitation is to be inferred. The subject matter disclosed is capable of considerable modification, alteration, and equivalents in form and function, as will occur to those ordinarily skilled in the pertinent art and having the benefit of this disclosure. The depicted and described embodiments of this disclosure are examples only, and are not exhaustive of the scope of the disclosure.
DETAILED DESCRIPTION
p-0015<figref idrefs="DRAWINGS">FIG. 1</figref> shows as an embodiment of a controller a block diagram of a Ethernet controller <b>100</b> that can be a stand alone Ethernet controller or an Ethernet controller module integrated, for example, in a microcontroller. The Ethernet controller <b>100</b> comprises a typical physical layer (PHY) <b>170</b> with transmit and receive units TX and RX for transmitting and receiving of the actual analog data over the network. This physical layer <b>170</b> is coupled with a media access control (MAC) data link layer <b>150</b> for implementing the actual Ethernet standard (IEEE 802.3). The Mac layer <b>150</b> is coupled with a receive unit <b>135</b> and a transmit unit <b>145</b> which may include respective filter units flow control and host interfaces. The Ethernet controller may also include a direct memory access (DMA) controller <b>140</b> capable of performing, for example, a checksum evaluation. An arbiter <b>130</b> may be implemented to switch coupling between the actual buffer <b>125</b> and the modules <b>135</b>, <b>140</b>, and <b>145</b>. The buffer can be designed as a dual port buffer and, thus, also provides access by control registers to allow for interfaces with limited address capabilities to access the full range of the buffer. To this end, a plurality of address and data registers <b>120</b> may be provided to indirectly address the buffer <b>125</b>. The buffer control registers <b>120</b> can be coupled with a bus interface <b>115</b> and a serial or parallel input/output (I/O) interface <b>105</b>. The serial I/O interface can be, for example, a SPI interface or any other suitable inter circuit interface. Therefore, the I/O interface may comprise, for example, a chip select input pin CS, one or more data input/output pins, and a clock input pin. The bus interface <b>115</b> may also provide for additional interrupt signals to provide for additional control of the Ethernet controller <b>100</b>.
p-0016The Ethernet controller <b>100</b> may be internally controlled by a system control unit <b>110</b> which controls the respective units of the Ethernet controller <b>100</b>. Furthermore, a plurality of control registers <b>190</b> can be provided which are accessible through the interface <b>105</b> as will be explained in more detail below. Buffer access registers <b>120</b> can be a part of the control registers <b>190</b> (CRB) as indicated by the dotted line. Also, the MAC layer may include further registers that can be accessed through registers in the CRB. A packet counter <b>185</b> can be provided to count the number of transmitted packets. Mac layer <b>150</b> and/or transmit and receive logic <b>135</b> and <b>145</b> may be coupled with this packet counter for an automatic increment function. System control unit <b>110</b> may also be coupled with the packet counter to perform a software controlled decrement function on this counter. The counter value can be mapped to a special function register in the CRB.
p-0017System control unit <b>110</b> receives commands (opcodes) from the serial or parallel interface <b>105</b> and provides for decoding of these commands. The commands can provide for reading and writing of at least some or all registers thereby causing execution of certain functions of the respective controller. In particular, the system control <b>110</b> may provide for the respective control sequences to perform read and write access to the buffer <b>125</b> as will be explained in more detail below. Clock unit <b>160</b> provides for the required Ethernet transmission clock signal.
p-0018<figref idrefs="DRAWINGS">FIG. 2</figref><i>a </i>shows certain details of an embodiment of a control logic for accessing the plurality of registers for controlling the functionality of the Ethernet controller. The control register unit <b>190</b> is divided into four blocks. Each block may comprise, for example, 32 registers. Thus, unit <b>190</b> may comprise <b>128</b> different registers which can be addressed by a single byte. Any other distribution and number of registers is possible. The addressing logic shown in <figref idrefs="DRAWINGS">FIG. 2</figref> allows for three different access methods. To this end multiplexer <b>210</b> comprises three different inputs, a select input Adr_Select and an output coupled with address register or latch <b>240</b> which is used to address register bank <b>190</b>. Signal Adr_Select selects between the different access methods and is decoded from the command sent to the Ethernet controller. If Adr_Select selects input <b>1</b> as shown in <figref idrefs="DRAWINGS">FIG. 2</figref>, then addressing of control registers <b>190</b> is performed using the banking scheme. In this case, the command sent to the Ethernet controller <b>100</b> consists of a single opcode that contains the partial address of a register. A designated register in control register unit <b>190</b> controls multiplexer <b>220</b> to select one of, for example, four bank start addresses. These bank start addresses (000, 001, 010, 011) are used as the most significant bits and combined with the remaining lower least significant 5 bits of address signals Adr. The banking scheme according to this embodiment, thus, uses 5 bits provided by the command and fixed upper 3 bits selected by the bank register. According to this embodiment, 8 banks each having 32 register would be possible, even though the example shown in <figref idrefs="DRAWINGS">FIG. 2</figref> only uses 4 banks. As will be appreciated by a person skilled in the art, depending on the design of the command byte or word, other bank structures can be defined. The bank register can be located in the control register block <b>190</b> and may be available at the same address in all banks. However, it can also be stored, for example, in fixed address block <b>230</b> or at any other suitable location.
p-0019In case Adr_Selct selects input <b>2</b>, then the command comprises for example two bytes, the first byte being the opcode and the second byte the actual address of the register within control register unit <b>190</b>. Even though only 128 registers or less are used in this embodiment, this scheme would allow for directly addressing up to 256 different registers in control register unit <b>190</b>. Even though this type of addressing allows for every register to accessible, it requires 2 bytes to be transmitted to Ethernet controller <b>100</b> which may slow down operation.
p-0020In case Adr_Selct selects input <b>3</b>, then a predetermined number of registers can be directly accessed via a single byte command. A plurality of registers such as a bank select register, flow control registers, interrupt control, etc. need to be accessible all the time. However, in time critical operations when access to registers is preferably performed through the banking scheme, such registers may not be directly accessible. Hence, as stated above, former Ethernet controllers provided for a mapping of such critical registers into each bank. However, this constitutes a waste of register space and reduces the number of registers significantly. Hence according to an embodiment, the most significant registers for operation have been identified and their addresses have been stored, for example, in block <b>230</b>. Thus, for a limited subset of registers, 1 byte commands are provided for reading and/or writing access. The selection of these addresses from block <b>230</b> is performed by decoding of the respective 1 byte opcode transmitted to Ethernet controller <b>100</b>. Any of these addressing schemes can be used to read/write or selectively set a bit in any of the addressable registers.
p-0021An auto-increment function can be implemented by coupling an auto-increment unit <b>250</b> with address register <b>240</b>. Auto-increment unit <b>250</b> increments the address in register <b>240</b> after an access to register bank <b>190</b> has been completed. To this end, auto increment unit <b>250</b> may comprise a control input for activation and de-activation of this function. Furthermore, the auto-increment function may include a wrap around function which resets the address in register <b>240</b> to 0x0000 once the end address of register bank <b>190</b> has been reached.
p-0022As mentioned before, the buffer control registers <b>120</b> may be part of control register block <b>190</b>. However, the control logic accessing the buffer control registers <b>120</b> may perform a different access function than for the other control registers depending on the command. When specific commands for reading or writing the buffer registers are sent to the Ethernet interface, the system control <b>110</b> accesses these registers as described above. However, when a packet read or write command is sent to the Ethernet interface, even though these registers can be selected in one of the different ways described, they are not addressed to perform a read/write function to the respective register but rather are used for indirect reading and writing the packet buffer. Hence, the control register access logic is designed to distinguish between different register access modes.
p-0023<figref idrefs="DRAWINGS">FIG. 2</figref><i>b </i>shows an alternative embodiment, in which the buffer control registers <b>120</b> are separated from the control register block <b>190</b>. This design may facilitate the access logic as all register which need only be directly addressed for a read/write function are consolidated in control register block <b>190</b> whereas registers that can be used for indirect access and for direct access are arranged in block <b>120</b>. In one embodiment, these registers can be separated from the banking scheme, for example, by having a most significant address bits of “100.” However, in another embodiment, these registers can be, for example, accessed through an additional fifth bank. As shown in <figref idrefs="DRAWINGS">FIG. 2</figref><i>b </i>these registers can be the packet buffer address registers as explained in more detail below with respect to the specific op-codes for accessing the packet buffer <b>125</b>.
p-0024Communication and control of the Ethernet controller through interface <b>105</b> is performed as shown in <figref idrefs="DRAWINGS">FIG. 4</figref> by commands sent by the processor or microcontroller. To this end a first byte <b>400</b> (Byte<b>0</b>) is sent to the Ethernet controller. This Byte<b>0</b> comprises the opcode and may also include a partial address. If the opcode encodes a write command, one or more bytes <b>410</b>, <b>420</b> (Byte<b>1</b>, Byte<b>2</b>, etc.) may be sent in the following cycles to the interface. A plurality of write commands may operate with a burst mode in which data received at the interface is written into consecutive addresses wherein the start address is defined by the first address submitted in the Byte<b>0</b> or Byte<b>1</b>. To end such an automatic burst mode, a control signal at the interface may be used to end such an automatic burst mode. For example, a chip select signal CS may be negated to indicate the end of a burst thus, single or multiple data transmissions can be performed following a respective command that triggers a burst transfer as indicated in <figref idrefs="DRAWINGS">FIG. 4</figref>.
p-0025If the opcode encodes a read command, one or more bytes <b>430</b>, <b>440</b> (Byte<b>1</b>, Byte<b>2</b>, etc.) may be returned in the following cycles to the processor or microcontroller. Again, the chip select signal can be used to determine how many return data are sent back to the processor. As shown in <figref idrefs="DRAWINGS">FIG. 4</figref>, Byte<b>0</b> is used to transmit the read opcode. In case of an embedded address in Byte<b>0</b>, the next byte <b>430</b> will be transmitted from the Ethernet controller <b>100</b> to the processor or microcontroller. In case of a long address, Byte<b>1</b> transmitted to Ethernet controller <b>100</b> comprises the address and Byte<b>2</b> will be the first data returned from Ethernet controller <b>100</b>. Depending on when the chip select signal is negated by the processor or microcontroller, one or multiple data are returned by Ethernet controller <b>100</b>. For some commands, the auto-increment function automatically increments the originally submitted address. However, some commands may require to specifically select and auto-increment function. Thus, Ethernet controller <b>100</b> may transmit data from a constant address in a burst mode.
p-0026The following describes various exemplary commands, their structure and their function. All exemplary commands are also summarized in the following tables 1-3.
p-0027First, the operation of all opcodes that set/clear special function register bits will be described. <figref idrefs="DRAWINGS">FIG. 3</figref> shows as an example a control register <b>300</b> controlling certain operations of the Ethernet controller. The functionality of certain bits will be explained in combination with respective opcodes. These opcodes may include:
p-0028Reset Opcode
p-0029This opcode sets the control register bit (SOFTRST) in a configuration register, which causes a soft Reset of the device.
p-0030FCDIS Opcode
p-0031This opcode sets two register bits <b>8</b> and <b>9</b> in control register <b>300</b> to 00 (FCDISABLE mode) to disable flow control.
p-0032FCSINGLE Opcode
p-0033This opcode sets the two register bits <b>8</b> and <b>9</b> in control register <b>300</b> to 01 (FCSINGLE mode) to enable flow control for a single transmission.
p-0034FCMULTIPLE Opcode
p-0035This opcode sets the two register bits <b>8</b> and <b>9</b> in control register <b>300</b> to 10 (FCMULTIPLE mode) to enable flow control for multiple transmissions.
p-0036FCCLEAR Opcode
p-0037This opcode sets the two register bits <b>8</b> and <b>9</b> in control register <b>300</b> to 11 (FCCLEAR mode) to stop flow control.
p-0038WPKTCDEC Opcode
p-0039This opcode sets the PKTCDEC register bit <b>7</b> in control register <b>300</b>, which causes the Packet Counter to decrement.
p-0040UDAEN Opcode
p-0041This opcode sets the UDAEN register bit <b>6</b> in control register <b>300</b>, which enables address wrap-around in the User Defined Area.
p-0042UDADIS Opcode
p-0043This opcode clears the UDAEN register bit <b>6</b> in control register <b>300</b>, which disables address wrap-around in the User Defined Area.
p-0044DMACOPY Opcode
p-0045This opcode sets three DMA control register bits <b>3</b>, <b>4</b>, <b>5</b> in the control register <b>300</b> to 110, which will start a DMA Copy Operation with an initial checksum value of $0000.
p-0046DMACOPYU Opcode
p-0047This opcode sets three DMA control register bits <b>3</b>, <b>4</b>, <b>5</b> in the control register <b>300</b> to 111, which will start a DMA Copy Operation with the initial checksum value loaded from an ECKSUM register.
p-0048DMACKSUM Opcode
p-0049This opcode sets three DMA control register bits <b>3</b>, <b>4</b>, <b>5</b> in the control register <b>300</b> to 100, which will start a DMA Checksum Only Operation with an initial checksum value of $0000.
p-0050DMACKSUMU Opcode
p-0051This opcode sets three DMA control register bits <b>3</b>, <b>4</b>, <b>5</b> in the control register <b>300</b> to 101, which starts a DMA Checksum Only Operation with the initial checksum value loaded from the ECKSUM register.
p-0052DMASTOP Opcode
p-0053This opcode clears a DMASTART register bit <b>2</b> in control register <b>300</b>, which terminates the current DMA operation.
p-0054TXSTART Opcode
p-0055This opcode sets a TXRTS register bit <b>1</b> in control register <b>300</b>, which starts transmission of a packet.
p-0056TXSTOP Opcode
p-0057This opcode clears the TXRTS register bit <b>1</b> in control register <b>300</b>, which terminates transmission of a packet.
p-0058RXSTART Opcode
p-0059This opcode sets a RXEN register bit <b>0</b> in control register <b>300</b>, which enables reception of packets.
p-0060RXSTOP Opcode
p-0061This opcode clears the RXEN register bit <b>0</b> in control register <b>300</b>, which enables reception of packets.
p-0062SETIRQIE Opcode
p-0063This opcode sets a IRQIE register bit in an interrupt control register, which enables interrupts.
p-0064CLRIRQIE Opcode
p-0065This opcode clears the IRQIE register bit in an interrupt control register, which disables interrupts.
p-0066Next, the operation of all opcodes that read or write the internal Bank Select register (BANKSEL[1:0]) is described. These opcodes may includes:
p-0067B0SEL, B1SEL, B2SEL, B3SEL, for selecting one of the four banks and RBSEL for reading which bank is currently selected. A Bank Select WRITE command can be performed when Opcode[7:3]=5′b11000 is sent to the Ethernet controller, and the value to be written is in Opcode[2:1]. This allows for decoding of the Bank Select WRITE opcodes with a single byte and without the requirement of mirroring the bank select register to all banks. Through this command, the respective select register can be directly accessed with a single byte command independent on what bank has been selected.
p-0068Next, the operation of all opcodes that read or write the SFR registers is described.
p-0069RCR Opcode
p-0070This opcode reads from the CRB/MAC register pointed to by the Bank Select register and the address in Byte<b>0</b> (Address[4:0]). The read data is returned in the next byte, and the internal SFR address register is incremented by one. To only receive a single register content, this command must be terminated by negating the chip select (CSn) pin. Otherwise, the next byte returned will be Address[4:0]+1, and then Address[4:0]+2, etc. Once Address[4:0] reaches $FF, it will roll back to $00 without affecting the Bank Select register.
p-0071RCRU Opcode
p-0072This opcode reads from the CRB/MAC registers without using the Bank Select register. Byte<b>1</b> contains the full 7-bit register address of the register. The read data is returned in the next byte, and the internal SFR address register is incremented by 1. To only receive a single register content, this command must be terminated by negating the chip select (CSn) pin. Otherwise, the next byte returned will be Address[4:0]+1, and then Address[4:0]+2, etc. Once Address[4:0] reaches $FF, it will roll back to $00 without affecting the Bank Select register.
p-0073WCR Opcode
p-0074This opcode writes to the CRB/MAC register pointed to by the Bank Select register and the address in Byte<b>0</b> (Address[4:0]). The write data is presented in the next byte, and the internal SFR address register is incremented by one. To only transmit a single register content, this command must be terminated by negating the chip select (CSn) pin. Otherwise, the next byte written will be Address[4:0]+1, and then Address[4:0]+2, etc. Once Address[4:0] reaches $FF, it will roll back to $00 without affecting the Bank Select register.
p-0075WCRU Opcode
p-0076This opcode writes to the CRB/MAC registers without using the Bank Select register. Byte<b>1</b> contains the full 7-bit register address of the register. The write data is presented in the next byte, and the internal SFR address register is incremented by one. To only transmit a single register content, this command must be terminated by negating the chip select (CSn) pin. Otherwise, the next byte written will be Address[7:0]+1, and then Address[7:0]+2, etc. Once Address[7:0] reaches $FF, it will roll back to $00 without affecting the Bank Select register.
p-0077BFS Opcode
p-0078This opcode sets individual bits in the CRB register pointed to by the Bank Select register and the address in Byte<b>0</b> (Address[4:0]). The set mask is presented in the next byte, and the internal SFR address register is incremented by one. To only mask a single register content, this command must be terminated by negating the chip select (CSn) pin. Otherwise, the next byte modified will be Address[4:0]+1, and then Address[4:0]+2, etc. Once Address[4:0] reaches $FF, it will roll back to $00 without affecting the Bank Select register.
p-0079BFSU Opcode
p-0080This opcode sets individual bits in the CRB register without using the Bank Select register. Byte<b>1</b> contains the full 7-bit register address of the register. The set mask is presented in the next byte, and the internal SFR address register is incremented by one. To only set bits in a single register content, this command must be terminated by negating the chip select (CSn) pin. Otherwise, he next byte modified will be Address[7:0]+1, and then Address[7:0]+2, etc. Once Address[7:0] reaches $FF, it will roll back to $00 without affecting the Bank Select register.
p-0081BFC Opcode
p-0082This opcode clears individual bits in the CRB register pointed to by the Bank Select register and the address in Byte<b>0</b> (Address[4:0]). The clear mask is presented in the next byte, and the internal SFR address register is incremented by one. To only transmit a clear mask in a single register content, this command must be terminated by negating the chip select (CSn) pin. Otherwise, the next byte modified will be Address[4:0]+1, and then Address[4:0]+2, etc. Once Address[4:0] reaches $FF, it will roll back to $00 without affecting the Bank Select register.
p-0083BFCU Opcode
p-0084This opcode clears individual bits in the CRB register without using the Bank Select register. Byte<b>1</b> contains the full 7-bit register address of the register. The clear mask is presented in the next byte, and the internal SFR address register is incremented by one. To only transmit a clear mask for a single register content, this command must be terminated by negating the chip select (CSn) pin. Otherwise, the next byte modified will be Address[7:0]+1, and then Address[7:0]+2, etc. Once Address[7:0] reaches $FF, it will roll back to $00 without affecting the Bank Select register.
p-0085The fundamental difference between the opcodes RCR/WCR/BFS/BFC and the RCRU/WCRU/BFSU/BFCU opcodes is the address format. With the RCR/WCR/BFS//BFC opcodes, the internal BANKSEL[1:0] register drives bits <b>6</b>:<b>5</b> of the SFR register address. With the RCRU/WCRU/BFSU/BFCU opcodes, the full 7-bit address is passed in the first byte after the opcode, requiring no bank switching. Next, the operation of all opcodes that read or write the packet buffer are explained.
p-0086RBMTX Opcode
p-0087This opcode performs a read from the Packet Buffer at the address pointed to by the ETXRDP register. If Address Auto-Increment is enabled, the ETXRDP register will be updated after the read is performed, as follows: If the read address is equal to the TX Buffer End Address, the TX Buffer Start Address will be loaded into ETXRDP register. If the read address is equal to $FFFF, ETXRDP will roll to $0000 after the read is performed. Otherwise, the ETXRDP register will be incremented by one. If an Address Auto-Increment is not enabled, the contents of the ETXRDP register will remain unchanged. As long as the chip select pin is asserted, this command is in effect, thereby allowing bursting of data from the Packet Buffer as explained above.
p-0088RBMRX Opcode
p-0089This opcode performs a read from the Packet Buffer at the address pointed to by the ERXRDP register. If Address Auto-Increment is enabled, the ERXRDP register will be updated after the read is performed as follows: If the read address is equal to the RX Buffer End Address, the RX Buffer Start Address will be loaded into ERXRDP register. If the read address is equal to $FFFF, ERXRDP will roll to $0000 after the read is performed. Otherwise, the ERXRDP register will be incremented by one. If Address Auto-Increment is not enabled, the contents of the ERXRDP register will remain unchanged. As long as the chip select pin is asserted, this command is in effect, thereby allowing bursting of data from the Packet Buffer.
p-0090RBMUDA Opcode
p-0091This opcode performs a read from the Packet Buffer at the address pointed to by the EUDARDP register. If Address Auto-Increment is enabled, the EUDARDP register will be updated after the read is performed, as follows: If the read address is equal to the User Defined Area End Address, the User Defined Area Start Address will be loaded into ETXRDP register. If the read address is equal to $FFFF, EUDARDP will roll to $0000 after the read is performed. Otherwise, the EUDARDP register will be incremented by one. If Address Auto-Increment is not enabled, the contents of the EUDARDP register will remain unchanged. As long as the chip select pin is asserted, this command is in effect, thereby allowing bursting of data from the Packet Buffer. Again, this command must be terminated by negating the chip select (CSn) pin.
p-0092WBMTX Opcode
p-0093This opcode performs a write to the Packet Buffer at the address pointed to by the ETXWRP register. If Address Auto-Increment is enabled, the ETXWRP register will be updated after the read is performed, as follows: If the write address is equal to the TX Buffer End Address, the TX Buffer Start Address will be loaded into ETXWRP register. If the write address is equal to $FFFF, ETXWRP will roll to $0000 after the write is performed. Otherwise, the ETXRDP register will be incremented by one. If Address Auto-Increment is not enabled, the contents of the ETXWRP register will remain unchanged. As long as the chip select pin is asserted, this command is in effect, thereby allowing bursting of data into the Packet Buffer. Again, this command must be terminated by negating the chip select (CSn) pin.
p-0094WBMRX Opcode
p-0095This opcode performs a write to the Packet Buffer at the address pointed to by the ERXWRP register. If Address Auto-Increment is enabled, the ERXWRP register will be updated after the read is performed, as follows: If the write address is equal to the RX Buffer End Address, the RX Buffer Start Address will be loaded into ERXWRP register. If the write address is equal to $FFFF, ERXWRP will roll to $0000 after the write is performed. Otherwise, the ERXRDP register will be incremented by one. If Address Auto-Increment is not enabled, the contents of the ERXWRP register will remain unchanged. As long as the chip select pin is asserted, this command is in effect, thereby allowing bursting of data into the Packet Buffer. Again, this command must be terminated by negating the chip select (CSn) pin.
p-0096WBMUDA Opcode
p-0097This opcode performs a write to the Packet Buffer at the address pointed to by the EUDAWRP register. If Address Auto-Increment is enabled, the EUDAWRP register will be updated after the read is performed, as follows: If the write address is equal to the User Defined Area End Address, the User Defined Area Start Address will be loaded into EUDAWRP register. If the write address is equal to $FFFF, EUDAWRP will roll to $0000 after the write is performed. Otherwise, the EUDARDP register will be incremented by one. If Address Auto-Increment is not enabled, the contents of the EUDAWRP register will remain unchanged. As long as the chip select pin is asserted, this command is in effect, thereby allowing bursting of data into the Packet Buffer. Again, this command must be terminated by negating the chip select (CSn) pin.
p-0098Next, the operation of all opcodes that read or write the packet buffer pointer registers: (ETXRDP[PKT_ADDR_MSB:0], ETXWRP[PKT_ADDR_MSB:0], ERXRDP[PKT_ADDR_MSB:0], ERXWRP[PKT_ADDR_MSB:0], EUDARDP[PKT_ADDR_MSB:0], EUDAWRP[PKT_ADDR_MSB:0]) are described.
p-0099WTXRDP Opcode
p-0100This opcode is used to change the contents of the ETXRDP register. Byte<b>1</b> is written into ETXRDPL, and must always be present. If Byte<b>2</b> is present, it is written into ETXRDPH. If no Byte<b>2</b> is required, then the chip select pin must be negated after Byte<b>1</b>. The next byte after the negation of the chip select or after Byte<b>2</b> is considered a new command.
p-0101RTXRDP Opcode
p-0102This opcode is used to read back the contents of the ETXRDP register. Byte<b>1</b> contains the contents of ETXRDPL, and must always be present. If Byte<b>2</b> is present, it contains the contents of ETXRDPH. If no Byte<b>2</b> is required, then the chip select pin must be negated after Byte<b>1</b>. The next byte after the negation of the chip select or after Byte<b>2</b> is considered a new command.
p-0103WRXRDP Opcode
p-0104This opcode is used to change the contents of the ERXRDP register. Byte<b>1</b> is written into ERXRDPL, and must always be present. If Byte<b>2</b> is present, it is written into ERXRDPH. If no Byte<b>2</b> is required, then the chip select pin must be negated after Byte<b>1</b>. The next byte after the negation of the chip select or after Byte<b>2</b> is considered a new command.
p-0105RRXRDP Opcode
p-0106This opcode is used to read back the contents of the ERXRDP register. Byte<b>1</b> contains the contents of ERXRDPL, and must always be present. If Byte<b>2</b> is present, it contains the contents of ERXRDPH. If no Byte<b>2</b> is required, then the chip select pin must be negated after Byte<b>1</b>. The next byte after the negation of the chip select or after Byte<b>2</b> is considered a new command.
p-0107WUDARDP Opcode
p-0108This opcode is used to change the contents of the EUDARDP register. Byte<b>1</b> is written into EUDARDPL, and must always be present. If Byte<b>2</b> is present, it is written into EUDARDPH. If no Byte<b>2</b> is required, then the chip select pin must be negated after Byte<b>1</b>. The next byte after the negation of the chip select or after Byte<b>2</b> is considered a new command.
p-0109RUDARDP Opcode
p-0110This opcode is used to read back the contents of the EUDARDP register. Byte<b>1</b> contains the contents of EUDARDPL, and must always be present. If Byte<b>2</b> is present, it contains the contents of EUDARDPH. If no Byte<b>2</b> is required, then the chip select pin must be negated after Byte<b>1</b>. The next byte after the negation of the chip select or after Byte<b>2</b> is considered a new command.
p-0111WTXWRP Opcode
p-0112This opcode is used to change the contents of the ETXWRP register. Byte<b>1</b> is written into ETXWRPL, and must always be present. If Byte<b>2</b> is present, it is written into ETXWRPH. If no Byte<b>2</b> is required, then the chip select pin must be negated after Byte<b>1</b>. The next byte after the negation of the chip select or after Byte<b>2</b> is considered a new command.
p-0113RTXWRP Opcode
p-0114This opcode is used to read back the contents of the ETXWRP register. Byte<b>1</b> contains the contents of ETXWRPL, and must always be present. If Byte<b>2</b> is present, it contains the contents of ETXWRPH. If no Byte<b>2</b> is required, then the chip select pin must be negated after Byte<b>1</b>. The next byte after the negation of the chip select or after Byte<b>2</b> is considered a new command.
p-0115WRXWRP Opcode
p-0116This opcode is used to change the contents of the ERXWRP register. Byte<b>1</b> is written into ERXWRPL, and must always be present. If Byte<b>2</b> is present, it is written into ERXWRPH. If no Byte<b>2</b> is required, then the chip select pin must be negated after Byte<b>1</b>. The next byte after the negation of the chip select or after Byte<b>2</b> is considered a new command.
p-0117RRXWRP Opcode
p-0118This opcode is used to read back the contents of the ERXWRP register. Byte<b>1</b> contains the contents of ERXWRPL, and must always be present. If Byte<b>2</b> is present, it contains the contents of ERXWRPH. If no Byte<b>2</b> is required, then the chip select pin must be negated after Byte<b>1</b>. The next byte after the negation of the chip select or after Byte<b>2</b> is considered a new command.
p-0119WUDAWRP Opcode
p-0120This opcode is used to change the contents of the EUDAWRP register. Byte<b>1</b> is written into EUDAWRPL, and must always be present. If Byte<b>2</b> is present, it is written into EUDAWRPH. If no Byte<b>2</b> is required, then the chip select pin must be negated after Byte<b>1</b>. The next byte after the negation of the chip select or after Byte<b>2</b> is considered a new command.
p-0121RUDAWRP Opcode
p-0122This opcode is used to read back the contents of the EUDAWRP register. Byte<b>1</b> contains the contents of EUDAWRPL, and must always be present. If Byte<b>2</b> is present, it contains the contents of EUDAWRPH. If no Byte<b>2</b> is required, then the chip select pin must be negated after Byte<b>1</b>. The next byte after the negation of the chip select or after Byte<b>2</b> is considered a new command.
p-0123DEBUGFSM Opcode
p-0124This opcode returns a snapshot of the internal state machines, and may be used only for factory debug and testing. If no Byte<b>2</b> or Byte<b>3</b> is required, then the chip select pin must be negated after Byte<b>1</b> or Byte<b>2</b>, respectively. The next byte after the negation of the chip select or after Byte<b>3</b> is considered a new command.
p-0125<tables id="TABLE-US-00001" num="00001"><table frame="none" colsep="0" rowsep="0" pgwide="1"><tgroup align="left" colsep="0" rowsep="0" cols="3"><colspec colname="offset" colwidth="231pt" align="left" /><colspec colname="1" colwidth="126pt" align="center" /><colspec colname="2" colwidth="84pt" align="center" /><thead><row><entry /><entry namest="offset" nameend="2" rowsep="1">TABLE 1</entry></row></thead><tbody valign="top"><row><entry /><entry namest="offset" nameend="2" align="center" rowsep="1" /></row><row><entry /><entry>Read Data</entry><entry /></row></tbody></tgroup><tgroup align="left" colsep="0" rowsep="0" cols="4"><colspec colname="offset" colwidth="42pt" align="left" /><colspec colname="1" colwidth="84pt" align="center" /><colspec colname="2" colwidth="105pt" align="center" /><colspec colname="3" colwidth="210pt" align="left" /><tbody valign="top"><row><entry /><entry>Byte 0</entry><entry>Write Data</entry><entry>Byte</entry></row></tbody></tgroup><tgroup align="left" colsep="0" rowsep="0" cols="11"><colspec colname="1" colwidth="42pt" align="left" /><colspec colname="2" colwidth="42pt" align="left" /><colspec colname="3" colwidth="42pt" align="left" /><colspec colname="4" colwidth="35pt" align="left" /><colspec colname="5" colwidth="35pt" align="left" /><colspec colname="6" colwidth="35pt" align="left" /><colspec colname="7" colwidth="21pt" align="left" /><colspec colname="8" colwidth="35pt" align="left" /><colspec colname="9" colwidth="35pt" align="left" /><colspec colname="10" colwidth="35pt" align="left" /><colspec colname="11" colwidth="84pt" align="left" /><tbody valign="top"><row><entry>Opcode</entry><entry>Opcode[2:0]</entry><entry>Address[4:0]</entry><entry>Byte 1</entry><entry>Byte 2</entry><entry>Byte N</entry><entry>1</entry><entry>Byte 2</entry><entry>Byte 3</entry><entry>Byte N</entry><entry>Description</entry></row><row><entry namest="1" nameend="11" align="center" rowsep="1" /></row><row><entry>RCR</entry><entry>3′b000</entry><entry>Register</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>Read</entry><entry>Read data</entry><entry>Read data</entry><entry>Read data</entry><entry>Read Control Register</entry></row><row><entry /><entry /><entry>Address</entry><entry /><entry /><entry /><entry>data</entry><entry>(Optional)</entry><entry>(Optional)</entry><entry>(Optional)</entry></row><row><entry>WCR</entry><entry>3′b010</entry><entry>Register</entry><entry>Write data</entry><entry>Write data</entry><entry>Write</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>Write Control Register</entry></row><row><entry /><entry /><entry>Address</entry><entry /><entry>(Optional)</entry><entry>data</entry></row><row><entry /><entry /><entry /><entry /><entry /><entry>(Optional)</entry></row></tbody></tgroup><tgroup align="left" colsep="0" rowsep="0" cols="10"><colspec colname="1" colwidth="42pt" align="left" /><colspec colname="2" colwidth="84pt" align="center" /><colspec colname="3" colwidth="35pt" align="left" /><colspec colname="4" colwidth="35pt" align="left" /><colspec colname="5" colwidth="35pt" align="left" /><colspec colname="6" colwidth="21pt" align="left" /><colspec colname="7" colwidth="35pt" align="left" /><colspec colname="8" colwidth="35pt" align="left" /><colspec colname="9" colwidth="35pt" align="left" /><colspec colname="10" colwidth="84pt" align="left" /><tbody valign="top"><row><entry>RCRU</entry><entry>8′b00100000</entry><entry>Full</entry><entry>—</entry><entry>—</entry><entry>Read</entry><entry>Read data</entry><entry>Read data</entry><entry>Read data</entry><entry>Read Control Register</entry></row><row><entry /><entry /><entry>Register</entry><entry /><entry /><entry>data</entry><entry>(Optional)</entry><entry>(Optional)</entry><entry>(Optional)</entry><entry>(Unbanked)</entry></row><row><entry /><entry /><entry>Address</entry></row><row><entry>WCRU</entry><entry>8′b00100010</entry><entry>Full</entry><entry>Write data</entry><entry>Write data</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>Write Control Register</entry></row><row><entry /><entry /><entry>Register</entry><entry /><entry>(Optional)</entry><entry /><entry /><entry /><entry /><entry>(Unbanked)</entry></row><row><entry /><entry /><entry>Address</entry></row></tbody></tgroup><tgroup align="left" colsep="0" rowsep="0" cols="11"><colspec colname="1" colwidth="42pt" align="left" /><colspec colname="2" colwidth="42pt" align="left" /><colspec colname="3" colwidth="42pt" align="left" /><colspec colname="4" colwidth="35pt" align="left" /><colspec colname="5" colwidth="35pt" align="left" /><colspec colname="6" colwidth="35pt" align="left" /><colspec colname="7" colwidth="21pt" align="left" /><colspec colname="8" colwidth="35pt" align="left" /><colspec colname="9" colwidth="35pt" align="left" /><colspec colname="10" colwidth="35pt" align="left" /><colspec colname="11" colwidth="84pt" align="left" /><tbody valign="top"><row><entry>BFS</entry><entry>3′b100</entry><entry>Address</entry><entry>SET Mask</entry><entry>SET Mask</entry><entry>SET Mask</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>Bit Field Set</entry></row><row><entry /><entry>Register</entry><entry /><entry /><entry>(Optional)</entry><entry>(Optional)</entry></row><row><entry>BFSU</entry><entry>8′b00100100</entry><entry /><entry>Full</entry><entry>SET Mask</entry><entry>SET Mask</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>Bit Field Set</entry></row><row><entry /><entry /><entry /><entry>Register</entry><entry /><entry>(Optional)</entry><entry /><entry /><entry /><entry /><entry>(Unbanked)</entry></row><row><entry /><entry /><entry /><entry>Address</entry></row><row><entry>BFC</entry><entry>3′b101</entry><entry>Register</entry><entry>CLR</entry><entry>CLR</entry><entry>CLR</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>Bit Field Clear</entry></row><row><entry /><entry /><entry>Address</entry><entry>Mask</entry><entry>Mask</entry><entry>Mask</entry></row><row><entry /><entry /><entry /><entry /><entry>(Optional)</entry><entry>(Optional)</entry></row></tbody></tgroup><tgroup align="left" colsep="0" rowsep="0" cols="10"><colspec colname="1" colwidth="42pt" align="left" /><colspec colname="2" colwidth="84pt" align="center" /><colspec colname="3" colwidth="35pt" align="left" /><colspec colname="4" colwidth="35pt" align="left" /><colspec colname="5" colwidth="35pt" align="left" /><colspec colname="6" colwidth="21pt" align="left" /><colspec colname="7" colwidth="35pt" align="left" /><colspec colname="8" colwidth="35pt" align="left" /><colspec colname="9" colwidth="35pt" align="left" /><colspec colname="10" colwidth="84pt" align="left" /><tbody valign="top"><row><entry>BFCU</entry><entry>8′b00100110</entry><entry>Full</entry><entry>CLR</entry><entry>CLR</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>Bit Field Clear</entry></row><row><entry /><entry /><entry>Register</entry><entry>Mask</entry><entry>Mask</entry><entry /><entry /><entry /><entry /><entry>(Unbanked)</entry></row><row><entry /><entry /><entry>Address</entry><entry /><entry>(Optional)</entry></row><row><entry>RBMTX</entry><entry>8′b00101000</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>Read</entry><entry>Read data</entry><entry>Read data</entry><entry>Read data</entry><entry>Read the Buffer Memory</entry></row><row><entry /><entry /><entry /><entry /><entry /><entry>data</entry><entry>(Optional)</entry><entry>(Optional)</entry><entry>(Optional)</entry><entry>from the address specified</entry></row><row><entry /><entry /><entry /><entry /><entry /><entry /><entry /><entry /><entry /><entry>in the ETXRDP register</entry></row><row><entry>WBMTX</entry><entry>8′b00101010</entry><entry>Write data</entry><entry>Write data</entry><entry>Write data</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>Write the Buffer Memory</entry></row><row><entry /><entry /><entry /><entry>(Optional)</entry><entry>(Optional)</entry><entry /><entry /><entry /><entry /><entry>from the address specified</entry></row><row><entry /><entry /><entry /><entry /><entry /><entry /><entry /><entry /><entry /><entry>in the ETXWRP register</entry></row><row><entry>RBMRX</entry><entry>8′b00101100</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>Read</entry><entry>Read data</entry><entry>Read data</entry><entry>Read data</entry><entry>Read the Buffer Memory</entry></row><row><entry /><entry /><entry /><entry /><entry /><entry>data</entry><entry>(Optional)</entry><entry>(Optional)</entry><entry>(Optional)</entry><entry>from the address specified</entry></row><row><entry /><entry /><entry /><entry /><entry /><entry /><entry /><entry /><entry /><entry>in the ERXRDP register</entry></row><row><entry>WBMRX</entry><entry>8′b00101110</entry><entry>Write data</entry><entry>Write data</entry><entry>Write data</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>Write the Buffer Memory</entry></row><row><entry /><entry /><entry /><entry>(Optional)</entry><entry>(Optional)</entry><entry /><entry /><entry /><entry /><entry>from the address specified</entry></row><row><entry /><entry /><entry /><entry /><entry /><entry /><entry /><entry /><entry /><entry>in the ERXWRP register</entry></row><row><entry>RBMUDA</entry><entry>8′b00110000</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>Read</entry><entry>Read data</entry><entry>Read data</entry><entry>Read data</entry><entry>Read the Buffer Memory</entry></row><row><entry /><entry /><entry /><entry /><entry /><entry>data</entry><entry>(Optional)</entry><entry>(Optional)</entry><entry>(Optional)</entry><entry>from the address specified</entry></row><row><entry /><entry /><entry /><entry /><entry /><entry /><entry /><entry /><entry /><entry>in the EUDARDP register</entry></row><row><entry>WBMUDA</entry><entry>8′b00110010</entry><entry>Write data</entry><entry>Write data</entry><entry>Write data</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>Write the Buffer Memory</entry></row><row><entry /><entry /><entry /><entry>(Optional)</entry><entry>(Optional)</entry><entry /><entry /><entry /><entry /><entry>from the address specified</entry></row><row><entry /><entry /><entry /><entry /><entry /><entry /><entry /><entry /><entry /><entry>in the EUDAWRP register</entry></row><row><entry>Reserved</entry><entry>8′b00110100</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>No Operation</entry></row><row><entry /><entry>8′b00110110</entry></row><row><entry /><entry>8′b00111000</entry></row><row><entry /><entry>8′b00111010</entry></row><row><entry /><entry>8′b00111100</entry></row><row><entry /><entry>8′b00111110</entry></row><row><entry namest="1" nameend="10" align="center" rowsep="1" /></row></tbody></tgroup></table></tables>
p-0126<tables id="TABLE-US-00002" num="00002"><table frame="none" colsep="0" rowsep="0" pgwide="1"><tgroup align="left" colsep="0" rowsep="0" cols="5"><colspec colname="offset" colwidth="49pt" align="left" /><colspec colname="1" colwidth="42pt" align="left" /><colspec colname="2" colwidth="126pt" align="center" /><colspec colname="3" colwidth="154pt" align="center" /><colspec colname="4" colwidth="70pt" align="center" /><thead><row><entry /><entry namest="offset" nameend="4" rowsep="1">TABLE 2</entry></row></thead><tbody valign="top"><row><entry /><entry namest="offset" nameend="4" align="center" rowsep="1" /></row><row><entry /><entry>Byte 0</entry><entry>Write Data</entry><entry>Read Data</entry><entry /></row></tbody></tgroup><tgroup align="left" colsep="0" rowsep="0" cols="10"><colspec colname="1" colwidth="49pt" align="left" /><colspec colname="2" colwidth="42pt" align="left" /><colspec colname="3" colwidth="49pt" align="left" /><colspec colname="4" colwidth="49pt" align="left" /><colspec colname="5" colwidth="28pt" align="left" /><colspec colname="6" colwidth="49pt" align="left" /><colspec colname="7" colwidth="49pt" align="left" /><colspec colname="8" colwidth="28pt" align="left" /><colspec colname="9" colwidth="28pt" align="left" /><colspec colname="10" colwidth="70pt" align="left" /><tbody valign="top"><row><entry>Opcode</entry><entry>Opcode[7:0]</entry><entry>Byte 1</entry><entry>Byte 2</entry><entry>Byte N</entry><entry>Byte 1</entry><entry>Byte 2</entry><entry>Byte 3</entry><entry>Byte N</entry><entry>Description</entry></row><row><entry namest="1" nameend="10" align="center" rowsep="1" /></row><row><entry>WTXRDP</entry><entry>8′b01100000</entry><entry>ETXRDPL</entry><entry>ETXRDPH</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>Write the ETXRDP</entry></row><row><entry /><entry /><entry /><entry>(Optional)</entry><entry /><entry /><entry /><entry /><entry /><entry>register</entry></row><row><entry>RTXRDP</entry><entry>8′b01100010</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>ETXRDPL</entry><entry>ETXRDPH</entry><entry>—</entry><entry>—</entry><entry>Read the ETXRDP</entry></row><row><entry /><entry /><entry /><entry /><entry /><entry /><entry>(Optional)</entry><entry>register</entry></row><row><entry>WRXRDP</entry><entry>8′b01100100</entry><entry>ERXRDPL</entry><entry>ERXRDPH</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>Write the ERXRDP</entry></row><row><entry /><entry /><entry /><entry>(Optional)</entry><entry /><entry /><entry /><entry /><entry /><entry>register</entry></row><row><entry>RRXRDP</entry><entry>8′b01100110</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>ERXRDPL</entry><entry>ERXRDPH</entry><entry>—</entry><entry>—</entry><entry>Read the ERXRDP</entry></row><row><entry /><entry /><entry /><entry /><entry /><entry /><entry>(Optional)</entry><entry>register</entry></row><row><entry>WUDARDP</entry><entry>8′b01101000</entry><entry>EUDARDPL</entry><entry>EUDARDPH</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>Write the EUDARDP</entry></row><row><entry /><entry /><entry /><entry>(Optional)</entry><entry /><entry /><entry /><entry /><entry /><entry>register</entry></row><row><entry>RUDAWRP</entry><entry>8′b01101010</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>EUDARDPL</entry><entry>EUDARDPH</entry><entry>—</entry><entry>—</entry><entry>Read the EUDARDP</entry></row><row><entry /><entry /><entry /><entry /><entry /><entry /><entry>(Optional)</entry><entry>register</entry></row><row><entry>WTXWRP</entry><entry>8′b01101100</entry><entry>ETXWRPL</entry><entry>ETXWRPH</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>Write the ETXWRP</entry></row><row><entry /><entry /><entry /><entry>(Optional)</entry><entry /><entry /><entry /><entry /><entry /><entry>register</entry></row><row><entry>RTXWRP</entry><entry>8′b01101110</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>ETXWRPL</entry><entry>ETXWRPH</entry><entry>—</entry><entry>—</entry><entry>Read the ETXWRP</entry></row><row><entry /><entry /><entry /><entry /><entry /><entry /><entry>(Optional)</entry><entry>register</entry></row><row><entry>WRXWRP</entry><entry>8′b01110000</entry><entry>ERXWRPL</entry><entry>ERXWRPH</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>Write the ERXWRP</entry></row><row><entry /><entry /><entry /><entry>(Optional)</entry><entry /><entry /><entry /><entry /><entry /><entry>register</entry></row><row><entry>RRXWRP</entry><entry>8′b01110010</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>ERXWRPL</entry><entry>ERXWRPH</entry><entry>—</entry><entry>—</entry><entry>Read the ERXWRP</entry></row><row><entry /><entry /><entry /><entry /><entry /><entry /><entry>(Optional)</entry><entry>register</entry></row><row><entry>WUDAWRP</entry><entry>8′b01110100</entry><entry>EUDAWRPL</entry><entry>EUDAWRPH</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>Write the EUDAWRP</entry></row><row><entry /><entry /><entry /><entry>(Optional)</entry><entry /><entry /><entry /><entry /><entry /><entry>register</entry></row><row><entry>RUDAWRP</entry><entry>8′b01110110</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>EUDAWRPL</entry><entry>EUDAWRPH</entry><entry>—</entry><entry>—</entry><entry>Read the EUDAWRP</entry></row><row><entry /><entry /><entry /><entry /><entry /><entry /><entry>(Optional)</entry><entry /><entry /><entry>register</entry></row><row><entry>DEBUGFSM</entry><entry>8′b01111000</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>Read data</entry><entry>Read data</entry><entry>Read</entry><entry>Read</entry><entry>Read FSM state</entry></row><row><entry /><entry /><entry /><entry /><entry /><entry /><entry /><entry>data</entry><entry>data</entry><entry>(Factory Use Only)</entry></row><row><entry /><entry /><entry /><entry /><entry /><entry /><entry /><entry /><entry>(Byte4)</entry></row><row><entry>Reserved</entry><entry>8′b01111010</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>No Operation</entry></row><row><entry /><entry>8′b01111100</entry></row><row><entry /><entry>8′b01111110</entry></row><row><entry namest="1" nameend="10" align="center" rowsep="1" /></row></tbody></tgroup></table></tables>
p-0127<tables id="TABLE-US-00003" num="00003"><table frame="none" colsep="0" rowsep="0" pgwide="1"><tgroup align="left" colsep="0" rowsep="0" cols="5"><colspec colname="offset" colwidth="56pt" align="left" /><colspec colname="1" colwidth="42pt" align="left" /><colspec colname="2" colwidth="84pt" align="center" /><colspec colname="3" colwidth="112pt" align="center" /><colspec colname="4" colwidth="147pt" align="center" /><thead><row><entry /><entry namest="offset" nameend="4" rowsep="1">TABLE 3</entry></row></thead><tbody valign="top"><row><entry /><entry namest="offset" nameend="4" align="center" rowsep="1" /></row><row><entry /><entry>Byte 0</entry><entry>Write Data</entry><entry>Read Data</entry><entry /></row></tbody></tgroup><tgroup align="left" colsep="0" rowsep="0" cols="10"><colspec colname="1" colwidth="56pt" align="left" /><colspec colname="2" colwidth="42pt" align="left" /><colspec colname="3" colwidth="28pt" align="left" /><colspec colname="4" colwidth="28pt" align="left" /><colspec colname="5" colwidth="28pt" align="left" /><colspec colname="6" colwidth="28pt" align="left" /><colspec colname="7" colwidth="28pt" align="left" /><colspec colname="8" colwidth="28pt" align="left" /><colspec colname="9" colwidth="28pt" align="left" /><colspec colname="10" colwidth="147pt" align="left" /><tbody valign="top"><row><entry>Opcode</entry><entry>Opcode[7:0]</entry><entry>Byte 1</entry><entry>Byte 2</entry><entry>Byte N</entry><entry>Byte 1</entry><entry>Byte 2</entry><entry>Byte 3</entry><entry>Byte N</entry><entry>Description</entry></row><row><entry namest="1" nameend="10" align="center" rowsep="1" /></row></tbody></tgroup><tgroup align="left" colsep="0" rowsep="0" cols="1"><colspec colname="1" colwidth="441pt" align="center" /><tbody valign="top"><row><entry>Fixed Length Opcodes (No need to deassert chip select between commands)</entry></row></tbody></tgroup><tgroup align="left" colsep="0" rowsep="0" cols="10"><colspec colname="1" colwidth="56pt" align="left" /><colspec colname="2" colwidth="42pt" align="left" /><colspec colname="3" colwidth="28pt" align="left" /><colspec colname="4" colwidth="28pt" align="left" /><colspec colname="5" colwidth="28pt" align="left" /><colspec colname="6" colwidth="28pt" align="left" /><colspec colname="7" colwidth="28pt" align="left" /><colspec colname="8" colwidth="28pt" align="left" /><colspec colname="9" colwidth="28pt" align="left" /><colspec colname="10" colwidth="147pt" align="left" /><tbody valign="top"><row><entry>B0SEL</entry><entry>8′b11000000</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>Register Bank 0 Select</entry></row><row><entry>B1SEL</entry><entry>8′b11000010</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>Register Bank 1 Select</entry></row><row><entry>B2SEL</entry><entry>8′b11000100</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>Register Bank 2 Select</entry></row><row><entry>B3SEL</entry><entry>8′b11000110</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>Register Bank 3 Select</entry></row><row><entry>RBSEL</entry><entry>8′b11001000</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>Read</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>Read Current Bank Select</entry></row><row><entry /><entry /><entry /><entry /><entry /><entry>data</entry></row><row><entry>RESET</entry><entry>8′b11001010</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>Soft Reset - Set ECFG[2]</entry></row><row><entry>FCDIS</entry><entry>8′b11100000</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>Flow Control OFF - Set ECTRL[9:8] = 00</entry></row><row><entry>FCSINGLE</entry><entry>8′b11100010</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>Flow Control SlNGLE - Set ECTRL[9:8] = 01</entry></row><row><entry>FCMULTIPLE</entry><entry>8′b11100100</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>Flow Control MULTIPLE - Set ECTRL[9:8] = 10</entry></row><row><entry>FCCLEAR</entry><entry>8′b11100110</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>Flow Control CLEAR - Set ECTRL[9:8] = 11</entry></row><row><entry>WPKTCDEC</entry><entry>8′b11001100</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>Decrement Packet Counter - Set ECTRL[7]</entry></row><row><entry>UDAEN</entry><entry>8′b11001110</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>Enable User Defined Area - Set ECTRL[6]</entry></row><row><entry>UDADIS</entry><entry>8′b11010000</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>Disable User Defined Area - Clear ECTRL[6]</entry></row><row><entry>DMASTOP</entry><entry>8′b11010010</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>Stop Current DMA Operation - Clear ECTRL[5]</entry></row><row><entry>DMACKSUM</entry><entry>8′b11011000</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>Start DMA Checksum Only Operation - Set</entry></row><row><entry /><entry /><entry /><entry /><entry /><entry /><entry /><entry /><entry /><entry>ECTRL[5:3] = 100</entry></row><row><entry>DMACKSUMU</entry><entry>8′b11011010</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>Start DMA Checksum Only Operation with User</entry></row><row><entry /><entry /><entry /><entry /><entry /><entry /><entry /><entry /><entry /><entry>Checksum Seed - Set ECTRL[5:3] = 101</entry></row><row><entry>DMACOPY</entry><entry>8′b11011100</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>Start DMA Copy Operation -</entry></row><row><entry /><entry /><entry /><entry /><entry /><entry /><entry /><entry /><entry /><entry>Set ECTRL[5:3] = 110</entry></row><row><entry>DMACOPYU</entry><entry>8′b11011110</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>Start DMA Copy Operation with User Checksum</entry></row><row><entry /><entry /><entry /><entry /><entry /><entry /><entry /><entry /><entry /><entry>Seed - Set ECTRL[5:3] = 111</entry></row><row><entry>TXSTART</entry><entry>8′b11010100</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>Start TX Transfer - Set ECTRL[1]</entry></row><row><entry>TXSTOP</entry><entry>8′b11010110</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>Stop TX Transfer - Clear ECTRL[1]</entry></row><row><entry>RXSTART</entry><entry>8′b11101000</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>Enable RX Transfer - Set ECTRL[0]</entry></row><row><entry>RXSTOP</entry><entry>8′b11101010</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>Disable RX Transfer - Clear ECTRL[0]</entry></row><row><entry>SETIRQIE</entry><entry>8′b11101100</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>Enable Interrupts - Set IRQIE[15]</entry></row><row><entry>CLRIRQIE</entry><entry>8′b11101110</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>—</entry><entry>Disable Interrupts - Clear IRQIE[15]</entry></row><row><entry namest="1" nameend="10" align="center" rowsep="1" /></row></tbody></tgroup></table></tables>
p-0128The described access scheme for registers arranged within a register bank and used to control the functionality has been explained in combination with an Ethernet controller that can be controlled through an I/O interface by an external microcontroller or processor. However, the invention is not restricted to Ethernet controllers but can be used in other types of stand alone controllers that are controlled via an I/O interface such as, for example, a SPI interface.
Contents5
5 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5
Every citation, both ways
| Document | Relation | Office | Cited during |
|---|---|---|---|
| WO0058828A1 | Cites | World Intellectual Property Organization (WIPO) | Applicant |
| US2004160972A1 | Cites | United States of America | Applicant |
| US2005013319A1 | Cites | United States of America | Applicant |
| US2005268137A1 | Cites | United States of America | Applicant |
| GB2360666A | Cites | United Kingdom | Applicant |
| US5640399A | Cites | United States of America | Search report |
| US5805927A | Cites | United States of America | Search report |
| US5963543A | Cites | United States of America | Search report |
| US6192463B1 | Cites | United States of America | Applicant |
| International Search Report and Written Opinion for Application No. PCT/US2008/084371 (13 pages), Mar. 5, 2009. | Non-patent | – | Applicant |
| International Search Report and Written Opinion for Application No. PCT/US2008/084375 (12 pages), Mar. 26, 2009. | Non-patent | – | Applicant |
| International Preliminary Report on Patentability for Application No. PCT/US2008/084375 (7 pages), Jun. 3, 2010. | Non-patent | – | Applicant |
9 members in 5 offices; this record represents the family
Priority claims2
| Document | Office | Kind | Date |
|---|---|---|---|
| 94405807 | United States of America | A | |
| US20070944058 | – | – | – |
Members9
| Document | Office | Kind | |
|---|---|---|---|
| US2009132751A1 | United States of America | A1 | |
| WO2009067677A1 | World Intellectual Property Organization (WIPO) | A1 | |
| EP2212802A1 | European Patent Office (EPO) | A1 | |
| KR20100087295A | Republic of Korea | A | |
| CN101821723A | China | A | |
| US7908458B2This record | United States of America | B2 | |
| CN101821723B | China | B | |
| EP2212802B1 | European Patent Office (EPO) | B1 | |
| KR101453865B1 | Republic of Korea | B1 |
51 transactions on the USPTO file
Allowed without a rejection on record.
- Non-final rejections
- 0
- Final rejections
- 0
- RCEs
- 0
- Appeals
- 0
Over time
Point at a mark for the transactionTransactions
| Event | Code | |
|---|---|---|
| Correspondence Address ChangeC.ADB | C.ADB | |
| Expire PatentEXP. | EXP. | |
| Maintenance Fee Reminder MailedREM. | REM. | |
| Payment of Maintenance Fee, 8th Year, Large EntityM1552 | M1552 | |
| Recordation of Patent Grant MailedPGM/ | PGM/ | |
| Patent Issue Date Used in PTA CalculationAllowedPTAC | PTAC | |
| Email NotificationEML_NTR | EML_NTR | |
| Issue Notification MailedAllowedWPIR | WPIR | |
| Dispatch to FDCD1935 | D1935 | |
| Application Is Considered Ready for IssuePILS | PILS | |
| Issue Fee Payment VerifiedN084 | N084 | |
| Issue Fee Payment ReceivedIFEE | IFEE | |
| Email NotificationEML_NTR | EML_NTR | |
| Printer Rush- No mailingTCPB | TCPB | |
| Mail Miscellaneous Communication to ApplicantMM327 | MM327 | |
| Miscellaneous Communication to Applicant - No Action CountM327 | M327 | |
| Pubs Case Remand to TCPUBTC | PUBTC | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Notice of AllowanceAllowedMN/=. | MN/=. | |
| Notice of Allowance Data Verification CompletedAllowedN/=. | N/=. | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Reference capture on IDSRCAP | RCAP | |
| Information Disclosure Statement (IDS) FiledM844 | M844 | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Ex Parte Quayle ActionA.QU | A.QU | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Ex Parte Quayle Action (PTOL - 326)MCTEQ | MCTEQ | |
| Quayle actionCTEQ | CTEQ | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Reference capture on IDSRCAP | RCAP | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| PG-Pub Issue NotificationPG-ISSUE | PG-ISSUE | |
| Change in Power of Attorney (May Include Associate POA)PA.. | PA.. | |
| Correspondence Address ChangeC.AD | C.AD | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| IFW TSS Processing by Tech Center CompleteTSSCOMP | TSSCOMP | |
| Application Dispatched from OIPEOIPE | OIPE | |
| Email NotificationEML_NTR | EML_NTR | |
| Filing ReceiptFLRCPT.O | FLRCPT.O | |
| Sent to Classification ContractorPGPC | PGPC | |
| Cleared by OIPE CSRL194 | L194 | |
| IFW Scan & PACR Auto Security ReviewSCAN | SCAN | |
| Initial Exam Team nnIEXX | IEXX |
76 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Lapsed due to failure to pay maintenance feeLapsedFP | FP | |
| Lapse for failure to pay maintenance feesLapsedPATENT EXPIRED FOR FAILURE TO PAY MAINTENANCE FEES (ORIGINAL EVENT CODE: EXP.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITYLAPS | LAPS | |
| Information on status: patent discontinuationPATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362STCH | STCH | |
| Fee payment procedureMAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITYFEPP | FEPP | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| Maintenance fee paymentMAFP | MAFP | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| Fee paymentFPAY | FPAY | |
| Information on status: patent grantGrantedPATENTED CASESTCF | STCF | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS |
Numbers
- Publication
- 07908458
- Publication, DOCDB
- 7908458
- Publication, EPODOC
- US7908458
- Application
- 11944058
- Application, DOCDB
- 94405807
- Application, EPODOC
- US20070944058
Titles
- English
- Ethernet controller
Patent term adjustment
- A delay
- +576 daysthe office missed an examination deadline
- B delay
- +114 dayspendency past three years
- Applicant delay
- −35 days
- Net adjustment
- 655 days
Classification
- CPC, 1
- G06F13/385
- IPC, 1
- G06F9 26
- USPC, 1
- 711220000