shibosoftwaredev/f1c100s-linux-nema17-stepper-controller

A four-layer NEMA 17 motor-controller PCB combining an Allwinner F1C100S Linux computer, USB‑PD/buck power system, W5500 Ethernet, STM32 real-time motion control, DRV8825 stepper driver, protection/temperature/current telemetry, USB interfaces, and local LED/buzzer diagnostics.

Version
0.4.56
License
unset
Stars
0

software-current.tsx

import { MCP4725A0T_E_CH } from "./imports/MCP4725A0T_E_CH"

/** A0=0: 0x60, distinct from the TMP102 at 0x48. Never write EEPROM.
 * The existing 9.1k/2k divider and 0.30-ohm regulation shunts retain the
 * approximately 0.396 A nominal full-scale ceiling at VDDA=3.3 V.
 * DAC EEPROM power-up contents are NOT a safety default: hardware RESET/SLEEP
 * pulldowns keep the bridge off until firmware writes and verifies the DAC.
 */
export function SoftwareCurrent() {
  return <group name="SOFTWARE_CURRENT" pcbX={0} pcbY={0} schSheetName="motor_stage">
    <MCP4725A0T_E_CH name="U_CURRENT_DAC" layer="bottom"
      pcbX={-0.75} pcbY={-14.25} pcbRotation={90} schX={-10.5} schY={-5.8}
      schWidth={1.05} schHeight={1.4}
      schPinArrangement={{leftSide:[5,4],rightSide:[1],topSide:[3],bottomSide:[2,6]}} />
    <capacitor name="C_CURRENT_DAC" layer="bottom" capacitance="100nF"
      maxVoltageRating={10} footprint="0201" pcbX={-3.65} pcbY={-14.6}
      manufacturerPartNumber="CL03A104KP3NNNC"
      supplierPartNumbers={{jlcpcb:["C49062"]}}
      schX={-12.5} schY={-3.5} schOrientation="vertical" />
    <trace name="CURRENT_DAC_SUPPLY" from=".U_CURRENT_DAC > .VDD" to=".C_CURRENT_DAC > .pin1" thickness={0.15} maxLength={4} />
    {/* Same 3.3 V regulator, immediately upstream of the motion MCU's fitted
        zero-ohm star link. Its low-current local feed avoids a long antenna. */}
    <trace name="CURRENT_DAC_VDDA" from=".C_CURRENT_DAC > .pin1" to=".C_U_2V5_IN > .pin1" thickness={0.15} maxLength={6} />
    <trace name="CURRENT_DAC_GROUND" from=".U_CURRENT_DAC > .VSS" to="net.BOARD_GND" thickness={0.15} />
    <trace name="CURRENT_DAC_BYPASS_GROUND" from=".C_CURRENT_DAC > .pin2" to=".U_CURRENT_DAC > .VSS" thickness={0.15} maxLength={4} />
    <trace name="CURRENT_DAC_ADDRESS" from=".U_CURRENT_DAC > .A0" to=".U_CURRENT_DAC > .VSS" thickness={0.15} />
    <trace name="CURRENT_DAC_SCL" from=".U_CURRENT_DAC > .SCL" to="net.MOTION_I2C_SCL" thickness={0.12} />
    <trace name="CURRENT_DAC_SDA" from=".U_CURRENT_DAC > .SDA" to="net.MOTION_I2C_SDA" thickness={0.12} />
  </group>
}