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
/>
)