component
AT89C4051-12PU
Public Made by Adomby adom
Microchip Tech Pre-ordered MCUs, PDIP-20. Pinout cross-checked by two models against the datasheet, KiCad symbol/footprint/3D.
← Commit history
Publish 0.1.1
5 files changed
+743−635
README.md+42−41@@ -8,26 +8,26 @@ AT89C4051-12PU from Microchip Tech, in a PDIP-20. Pinout and pin descriptions ex | Pin | Name | Type | Function | |---|---|---|---|-| 1 | RST/VPP | input | Reset input: all I/O pins reset to 1s when RST goes high, and holding it high for two machine cycles while the oscillator runs resets the device; also receives 12V (11.5V to 12.5V) programming enable voltage VPP. |-| 2 | P3.0 (RXD) | bidirectional | Port 3 bi-directional I/O pin with internal pullup, sinks 20 mA, alternate function RXD (serial input port). |-| 3 | P3.1 (TXD) | bidirectional | Port 3 bi-directional I/O pin with internal pullup, sinks 20 mA, alternate function TXD (serial output port); also RDY/BSY output during Flash programming. |-| 4 | XTAL2 | output | Output from the inverting oscillator amplifier; left unconnected when XTAL1 is driven by an external clock. |-| 5 | XTAL1 | input | Input to the inverting oscillator amplifier and to the internal clock operating circuit; also advances the internal address counter during Flash programming. |-| 6 | P3.2 (INT0) | bidirectional | Port 3 bi-directional I/O pin with internal pullup, sinks 20 mA, alternate function INT0 (external interrupt 0); serves as PROG pulse input during Flash programming. |-| 7 | P3.3 (INT1) | bidirectional | Port 3 bi-directional I/O pin with internal pullup, sinks 20 mA, alternate function INT1 (external interrupt 1). |-| 8 | P3.4 (T0) | bidirectional | Port 3 bi-directional I/O pin with internal pullup, sinks 20 mA, alternate function T0 (timer 0 external input). |-| 9 | P3.5 (T1) | bidirectional | Port 3 bi-directional I/O pin with internal pullup, sinks 20 mA, alternate function T1 (timer 1 external input). |-| 10 | GND | power_in | Ground. |-| 11 | P3.7 | bidirectional | Port 3 bi-directional I/O pin with internal pullup that sinks 20 mA; also receives control signals for Flash programming and verification. |-| 12 | P1.0 (AIN0) | bidirectional | Port 1 I/O pin requiring an external pullup, sinks 20 mA, serves as positive input AIN0 of the on-chip analog comparator. |-| 13 | P1.1 (AIN1) | bidirectional | Port 1 I/O pin requiring an external pullup, sinks 20 mA, serves as negative input AIN1 of the on-chip analog comparator. |-| 14 | P1.2 | bidirectional | Port 1 bi-directional I/O pin with internal pullup that sinks 20 mA and can drive LEDs directly. |-| 15 | P1.3 | bidirectional | Port 1 bi-directional I/O pin with internal pullup that sinks 20 mA and can drive LEDs directly. |-| 16 | P1.4 | bidirectional | Port 1 bi-directional I/O pin with internal pullup that sinks 20 mA and can drive LEDs directly. |-| 17 | P1.5 | bidirectional | Port 1 bi-directional I/O pin with internal pullup that sinks 20 mA and can drive LEDs directly. |-| 18 | P1.6 | bidirectional | Port 1 bi-directional I/O pin with internal pullup that sinks 20 mA and can drive LEDs directly. |-| 19 | P1.7 | bidirectional | Port 1 bi-directional I/O pin with internal pullup that sinks 20 mA and can drive LEDs directly. |-| 20 | VCC | power_in | Supply voltage, 2.7V to 6.0V for the 12 MHz part. |+| 1 | RST/VPP | input | Reset input: holding RST high for two machine cycles while the oscillator runs resets the device, and it is raised to 12V to enable Flash programming. |+| 2 | P3.0 (RXD) | bidirectional | Port 3 bidirectional I/O pin with internal pullup that serves as the serial input port RXD. |+| 3 | P3.1 (TXD) | bidirectional | Port 3 bidirectional I/O pin with internal pullup that serves as the serial output port TXD, and is pulled low to indicate BUSY during programming. |+| 4 | XTAL2 | output | Output from the inverting oscillator amplifier, left unconnected when XTAL1 is driven by an external clock. |+| 5 | XTAL1 | input | Input to the inverting oscillator amplifier and to the internal clock operating circuit. |+| 6 | P3.2 (INT0) | bidirectional | Port 3 bidirectional I/O pin with internal pullup that serves as external interrupt 0 and is pulsed to program a byte during Flash programming. |+| 7 | P3.3 (INT1) | bidirectional | Port 3 bidirectional I/O pin with internal pullup that serves as external interrupt 1 and is used for programming control. |+| 8 | P3.4 (T0) | bidirectional | Port 3 bidirectional I/O pin with internal pullup that serves as the external input to timer 0 and is used for programming control. |+| 9 | P3.5 (T1) | bidirectional | Port 3 bidirectional I/O pin with internal pullup that serves as the external input to timer 1 and is used for programming control. |+| 10 | GND | power_in | Ground reference for the device. |+| 11 | P3.7 | bidirectional | Port 3 bidirectional I/O pin with internal pullup that is also used for Flash programming and verification control. |+| 12 | P1.0 (AIN0) | bidirectional | Port 1 bidirectional I/O pin that requires an external pullup, sinks up to 20 mA, and serves as the positive input of the on-chip analog comparator. |+| 13 | P1.1 (AIN1) | bidirectional | Port 1 bidirectional I/O pin that requires an external pullup, sinks up to 20 mA, and serves as the negative input of the on-chip analog comparator. |+| 14 | P1.2 | bidirectional | Port 1 bidirectional I/O pin with internal pullup whose output buffer can sink 20 mA and drive LED displays directly. |+| 15 | P1.3 | bidirectional | Port 1 bidirectional I/O pin with internal pullup whose output buffer can sink 20 mA and drive LED displays directly. |+| 16 | P1.4 | bidirectional | Port 1 bidirectional I/O pin with internal pullup whose output buffer can sink 20 mA and drive LED displays directly. |+| 17 | P1.5 | bidirectional | Port 1 bidirectional I/O pin with internal pullup whose output buffer can sink 20 mA and drive LED displays directly. |+| 18 | P1.6 | bidirectional | Port 1 bidirectional I/O pin with internal pullup whose output buffer can sink 20 mA and drive LED displays directly. |+| 19 | P1.7 | bidirectional | Port 1 bidirectional I/O pin with internal pullup whose output buffer can sink 20 mA and drive LED displays directly. |+| 20 | VCC | power_in | Supply voltage, specified for operation from 2.7V to 6.0V for the AT89C4051-12PU. | ## Key specifications @@ -44,9 +44,9 @@ Limits as printed in the datasheet (page.json `metadata.characteristics` carries | Parameter | Symbol | Min | Typ | Max | Unit | Conditions | Page | |---|---|---|---|---|---|---|---|-| Input Low-voltage | VIL | -0.5 | | | V | | 12 | | Output Low-voltage (Ports 1, 3) | VOL | | | 0.5 | V | IOL = 10 mA, VCC = 2.7V | 12 | | Output High-voltage (Ports 1, 3) | VOH | 2.4 | | | V | IOH = -80 µA, VCC = 5V ± 10% | 12 |+| Input Low-voltage | VIL | -0.5 | | | V | | 12 | | Logical 0 Input Current (Ports 1, 3) | IIL | | | -50 | µA | VIN = 0.45V | 12 | | Logical 1 to 0 Transition Current (Ports 1, 3) | ITL | | | -750 | µA | VIN = 2V, VCC = 5V ± 10% | 12 | | Input Leakage Current (Port P1.0, P1.1) | ILI | -10 | | 10 | µA | 0 < VIN < VCC | 12 |@@ -54,22 +54,12 @@ Limits as printed in the datasheet (page.json `metadata.characteristics` carries | Comparator Input Common Mode Voltage | VCM | 0 | | | V | | 12 | | Reset Pulldown Resistor | RRST | 50 | | 300 | KΩ | | 12 | | Pin Capacitance | CIO | | | 10 | pF | Test Freq. = 1 MHz, TA = 25°C | 12 |-| Power Supply Current Active Mode | ICC | | | 15 | mA | Active Mode, 12 MHz, VCC = 6V | 12 |-| Power Supply Current Active Mode | ICC | | | 5.5 | mA | Active Mode, 12 MHz, VCC = 3V | 12 |-| Power Supply Current Idle Mode | ICC | | | 5 | mA | Idle Mode, 12 MHz, VCC = 6V, P1.0 & P1.1 = 0V or VCC | 12 |-| Power Supply Current Idle Mode | ICC | | | 1 | mA | Idle Mode, 12 MHz, VCC = 3V, P1.0 & P1.1 = 0V or VCC | 12 |-| Power Supply Current Power-down Mode | ICC | | | 20 | µA | VCC = 6V, P1.0 & P1.1 = 0V or VCC | 12 |-| Power Supply Current Power-down Mode | ICC | | | 5 | µA | VCC = 3V, P1.0 & P1.1 = 0V or VCC | 12 |-| Brown-out Detection Threshold | | | 2.1 | | V | Nominal brown-out detection threshold | 7 |-| Brown-out Detection Threshold Tolerance | | -10 | | 10 | % | Brown-out detection threshold 2.1V +/-10% | 7 |-| Minimum VCC for Power-down | VCC | 2 | | | V | Minimum VCC for Power-down | 12 |-| Supply Voltage Operating Range | VCC | 2.7 | | 6 | V | 12 MHz part, AT89C4051-12PU | 12 |-| Operating Temperature Industrial | TA | -40 | | 85 | °C | Industrial range, VCC = 2.7V to 6.0V | 12 |-| Operating Temperature | | -55 | | 125 | °C | | 12 |-| Storage Temperature | | -65 | | 150 | °C | | 12 |-| Voltage on Any Pin with Respect to Ground | | -1 | | 7 | V | | 12 |-| Maximum Operating Voltage | | | | 6.6 | V | | 12 |-| DC Output Current | | | | 25 | mA | | 12 |+| Power Supply Current, Active Mode | ICC | | | 15 | mA | Active Mode, 12 MHz, VCC = 6V | 12 |+| Power Supply Current, Active Mode | ICC | | | 5.5 | mA | Active Mode, 12 MHz, VCC = 3V | 12 |+| Power Supply Current, Idle Mode | ICC | | | 5 | mA | Idle Mode, 12 MHz, VCC = 6V; P1.0 & P1.1 = 0V or VCC | 12 |+| Power Supply Current, Idle Mode | ICC | | | 1 | mA | Idle Mode, 12 MHz, VCC = 3V; P1.0 & P1.1 = 0V or VCC | 12 |+| Power Supply Current, Power-down Mode | ICC | | | 20 | µA | VCC = 6V, P1.0 & P1.1 = 0V or VCC | 12 |+| Power Supply Current, Power-down Mode | ICC | | | 5 | µA | VCC = 3V, P1.0 & P1.1 = 0V or VCC | 12 | | Oscillator Frequency | 1/tCLCL | 0 | | 12 | MHz | VCC = 2.7V to 6.0V | 13 | | Clock Period | tCLCL | 83.3 | | | ns | VCC = 2.7V to 6.0V | 13 | | High Time | tCHCX | 30 | | | ns | VCC = 2.7V to 6.0V | 13 |@@ -89,12 +79,23 @@ Limits as printed in the datasheet (page.json `metadata.characteristics` carries | VPP Setup to PROG Low | tSHGL | 10 | | | µs | TA = 20°C to 30°C, VCC = 5.0 ± 10% | 11 | | VPP Hold after PROG | tGHSL | 10 | | | µs | TA = 20°C to 30°C, VCC = 5.0 ± 10% | 11 | | PROG Width | tGLGH | 1 | | 110 | µs | TA = 20°C to 30°C, VCC = 5.0 ± 10% | 11 |-| ENABLE Low to Data Valid | tELQV | 1 | | | µs | TA = 20°C to 30°C, VCC = 5.0 ± 10% | 11 |+| ENABLE Low to Data Valid | tELQV | | | 1 | µs | TA = 20°C to 30°C, VCC = 5.0 ± 10% | 11 | | Data Float after ENABLE | tEHQZ | 0 | | 1 | µs | TA = 20°C to 30°C, VCC = 5.0 ± 10% | 11 |-| PROG High to BUSY Low | tGHBL | 50 | | | ns | TA = 20°C to 30°C, VCC = 5.0 ± 10% | 11 |+| PROG High to BUSY Low | tGHBL | | | 50 | ns | TA = 20°C to 30°C, VCC = 5.0 ± 10% | 11 | | Byte Write Cycle Time | tWC | | | 2 | ms | TA = 20°C to 30°C, VCC = 5.0 ± 10% | 11 | | RDY/BSY to Increment Clock Delay | tBHIH | 1 | | | µs | TA = 20°C to 30°C, VCC = 5.0 ± 10% | 11 | | Increment Clock High | tIHIL | 200 | | | ns | TA = 20°C to 30°C, VCC = 5.0 ± 10% | 11 |+| Operating Temperature | | -55 | | 125 | °C | | 12 |+| Storage Temperature | | -65 | | 150 | °C | | 12 |+| Voltage on Any Pin with Respect to Ground | | -1 | | 7 | V | | 12 |+| Maximum Operating Voltage | | | | 6.6 | V | | 12 |+| DC Output Current | | | | 25 | mA | | 12 |+| Supply Voltage (AT89C4051-12PU) | VCC | 2.7 | | 6 | V | 12 MHz speed grade | 16 |+| Operating Temperature (Industrial) | | -40 | | 85 | °C | Industrial operation range | 16 |+| Minimum VCC for Power-down | VCC | 2 | | | V | Note 2 | 12 |+| Maximum IOL per Port Pin | IOL | | | 20 | mA | Note 1: steady state conditions | 12 |+| Maximum Total IOL for All Output Pins | IOL | | | 80 | mA | Note 1: steady state conditions | 12 |+| Brown-out Detection Threshold Tolerance (nominal 2.1 V) | | -10 | | 10 | % | | 7 | ## CAD (KiCad official) @@ -107,8 +108,8 @@ Limits as printed in the datasheet (page.json `metadata.characteristics` carries Data extracted from the manufacturer datasheet, not a distributor listing: -- **Datasheet:** [Microchip Tech datasheet](docs/at89c4051-12pu-datasheet.pdf) (19 pp, sha256 `7dd0a76556785ab0`, retrieved 2026-11-10, tier: manufacturer)-- **Extractor:** parts-factory `2.0.0` / `extract_pins 0.3`, primary `claude-sonnet-5-5` (text), consensus `claude-sonnet-5-5` (agreed), guards: pin_guards 0.1: passed. Pins are checked against the footprint pad set and their cited datasheet pages before publish.+- **Datasheet:** [Microchip Tech datasheet](docs/at89c4051-12pu-datasheet.pdf) (19 pp, sha256 `7dd0a76556785ab0`, retrieved 2026-11-11, tier: manufacturer)+- **Extractor:** parts-factory `2.0.0` / `extract_pins 0.3`, primary `claude-haiku-5-5` (text), consensus `claude-sonnet-5-5` (agreed), guards: pin_guards 0.1: passed. Pins are checked against the footprint pad set and their cited datasheet pages before publish. - **CAD:** KiCad official libraries (CC-BY-SA 4.0). [Datasheet PDF](docs/at89c4051-12pu-datasheet.pdf)
at89c4051-12pu-hero.overlay.json+528−526@@ -1,529 +1,531 @@ {- "spec": "adom-hero 1.4",- "mpn": "AT89C4051-12PU",- "kind": "component + footprint reference art",- "board_use": false,- "plane_z_mm": -0.02,- "units": "metre",- "upAxis": "Z",- "layers": {- "pad_outlines": {- "material": "Footprint pads - teal dashed outlines - 50 percent opacity",- "rgba": [- 0.0,- 0.902,- 0.863,- 0.5- ],- "pads": 20,- "span_mm": 24.46,- "dash_mm": 0.45,- "gap_mm": 0.27,- "pad_stroke_mm": 0.09- },- "silkscreen": {- "material": "Silkscreen reference lines - 30 percent opacity",- "rgba": [- 0.92,- 0.96,- 1.0,- 0.3- ],- "footprint_items": 6,- "pin1": {- "source": "added dot (AI)",- "pad": "1",- "center_mm": [- 0.0,- -1.35- ],- "r_mm": 0.35- }- },- "signal_names": {- "material": "Signal names - 50 percent opacity",- "rgba": [- 0.92,- 0.96,- 1.0,- 0.5- ],- "font": "DejaVu Sans Mono",- "labels": 20,- "sides": "top + mirrored underside (single-sided)",- "fallback_to_pad_number": 0- }- },- "align": {- "ok": true,- "centre_offset_mm": 0.0,- "tolerance_mm": 1.957,- "orientation_flipped": false,- "contacts_bbox_mm": [- -0.127,- 7.747,- -22.975,- 0.115- ],- "pads_bbox_mm": [- -0.8,- 8.42,- -23.66,- 0.8+ "spec": "adom-hero 1.4",+ "mpn": "AT89C4051-12PU",+ "kind": "component + footprint reference art",+ "board_use": false,+ "plane_z_mm": -0.02,+ "units": "metre",+ "upAxis": "Z",+ "layers": {+ "pad_outlines": {+ "material": "Footprint pads - teal dashed outlines - 50 percent opacity",+ "rgba": [+ 0.0,+ 0.902,+ 0.863,+ 0.5+ ],+ "pads": 20,+ "span_mm": 24.46,+ "dash_mm": 0.45,+ "gap_mm": 0.27,+ "pad_stroke_mm": 0.09+ },+ "silkscreen": {+ "material": "Silkscreen reference lines - 30 percent opacity",+ "rgba": [+ 0.92,+ 0.96,+ 1.0,+ 0.3+ ],+ "footprint_items": 6,+ "pin1": {+ "source": "added dot (AI)",+ "pad": "1",+ "center_mm": [+ 0.0,+ -1.35 ],- "seating_z_mm": -3.3- },- "sources": {- "glb": "at89c4051-12pu-etched.glb",- "glb_sha256": "4b75b6f014c24a9e335292731ab879374f7cc05eef75bd5a93fa86e8e73e4e07",- "footprint": "at89c4051-12pu.kicad_mod",- "footprint_sha256": "d98cb2b932a5a4004d26d787249d6089bcc06f088d1a2d848420cdd489d48c98",- "pins": "page.json component.pins",- "pins_sha256": "4270cdcb02f19a761491eaf25c5bf85e586746adb474d77f76ff1fbf0deb82a3"- },- "generator": "adom-wiki 1.8.15 (component_hero)",- "labels": [- {- "pad": "1",- "text": "RST/VPP",- "x": -0.95,- "y": 0.0,- "align": "right",- "vertical": false,- "h": 0.6- },- {- "pad": "2",- "text": "P3.0 (RXD)",- "x": -0.95,- "y": 2.54,- "align": "right",- "vertical": false,- "h": 0.6- },- {- "pad": "3",- "text": "P3.1 (TXD)",- "x": -0.95,- "y": 5.08,- "align": "right",- "vertical": false,- "h": 0.6- },- {- "pad": "4",- "text": "XTAL2",- "x": -0.95,- "y": 7.62,- "align": "right",- "vertical": false,- "h": 0.6- },- {- "pad": "5",- "text": "XTAL1",- "x": -0.95,- "y": 10.16,- "align": "right",- "vertical": false,- "h": 0.6- },- {- "pad": "6",- "text": "P3.2 (INT0)",- "x": -0.95,- "y": 12.7,- "align": "right",- "vertical": false,- "h": 0.6- },- {- "pad": "7",- "text": "P3.3 (INT1)",- "x": -0.95,- "y": 15.24,- "align": "right",- "vertical": false,- "h": 0.6- },- {- "pad": "8",- "text": "P3.4 (T0)",- "x": -0.95,- "y": 17.78,- "align": "right",- "vertical": false,- "h": 0.6- },- {- "pad": "9",- "text": "P3.5 (T1)",- "x": -0.95,- "y": 20.32,- "align": "right",- "vertical": false,- "h": 0.6- },- {- "pad": "10",- "text": "GND",- "x": -0.95,- "y": 22.86,- "align": "right",- "vertical": false,- "h": 0.6- },- {- "pad": "11",- "text": "P3.7",- "x": 8.57,- "y": 22.86,- "align": "left",- "vertical": false,- "h": 0.6- },- {- "pad": "12",- "text": "P1.0 (AIN0)",- "x": 8.57,- "y": 20.32,- "align": "left",- "vertical": false,- "h": 0.6- },- {- "pad": "13",- "text": "P1.1 (AIN1)",- "x": 8.57,- "y": 17.78,- "align": "left",- "vertical": false,- "h": 0.6- },- {- "pad": "14",- "text": "P1.2",- "x": 8.57,- "y": 15.24,- "align": "left",- "vertical": false,- "h": 0.6- },- {- "pad": "15",- "text": "P1.3",- "x": 8.57,- "y": 12.7,- "align": "left",- "vertical": false,- "h": 0.6- },- {- "pad": "16",- "text": "P1.4",- "x": 8.57,- "y": 10.16,- "align": "left",- "vertical": false,- "h": 0.6- },- {- "pad": "17",- "text": "P1.5",- "x": 8.57,- "y": 7.62,- "align": "left",- "vertical": false,- "h": 0.6- },- {- "pad": "18",- "text": "P1.6",- "x": 8.57,- "y": 5.08,- "align": "left",- "vertical": false,- "h": 0.6- },- {- "pad": "19",- "text": "P1.7",- "x": 8.57,- "y": 2.54,- "align": "left",- "vertical": false,- "h": 0.6- },- {- "pad": "20",- "text": "VCC",- "x": 8.57,- "y": 0.0,- "align": "left",- "vertical": false,- "h": 0.6- }+ "r_mm": 0.35+ }+ },+ "signal_names": {+ "material": "Signal names - 50 percent opacity",+ "rgba": [+ 0.92,+ 0.96,+ 1.0,+ 0.5+ ],+ "font": "DejaVu Sans Mono",+ "labels": 20,+ "sides": "top + mirrored underside (single-sided)",+ "omitted": null,+ "fallback_to_pad_number": 0+ }+ },+ "align": {+ "ok": true,+ "centre_offset_mm": 0.0,+ "over_pads": true,+ "tolerance_mm": 1.957,+ "orientation_flipped": false,+ "contacts_bbox_mm": [+ -0.127,+ 7.747,+ -22.975,+ 0.115 ],- "pads": [- {- "number": "1",- "shape": "roundrect",- "center_mm": [- 0.0,- 0.0- ],- "size_mm": [- 1.6,- 1.6- ],- "rot": 0.0- },- {- "number": "2",- "shape": "circle",- "center_mm": [- 0.0,- 2.54- ],- "size_mm": [- 1.6,- 1.6- ],- "rot": 0.0- },- {- "number": "3",- "shape": "circle",- "center_mm": [- 0.0,- 5.08- ],- "size_mm": [- 1.6,- 1.6- ],- "rot": 0.0- },- {- "number": "4",- "shape": "circle",- "center_mm": [- 0.0,- 7.62- ],- "size_mm": [- 1.6,- 1.6- ],- "rot": 0.0- },- {- "number": "5",- "shape": "circle",- "center_mm": [- 0.0,- 10.16- ],- "size_mm": [- 1.6,- 1.6- ],- "rot": 0.0- },- {- "number": "6",- "shape": "circle",- "center_mm": [- 0.0,- 12.7- ],- "size_mm": [- 1.6,- 1.6- ],- "rot": 0.0- },- {- "number": "7",- "shape": "circle",- "center_mm": [- 0.0,- 15.24- ],- "size_mm": [- 1.6,- 1.6- ],- "rot": 0.0- },- {- "number": "8",- "shape": "circle",- "center_mm": [- 0.0,- 17.78- ],- "size_mm": [- 1.6,- 1.6- ],- "rot": 0.0- },- {- "number": "9",- "shape": "circle",- "center_mm": [- 0.0,- 20.32- ],- "size_mm": [- 1.6,- 1.6- ],- "rot": 0.0- },- {- "number": "10",- "shape": "circle",- "center_mm": [- 0.0,- 22.86- ],- "size_mm": [- 1.6,- 1.6- ],- "rot": 0.0- },- {- "number": "11",- "shape": "circle",- "center_mm": [- 7.62,- 22.86- ],- "size_mm": [- 1.6,- 1.6- ],- "rot": 0.0- },- {- "number": "12",- "shape": "circle",- "center_mm": [- 7.62,- 20.32- ],- "size_mm": [- 1.6,- 1.6- ],- "rot": 0.0- },- {- "number": "13",- "shape": "circle",- "center_mm": [- 7.62,- 17.78- ],- "size_mm": [- 1.6,- 1.6- ],- "rot": 0.0- },- {- "number": "14",- "shape": "circle",- "center_mm": [- 7.62,- 15.24- ],- "size_mm": [- 1.6,- 1.6- ],- "rot": 0.0- },- {- "number": "15",- "shape": "circle",- "center_mm": [- 7.62,- 12.7- ],- "size_mm": [- 1.6,- 1.6- ],- "rot": 0.0- },- {- "number": "16",- "shape": "circle",- "center_mm": [- 7.62,- 10.16- ],- "size_mm": [- 1.6,- 1.6- ],- "rot": 0.0- },- {- "number": "17",- "shape": "circle",- "center_mm": [- 7.62,- 7.62- ],- "size_mm": [- 1.6,- 1.6- ],- "rot": 0.0- },- {- "number": "18",- "shape": "circle",- "center_mm": [- 7.62,- 5.08- ],- "size_mm": [- 1.6,- 1.6- ],- "rot": 0.0- },- {- "number": "19",- "shape": "circle",- "center_mm": [- 7.62,- 2.54- ],- "size_mm": [- 1.6,- 1.6- ],- "rot": 0.0- },- {- "number": "20",- "shape": "circle",- "center_mm": [- 7.62,- 0.0- ],- "size_mm": [- 1.6,- 1.6- ],- "rot": 0.0- }- ]-}+ "pads_bbox_mm": [+ -0.8,+ 8.42,+ -23.66,+ 0.8+ ],+ "seating_z_mm": -3.3+ },+ "sources": {+ "glb": "at89c4051-12pu-etched.glb",+ "glb_sha256": "4b75b6f014c24a9e335292731ab879374f7cc05eef75bd5a93fa86e8e73e4e07",+ "footprint": "at89c4051-12pu.kicad_mod",+ "footprint_sha256": "d98cb2b932a5a4004d26d787249d6089bcc06f088d1a2d848420cdd489d48c98",+ "pins": "page.json component.pins",+ "pins_sha256": "4270cdcb02f19a761491eaf25c5bf85e586746adb474d77f76ff1fbf0deb82a3"+ },+ "generator": "factory/hero_glb.py",+ "labels": [+ {+ "pad": "1",+ "text": "RST/VPP",+ "x": -0.95,+ "y": 0.0,+ "align": "right",+ "vertical": false,+ "h": 0.6+ },+ {+ "pad": "2",+ "text": "P3.0 (RXD)",+ "x": -0.95,+ "y": 2.54,+ "align": "right",+ "vertical": false,+ "h": 0.6+ },+ {+ "pad": "3",+ "text": "P3.1 (TXD)",+ "x": -0.95,+ "y": 5.08,+ "align": "right",+ "vertical": false,+ "h": 0.6+ },+ {+ "pad": "4",+ "text": "XTAL2",+ "x": -0.95,+ "y": 7.62,+ "align": "right",+ "vertical": false,+ "h": 0.6+ },+ {+ "pad": "5",+ "text": "XTAL1",+ "x": -0.95,+ "y": 10.16,+ "align": "right",+ "vertical": false,+ "h": 0.6+ },+ {+ "pad": "6",+ "text": "P3.2 (INT0)",+ "x": -0.95,+ "y": 12.7,+ "align": "right",+ "vertical": false,+ "h": 0.6+ },+ {+ "pad": "7",+ "text": "P3.3 (INT1)",+ "x": -0.95,+ "y": 15.24,+ "align": "right",+ "vertical": false,+ "h": 0.6+ },+ {+ "pad": "8",+ "text": "P3.4 (T0)",+ "x": -0.95,+ "y": 17.78,+ "align": "right",+ "vertical": false,+ "h": 0.6+ },+ {+ "pad": "9",+ "text": "P3.5 (T1)",+ "x": -0.95,+ "y": 20.32,+ "align": "right",+ "vertical": false,+ "h": 0.6+ },+ {+ "pad": "10",+ "text": "GND",+ "x": -0.95,+ "y": 22.86,+ "align": "right",+ "vertical": false,+ "h": 0.6+ },+ {+ "pad": "11",+ "text": "P3.7",+ "x": 8.57,+ "y": 22.86,+ "align": "left",+ "vertical": false,+ "h": 0.6+ },+ {+ "pad": "12",+ "text": "P1.0 (AIN0)",+ "x": 8.57,+ "y": 20.32,+ "align": "left",+ "vertical": false,+ "h": 0.6+ },+ {+ "pad": "13",+ "text": "P1.1 (AIN1)",+ "x": 8.57,+ "y": 17.78,+ "align": "left",+ "vertical": false,+ "h": 0.6+ },+ {+ "pad": "14",+ "text": "P1.2",+ "x": 8.57,+ "y": 15.24,+ "align": "left",+ "vertical": false,+ "h": 0.6+ },+ {+ "pad": "15",+ "text": "P1.3",+ "x": 8.57,+ "y": 12.7,+ "align": "left",+ "vertical": false,+ "h": 0.6+ },+ {+ "pad": "16",+ "text": "P1.4",+ "x": 8.57,+ "y": 10.16,+ "align": "left",+ "vertical": false,+ "h": 0.6+ },+ {+ "pad": "17",+ "text": "P1.5",+ "x": 8.57,+ "y": 7.62,+ "align": "left",+ "vertical": false,+ "h": 0.6+ },+ {+ "pad": "18",+ "text": "P1.6",+ "x": 8.57,+ "y": 5.08,+ "align": "left",+ "vertical": false,+ "h": 0.6+ },+ {+ "pad": "19",+ "text": "P1.7",+ "x": 8.57,+ "y": 2.54,+ "align": "left",+ "vertical": false,+ "h": 0.6+ },+ {+ "pad": "20",+ "text": "VCC",+ "x": 8.57,+ "y": 0.0,+ "align": "left",+ "vertical": false,+ "h": 0.6+ }+ ],+ "pads": [+ {+ "number": "1",+ "shape": "roundrect",+ "center_mm": [+ 0.0,+ 0.0+ ],+ "size_mm": [+ 1.6,+ 1.6+ ],+ "rot": 0.0+ },+ {+ "number": "2",+ "shape": "circle",+ "center_mm": [+ 0.0,+ 2.54+ ],+ "size_mm": [+ 1.6,+ 1.6+ ],+ "rot": 0.0+ },+ {+ "number": "3",+ "shape": "circle",+ "center_mm": [+ 0.0,+ 5.08+ ],+ "size_mm": [+ 1.6,+ 1.6+ ],+ "rot": 0.0+ },+ {+ "number": "4",+ "shape": "circle",+ "center_mm": [+ 0.0,+ 7.62+ ],+ "size_mm": [+ 1.6,+ 1.6+ ],+ "rot": 0.0+ },+ {+ "number": "5",+ "shape": "circle",+ "center_mm": [+ 0.0,+ 10.16+ ],+ "size_mm": [+ 1.6,+ 1.6+ ],+ "rot": 0.0+ },+ {+ "number": "6",+ "shape": "circle",+ "center_mm": [+ 0.0,+ 12.7+ ],+ "size_mm": [+ 1.6,+ 1.6+ ],+ "rot": 0.0+ },+ {+ "number": "7",+ "shape": "circle",+ "center_mm": [+ 0.0,+ 15.24+ ],+ "size_mm": [+ 1.6,+ 1.6+ ],+ "rot": 0.0+ },+ {+ "number": "8",+ "shape": "circle",+ "center_mm": [+ 0.0,+ 17.78+ ],+ "size_mm": [+ 1.6,+ 1.6+ ],+ "rot": 0.0+ },+ {+ "number": "9",+ "shape": "circle",+ "center_mm": [+ 0.0,+ 20.32+ ],+ "size_mm": [+ 1.6,+ 1.6+ ],+ "rot": 0.0+ },+ {+ "number": "10",+ "shape": "circle",+ "center_mm": [+ 0.0,+ 22.86+ ],+ "size_mm": [+ 1.6,+ 1.6+ ],+ "rot": 0.0+ },+ {+ "number": "11",+ "shape": "circle",+ "center_mm": [+ 7.62,+ 22.86+ ],+ "size_mm": [+ 1.6,+ 1.6+ ],+ "rot": 0.0+ },+ {+ "number": "12",+ "shape": "circle",+ "center_mm": [+ 7.62,+ 20.32+ ],+ "size_mm": [+ 1.6,+ 1.6+ ],+ "rot": 0.0+ },+ {+ "number": "13",+ "shape": "circle",+ "center_mm": [+ 7.62,+ 17.78+ ],+ "size_mm": [+ 1.6,+ 1.6+ ],+ "rot": 0.0+ },+ {+ "number": "14",+ "shape": "circle",+ "center_mm": [+ 7.62,+ 15.24+ ],+ "size_mm": [+ 1.6,+ 1.6+ ],+ "rot": 0.0+ },+ {+ "number": "15",+ "shape": "circle",+ "center_mm": [+ 7.62,+ 12.7+ ],+ "size_mm": [+ 1.6,+ 1.6+ ],+ "rot": 0.0+ },+ {+ "number": "16",+ "shape": "circle",+ "center_mm": [+ 7.62,+ 10.16+ ],+ "size_mm": [+ 1.6,+ 1.6+ ],+ "rot": 0.0+ },+ {+ "number": "17",+ "shape": "circle",+ "center_mm": [+ 7.62,+ 7.62+ ],+ "size_mm": [+ 1.6,+ 1.6+ ],+ "rot": 0.0+ },+ {+ "number": "18",+ "shape": "circle",+ "center_mm": [+ 7.62,+ 5.08+ ],+ "size_mm": [+ 1.6,+ 1.6+ ],+ "rot": 0.0+ },+ {+ "number": "19",+ "shape": "circle",+ "center_mm": [+ 7.62,+ 2.54+ ],+ "size_mm": [+ 1.6,+ 1.6+ ],+ "rot": 0.0+ },+ {+ "number": "20",+ "shape": "circle",+ "center_mm": [+ 7.62,+ 0.0+ ],+ "size_mm": [+ 1.6,+ 1.6+ ],+ "rot": 0.0+ }+ ]+}
at89c4051-12pu.lbr+14−3@@ -50,7 +50,7 @@ <layer number="98" name="Guide" color="6" fill="1" visible="yes" active="yes"/> </layers> <library>-<description></description>+<description>Microchip Tech Pre-ordered MCUs, PDIP-20. Pinout cross-checked by two models against the datasheet</description> <packages> <package name="DIP-20_W7.62mm"> <description>20 pads, 9.2 x 24.5 mm. 20-lead though-hole mounted DIP package, row spacing 7.62mm (300 mils)</description>@@ -102,6 +102,7 @@ </packages> <symbols> <symbol name="AT89C4051-12PU">+ <description>Microchip Tech Pre-ordered MCUs, PDIP-20. Pinout cross-checked by two models against the datasheet</description> <wire x1="-12.7" y1="12.7" x2="12.7" y2="12.7" width="0.254" layer="94"/> <wire x1="12.7" y1="12.7" x2="12.7" y2="-15.24" width="0.254" layer="94"/> <wire x1="12.7" y1="-15.24" x2="-12.7" y2="-15.24" width="0.254" layer="94"/>@@ -132,7 +133,7 @@ </symbols> <devicesets> <deviceset name="AT89C4051-12PU" prefix="U">- <description></description>+ <description>Microchip Tech Pre-ordered MCUs, PDIP-20. Pinout cross-checked by two models against the datasheet</description> <gates> <gate name="G$1" symbol="AT89C4051-12PU" x="0" y="0"/> </gates>@@ -160,7 +161,17 @@ <connect gate="G$1" pin="P1.0_AIN0" pad="12"/> <connect gate="G$1" pin="P3.7" pad="11"/> </connects>- <technologies><technology name=""/></technologies>+ <technologies>+ <technology name="">+ <attribute name="MPN" value="AT89C4051-12PU" constant="no"/>+ <attribute name="MANUFACTURER" value="Microchip Tech" constant="no"/>+ <attribute name="DATASHEET" value="https://datasheet.lcsc.com/datasheet/pdf/32518bbd29f048caa64e52b063a36c82.pdf" constant="no"/>+ <attribute name="ADOM_WIKI" value="https://wiki.adom.inc/adom/at89c4051-12pu" constant="no"/>+ <attribute name="MOUSER_PN" value="556-A89C405112PU" constant="no"/>+ <attribute name="DIGIKEY_PN" value="AT89C4051-12PU-ND" constant="no"/>+ <attribute name="LCSC_PN" value="C613480" constant="no"/>+ </technology>+ </technologies> </device> </devices> </deviceset>
package.json+78−32@@ -1,6 +1,6 @@ { "slug": "at89c4051-12pu",- "version": "0.1.0",+ "version": "0.1.1", "type": "component", "description": "Microchip Tech Pre-ordered MCUs, PDIP-20. Pinout cross-checked by two models against the datasheet, KiCad symbol/footprint/3D.", "tags": [@@ -54,7 +54,7 @@ "mouser": "556-A89C405112PU" }, "distributor_check": {- "checked_at": "2026-11-10T01:11:12Z",+ "checked_at": "2026-11-11T02:24:07Z", "source": "Component Ocean /api/assign-pns", "digikey": { "pn": "AT89C4051-12PU-ND",@@ -70,121 +70,121 @@ "number": "1", "name": "RST/VPP", "type": "input",- "description": "Reset input: all I/O pins reset to 1s when RST goes high, and holding it high for two machine cycles while the oscillator runs resets the device; also receives 12V (11.5V to 12.5V) programming enable voltage VPP."+ "description": "Reset input: holding RST high for two machine cycles while the oscillator runs resets the device, and it is raised to 12V to enable Flash programming." }, { "number": "2", "name": "P3.0 (RXD)", "type": "bidirectional",- "description": "Port 3 bi-directional I/O pin with internal pullup, sinks 20 mA, alternate function RXD (serial input port)."+ "description": "Port 3 bidirectional I/O pin with internal pullup that serves as the serial input port RXD." }, { "number": "3", "name": "P3.1 (TXD)", "type": "bidirectional",- "description": "Port 3 bi-directional I/O pin with internal pullup, sinks 20 mA, alternate function TXD (serial output port); also RDY/BSY output during Flash programming."+ "description": "Port 3 bidirectional I/O pin with internal pullup that serves as the serial output port TXD, and is pulled low to indicate BUSY during programming." }, { "number": "4", "name": "XTAL2", "type": "output",- "description": "Output from the inverting oscillator amplifier; left unconnected when XTAL1 is driven by an external clock."+ "description": "Output from the inverting oscillator amplifier, left unconnected when XTAL1 is driven by an external clock." }, { "number": "5", "name": "XTAL1", "type": "input",- "description": "Input to the inverting oscillator amplifier and to the internal clock operating circuit; also advances the internal address counter during Flash programming."+ "description": "Input to the inverting oscillator amplifier and to the internal clock operating circuit." }, { "number": "6", "name": "P3.2 (INT0)", "type": "bidirectional",- "description": "Port 3 bi-directional I/O pin with internal pullup, sinks 20 mA, alternate function INT0 (external interrupt 0); serves as PROG pulse input during Flash programming."+ "description": "Port 3 bidirectional I/O pin with internal pullup that serves as external interrupt 0 and is pulsed to program a byte during Flash programming." }, { "number": "7", "name": "P3.3 (INT1)", "type": "bidirectional",- "description": "Port 3 bi-directional I/O pin with internal pullup, sinks 20 mA, alternate function INT1 (external interrupt 1)."+ "description": "Port 3 bidirectional I/O pin with internal pullup that serves as external interrupt 1 and is used for programming control." }, { "number": "8", "name": "P3.4 (T0)", "type": "bidirectional",- "description": "Port 3 bi-directional I/O pin with internal pullup, sinks 20 mA, alternate function T0 (timer 0 external input)."+ "description": "Port 3 bidirectional I/O pin with internal pullup that serves as the external input to timer 0 and is used for programming control." }, { "number": "9", "name": "P3.5 (T1)", "type": "bidirectional",- "description": "Port 3 bi-directional I/O pin with internal pullup, sinks 20 mA, alternate function T1 (timer 1 external input)."+ "description": "Port 3 bidirectional I/O pin with internal pullup that serves as the external input to timer 1 and is used for programming control." }, { "number": "10", "name": "GND", "type": "power_in",- "description": "Ground."+ "description": "Ground reference for the device." }, { "number": "11", "name": "P3.7", "type": "bidirectional",- "description": "Port 3 bi-directional I/O pin with internal pullup that sinks 20 mA; also receives control signals for Flash programming and verification."+ "description": "Port 3 bidirectional I/O pin with internal pullup that is also used for Flash programming and verification control." }, { "number": "12", "name": "P1.0 (AIN0)", "type": "bidirectional",- "description": "Port 1 I/O pin requiring an external pullup, sinks 20 mA, serves as positive input AIN0 of the on-chip analog comparator."+ "description": "Port 1 bidirectional I/O pin that requires an external pullup, sinks up to 20 mA, and serves as the positive input of the on-chip analog comparator." }, { "number": "13", "name": "P1.1 (AIN1)", "type": "bidirectional",- "description": "Port 1 I/O pin requiring an external pullup, sinks 20 mA, serves as negative input AIN1 of the on-chip analog comparator."+ "description": "Port 1 bidirectional I/O pin that requires an external pullup, sinks up to 20 mA, and serves as the negative input of the on-chip analog comparator." }, { "number": "14", "name": "P1.2", "type": "bidirectional",- "description": "Port 1 bi-directional I/O pin with internal pullup that sinks 20 mA and can drive LEDs directly."+ "description": "Port 1 bidirectional I/O pin with internal pullup whose output buffer can sink 20 mA and drive LED displays directly." }, { "number": "15", "name": "P1.3", "type": "bidirectional",- "description": "Port 1 bi-directional I/O pin with internal pullup that sinks 20 mA and can drive LEDs directly."+ "description": "Port 1 bidirectional I/O pin with internal pullup whose output buffer can sink 20 mA and drive LED displays directly." }, { "number": "16", "name": "P1.4", "type": "bidirectional",- "description": "Port 1 bi-directional I/O pin with internal pullup that sinks 20 mA and can drive LEDs directly."+ "description": "Port 1 bidirectional I/O pin with internal pullup whose output buffer can sink 20 mA and drive LED displays directly." }, { "number": "17", "name": "P1.5", "type": "bidirectional",- "description": "Port 1 bi-directional I/O pin with internal pullup that sinks 20 mA and can drive LEDs directly."+ "description": "Port 1 bidirectional I/O pin with internal pullup whose output buffer can sink 20 mA and drive LED displays directly." }, { "number": "18", "name": "P1.6", "type": "bidirectional",- "description": "Port 1 bi-directional I/O pin with internal pullup that sinks 20 mA and can drive LEDs directly."+ "description": "Port 1 bidirectional I/O pin with internal pullup whose output buffer can sink 20 mA and drive LED displays directly." }, { "number": "19", "name": "P1.7", "type": "bidirectional",- "description": "Port 1 bi-directional I/O pin with internal pullup that sinks 20 mA and can drive LEDs directly."+ "description": "Port 1 bidirectional I/O pin with internal pullup whose output buffer can sink 20 mA and drive LED displays directly." }, { "number": "20", "name": "VCC", "type": "power_in",- "description": "Supply voltage, 2.7V to 6.0V for the 12 MHz part."+ "description": "Supply voltage, specified for operation from 2.7V to 6.0V for the AT89C4051-12PU." } ], "provenance": {@@ -192,17 +192,15 @@ "factory_chain": { "factory": "2.0.0", "extractor": "extract_pins 0.3",- "primary_model": "claude-sonnet-5-5",+ "primary_model": "claude-haiku-5-5", "primary_mode": "text", "consensus_model": "claude-sonnet-5-5", "consensus": "agreed", "guards": "pin_guards 0.1: passed",- "guard_notes": [- "extractor flagged: The pin diagram text lists the labels in order but the extracted figure has no numbers beside each l; The pin types are inferred from the port descriptions. P1.0 and P1.1 are open-drain style pins with "- ],+ "guard_notes": [], "pages_sent": 19,- "cost_usd": 0.097,- "at": "2026-11-10T01:10:52"+ "cost_usd": 0.0773,+ "at": "2026-11-11T02:23:49" }, "datasheet": { "url": "https://datasheet.lcsc.com/datasheet/pdf/32518bbd29f048caa64e52b063a36c82.pdf",@@ -239,7 +237,7 @@ "centre_offset_mm": 0.0, "footprint_binding": "identity", "sha256": "ca359c9b9e0ce94efcb6c96866513f659eef6517d629ace3c4a0a779f6fd57bb",- "checked": "2026-11-10",+ "checked": "2026-11-11", "checked_by": "factory/step_pose.py (Z-up, origin, seat, binding)" }, {@@ -257,10 +255,58 @@ "zmin_mm": -3.3, "centre_offset_mm": 0.0, "footprint_binding": "identity",- "sha256": "a911bf9f8d135e4de5400aafd9fb1c5ae515ca2fa33f6bba0321975b1286107a",- "checked": "2026-11-10",+ "sha256": "2bbf25324a963bf8224b3ecfe4d81f36bd2489eec44c03e5706bad639c6ee50a",+ "checked": "2026-11-11", "checked_by": "factory/step_pose.py (Z-up, origin, seat, binding)" }- ]+ ],+ "package_dims": {+ "package_code": "20P3",+ "source_page": 17,+ "D": {+ "nom_mm": 25.908,+ "range_mm": [+ 24.892,+ 26.924+ ]+ },+ "E1": {+ "nom_mm": 6.604,+ "range_mm": [+ 6.096,+ 7.112+ ]+ },+ "E": {+ "nom_mm": 7.938,+ "range_mm": [+ 7.62,+ 8.255+ ]+ },+ "e": {+ "nom_mm": 2.54,+ "range_mm": [+ null,+ null+ ]+ },+ "A": {+ "nom_mm": 5.334,+ "range_mm": [+ null,+ 5.334+ ]+ },+ "source": "datasheet package drawing, every number found on its page (extract_pins --task dims)",+ "model_check": {+ "file": "at89c4051-12pu.step",+ "verdict": "PASS",+ "reasons": [+ "height and body within the datasheet's package drawing"+ ],+ "by": "factory/package_fit.py"+ }+ } } }
page.json+81−33@@ -4,7 +4,7 @@ "slug": "at89c4051-12pu", "title": "AT89C4051-12PU", "brief": "Microchip Tech Pre-ordered MCUs, PDIP-20. Pinout cross-checked by two models against the datasheet, KiCad symbol/footprint/3D.",- "version": "0.1.0",+ "version": "0.1.1", "license": "CC-BY-SA-4.0", "tags": [ "component",@@ -36,7 +36,7 @@ "mouser": "556-A89C405112PU" }, "distributor_check": {- "checked_at": "2026-11-10T01:11:12Z",+ "checked_at": "2026-11-11T02:24:07Z", "source": "Component Ocean /api/assign-pns", "digikey": { "pn": "AT89C4051-12PU-ND",@@ -52,121 +52,121 @@ "number": "1", "name": "RST/VPP", "type": "input",- "description": "Reset input: all I/O pins reset to 1s when RST goes high, and holding it high for two machine cycles while the oscillator runs resets the device; also receives 12V (11.5V to 12.5V) programming enable voltage VPP."+ "description": "Reset input: holding RST high for two machine cycles while the oscillator runs resets the device, and it is raised to 12V to enable Flash programming." }, { "number": "2", "name": "P3.0 (RXD)", "type": "bidirectional",- "description": "Port 3 bi-directional I/O pin with internal pullup, sinks 20 mA, alternate function RXD (serial input port)."+ "description": "Port 3 bidirectional I/O pin with internal pullup that serves as the serial input port RXD." }, { "number": "3", "name": "P3.1 (TXD)", "type": "bidirectional",- "description": "Port 3 bi-directional I/O pin with internal pullup, sinks 20 mA, alternate function TXD (serial output port); also RDY/BSY output during Flash programming."+ "description": "Port 3 bidirectional I/O pin with internal pullup that serves as the serial output port TXD, and is pulled low to indicate BUSY during programming." }, { "number": "4", "name": "XTAL2", "type": "output",- "description": "Output from the inverting oscillator amplifier; left unconnected when XTAL1 is driven by an external clock."+ "description": "Output from the inverting oscillator amplifier, left unconnected when XTAL1 is driven by an external clock." }, { "number": "5", "name": "XTAL1", "type": "input",- "description": "Input to the inverting oscillator amplifier and to the internal clock operating circuit; also advances the internal address counter during Flash programming."+ "description": "Input to the inverting oscillator amplifier and to the internal clock operating circuit." }, { "number": "6", "name": "P3.2 (INT0)", "type": "bidirectional",- "description": "Port 3 bi-directional I/O pin with internal pullup, sinks 20 mA, alternate function INT0 (external interrupt 0); serves as PROG pulse input during Flash programming."+ "description": "Port 3 bidirectional I/O pin with internal pullup that serves as external interrupt 0 and is pulsed to program a byte during Flash programming." }, { "number": "7", "name": "P3.3 (INT1)", "type": "bidirectional",- "description": "Port 3 bi-directional I/O pin with internal pullup, sinks 20 mA, alternate function INT1 (external interrupt 1)."+ "description": "Port 3 bidirectional I/O pin with internal pullup that serves as external interrupt 1 and is used for programming control." }, { "number": "8", "name": "P3.4 (T0)", "type": "bidirectional",- "description": "Port 3 bi-directional I/O pin with internal pullup, sinks 20 mA, alternate function T0 (timer 0 external input)."+ "description": "Port 3 bidirectional I/O pin with internal pullup that serves as the external input to timer 0 and is used for programming control." }, { "number": "9", "name": "P3.5 (T1)", "type": "bidirectional",- "description": "Port 3 bi-directional I/O pin with internal pullup, sinks 20 mA, alternate function T1 (timer 1 external input)."+ "description": "Port 3 bidirectional I/O pin with internal pullup that serves as the external input to timer 1 and is used for programming control." }, { "number": "10", "name": "GND", "type": "power_in",- "description": "Ground."+ "description": "Ground reference for the device." }, { "number": "11", "name": "P3.7", "type": "bidirectional",- "description": "Port 3 bi-directional I/O pin with internal pullup that sinks 20 mA; also receives control signals for Flash programming and verification."+ "description": "Port 3 bidirectional I/O pin with internal pullup that is also used for Flash programming and verification control." }, { "number": "12", "name": "P1.0 (AIN0)", "type": "bidirectional",- "description": "Port 1 I/O pin requiring an external pullup, sinks 20 mA, serves as positive input AIN0 of the on-chip analog comparator."+ "description": "Port 1 bidirectional I/O pin that requires an external pullup, sinks up to 20 mA, and serves as the positive input of the on-chip analog comparator." }, { "number": "13", "name": "P1.1 (AIN1)", "type": "bidirectional",- "description": "Port 1 I/O pin requiring an external pullup, sinks 20 mA, serves as negative input AIN1 of the on-chip analog comparator."+ "description": "Port 1 bidirectional I/O pin that requires an external pullup, sinks up to 20 mA, and serves as the negative input of the on-chip analog comparator." }, { "number": "14", "name": "P1.2", "type": "bidirectional",- "description": "Port 1 bi-directional I/O pin with internal pullup that sinks 20 mA and can drive LEDs directly."+ "description": "Port 1 bidirectional I/O pin with internal pullup whose output buffer can sink 20 mA and drive LED displays directly." }, { "number": "15", "name": "P1.3", "type": "bidirectional",- "description": "Port 1 bi-directional I/O pin with internal pullup that sinks 20 mA and can drive LEDs directly."+ "description": "Port 1 bidirectional I/O pin with internal pullup whose output buffer can sink 20 mA and drive LED displays directly." }, { "number": "16", "name": "P1.4", "type": "bidirectional",- "description": "Port 1 bi-directional I/O pin with internal pullup that sinks 20 mA and can drive LEDs directly."+ "description": "Port 1 bidirectional I/O pin with internal pullup whose output buffer can sink 20 mA and drive LED displays directly." }, { "number": "17", "name": "P1.5", "type": "bidirectional",- "description": "Port 1 bi-directional I/O pin with internal pullup that sinks 20 mA and can drive LEDs directly."+ "description": "Port 1 bidirectional I/O pin with internal pullup whose output buffer can sink 20 mA and drive LED displays directly." }, { "number": "18", "name": "P1.6", "type": "bidirectional",- "description": "Port 1 bi-directional I/O pin with internal pullup that sinks 20 mA and can drive LEDs directly."+ "description": "Port 1 bidirectional I/O pin with internal pullup whose output buffer can sink 20 mA and drive LED displays directly." }, { "number": "19", "name": "P1.7", "type": "bidirectional",- "description": "Port 1 bi-directional I/O pin with internal pullup that sinks 20 mA and can drive LEDs directly."+ "description": "Port 1 bidirectional I/O pin with internal pullup whose output buffer can sink 20 mA and drive LED displays directly." }, { "number": "20", "name": "VCC", "type": "power_in",- "description": "Supply voltage, 2.7V to 6.0V for the 12 MHz part."+ "description": "Supply voltage, specified for operation from 2.7V to 6.0V for the AT89C4051-12PU." } ], "provenance": {@@ -174,17 +174,15 @@ "factory_chain": { "factory": "2.0.0", "extractor": "extract_pins 0.3",- "primary_model": "claude-sonnet-5-5",+ "primary_model": "claude-haiku-5-5", "primary_mode": "text", "consensus_model": "claude-sonnet-5-5", "consensus": "agreed", "guards": "pin_guards 0.1: passed",- "guard_notes": [- "extractor flagged: The pin diagram text lists the labels in order but the extracted figure has no numbers beside each l; The pin types are inferred from the port descriptions. P1.0 and P1.1 are open-drain style pins with "- ],+ "guard_notes": [], "pages_sent": 19,- "cost_usd": 0.097,- "at": "2026-11-10T01:10:52"+ "cost_usd": 0.0773,+ "at": "2026-11-11T02:23:49" }, "datasheet": { "url": "https://datasheet.lcsc.com/datasheet/pdf/32518bbd29f048caa64e52b063a36c82.pdf",@@ -221,7 +219,7 @@ "centre_offset_mm": 0, "footprint_binding": "identity", "sha256": "ca359c9b9e0ce94efcb6c96866513f659eef6517d629ace3c4a0a779f6fd57bb",- "checked": "2026-11-10",+ "checked": "2026-11-11", "checked_by": "factory/step_pose.py (Z-up, origin, seat, binding)" }, {@@ -239,11 +237,59 @@ "zmin_mm": -3.3, "centre_offset_mm": 0, "footprint_binding": "identity",- "sha256": "a911bf9f8d135e4de5400aafd9fb1c5ae515ca2fa33f6bba0321975b1286107a",- "checked": "2026-11-10",+ "sha256": "2bbf25324a963bf8224b3ecfe4d81f36bd2489eec44c03e5706bad639c6ee50a",+ "checked": "2026-11-11", "checked_by": "factory/step_pose.py (Z-up, origin, seat, binding)" }- ]+ ],+ "package_dims": {+ "package_code": "20P3",+ "source_page": 17,+ "D": {+ "nom_mm": 25.908,+ "range_mm": [+ 24.892,+ 26.924+ ]+ },+ "E1": {+ "nom_mm": 6.604,+ "range_mm": [+ 6.096,+ 7.112+ ]+ },+ "E": {+ "nom_mm": 7.938,+ "range_mm": [+ 7.62,+ 8.255+ ]+ },+ "e": {+ "nom_mm": 2.54,+ "range_mm": [+ null,+ null+ ]+ },+ "A": {+ "nom_mm": 5.334,+ "range_mm": [+ null,+ 5.334+ ]+ },+ "source": "datasheet package drawing, every number found on its page (extract_pins --task dims)",+ "model_check": {+ "file": "at89c4051-12pu.step",+ "verdict": "PASS",+ "reasons": [+ "height and body within the datasheet's package drawing"+ ],+ "by": "factory/package_fit.py"+ }+ } }, "metadata": { "specs": {@@ -911,5 +957,7 @@ ], "visibility": { "public": true- }+ },+ "description": "Microchip Tech Pre-ordered MCUs, PDIP-20. Pinout cross-checked by two models against the datasheet, KiCad symbol/footprint/3D.",+ "org": "adom" }