astra/am3352-sbc

A tscircuit package created by astra.

Version
0.1.28
License
unset
Stars
0

components/uart-ioff-buffer.tsx

import type { ChipProps } from "@tscircuit/props";
import { Fragment } from "react";

// Nexperia Rev.18 transparent top view: the Y channels are crossed on
// physical pins 3 and 6. Do not substitute a sequential channel pin map.
const pinLabels = {
  pin1: ["OE1n"], pin2: ["A1"], pin3: ["Y2"], pin4: ["GND"],
  pin5: ["A2"], pin6: ["Y1"], pin7: ["OE2n"], pin8: ["VCC"],
} as const;

// Actual C513290 supplier PAD scalar coordinates, rotated (not reflected)
// into the same standard top view as the primary Nexperia pin diagram.
const supplierPads = [
  { pin: 1, x: -1.900047, y: 0.975106 },
  { pin: 2, x: -1.900047, y: 0.324866 },
  { pin: 3, x: -1.900047, y: -0.32512 },
  { pin: 4, x: -1.900047, y: -0.975106 },
  { pin: 5, x: 1.900047, y: -0.975106 },
  { pin: 6, x: 1.900047, y: -0.32512 },
  { pin: 7, x: 1.900047, y: 0.324866 },
  { pin: 8, x: 1.900047, y: 0.975106 },
] as const;

/** Nexperia 74LVC2G125DP,125 / C513290, TSSOP8 SOT505-2.
 * 0.65 mm pitch; 3 × 3 mm nominal body; 3.9–4.1 mm terminal span.
 * Ioff is ±2 µA maximum at VCC = 0, VI or VO = 5.5 V, -40…125 °C.
 * Use 3.3 V UART signals; this does not protect an unpowered programmer.
 * The supplied TSSOP-8_L3.0-W3.0-P0.65-LS4.0-BL lands are copied from
 * actual C513290 EasyEDA package 1eb10117ac104e3ba97b59819102f46a. Dimensions
 * and transformed centers preserve the supplier PAD scalar values.
 * This is a supplier land pattern, not a manufacturer-recommended pattern.
 */
export function UartIoffBuffer(props: ChipProps<typeof pinLabels>) {
  return (
    <chip
      {...props}
      pinLabels={pinLabels}
      pinAttributes={{ pin4: { requiresGround: true }, pin8: { requiresPower: true } }}
      manufacturerPartNumber="74LVC2G125DP,125"
      supplierPartNumbers={{ jlcpcb: ["C513290"] }}
      footprint={
        <footprint>
          {supplierPads.map(({ pin, x, y }) => {
            return (
              <Fragment key={pin}>
                <smtpad
                  portHints={[`pin${pin}`]}
                  shape="rect"
                  pcbX={x}
                  pcbY={y}
                  width={0.999998}
                  height={0.4064}
                />
              </Fragment>
            );
          })}
          <silkscreenpath strokeWidth={0.15} route={[{ x: -1.45, y: 1.65 }, { x: 1.45, y: 1.65 }]} />
          <silkscreenpath strokeWidth={0.15} route={[{ x: -1.45, y: -1.65 }, { x: 1.45, y: -1.65 }]} />
          <silkscreencircle pcbX={-1.65} pcbY={1.6} radius={0.1} strokeWidth={0.15} />
          <silkscreentext text="{NAME}" pcbX={0} pcbY={2.55} fontSize={0.65} />
          <courtyardoutline outline={[
            { x: -2.65, y: -1.8 }, { x: 2.65, y: -1.8 },
            { x: 2.65, y: 1.8 }, { x: -2.65, y: 1.8 },
            { x: -2.65, y: -1.8 },
          ]} />
        </footprint>
      }
    />
  );
}