gokul/usb3-sd-hub
Engineering draft: four-layer, computer-powered USB 3 hub with one USB-C host socket, two USB-C and two USB-A accessory sockets, and a full-size SD slot. Board and three schematic previews are available. Routing and production checks are incomplete; not fabrication ready.
- Version
- 0.1.4
- License
- unset
- Stars
- 0
sheets/HostAndPower.tsx
import { SchematicNote } from "../components/SchematicNote";
import { HubBypass } from "../components/Decoupling";
import { placementFor } from "../design/placement";
import { Coilcraft4020 } from "../components/ComponentFootprints";
import { UsbCReceptacle } from "../imports/UsbCReceptacle";
import { HD3SS3220RNHR } from "../imports/HD3SS3220RNHR";
import { TPS62160DSGR } from "../imports/TPS62160DSGR";
import { TPS2553DBVR } from "../imports/TPS2553DBVR";
import { SN74LVC2G04DBVR } from "../imports/SN74LVC2G04DBVR";
import { usbCPinLabels } from "../design/pinouts";
import { muxConnections, usbCConnections } from "../design/connections";
import { hubPowerPinLabels } from "../components/Controllers";
import { Passives, Indicator, type PassiveSpec } from "../components/Passives";
import { EsdBank } from "../components/EsdBank";
const parts: PassiveSpec[] = [
{
name: "C_HOST",
kind: "capacitor",
rating: "4.7uF",
footprint: "0603",
pcbX: -32,
pcbY: 20,
from: "VBUS_HOST",
to: "GND",
},
{
name: "C_VBUS",
kind: "capacitor",
rating: "10uF",
footprint: "0805",
pcbX: -28,
pcbY: 24,
from: "VBUS_HUB",
to: "GND",
},
{
name: "R_ILIM_BASE",
kind: "resistor",
rating: "22.1k",
pcbX: -27,
pcbY: 16,
from: "INPUT_ILIM_BASE",
to: "GND",
},
{
name: "R_ILIM_MID",
kind: "resistor",
rating: "16.9k",
pcbX: -29,
pcbY: 16,
from: "INPUT_ILIM_MID",
to: "INPUT_ILIM_BASE",
},
{
name: "R_ILIM_LOW",
kind: "resistor",
rating: "20k",
pcbX: -31,
pcbY: 16,
from: "INPUT_ILIM",
to: "INPUT_ILIM_MID",
},
{
name: "R_INPUT_FAULT",
kind: "resistor",
rating: "10k",
pcbX: -33,
pcbY: 16,
from: "VBUS_HOST",
to: "INPUT_FAULT_N",
},
{
name: "R_HOST_SPEED",
kind: "resistor",
rating: "200k",
pcbX: -22,
pcbY: 25,
from: "VDD33",
to: "HUB_HOST_TYPE0",
},
{
name: "R_HOST_CURRENT",
kind: "resistor",
rating: "200k",
pcbX: -22,
pcbY: 23.5,
from: "VDD33",
to: "HOST_CURRENT_GE_1A5_N",
},
{
name: "R_HOST_CURRENT3",
kind: "resistor",
rating: "200k",
pcbX: -22,
pcbY: 22,
from: "VDD33",
to: "HOST_CURRENT_3A_N",
},
{
name: "R_HOST_DIR",
kind: "resistor",
rating: "200k",
pcbX: -25,
pcbY: 10,
from: "VDD33",
to: "UP_DIR",
},
{
name: "R_UP_VSENSE",
kind: "resistor",
rating: "887k",
pcbX: -29,
pcbY: 10,
from: "VBUS_HOST",
to: "UP_VBUS_SENSE",
},
{
name: "C_UP_33",
kind: "capacitor",
rating: "100nF",
pcbX: -28,
pcbY: 7.5,
from: "VDD33",
to: "GND",
},
{
name: "C_UP_5",
kind: "capacitor",
rating: "100nF",
pcbX: -30,
pcbY: 7.5,
from: "VBUS_HOST",
to: "GND",
},
{
name: "C_UP_TXP",
kind: "capacitor",
rating: "100nF",
pcbX: -14,
pcbY: 10,
from: "UP_TXP",
to: "UP_TXP_AC",
},
{
name: "C_UP_TXN",
kind: "capacitor",
rating: "100nF",
pcbX: -14,
pcbY: 8.5,
from: "UP_TXN",
to: "UP_TXN_AC",
},
{
name: "C_CORE_IN",
kind: "capacitor",
rating: "10uF",
footprint: "0805",
pcbX: -28,
pcbY: 30,
from: "VBUS_HUB",
to: "GND",
},
{
name: "L_CORE",
kind: "inductor",
rating: "2.2uH",
footprint: <Coilcraft4020 />,
manufacturerPartNumber: "XFL4020-222MEC",
pcbX: -20,
pcbY: 29,
from: "CORE_SW",
to: "VDD12",
},
{
name: "C_CORE_OUT",
kind: "capacitor",
rating: "22uF",
footprint: "0805",
pcbX: -16,
pcbY: 29,
from: "VDD12",
to: "GND",
},
{
name: "R_CORE_FB1",
kind: "resistor",
rating: "100k",
pcbX: -22,
pcbY: 27,
from: "VDD12",
to: "CORE_FB",
},
{
name: "R_CORE_FB2",
kind: "resistor",
rating: "200k",
pcbX: -24,
pcbY: 27,
from: "CORE_FB",
to: "GND",
},
{
name: "R_CORE_PG",
kind: "resistor",
rating: "100k",
pcbX: -26,
pcbY: 27,
from: "VBUS_HUB",
to: "CORE_PG",
},
{
name: "C_33_IN",
kind: "capacitor",
rating: "10uF",
footprint: "0805",
pcbX: -14,
pcbY: 24,
from: "VBUS_HUB",
to: "GND",
},
{
name: "L_33",
kind: "inductor",
rating: "2.2uH",
footprint: <Coilcraft4020 />,
manufacturerPartNumber: "XFL4020-222MEC",
pcbX: -6,
pcbY: 26,
from: "VDD33_SW",
to: "VDD33",
},
{
name: "C_33_OUT",
kind: "capacitor",
rating: "22uF",
footprint: "0805",
pcbX: -2,
pcbY: 26,
from: "VDD33",
to: "GND",
},
{
name: "R_33_FB1",
kind: "resistor",
rating: "316k",
pcbX: -8,
pcbY: 23,
from: "VDD33",
to: "VDD33_FB",
},
{
name: "R_33_FB2",
kind: "resistor",
rating: "100k",
pcbX: -10,
pcbY: 23,
from: "VDD33_FB",
to: "GND",
},
{
name: "R_RESET",
kind: "resistor",
rating: "10k",
pcbX: -12,
pcbY: 19,
from: "VDD33",
to: "RESET_N",
},
{
name: "C_RESET",
kind: "capacitor",
rating: "100nF",
pcbX: -14,
pcbY: 19,
from: "VDD33",
to: "GND",
},
{
name: "R_HUB_BIAS",
kind: "resistor",
rating: "12k",
pcbX: -10,
pcbY: 13,
from: "HUB_RBIAS",
to: "GND",
},
{
name: "R_HUB_CFG",
kind: "resistor",
rating: "200k",
pcbX: -11,
pcbY: 6,
from: "HUB_CFG",
to: "GND",
},
{
name: "R_BC_DISABLE",
kind: "resistor",
rating: "200k",
pcbX: 10,
pcbY: 6,
from: "HUB_SPI_MISO",
to: "GND",
},
{
name: "R_NON_REM",
kind: "resistor",
rating: "200k",
pcbX: 10,
pcbY: 4.5,
from: "HUB_SPI_CS",
to: "GND",
},
{
name: "R_SMB_SDA",
kind: "resistor",
rating: "10k",
pcbX: 10,
pcbY: 3,
from: "VDD33",
to: "HUB_SMBDATA",
},
{
name: "R_SMB_SCL",
kind: "resistor",
rating: "10k",
pcbX: 10,
pcbY: 1.5,
from: "VDD33",
to: "HUB_SMBCLK",
},
{
name: "R_VBUS_DET1",
kind: "resistor",
rating: "100k",
pcbX: -11,
pcbY: 4.5,
from: "VBUS_HOST",
to: "HOST_VBUS_DET",
},
{
name: "R_VBUS_DET2",
kind: "resistor",
rating: "200k",
pcbX: -11,
pcbY: 3,
from: "HOST_VBUS_DET",
to: "GND",
},
{
name: "C_HUB_X1",
kind: "capacitor",
rating: "18pF",
pcbX: -15,
pcbY: 14,
from: "HUB_XTALI",
to: "GND",
},
{
name: "C_HUB_X2",
kind: "capacitor",
rating: "18pF",
pcbX: -19,
pcbY: 14,
from: "HUB_XTALO",
to: "GND",
},
{
name: "C_POWER_LOGIC",
kind: "capacitor",
rating: "100nF",
pcbX: -18,
pcbY: 21,
from: "VDD33",
to: "GND",
},
];
export const HostAndPower = () => (
<schematicsheet
name="Host and Power"
sheetIndex={0}
sheetWidth="841mm"
sheetHeight="594mm"
>
<group
pcbAnchorAlignment="center"
pcbX="0mm"
pcbY="0mm"
pcbLayout={{ layoutMode: "none" }}
schAutoLayoutEnabled
>
<group
pcbAnchorAlignment="center"
pcbX="0mm"
pcbY="0mm"
pcbLayout={{ layoutMode: "none" }}
schTitle="USB-C host, 5 Gbps; host-powered, no host charging"
schGrid
gridCols={3}
gridGap={5}
>
<UsbCReceptacle
name="J_HOST"
manufacturerPartNumber="12401548E4#2A"
pcbX={-38}
pcbY={19}
pcbRotation={-90}
pinLabels={usbCPinLabels}
connections={usbCConnections({ prefix: "UP", vbus: "VBUS_HOST" })}
/>
<HD3SS3220RNHR
name="U_UP_MUX"
pcbX={-25}
pcbY={11}
connections={muxConnections({
prefix: "UP",
source: "UP",
upstream: true,
vbus: "VBUS_HOST",
})}
/>
<TPS2553DBVR
name="U_INPUT_LIMIT"
pcbX={-29}
pcbY={20}
connections={{
IN: "net.VBUS_HOST",
GND: "net.GND",
EN: "net.VBUS_HOST",
FAULT: "net.INPUT_FAULT_N",
ILIM: "net.INPUT_ILIM",
OUT: "net.VBUS_HUB",
}}
/>
<SN74LVC2G04DBVR
name="U_POWER_LOGIC"
pcbX={-18}
pcbY={24}
connections={{
pin1: "net.HUB_HOST_TYPE0",
pin2: "net.GND",
pin3: "net.HOST_CURRENT_GE_1A5_N",
pin4: "net.HIGH_CURRENT",
pin5: "net.VDD33",
pin6: "net.SS_HOST",
}}
/>
<chip
name="Q_ILIM_SS"
pinLabels={{ pin1: "gate", pin2: "source", pin3: "drain" }}
pinAttributes={{
pin1: { mustBeConnected: true },
pin2: { mustBeConnected: true },
pin3: { mustBeConnected: true },
}}
footprint="sot23"
manufacturerPartNumber="2N7002-7-F"
pcbX={-34}
pcbY={25}
connections={{
gate: "net.SS_HOST",
source: "net.INPUT_ILIM_MID",
drain: "net.INPUT_ILIM",
}}
{...placementFor("Q_ILIM_SS")}
>
<SchematicNote
text={
"N-channel MOSFET; 60 V VDS\nILIM bypass; physical pins G1 S2 D3"
}
/>
</chip>
<chip
name="Q_ILIM_CC"
pinLabels={{ pin1: "gate", pin2: "source", pin3: "drain" }}
pinAttributes={{
pin1: { mustBeConnected: true },
pin2: { mustBeConnected: true },
pin3: { mustBeConnected: true },
}}
footprint="sot23"
manufacturerPartNumber="2N7002-7-F"
pcbX={-34}
pcbY={29}
connections={{
gate: "net.HIGH_CURRENT",
source: "net.INPUT_ILIM_BASE",
drain: "net.INPUT_ILIM",
}}
{...placementFor("Q_ILIM_CC")}
>
<SchematicNote
text={
"N-channel MOSFET; 60 V VDS\nILIM bypass; physical pins G1 S2 D3"
}
/>
</chip>
</group>
<group
pcbAnchorAlignment="center"
pcbX="0mm"
pcbY="0mm"
pcbLayout={{ layoutMode: "none" }}
schTitle="Sequenced 1.2 V / 3.3 V supplies; 1 A each"
schGrid
gridCols={3}
gridGap={5}
>
<TPS62160DSGR
name="U_CORE_REG"
pcbX={-24}
pcbY={30}
connections={{
VIN: "net.VBUS_HUB",
EN: "net.VBUS_HUB",
PGND: "net.GND",
AGND: "net.GND",
PAD: "net.GND",
FB: "net.CORE_FB",
VOS: "net.VDD12",
SW: "net.CORE_SW",
PG: "net.CORE_PG",
}}
/>
<TPS62160DSGR
name="U_33_REG"
pcbX={-10}
pcbY={26}
connections={{
VIN: "net.VBUS_HUB",
EN: "net.CORE_PG",
PGND: "net.GND",
AGND: "net.GND",
PAD: "net.GND",
FB: "net.VDD33_FB",
VOS: "net.VDD33",
SW: "net.VDD33_SW",
}}
/>
<chip
name="U_RESET"
manufacturerPartNumber="TLV803EA29DBZR"
footprint="sot23"
pcbX={-12}
pcbY={16}
pinLabels={{ pin1: "GND", pin2: "RESET_N", pin3: "VDD" }}
pinAttributes={{
pin1: { requiresGround: true },
pin3: { requiresPower: true, requiresVoltage: "3.3V" },
}}
connections={{
GND: "net.GND",
RESET_N: "net.RESET_N",
VDD: "net.VDD33",
}}
{...placementFor("U_RESET")}
>
<SchematicNote
text={"Supply supervisor\n2.9 V threshold; active-low reset"}
/>
</chip>
<crystal
name="Y_HUB"
pinVariant="four_pin"
frequency="25MHz"
loadCapacitance="12pF"
footprint="crystal_w3.2mm_h2.5mm_4pin"
manufacturerPartNumber="ABM8-25.000MHZ-12-1-U-T"
pcbX={-17}
pcbY={11}
connections={{
pin1: "net.HUB_XTALI",
pin2: "net.GND",
pin3: "net.HUB_XTALO",
pin4: "net.GND",
}}
{...placementFor("Y_HUB")}
/>
<schematicbox
name="HUB_POWER"
chipRef=".U_HUB"
width={6}
height={4.9}
title="USB5816C power, clock and configuration"
pinLabels={hubPowerPinLabels}
/>
<SchematicNote
chipName="HUB_POWER"
text={"USB5816C power / configuration\n1.2 V core; 3.3 V I/O; 25 MHz"}
/>
<chip
name="U_HUB_FLASH"
manufacturerPartNumber="W25Q16JVSSIQ"
footprint="soic8"
pcbX={15}
pcbY={5}
pinAttributes={{
pin4: { requiresGround: true },
pin8: {
requiresPower: true,
requiresVoltage: "3.3V",
requiredVoltageTolerance: "10%",
},
}}
pinLabels={{
pin1: "CS",
pin2: "DO",
pin3: "WP",
pin4: "GND",
pin5: "DI",
pin6: "CLK",
pin7: "HOLD",
pin8: "VCC",
}}
connections={{
CS: "net.HUB_SPI_CS",
DO: "net.HUB_SPI_MISO",
WP: "net.VDD33",
GND: "net.GND",
DI: "net.HUB_SPI_MOSI",
CLK: "net.HUB_SPI_CLK",
HOLD: "net.VDD33",
VCC: "net.VDD33",
}}
{...placementFor("U_HUB_FLASH")}
>
<SchematicNote
text={"SPI configuration storage\n16 Mbit; 2.7–3.6 V supply"}
/>
</chip>
</group>
<Passives parts={parts} />
<HubBypass />
<EsdBank
prefix="HOST"
signals={[
"UP_DP",
"UP_DM",
"UP_TX1P",
"UP_TX1N",
"UP_RX1P",
"UP_RX1N",
"UP_TX2P",
"UP_TX2N",
"UP_RX2P",
"UP_RX2N",
"UP_CC1",
"UP_CC2",
]}
pcbX={-34}
pcbY={12}
vertical
/>
<Indicator name="LED_POWER" net="VDD33" pcbX={-24} pcbY={3} />
</group>
</schematicsheet>
);