0hmX/ov7670-camera-module
This code defines the hardware layout and schematic connectivity for an OV7676 camera module featuring a CSP5 sensor package, power regulation, and interface connectors.
- Version
- 1.2.0
- License
- unset
- Stars
- 0
imports/OV7676_CSP5.tsx
import type { ChipProps } from "@tscircuit/props"
import { Fragment } from "react"
/** Bare OmniVision OV7676, 20-ball CSP5 package. */
const pinLabels = {
pin1: ["XVCLK", "A1"],
pin2: ["XSHUTDOWN", "A2"],
pin3: ["VN", "A3"],
pin4: ["AVDD", "A4"],
pin5: ["AGND", "A5"],
pin6: ["HREF", "B1"],
pin7: ["VSYNC", "FSIN", "B2"],
pin8: ["DOVDD", "B3"],
pin9: ["DOGND", "B4"],
pin10: ["D5", "SPI3", "B5"],
pin11: ["SIOD", "C1"],
pin12: ["D0", "SPIVIV0", "C2"],
pin13: ["D2", "SPI0", "C3"],
pin14: ["D3", "SPI1", "C4"],
pin15: ["D6", "C5"],
pin16: ["SIOC", "D1_BALL"],
pin17: ["PCLK", "SPCLK", "D2_BALL"],
pin18: ["D1", "SPIVIV1", "D3_BALL"],
pin19: ["D4", "SPI2", "D4_BALL"],
pin20: ["D7", "D5_BALL"],
}
// Manufacturer dimensions: 0.520 mm column and 0.480 mm row pitch.
const columns = [-1.04, -0.52, 0, 0.52, 1.04]
const rows = [0.72, 0.24, -0.24, -0.72]
export const OV7676_CSP5 = (props: ChipProps) => (
<chip
pinLabels={pinLabels}
manufacturerPartNumber="OV07676-H20A"
supplierPartNumbers={{ jlcpcb: ["C17317227"] }}
datasheetUrl="https://www.omnivision-group.com/files/pd/file/OV7676-PB-v1.5-WEB.pdf"
footprint={
<footprint>
{rows.flatMap((pcbY, rowIndex) =>
columns.map((pcbX, columnIndex) => {
const pin = rowIndex * 5 + columnIndex + 1
return (
<Fragment key={`ball-${pin}`}>
<smtpad
portHints={[`pin${pin}`]}
pcbX={pcbX}
pcbY={pcbY}
shape="circle"
radius="0.125mm"
/>
</Fragment>
)
}),
)}
<courtyardoutline
outline={[
{ x: -1.6, y: 1.45 },
{ x: 1.6, y: 1.45 },
{ x: 1.6, y: -1.45 },
{ x: -1.6, y: -1.45 },
{ x: -1.6, y: 1.45 },
]}
/>
<silkscreenpath
route={[
{ x: -1.6, y: 1.1 },
{ x: -1.6, y: 1.45 },
{ x: -1.25, y: 1.45 },
]}
strokeWidth="0.15mm"
/>
<silkscreencircle
pcbX={-1.75}
pcbY={1.55}
radius="0.16mm"
strokeWidth="0.12mm"
/>
</footprint>
}
{...props}
/>
)