main
Ray Publish 0.1.1 d6056c9
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555
{
  "slug": "atmega328p-pu",
  "version": "0.1.1",
  "type": "component",
  "description": "Microchip Tech ATMEL & AVR, DIP-28-300mil. Pinout cross-checked by two models against the datasheet, KiCad symbol/footprint/3D.",
  "tags": [
    "component",
    "embedded processors & controllers",
    "atmega328p-pu",
    "factory-2.0.0",
    "extractor-text"
  ],
  "dependencies": {},
  "hero": {
    "type": "image",
    "path": "docs/hero.png"
  },
  "files": [
    "page.json",
    "README.md",
    "atmega328p-pu.kicad_sym",
    "atmega328p-pu.kicad_mod",
    "atmega328p-pu.glb",
    "atmega328p-pu.step",
    "atmega328p-pu.lbr",
    "docs/hero.png",
    "docs/atmega328p-pu-datasheet.pdf",
    "viewers/symbol.html",
    "viewers/footprint.html",
    "atmega328p-pu-hero.glb",
    "atmega328p-pu-hero.overlay.json",
    "atmega328p-pu-etched.glb",
    "atmega328p-pu-etched.step"
  ],
  "component": {
    "mpn": "ATMEGA328P-PU",
    "manufacturer": "Microchip Tech",
    "package": "DIP-28-300mil",
    "pin_count": 28,
    "category": "Embedded Processors & Controllers",
    "subcategory": "ATMEL & AVR",
    "datasheet": "https://ww1.microchip.com/downloads/en/DeviceDoc/ATmega48A-PA-88A-PA-168A-PA-328-P-DS-DS40002061B.pdf",
    "parts": {
      "symbol": "atmega328p-pu.kicad_sym",
      "footprint": "atmega328p-pu.kicad_mod",
      "model_3d": "atmega328p-pu-hero.glb",
      "model_3d_plain": "atmega328p-pu.glb",
      "model_3d_step": "atmega328p-pu-etched.step",
      "model_3d_step_plain": "atmega328p-pu.step",
      "lbr": "atmega328p-pu.lbr"
    },
    "distributor_links": {
      "lcsc": "C33901",
      "digikey": "ATMEGA328P-PU-ND",
      "mouser": "556-ATMEGA328P-PU"
    },
    "distributor_check": {
      "checked_at": "2026-11-05T04:35:33Z",
      "source": "Component Ocean /api/assign-pns",
      "digikey": {
        "pn": "ATMEGA328P-PU-ND",
        "status": "found"
      },
      "mouser": {
        "pn": "556-ATMEGA328P-PU",
        "status": "found",
        "lifecycle": "Not Recommended for New Designs"
      }
    },
    "pins": [
      {
        "number": "1",
        "name": "PC6 (RESET/PCINT14)",
        "type": "bidirectional",
        "description": "Port C bit 6 is a reset input when the RSTDISBL fuse is unprogrammed, where a low level longer than the minimum pulse length generates a Reset and shorter pulses are not ensured to reset; with RSTDISBL programmed it is a normal I/O pin."
      },
      {
        "number": "2",
        "name": "PD0 (RXD/PCINT16)",
        "type": "bidirectional",
        "description": "Port D bit 0 is the USART receive data input (RXD) when the USART receiver is enabled, and can also serve as pin change interrupt 16."
      },
      {
        "number": "3",
        "name": "PD1 (TXD/PCINT17)",
        "type": "bidirectional",
        "description": "Port D bit 1 is the USART transmit data output (TXD), configured as an output regardless of DDD1 when the USART transmitter is enabled, and can also serve as pin change interrupt 17."
      },
      {
        "number": "4",
        "name": "PD2 (INT0/PCINT18)",
        "type": "bidirectional",
        "description": "Port D bit 2 can serve as external interrupt source 0 (INT0) and as pin change interrupt 18."
      },
      {
        "number": "5",
        "name": "PD3",
        "type": "bidirectional",
        "description": "Port D bit 3 can serve as external interrupt source 1 (INT1), and as the Timer/Counter2 compare match B output (OC2B) when configured as an output; it can also serve as pin change interrupt 19."
      },
      {
        "number": "6",
        "name": "PD4",
        "type": "bidirectional",
        "description": "Port D bit 4 is the USART external clock input/output (XCK) and the Timer/Counter0 external counter input (T0), and can also serve as pin change interrupt 20."
      },
      {
        "number": "7",
        "name": "VCC",
        "type": "power_in",
        "description": "Digital supply voltage."
      },
      {
        "number": "8",
        "name": "GND",
        "type": "power_in",
        "description": "Ground."
      },
      {
        "number": "9",
        "name": "PB6 (XTAL1/TOSC1/PCINT6)",
        "type": "input",
        "description": "Depending on clock selection fuse settings, PB6 is the input to the inverting oscillator amplifier (XTAL1) and to the internal clock circuit; when used as a clock pin it cannot be used as an I/O pin."
      },
      {
        "number": "10",
        "name": "PB7 (XTAL2/TOSC2/PCINT7)",
        "type": "output",
        "description": "Depending on clock selection fuse settings, PB7 is the output of the inverting oscillator amplifier (XTAL2); when used as a clock pin it cannot be used as an I/O pin."
      },
      {
        "number": "11",
        "name": "PD5",
        "type": "bidirectional",
        "description": "Port D bit 5 is the Timer/Counter1 external counter input (T1), and the Timer/Counter0 compare match B output (OC0B) when configured as an output; it can also serve as pin change interrupt 21."
      },
      {
        "number": "12",
        "name": "PD6",
        "type": "bidirectional",
        "description": "Port D bit 6 is the analog comparator positive input (AIN0) and the Timer/Counter0 compare match A output (OC0A) when configured as an output; for AIN0 use, the pin should be configured as input with the pull-up off."
      },
      {
        "number": "13",
        "name": "PD7",
        "type": "bidirectional",
        "description": "Port D bit 7 is the analog comparator negative input (AIN1); configure it as an input with the internal pull-up switched off to avoid interference with the comparator."
      },
      {
        "number": "14",
        "name": "PB0",
        "type": "bidirectional",
        "description": "Port B bit 0 is the Timer/Counter1 input capture input (ICP1) and the divided system clock output (CLKO), and can also serve as pin change interrupt 0."
      },
      {
        "number": "15",
        "name": "PB1 (OC1A/PCINT1)",
        "type": "bidirectional",
        "description": "Port B bit 1 is the Timer/Counter1 compare match A output (OC1A), which requires the pin to be configured as an output (DDB1 set), and can also serve as pin change interrupt 1."
      },
      {
        "number": "16",
        "name": "PB2 (SS/OC1B/PCINT2)",
        "type": "bidirectional",
        "description": "Port B bit 2 is the SPI slave select input (SS) and the Timer/Counter1 compare match B output (OC1B, requires DDB2 set), and can also serve as pin change interrupt 2."
      },
      {
        "number": "17",
        "name": "PB3 (MOSI/OC2A/PCINT3)",
        "type": "bidirectional",
        "description": "Port B bit 3 is the SPI master data output / slave data input (MOSI) and the Timer/Counter2 compare match A output (OC2A, requires DDB3 set), and can also serve as pin change interrupt 3."
      },
      {
        "number": "18",
        "name": "PB4 (MISO/PCINT4)",
        "type": "bidirectional",
        "description": "Port B bit 4 is the SPI master data input / slave data output (MISO), and can also serve as pin change interrupt 4."
      },
      {
        "number": "19",
        "name": "PB5 (SCK/PCINT5)",
        "type": "bidirectional",
        "description": "Port B bit 5 is the SPI master clock output / slave clock input (SCK), and can also serve as pin change interrupt 5."
      },
      {
        "number": "20",
        "name": "AVCC",
        "type": "power_in",
        "description": "AVCC is the supply voltage pin for the A/D converter, PC3:0 and ADC7:6; it should be externally connected to VCC even if the ADC is not used, and connected through a low-pass filter if the ADC is used."
      },
      {
        "number": "21",
        "name": "AREF",
        "type": "input",
        "description": "AREF is the analog reference pin for the A/D converter."
      },
      {
        "number": "22",
        "name": "GND",
        "type": "power_in",
        "description": "Ground."
      },
      {
        "number": "23",
        "name": "PC0 (ADC0/PCINT8)",
        "type": "bidirectional",
        "description": "Port C bit 0 can be used as ADC input channel 0 (uses analog power) and can also serve as pin change interrupt 8."
      },
      {
        "number": "24",
        "name": "PC1 (ADC1/PCINT9)",
        "type": "bidirectional",
        "description": "Port C bit 1 can be used as ADC input channel 1 (uses analog power) and can also serve as pin change interrupt 9."
      },
      {
        "number": "25",
        "name": "PC2 (ADC2/PCINT10)",
        "type": "bidirectional",
        "description": "Port C bit 2 can be used as ADC input channel 2 (uses analog power) and can also serve as pin change interrupt 10."
      },
      {
        "number": "26",
        "name": "PC3 (ADC3/PCINT11)",
        "type": "bidirectional",
        "description": "Port C bit 3 can be used as ADC input channel 3 (uses analog power) and can also serve as pin change interrupt 11."
      },
      {
        "number": "27",
        "name": "PC4 (ADC4/SDA/PCINT12)",
        "type": "bidirectional",
        "description": "Port C bit 4 is the 2-wire serial interface data I/O (SDA) when TWEN is set, can be used as ADC input channel 4 (uses digital power), and can also serve as pin change interrupt 12."
      },
      {
        "number": "28",
        "name": "PC5 (ADC5/SCL/PCINT13)",
        "type": "bidirectional",
        "description": "Port C bit 5 is the 2-wire serial interface clock (SCL) when TWEN is set, can be used as ADC input channel 5 (uses digital power), and can also serve as pin change interrupt 13."
      }
    ],
    "provenance": {
      "extractor": "extract_pins 0.3",
      "factory_chain": {
        "factory": "2.0.0",
        "extractor": "extract_pins 0.3",
        "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 28-pin PDIP pinout figure (page 12) is garbled in the text extraction (labelled '28 6PDIP'). Pin; Pin 1 (PC6/RESET) is a dual-function pin: it is a reset input only when the RSTDISBL fuse is unprogr; The datasheet's package for ATMEGA328P-PU is 28P3 (28-lead, 0.300\" wide SPDIP), which matches the DI",
          "14/28 pins cited to the wrong page (name found elsewhere): ['9:PB6 (XTAL1/TOSC1/PCINT6)@p91', '10:PB7 (XTAL2/TOSC2/PCINT7)@p91', '12:PD6 (AIN0/OC0A/PCINT22)@p98', '13:PD7 (AIN1/PCINT23)@p98']"
        ],
        "pages_sent": 126,
        "cost_usd": 0.3908,
        "at": "2026-11-05T04:35:23"
      },
      "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"
    },
    "models_3d": [
      {
        "file": "atmega328p-pu.step",
        "role": "plain",
        "up": "Z",
        "units": "mm",
        "origin": "footprint origin = pad-pattern centre",
        "seat": "body on z = 0, through-hole leads below",
        "extents_mm": [
          7.874,
          35.56,
          6.98
        ],
        "zmin_mm": -3.3,
        "centre_offset_mm": 0.0,
        "footprint_binding": "identity",
        "sha256": "7bf4503e368ad9b7a3eddfa94bc8dee656da5d6921b677e17307b3d7f29177ab",
        "checked": "2026-11-05",
        "checked_by": "factory/step_pose.py (Z-up, origin, seat, binding)"
      },
      {
        "file": "atmega328p-pu-etched.step",
        "role": "eda",
        "up": "Z",
        "units": "mm",
        "origin": "footprint origin = pad-pattern centre",
        "seat": "body on z = 0, through-hole leads below",
        "extents_mm": [
          7.874,
          35.56,
          6.98
        ],
        "zmin_mm": -3.3,
        "centre_offset_mm": 0.0,
        "footprint_binding": "identity",
        "sha256": "1949de29baf19a13d7059ac8dd52eb8e5372588dadd30cb8a0e0ac177afea72f",
        "checked": "2026-11-05",
        "checked_by": "factory/step_pose.py (Z-up, origin, seat, binding)"
      }
    ]
  },
  "title": "ATMEGA328P-PU",
  "brief": "Microchip Tech ATMEL & AVR, DIP-28-300mil. Pinout cross-checked by two models against the datasheet, KiCad symbol/footprint/3D.",
  "metadata": {
    "specs": {
      "Manufacturer": "Microchip Tech",
      "Package": "DIP-28-300mil",
      "Category": "Embedded Processors & Controllers",
      "Pins": "28"
    },
    "characteristics": {
      "version": 1,
      "source": "datasheet",
      "datasheet_sha256": "b9b9d83cda56a95d999ea8d54fe5a540748ae9020e5e7ae19b913d384ba9320e",
      "rows": [
        {
          "name": "Power Supply Current, Active mode",
          "symbol": "ICC",
          "kind": "electrical",
          "unit": "mA",
          "min": null,
          "typ": 0.3,
          "max": 0.5,
          "conditions": "Active 1MHz, VCC = 2V",
          "source_page": 312,
          "source": "datasheet"
        },
        {
          "name": "Power Supply Current, Active mode",
          "symbol": "ICC",
          "kind": "electrical",
          "unit": "mA",
          "min": null,
          "typ": 1.7,
          "max": 2.5,
          "conditions": "Active 4MHz, VCC = 3V",
          "source_page": 312,
          "source": "datasheet"
        },
        {
          "name": "Power Supply Current, Active mode",
          "symbol": "ICC",
          "kind": "electrical",
          "unit": "mA",
          "min": null,
          "typ": 5.2,
          "max": 9,
          "conditions": "Active 8MHz, VCC = 5V",
          "source_page": 312,
          "source": "datasheet"
        },
        {
          "name": "Power Supply Current, Idle mode",
          "symbol": "ICC",
          "kind": "electrical",
          "unit": "mA",
          "min": null,
          "typ": 0.04,
          "max": 0.15,
          "conditions": "Idle 1MHz, VCC = 2V",
          "source_page": 312,
          "source": "datasheet"
        },
        {
          "name": "Power Supply Current, Idle mode",
          "symbol": "ICC",
          "kind": "electrical",
          "unit": "mA",
          "min": null,
          "typ": 0.3,
          "max": 0.7,
          "conditions": "Idle 4MHz, VCC = 3V",
          "source_page": 312,
          "source": "datasheet"
        },
        {
          "name": "Power Supply Current, Idle mode",
          "symbol": "ICC",
          "kind": "electrical",
          "unit": "mA",
          "min": null,
          "typ": 1.2,
          "max": 2.7,
          "conditions": "Idle 8MHz, VCC = 5V",
          "source_page": 312,
          "source": "datasheet"
        },
        {
          "name": "Power Supply Current, Power-down mode",
          "symbol": "ICC",
          "kind": "electrical",
          "unit": "µA",
          "min": null,
          "typ": 4.2,
          "max": 8,
          "conditions": "WDT enabled, VCC = 3V",
          "source_page": 312,
          "source": "datasheet"
        },
        {
          "name": "Power Supply Current, Power-down mode",
          "symbol": "ICC",
          "kind": "electrical",
          "unit": "µA",
          "min": null,
          "typ": 0.1,
          "max": 2,
          "conditions": "WDT disabled, VCC = 3V",
          "source_page": 312,
          "source": "datasheet"
        },
        {
          "name": "Supply voltage range (VCC), Industrial operating range",
          "symbol": "VCC",
          "kind": "recommended_operating",
          "unit": "V",
          "min": 1.8,
          "typ": null,
          "max": 5.5,
          "conditions": "ATmega328P-PU ordering table, Industrial (-40C to 85C)",
          "source_page": 635,
          "source": "datasheet"
        },
        {
          "name": "Maximum speed grade frequency",
          "symbol": "",
          "kind": "recommended_operating",
          "unit": "MHz",
          "min": null,
          "typ": null,
          "max": 20,
          "conditions": "Speed grade for ATmega328P-PU, Power Supply 1.8 - 5.5 V; frequency vs VCC per Figure 29-1",
          "source_page": 635,
          "source": "datasheet"
        },
        {
          "name": "Operating Temperature",
          "symbol": "",
          "kind": "absolute_maximum",
          "unit": "°C",
          "min": -55,
          "typ": null,
          "max": 125,
          "conditions": "",
          "source_page": 308,
          "source": "datasheet"
        },
        {
          "name": "Storage Temperature",
          "symbol": "",
          "kind": "absolute_maximum",
          "unit": "°C",
          "min": -65,
          "typ": null,
          "max": 150,
          "conditions": "",
          "source_page": 308,
          "source": "datasheet"
        },
        {
          "name": "Voltage on any pin except RESET with respect to Ground",
          "symbol": "",
          "kind": "absolute_maximum",
          "unit": "V",
          "min": -0.5,
          "typ": null,
          "max": null,
          "conditions": "Maximum printed as VCC+0.5V",
          "source_page": 308,
          "source": "datasheet"
        },
        {
          "name": "Voltage on RESET with respect to Ground",
          "symbol": "",
          "kind": "absolute_maximum",
          "unit": "V",
          "min": -0.5,
          "typ": null,
          "max": 13,
          "conditions": "",
          "source_page": 308,
          "source": "datasheet"
        },
        {
          "name": "DC Current per I/O Pin",
          "symbol": "",
          "kind": "absolute_maximum",
          "unit": "mA",
          "min": null,
          "typ": null,
          "max": 40,
          "conditions": "",
          "source_page": 308,
          "source": "datasheet"
        },
        {
          "name": "DC Current VCC and GND Pins",
          "symbol": "",
          "kind": "absolute_maximum",
          "unit": "mA",
          "min": null,
          "typ": null,
          "max": 200,
          "conditions": "",
          "source_page": 308,
          "source": "datasheet"
        },
        {
          "name": "Power Supply Current, Power-save mode",
          "symbol": "ICC",
          "kind": "electrical",
          "unit": "µA",
          "min": null,
          "typ": 0.8,
          "max": null,
          "conditions": "32kHz TOSC enabled, VCC = 1.8V",
          "source_page": 312,
          "source": "datasheet"
        },
        {
          "name": "Power Supply Current, Power-save mode",
          "symbol": "ICC",
          "kind": "electrical",
          "unit": "µA",
          "min": null,
          "typ": 0.9,
          "max": null,
          "conditions": "32kHz TOSC enabled, VCC = 3V",
          "source_page": 312,
          "source": "datasheet"
        }
      ]
    }
  },
  "discovery_triggers": [
    "atmega328p-pu"
  ],
  "discovery_pitch": "ATMEGA328P-PU (Microchip Tech) component page: datasheet pinout, KiCad symbol, footprint and 3D.",
  "visibility": "public"
}