master
Ray pic16f877a: laser-etched CAD + chip hero (factory 2.0.0 backfill) a1ff355 1mo ago
{
  "schema_version": 1,
  "type": "component",
  "slug": "pic16f877a",
  "title": "PIC16F877A",
  "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",
    "mcu",
    "pic",
    "pic16",
    "8-bit",
    "pdip-40",
    "microchip"
  ],
  "component": {
    "mpn": "PIC16F877A",
    "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-etched.glb",
      "model_3d_plain": "pic16f877a.glb",
      "lbr": "pic16f877a.lbr",
      "model_3d_step": "pic16f877a-etched.step",
      "model_3d_step_plain": "pic16f877a.step"
    },
    "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Ω 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"
    }
  },
  "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": "Ray",
    "email": "[email protected]"
  },
  "dependencies": {},
  "hero": {
    "type": "image",
    "path": "docs/hero.png"
  },
  "files": [
    "page.json",
    "README.md",
    "pic16f877a.kicad_sym",
    "pic16f877a.kicad_mod",
    "pic16f877a.glb",
    "pic16f877a.lbr",
    "docs/hero.png",
    "docs/pic16f877a-datasheet.pdf",
    "viewers/symbol.html",
    "viewers/footprint.html",
    "pic16f877a-etched.step"
  ],
  "variants": [
    {
      "mpn": "PIC16F877A-I/P (PDIP-40)",
      "kind": "packaging"
    },
    {
      "mpn": "PIC16F877A-I/PT (TQFP-44)",
      "kind": "packaging"
    }
  ]
}