← Commit history

component page: CAD + datasheet-first provenance

Ray ·998cfbda03 ·2mo ago ·parent 9e4b8ab
1 file changed +308−22
page.json+308−22
@@ -3,8 +3,9 @@   "type": "component",   "slug": "pic16f877a",   "title": "PIC16F877A",-  "brief": "8-bit PIC MCU, 20MHz, 14KB Flash, DIP-40",+  "brief": "Microchip 8-bit PIC MCU, 40-pin DIP. 14 KB flash, 368 B RAM, 20 MHz, 33 I/O, 8-ch 10-bit ADC. Datasheet-verified.",   "version": "0.1.0",+  "license": "CC-BY-SA-4.0",   "tags": [     "component",     "microcontroller",@@ -15,36 +16,321 @@     "pdip-40",     "microchip"   ],-  "license": "MIT",   "component": {     "mpn": "PIC16F877A",-    "manufacturer": "Microchip",-    "package": "DIP-40",-    "pin_count": null,-    "category": "library",-    "subcategory": "",-    "body_size": null,-    "parts": {},-    "distributor_links": {}+    "manufacturer": "Microchip Technology",+    "package": "PDIP-40",+    "pin_count": 40,+    "category": "Microcontroller",+    "subcategory": "8-bit PIC MCU",+    "datasheet": "https://ww1.microchip.com/downloads/en/DeviceDoc/39582b.pdf",+    "parts": {+      "symbol": "pic16f877a.kicad_sym",+      "footprint": "pic16f877a.kicad_mod",+      "model_3d": "pic16f877a.glb"+    },+    "distributor_links": {},+    "pins": [+      {+        "number": "1",+        "name": "MCLR/VPP",+        "type": "input",+        "description": "Master Clear (active-low reset) input and programming voltage input. Schmitt Trigger buffer. Tie through 10 k\u03a9 pull-up to VDD in normal operation; VPP (~12-13 V) is applied during high-voltage ICSP programming."+      },+      {+        "number": "2",+        "name": "RA0/AN0",+        "type": "bidirectional",+        "description": "PORTA bit 0 digital I/O with TTL input buffer; alternate function is analog input channel AN0 to the 10-bit ADC."+      },+      {+        "number": "3",+        "name": "RA1/AN1",+        "type": "bidirectional",+        "description": "PORTA bit 1 digital I/O with TTL input buffer; alternate function is analog input channel AN1 to the 10-bit ADC."+      },+      {+        "number": "4",+        "name": "RA2/AN2/VREF-/CVREF",+        "type": "bidirectional",+        "description": "PORTA bit 2 digital I/O (TTL); can be analog input AN2, ADC low reference input VREF-, or comparator voltage-reference output CVREF."+      },+      {+        "number": "5",+        "name": "RA3/AN3/VREF+",+        "type": "bidirectional",+        "description": "PORTA bit 3 digital I/O (TTL); can be analog input AN3 or ADC high reference input VREF+."+      },+      {+        "number": "6",+        "name": "RA4/T0CKI/C1OUT",+        "type": "bidirectional",+        "description": "PORTA bit 4 digital I/O with Schmitt Trigger input buffer, open-drain output stage; also the Timer0 external clock input T0CKI or Comparator 1 output C1OUT."+      },+      {+        "number": "7",+        "name": "RA5/AN4/SS/C2OUT",+        "type": "bidirectional",+        "description": "PORTA bit 5 digital I/O (TTL); can be analog input AN4, SPI slave-select input SS, or Comparator 2 output C2OUT."+      },+      {+        "number": "8",+        "name": "RE0/RD/AN5",+        "type": "bidirectional",+        "description": "PORTE bit 0 digital I/O (ST); can be the Parallel Slave Port read-strobe input RD (active-low) or analog input AN5."+      },+      {+        "number": "9",+        "name": "RE1/WR/AN6",+        "type": "bidirectional",+        "description": "PORTE bit 1 digital I/O (ST); can be the Parallel Slave Port write-strobe input WR (active-low) or analog input AN6."+      },+      {+        "number": "10",+        "name": "RE2/CS/AN7",+        "type": "bidirectional",+        "description": "PORTE bit 2 digital I/O (ST); can be the Parallel Slave Port chip-select input CS (active-low) or analog input AN7."+      },+      {+        "number": "11",+        "name": "VDD",+        "type": "power_in",+        "description": "Positive supply for logic and I/O pins. Operating range 2.0 V to 5.5 V. Decouple with a 100 nF ceramic capacitor to VSS placed close to the pin (a 40-pin PDIP has two VDD pins; both must be tied to the same rail)."+      },+      {+        "number": "12",+        "name": "VSS",+        "type": "power_in",+        "description": "Ground reference for logic and I/O pins. Connect to the board ground plane; a 40-pin PDIP has two VSS pins that must be tied to the common ground."+      },+      {+        "number": "13",+        "name": "OSC1/CLKI",+        "type": "input",+        "description": "Oscillator crystal input or external clock source input. Schmitt Trigger buffer in RC oscillator mode, CMOS input otherwise. Connect a crystal (with load caps) between OSC1 and OSC2, or drive with an external clock."+      },+      {+        "number": "14",+        "name": "OSC2/CLKO",+        "type": "output",+        "description": "Oscillator crystal output; connects to crystal or resonator in Crystal Oscillator mode. In RC mode outputs CLKO at 1/4 of OSC1 frequency, indicating instruction-cycle rate."+      },+      {+        "number": "15",+        "name": "RC0/T1OSO/T1CKI",+        "type": "bidirectional",+        "description": "PORTC bit 0 digital I/O (ST); can be Timer1 low-power oscillator output T1OSO or Timer1 external clock input T1CKI."+      },+      {+        "number": "16",+        "name": "RC1/T1OSI/CCP2",+        "type": "bidirectional",+        "description": "PORTC bit 1 digital I/O (ST); can be Timer1 oscillator input T1OSI or CCP2 Capture2 input / Compare2 output / PWM2 output."+      },+      {+        "number": "17",+        "name": "RC2/CCP1",+        "type": "bidirectional",+        "description": "PORTC bit 2 digital I/O (ST); can be CCP1 Capture1 input, Compare1 output, or PWM1 output (up to 10-bit PWM)."+      },+      {+        "number": "18",+        "name": "RC3/SCK/SCL",+        "type": "bidirectional",+        "description": "PORTC bit 3 digital I/O (ST); MSSP synchronous serial clock I/O - SCK for SPI mode or SCL for I2C mode."+      },+      {+        "number": "19",+        "name": "RD0/PSP0",+        "type": "bidirectional",+        "description": "PORTD bit 0 digital I/O (ST); Parallel Slave Port data bit 0 when PSP is enabled."+      },+      {+        "number": "20",+        "name": "RD1/PSP1",+        "type": "bidirectional",+        "description": "PORTD bit 1 digital I/O (ST); Parallel Slave Port data bit 1 when PSP is enabled."+      },+      {+        "number": "21",+        "name": "RD2/PSP2",+        "type": "bidirectional",+        "description": "PORTD bit 2 digital I/O (ST); Parallel Slave Port data bit 2 when PSP is enabled."+      },+      {+        "number": "22",+        "name": "RD3/PSP3",+        "type": "bidirectional",+        "description": "PORTD bit 3 digital I/O (ST); Parallel Slave Port data bit 3 when PSP is enabled."+      },+      {+        "number": "23",+        "name": "RC4/SDI/SDA",+        "type": "bidirectional",+        "description": "PORTC bit 4 digital I/O (ST); MSSP SPI data input SDI or I2C data I/O SDA."+      },+      {+        "number": "24",+        "name": "RC5/SDO",+        "type": "bidirectional",+        "description": "PORTC bit 5 digital I/O (ST); MSSP SPI data output SDO."+      },+      {+        "number": "25",+        "name": "RC6/TX/CK",+        "type": "bidirectional",+        "description": "PORTC bit 6 digital I/O (ST); USART asynchronous transmit TX or USART synchronous clock CK."+      },+      {+        "number": "26",+        "name": "RC7/RX/DT",+        "type": "bidirectional",+        "description": "PORTC bit 7 digital I/O (ST); USART asynchronous receive RX or USART synchronous data DT."+      },+      {+        "number": "27",+        "name": "RD4/PSP4",+        "type": "bidirectional",+        "description": "PORTD bit 4 digital I/O (ST); Parallel Slave Port data bit 4 when PSP is enabled."+      },+      {+        "number": "28",+        "name": "RD5/PSP5",+        "type": "bidirectional",+        "description": "PORTD bit 5 digital I/O (ST); Parallel Slave Port data bit 5 when PSP is enabled."+      },+      {+        "number": "29",+        "name": "RD6/PSP6",+        "type": "bidirectional",+        "description": "PORTD bit 6 digital I/O (ST); Parallel Slave Port data bit 6 when PSP is enabled."+      },+      {+        "number": "30",+        "name": "RD7/PSP7",+        "type": "bidirectional",+        "description": "PORTD bit 7 digital I/O (ST); Parallel Slave Port data bit 7 when PSP is enabled."+      },+      {+        "number": "31",+        "name": "VSS",+        "type": "power_in",+        "description": "Ground reference for logic and I/O pins. Second VSS pin on 40-pin PDIP; must be tied to common ground with pin 12."+      },+      {+        "number": "32",+        "name": "VDD",+        "type": "power_in",+        "description": "Positive supply for logic and I/O pins (2.0-5.5 V). Second VDD pin on 40-pin PDIP; must be tied to common VDD with pin 11 and decoupled with a 100 nF ceramic near the pin."+      },+      {+        "number": "33",+        "name": "RB0/INT",+        "type": "bidirectional",+        "description": "PORTB bit 0 digital I/O with software-programmable weak pull-up; alternate function is the external interrupt input INT (Schmitt Trigger when configured as INT)."+      },+      {+        "number": "34",+        "name": "RB1",+        "type": "bidirectional",+        "description": "PORTB bit 1 digital I/O (TTL) with software-programmable weak pull-up. Part of the PORTB interrupt-on-change group (RB4-RB7 only)."+      },+      {+        "number": "35",+        "name": "RB2",+        "type": "bidirectional",+        "description": "PORTB bit 2 digital I/O (TTL) with software-programmable weak pull-up."+      },+      {+        "number": "36",+        "name": "RB3/PGM",+        "type": "bidirectional",+        "description": "PORTB bit 3 digital I/O (TTL); alternate function is the low-voltage (single-supply) ICSP programming enable input PGM."+      },+      {+        "number": "37",+        "name": "RB4",+        "type": "bidirectional",+        "description": "PORTB bit 4 digital I/O (TTL) with software-programmable weak pull-up and interrupt-on-change capability."+      },+      {+        "number": "38",+        "name": "RB5",+        "type": "bidirectional",+        "description": "PORTB bit 5 digital I/O (TTL) with software-programmable weak pull-up and interrupt-on-change capability."+      },+      {+        "number": "39",+        "name": "RB6/PGC",+        "type": "bidirectional",+        "description": "PORTB bit 6 digital I/O (TTL) with interrupt-on-change; alternate function is the in-circuit debugger and ICSP programming clock PGC (Schmitt Trigger when in Serial Programming mode)."+      },+      {+        "number": "40",+        "name": "RB7/PGD",+        "type": "bidirectional",+        "description": "PORTB bit 7 digital I/O (TTL) with interrupt-on-change; alternate function is the in-circuit debugger and ICSP programming data PGD (Schmitt Trigger when in Serial Programming mode)."+      }+    ],+    "provenance": {+      "extractor": "ds2sf",+      "datasheet": {+        "url": "https://ww1.microchip.com/downloads/en/DeviceDoc/39582b.pdf",+        "pages": 14,+        "sha256": "3ab8d00885e545e3",+        "source_tier": "mfr"+      },+      "cad": "KiCad official (CC-BY-SA 4.0)",+      "pins": {+        "total": 40,+        "described": 40,+        "cites_pages": true,+        "refuses_to_fabricate": true+      }+    },+    "viewers": {+      "symbol": "viewers/symbol.html",+      "footprint": "viewers/footprint.html"+    }   },-  "readme": "# PIC16F877A\n\n8-bit PIC MCU, 20MHz, 14KB Flash, DIP-40\n\nThe PIC16F877A is a classic mid-range 8-bit microcontroller from Microchip. It features 14KB Flash, 368B SRAM, 256B EEPROM, and a rich set of peripherals including ADC, USART, I2C, and SPI.",+  "metadata": {+    "specs": {+      "Core": "8-bit PIC (RISC, 35 instructions)",+      "Flash": "14 KB (8K x 14)",+      "RAM": "368 bytes",+      "EEPROM": "256 bytes",+      "Max clock": "20 MHz",+      "I/O": "33 (ports A-E)",+      "ADC": "8-channel 10-bit",+      "Serial": "USART + SPI + I2C (MSSP)",+      "Supply voltage": "2.0-5.5 V",+      "Package": "PDIP-40"+    }+  },+  "sections": [+    "hero",+    "viewers",+    "readme",+    "breadcrumbs",+    "info"+  ],+  "discovery_triggers": [+    "pic16f877a",+    "pic microcontroller",+    "8-bit pic",+    "pic16f877",+    "40 pin pic"+  ],+  "discovery_pitch": "PIC16F877A 8-bit PIC microcontroller (40-pin DIP) with datasheet-verified pinout, KiCad symbol/footprint/3D, and full provenance.",   "author": {-    "name": "Kyle Bergstedt",-    "email": "[email protected]"+    "name": "Ray",+    "email": "[email protected]"   },-  "visibility": "public",+  "dependencies": {},   "hero": {     "type": "image",     "path": "docs/hero.png"   },-  "sample_prompts": [],-  "discovery_triggers": [],-  "discovery_pitch": null,-  "metadata": {},-  "created_at": "2026-05-28T05:34:07.234Z",-  "updated_at": "2026-05-28T05:34:07.234Z",-  "description": "Microchip 8-bit PIC MCU, 40-pin DIP. 14 KB flash, 368 B RAM, 20 MHz, 33 I/O, 8-ch 10-bit ADC. Datasheet-verified.",-  "dependencies": {},   "files": [     "page.json",     "README.md",