microchip_KSZ9031RNX module#

Microchip KSZ9031RNX Gigabit Ethernet Transceiver with RGMII#

Component definition for the KSZ9031RNX 10/100/1000 Mbps Ethernet PHY in its 48-terminal 7 mm x 7 mm QFN packages, from the KSZ9031RNX data sheet DS00002117K.

The ports carry the names of Table 2-1 (“Signals - KSZ9031RNX”). A pin with more than one function (RXD3/MODE3, LED1/PHYAD0/PME_N1) is one port under the first name the table gives it; Table 2-2 (“Strap-In Options - KSZ9031RNX”) lists the strap-in function each of those pins also carries. Names the table repeats (DVDDL, DVDDH, AVDDL, AVDDH, NC) and numbered names (TXD0 to TXD3, RXD0 to RXD3) are indexed lists, in pin-number order. The exposed paddle is P_GND.

The component carries no application circuit: the strap resistors, the 25 MHz reference clock of Table 10-1, the supply decoupling and the exposed-pad thermal vias (V and EV of Figures 13-3, 13-6 and 13-9) belong to the circuit that places it. The two NC pins (13 and 47) are not bonded and are marked no_connect().

The orderable part follows the Product Identification System page of the data sheet: temperature and package select one of its ordering examples.

Temperature#

C is 0 to +70 C, I is -40 to +85 C, U is -40 to +85 C (automotive grade 3), V is -40 to +105 C (automotive grade 2).

Type:

Temperature code of the ordering number

alias of Literal[‘C’, ‘I’, ‘U’, ‘V’]

BondWire#

A is the PVA package (3.5 mm exposed pad), B is the PUA package (5.05 mm exposed pad, wettable flanks), C is the PSA package (5.05 mm exposed pad).

Type:

Bond-wire code of the ordering number

alias of Literal[‘A’, ‘B’, ‘C’]

ORDERING_EXAMPLES: dict[tuple['C' | 'I' | 'U' | 'V', 'A' | 'B' | 'C'], str] = {('C', 'A'): 'KSZ9031RNXCA', ('C', 'C'): 'KSZ9031RNXCC', ('I', 'A'): 'KSZ9031RNXIA', ('I', 'C'): 'KSZ9031RNXIC', ('U', 'B'): 'KSZ9031RNXUB-VAO', ('V', 'B'): 'KSZ9031RNXVB-VAO'}#

The ordering examples of the Product Identification System page, tray packed. Examples f) and h) are the tape-and-reel (TR) codes of e) and g).

class QFNPackageVariant(name, terminal_width, terminal_length, exposed_pad, contact_pad_length)[source]#

Bases: object

Dimensions of one package drawing and its recommended land pattern.

Parameters:
name: str#

Package code of the drawing.

terminal_width: Toleranced#

b, terminal width.

terminal_length: Toleranced#

L, terminal length.

exposed_pad: float#

X2 and Y2, the recommended center pad width and length (maximum).

contact_pad_length: float#

Y1, the recommended contact pad length (maximum).

CONTACT_PAD_SPACING = 6.9#

C1 and C2, the recommended contact pad center-to-center spacing, in every land pattern figure (13-3, 13-6, 13-9).

CONTACT_PAD_WIDTH = 0.3#

X1, the recommended contact pad width (maximum), in every land pattern figure (13-3, 13-6, 13-9).

PITCH = 0.5#

e, the terminal pitch (BSC), in every package drawing.

BODY = Toleranced(7, 0, 0)#

D and E, the body length and width (BSC), in every package drawing.

HEIGHT = Toleranced(0.9, 0.1, 0.1)#

A, the overall height, in every package drawing.

EXPOSED_PAD_PASTE = WindowSubdivide(padding=0.25, gridShape=(2, 2))#

Paste on the exposed pad. The data sheet gives no stencil, so the pad takes a 2 x 2 grid of windows 0.25 mm apart and 0.25 mm in from the copper: 1.425 mm square windows (63% coverage) on the 3.60 mm pad and 2.225 mm square windows (73% coverage) on the 5.20 mm pad.

