0hmX/robocraze-ov7670-camera-module-clone

This code defines and generates a 4-layer PCB hardware layout featuring an OV7670 VGA camera sensor module with fixed component placement, power regulation using ME6211 voltage regulators, a 2x9 header interface, and associated signal routing and mechanical footprints, designed for manufacturing and assembly.

Version
1.0.7
License
MIT
Stars
0

components/OV7670Sensor.tsx

import type { ChipProps } from "@tscircuit/props"
import { OV7670CameraAssemblyFootprint } from "../footprints/OV7670CSP2Footprint"

export const ov7670PinLabels = {
  pin1: ["AVDD", "A1"],
  pin2: ["SIO_D", "A2"],
  pin3: ["SIO_C", "A3"],
  pin4: ["D1", "A4"],
  pin5: ["D3", "A5"],
  pin6: ["PWDN", "B1"],
  pin7: ["VREF2", "B2"],
  pin8: ["AGND", "B3"],
  pin9: ["D0", "B4"],
  pin10: ["D2", "B5"],
  pin11: ["DVDD", "C1"],
  pin12: ["VREF1", "C2"],
  pin13: ["VSYNC", "D1_BALL"],
  pin14: ["HREF", "D2_BALL"],
  pin15: ["PCLK", "E1"],
  pin16: ["STROBE", "E2"],
  pin17: ["XCLK", "E3"],
  pin18: ["D7", "E4"],
  pin19: ["D5", "E5"],
  pin20: ["DOVDD", "F1"],
  pin21: ["RESET_N", "RESET", "F2"],
  pin22: ["DOGND", "F3"],
  pin23: ["D6", "F4"],
  pin24: ["D4", "F5"],
} as const

const ov7670PinAttributes = {
  AVDD: { requiresPower: true, requiresVoltage: "2.8V" },
  DOVDD: { requiresPower: true, requiresVoltage: "2.8V" },
  DVDD: { requiresPower: true, requiresVoltage: "1.8V" },
  AGND: { requiresGround: true },
  DOGND: { requiresGround: true },
  SIO_C: { capabilities: ["i2c_scl"], needsExternalPullup: true },
  SIO_D: { capabilities: ["i2c_sda"], needsExternalPullup: true },
} as ChipProps<typeof ov7670PinLabels>["pinAttributes"]

export const OV7670Sensor = (
  props: ChipProps<typeof ov7670PinLabels>,
) => (
  <chip
    {...props}
    pinLabels={ov7670PinLabels}
    pinAttributes={ov7670PinAttributes}
    manufacturerPartNumber="OV7670-VL2A"
    datasheetUrl="https://web.mit.edu/6.111/www/f2015/tools/OV7670_2006.pdf"
    footprint={<OV7670CameraAssemblyFootprint />}
    doNotPlace
  />
)