master
Ray atmega328p: laser-etched CAD + chip hero (factory 2.0.0 backfill) 176b797 29d ago
{
  "schema_version": 1,
  "type": "component",
  "slug": "atmega328p",
  "title": "ATmega328P",
  "brief": "Microchip 8-bit AVR MCU, 28-pin DIP. 32 KB flash, 2 KB SRAM, 20 MHz, the Arduino Uno chip. Datasheet-verified.",
  "version": "0.1.0",
  "license": "CC-BY-SA-4.0",
  "tags": [
    "component",
    "microcontroller",
    "mcu",
    "avr",
    "atmega",
    "arduino",
    "pdip-28",
    "microchip"
  ],
  "component": {
    "mpn": "ATmega328P",
    "manufacturer": "Microchip Technology",
    "package": "PDIP-28",
    "pin_count": 28,
    "category": "Microcontroller",
    "subcategory": "8-bit AVR MCU",
    "datasheet": "https://ww1.microchip.com/downloads/en/DeviceDoc/ATmega48A-PA-88A-PA-168A-PA-328-P-DS-DS40002061B.pdf",
    "parts": {
      "symbol": "atmega328p.kicad_sym",
      "footprint": "atmega328p.kicad_mod",
      "model_3d": "atmega328p-etched.glb",
      "model_3d_plain": "atmega328p.glb",
      "lbr": "atmega328p.lbr",
      "model_3d_step": "atmega328p-etched.step",
      "model_3d_step_plain": "atmega328p.step"
    },
    "distributor_links": {},
    "pins": [
      {
        "number": "1",
        "name": "PC6/RESET/PCINT14",
        "type": "bidirectional",
        "description": "Active-low reset input (when RSTDISBL fuse is unprogrammed); a low pulse longer than the minimum length generates a reset even without clock. If RSTDISBL is programmed, functions as PC6 GPIO (different electrical characteristics than other PC pins). Also PCINT14 pin-change interrupt source."
      },
      {
        "number": "2",
        "name": "PD0/RXD/PCINT16",
        "type": "bidirectional",
        "description": "Port D bit 0. Alternate functions: RXD (USART receive input), PCINT16 pin-change interrupt."
      },
      {
        "number": "3",
        "name": "PD1/TXD/PCINT17",
        "type": "bidirectional",
        "description": "Port D bit 1. Alternate functions: TXD (USART transmit output), PCINT17 pin-change interrupt."
      },
      {
        "number": "4",
        "name": "PD2/INT0/PCINT18",
        "type": "bidirectional",
        "description": "Port D bit 2. Alternate functions: INT0 external interrupt, PCINT18 pin-change interrupt."
      },
      {
        "number": "5",
        "name": "PD3/INT1/OC2B/PCINT19",
        "type": "bidirectional",
        "description": "Port D bit 3. Alternate functions: INT1 external interrupt, OC2B (Timer/Counter2 compare output B / PWM), PCINT19 pin-change interrupt."
      },
      {
        "number": "6",
        "name": "PD4/T0/XCK/PCINT20",
        "type": "bidirectional",
        "description": "Port D bit 4. Alternate functions: T0 (Timer/Counter0 external counter input), XCK (USART external clock), PCINT20 pin-change interrupt."
      },
      {
        "number": "7",
        "name": "VCC",
        "type": "power_in",
        "description": "Digital supply voltage. Operating range 1.8V-5.5V (speed-grade dependent: 20MHz requires 4.5-5.5V, 10MHz at 2.7V, 4MHz at 1.8V)."
      },
      {
        "number": "8",
        "name": "GND",
        "type": "power_in",
        "description": "Ground reference. Tie together with pin 22 GND and the AVCC ground return."
      },
      {
        "number": "9",
        "name": "PB6/XTAL1/TOSC1/PCINT6",
        "type": "bidirectional",
        "description": "Port B bit 6. Alternate functions: XTAL1 (input to inverting oscillator amplifier for external crystal/resonator), TOSC1 (Timer/Counter2 asynchronous oscillator input when AS2 in ASSR is set and internal RC oscillator selected), PCINT6 pin-change interrupt."
      },
      {
        "number": "10",
        "name": "PB7/XTAL2/TOSC2/PCINT7",
        "type": "bidirectional",
        "description": "Port B bit 7. Alternate functions: XTAL2 (output from inverting oscillator amplifier), TOSC2 (Timer/Counter2 asynchronous oscillator output), PCINT7 pin-change interrupt."
      },
      {
        "number": "11",
        "name": "PD5/T1/OC0B/PCINT21",
        "type": "bidirectional",
        "description": "Port D bit 5. Alternate functions: T1 (Timer/Counter1 external counter input), OC0B (Timer/Counter0 compare output B / PWM), PCINT21 pin-change interrupt."
      },
      {
        "number": "12",
        "name": "PD6/AIN0/OC0A/PCINT22",
        "type": "bidirectional",
        "description": "Port D bit 6. Alternate functions: AIN0 (analog comparator positive input), OC0A (Timer/Counter0 compare output A / PWM), PCINT22 pin-change interrupt."
      },
      {
        "number": "13",
        "name": "PD7/AIN1/PCINT23",
        "type": "bidirectional",
        "description": "Port D bit 7. Alternate functions: AIN1 (analog comparator negative input), PCINT23 pin-change interrupt."
      },
      {
        "number": "14",
        "name": "PB0/ICP1/CLKO/PCINT0",
        "type": "bidirectional",
        "description": "Port B bit 0. Alternate functions: ICP1 (Timer/Counter1 input capture), CLKO (divided system clock output when CKOUT fuse is programmed), PCINT0 pin-change interrupt."
      },
      {
        "number": "15",
        "name": "PB1/OC1A/PCINT1",
        "type": "bidirectional",
        "description": "Port B bit 1. Alternate functions: OC1A (Timer/Counter1 compare output A / PWM), PCINT1 pin-change interrupt."
      },
      {
        "number": "16",
        "name": "PB2/SS/OC1B/PCINT2",
        "type": "bidirectional",
        "description": "Port B bit 2. Alternate functions: SS (SPI slave-select input; also controls SPI master/slave mode via DDRB), OC1B (Timer/Counter1 compare output B / PWM), PCINT2 pin-change interrupt."
      },
      {
        "number": "17",
        "name": "PB3/MOSI/OC2A/PCINT3",
        "type": "bidirectional",
        "description": "Port B bit 3. Alternate functions: MOSI (SPI master-out/slave-in data), OC2A (Timer/Counter2 compare output A / PWM), PCINT3 pin-change interrupt. Also used for ISP programming (data in)."
      },
      {
        "number": "18",
        "name": "PB4/MISO/PCINT4",
        "type": "bidirectional",
        "description": "Port B bit 4. Alternate functions: MISO (SPI master-in/slave-out data), PCINT4 pin-change interrupt. Also used for ISP programming (data out)."
      },
      {
        "number": "19",
        "name": "PB5/SCK/PCINT5",
        "type": "bidirectional",
        "description": "Port B bit 5. Alternate functions: SCK (SPI bus clock), PCINT5 pin-change interrupt. Also used for ISP programming (clock)."
      },
      {
        "number": "20",
        "name": "AVCC",
        "type": "power_in",
        "description": "Analog supply voltage for the A/D converter, Port C (PC3:0) and (in TQFP/VQFN) ADC7:6. Must be externally connected to VCC even if the ADC is unused; if the ADC is used, connect through an LC low-pass filter for noise isolation."
      },
      {
        "number": "21",
        "name": "AREF",
        "type": "passive",
        "description": "Analog reference input for the A/D converter. Bypass with a decoupling capacitor to GND; may be driven externally or internally selected via ADMUX (AVCC or 1.1V internal bandgap)."
      },
      {
        "number": "22",
        "name": "GND",
        "type": "power_in",
        "description": "Analog ground return (shared with digital GND). Tie to pin 8 GND."
      },
      {
        "number": "23",
        "name": "PC0/ADC0/PCINT8",
        "type": "bidirectional",
        "description": "Port C bit 0. Alternate functions: ADC0 (analog input channel 0, 10-bit), PCINT8 pin-change interrupt."
      },
      {
        "number": "24",
        "name": "PC1/ADC1/PCINT9",
        "type": "bidirectional",
        "description": "Port C bit 1. Alternate functions: ADC1 (analog input channel 1, 10-bit), PCINT9 pin-change interrupt."
      },
      {
        "number": "25",
        "name": "PC2/ADC2/PCINT10",
        "type": "bidirectional",
        "description": "Port C bit 2. Alternate functions: ADC2 (analog input channel 2, 10-bit), PCINT10 pin-change interrupt."
      },
      {
        "number": "26",
        "name": "PC3/ADC3/PCINT11",
        "type": "bidirectional",
        "description": "Port C bit 3. Alternate functions: ADC3 (analog input channel 3, 10-bit), PCINT11 pin-change interrupt."
      },
      {
        "number": "27",
        "name": "PC4/ADC4/SDA/PCINT12",
        "type": "bidirectional",
        "description": "Port C bit 4. Alternate functions: ADC4 (analog input channel 4, 10-bit), SDA (TWI/I2C data line), PCINT12 pin-change interrupt."
      },
      {
        "number": "28",
        "name": "PC5/ADC5/SCL/PCINT13",
        "type": "bidirectional",
        "description": "Port C bit 5. Alternate functions: ADC5 (analog input channel 5, 10-bit), SCL (TWI/I2C clock line), PCINT13 pin-change interrupt."
      }
    ],
    "provenance": {
      "extractor": "ds2sf",
      "datasheet": {
        "url": "https://ww1.microchip.com/downloads/en/DeviceDoc/ATmega48A-PA-88A-PA-168A-PA-328-P-DS-DS40002061B.pdf",
        "pages": 653,
        "sha256": "b9b9d83cda56a95d",
        "source_tier": "mfr"
      },
      "cad": "KiCad official (CC-BY-SA 4.0)",
      "pins": {
        "total": 28,
        "described": 28,
        "cites_pages": true,
        "refuses_to_fabricate": true
      }
    },
    "viewers": {
      "symbol": "viewers/symbol.html",
      "footprint": "viewers/footprint.html"
    }
  },
  "metadata": {
    "specs": {
      "Core": "8-bit AVR RISC",
      "Flash": "32 KB (self-programming)",
      "SRAM": "2 KB",
      "EEPROM": "1 KB",
      "Max clock": "20 MHz",
      "GPIO": "23 (ports B/C/D)",
      "ADC": "6-channel 10-bit (DIP)",
      "Serial": "USART + SPI + I2C (TWI)",
      "Timers": "3 (2x 8-bit, 1x 16-bit) with PWM",
      "Supply voltage": "1.8-5.5 V",
      "Package": "PDIP-28 (SPDIP)"
    }
  },
  "sections": [
    "hero",
    "viewers",
    "readme",
    "breadcrumbs",
    "info"
  ],
  "discovery_triggers": [
    "atmega328p",
    "atmega328",
    "arduino uno chip",
    "8-bit avr",
    "avr microcontroller"
  ],
  "discovery_pitch": "ATmega328P 8-bit AVR microcontroller (28-pin DIP, the Arduino Uno chip) 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",
    "atmega328p.kicad_sym",
    "atmega328p.kicad_mod",
    "atmega328p.glb",
    "atmega328p.lbr",
    "docs/hero.png",
    "docs/atmega328p-datasheet.pdf",
    "viewers/symbol.html",
    "viewers/footprint.html",
    "atmega328p-etched.step"
  ]
}