class RecommendedQFN(*, num_leads, contact_pad, contact_pad_spacing, pitch)[source]#

Bases: QFN

QFN generator with the contact pads of a recommended land pattern.

The generator sizes and spaces contact pads from the package’s terminal dimensions by IPC-7351. This data sheet publishes its own land pattern, so each contact pad here is contact_pad (Y1 along the lead, X1 across it), centered contact_pad_spacing (C1, C2) from the pad opposite it. The package body, numbering, exposed pad, courtyard and silkscreen still come from the generator.

Parameters:
qfn_landpattern(variant)[source]#

Build the recommended land pattern for one package variant.

Return type:

RecommendedQFN

Parameters:

variant (QFNPackageVariant)

class KSZ9031RNX(temperature='C', package='A')[source]#

Bases: Component

Microchip KSZ9031RNX gigabit Ethernet PHY with an RGMII MAC interface.

Parameters:
  • temperature ('C' | 'I' | 'U' | 'V') – Temperature code of the ordering number (Temperature).

  • package ('A' | 'B' | 'C') – Bond-wire code of the ordering number (BondWire), which selects the package drawing and land pattern.

The default, KSZ9031RNXCA, is ordering example a) of the data sheet. A combination that is not one of ORDERING_EXAMPLES raises ValueError.

manufacturer: str | None = 'Microchip Technology'#

Manufacturer for this component.

datasheet = 'https://ww1.microchip.com/downloads/aemDocuments/documents/UNG/ProductDocuments/DataSheets/KSZ9031RNX-Data-Sheet-DS00002117.pdf'#
reference_designator_prefix: str | None = 'U'#

Reference designator prefix for this component. This will be used to generate a unique reference designator for each component of the same type.

Note

This field is a required data point for matching components between builds. If this value changes (including changing from unset to set), it will be treated as a new component, even if nothing else changes.

TXRXP_A = Port()#
TXRXM_A = Port()#
TXRXP_B = Port()#
TXRXM_B = Port()#
TXRXP_C = Port()#
TXRXM_C = Port()#
TXRXP_D = Port()#
TXRXM_D = Port()#
GTX_CLK = Port()#

Pin 24, the RGMII TXC (transmit reference clock) input.

TX_EN = Port()#

Pin 25, the RGMII TX_CTL (transmit control) input.

TXD = [Port(), Port(), Port(), Port()]#

TXD0 to TXD3, pins 19 to 22.

RX_CLK = Port()#

RX_CLK/PHYAD2, pin 35, the RGMII RXC (receive reference clock) output.

RX_DV = Port()#

RX_DV/CLK125_EN, pin 33, the RGMII RX_CTL (receive control) output.

RXD = [Port(), Port(), Port(), Port()]#

RXD0/MODE0 to RXD3/MODE3, pins 32, 31, 28 and 27.

MDC = Port()#
MDIO = Port()#
LED1 = Port()#

LED1/PHYAD0/PME_N1, pin 17.

LED2 = Port()#

LED2/PHYAD1, pin 15.

INT_N = Port()#

INT_N/PME_N2, pin 38.

CLK125_NDO = Port()#

CLK125_NDO/LED_MODE, pin 41.

RESET_N = Port()#
XI = Port()#
XO = Port()#
ISET = Port()#
AVDDH = [Port(), Port()]#

Pins 1 and 12.

AVDDL = [Port(), Port()]#

Pins 4 and 9.

AVDDL_PLL = Port()#
DVDDL = [Port(), Port(), Port(), Port(), Port(), Port()]#

Pins 14, 18, 23, 26, 30 and 39.

DVDDH = [Port(), Port(), Port()]#

Pins 16, 34 and 40.

LDO_O = Port()#
VSS = Port()#
P_GND = Port()#

Exposed paddle on the bottom of the package.

NC = [Port(), Port()]#

Pins 13 and 47, not bonded.

Device#

alias of KSZ9031RNX