component
MCP2515
Public Unreviewedby adom
Microchip stand-alone CAN 2.0B controller with SPI, SOIC-18. 1 Mb/s, 3 TX + 2 RX buffers, 6 filters. Datasheet-verified.
← Commit history
Publish 0.1.0
8 files changed
+908−9
README.md+59−2@@ -1,5 +1,62 @@ # MCP2515 -CAN bus controller with SPI interface, DIP-18+**Microchip Technology** · CAN 2.0B controller (SPI) · SOIC-18 -The MCP2515 is a standalone CAN controller from Microchip with SPI interface. Supports CAN 2.0B at up to 1Mbps. Used with an external transceiver (like MCP2551) for CAN bus communication.+A stand-alone CAN controller that adds a full CAN 2.0B bus to any microcontroller over SPI, in a SOIC-18 package. It handles the whole protocol in hardware at up to 1 Mb/s: three transmit buffers with priority, two receive buffers, and six acceptance filters with two masks sort incoming frames so the host MCU only sees the messages it cares about. Pair it with a CAN transceiver such as the MCP2551 or MCP2562 for the physical layer. Interrupt and buffer-full pins signal the host without polling.++## Pinout++| Pin | Name | Type | Function |+|---|---|---|---|+| 1 | TXCAN | output | Transmit output pin to the external CAN transceiver. Drives the CAN bus TX line. |+| 2 | RXCAN | input | Receive input pin from the external CAN transceiver. Samples the CAN bus RX line. |+| 3 | CLKOUT/SOF | output | Clock output pin with programmable prescaler. Alternately configurable as a Start-of-Frame (SOF) signal for CAN bus diagnostics or clocking downstream devices. |+| 4 | TX0RTS | input | Transmit buffer TXB0 Request-to-Send input, or general-purpose digital input. Internal 100 kΩ pull-up to VDD. |+| 5 | TX1RTS | input | Transmit buffer TXB1 Request-to-Send input, or general-purpose digital input. Internal 100 kΩ pull-up to VDD. |+| 6 | TX2RTS | input | Transmit buffer TXB2 Request-to-Send input, or general-purpose digital input. Internal 100 kΩ pull-up to VDD. |+| 7 | OSC2 | output | Oscillator output for the crystal/resonator connected between OSC1 and OSC2. |+| 8 | OSC1 | input | Oscillator input for a crystal/resonator, or external clock source input. |+| 9 | VSS | power_in | Ground reference for logic and I/O pins. Connect to system ground (0 V). |+| 10 | RX1BF | output | Receive buffer RXB1 interrupt pin, or general-purpose digital output. Configurable via BFPCTRL register. |+| 11 | RX0BF | output | Receive buffer RXB0 interrupt pin, or general-purpose digital output. Configurable via BFPCTRL register. |+| 12 | INT | output | Active-low interrupt output pin. Asserted when any of the enabled interrupt sources (via CANINTE register) becomes active. |+| 13 | SCK | input | SPI clock input from the host MCU. Supports SPI modes 0,0 and 1,1 up to 10 MHz. |+| 14 | SI | input | SPI data input (MOSI) from the host MCU. Data sampled on the SCK edge selected by SPI mode. |+| 15 | SO | output | SPI data output (MISO) to the host MCU. High-impedance when CS is deasserted. |+| 16 | CS | input | Active-low SPI chip-select input from the host MCU. Enables the SPI slave interface. |+| 17 | RESET | input | Active-low device reset input. Puts the device into Configuration mode and resets all registers. |+| 18 | VDD | power_in | Positive supply for logic and I/O pins. Operating range 2.7 V to 5.5 V. |++## Key specifications++| Parameter | Value |+|---|---|+| Type | Stand-alone CAN controller |+| Protocol | CAN 2.0B, up to 1 Mb/s |+| Host interface | SPI (up to 10 MHz) |+| TX buffers | 3 (with priority) |+| RX buffers | 2 |+| Message filtering | 6 filters + 2 masks |+| Clock | external crystal on OSC1/OSC2 |+| Package | SOIC-18 |++## Ordering variants++- `MCP2515-I/SO (SOIC-18)`+- `MCP2515T-I/SO (SOIC-18, tape & reel)`++## CAD (KiCad official)++- Symbol: `Interface_CAN_LIN:MCP2515-xSO`+- Footprint: `Package_SO:SOIC-18W_7.5x11.6mm_P1.27mm`+- 3D model: SOIC-18W (KiCad packages3D)++## Provenance++Data extracted from the manufacturer datasheet, not a distributor listing:++- **Datasheet:** [Microchip Technology datasheet](https://ww1.microchip.com/downloads/en/DeviceDoc/MCP2515-Stand-Alone-CAN-Controller-with-SPI-20001801J.pdf) (94 pp, sha256 `f2cf92a2d1ed42b2`, retrieved 2026-08-17, tier: manufacturer)+- **Extractor:** `ds2sf` (Claude). Every pin and dimension is cited to a datasheet page; it refuses to fabricate.+- **CAD:** KiCad official libraries (CC-BY-SA 4.0).++[Datasheet PDF](docs/mcp2515-datasheet.pdf)
docs/hero.pngadded⋯ 1 unchanged line ⋯
docs/mcp2515-datasheet.pdfadded⋯ 1 unchanged line ⋯
mcp2515.glbadded⋯ 1 unchanged line ⋯
mcp2515.kicad_modadded+360@@ -0,0 +1,360 @@+(footprint "SOIC-18W_7.5x11.6mm_P1.27mm"+ (version 20260206)+ (generator "kicad-footprint-generator")+ (layer "F.Cu")+ (descr "SOIC, 18 Pin (JEDEC MS-013AB, https://www.analog.com/media/en/package-pcb-resources/package/33254132129439rw_18.pdf)")+ (tags "SOIC SO")+ (property "Reference" "REF**"+ (at 0 -6.73 0)+ (layer "F.SilkS")+ (effects+ (font+ (size 1 1)+ (thickness 0.15)+ )+ )+ )+ (property "Value" "SOIC-18W_7.5x11.6mm_P1.27mm"+ (at 0 6.73 0)+ (layer "F.Fab")+ (effects+ (font+ (size 1 1)+ (thickness 0.15)+ )+ )+ )+ (property "KiLib_Generator" "package/gullwing"+ (at 0 0 0)+ (layer "F.SilkS")+ (hide yes)+ (effects+ (font+ (size 1 1)+ (thickness 0.15)+ )+ )+ )+ (attr smd)+ (duplicate_pad_numbers_are_jumpers no)+ (fp_line+ (start -3.86 -5.885)+ (end 3.86 -5.885)+ (stroke+ (width 0.12)+ (type solid)+ )+ (layer "F.SilkS")+ )+ (fp_line+ (start -3.86 -5.64)+ (end -3.86 -5.885)+ (stroke+ (width 0.12)+ (type solid)+ )+ (layer "F.SilkS")+ )+ (fp_line+ (start -3.86 5.885)+ (end -3.86 5.64)+ (stroke+ (width 0.12)+ (type solid)+ )+ (layer "F.SilkS")+ )+ (fp_line+ (start 3.86 -5.885)+ (end 3.86 -5.64)+ (stroke+ (width 0.12)+ (type solid)+ )+ (layer "F.SilkS")+ )+ (fp_line+ (start 3.86 5.64)+ (end 3.86 5.885)+ (stroke+ (width 0.12)+ (type solid)+ )+ (layer "F.SilkS")+ )+ (fp_line+ (start 3.86 5.885)+ (end -3.86 5.885)+ (stroke+ (width 0.12)+ (type solid)+ )+ (layer "F.SilkS")+ )+ (fp_poly+ (pts+ (xy -4.65 -5.64)+ (xy -4.99 -6.11)+ (xy -4.31 -6.11)+ )+ (stroke+ (width 0.12)+ (type solid)+ )+ (fill yes)+ (layer "F.SilkS")+ )+ (fp_line+ (start -5.93 -5.63)+ (end -4 -5.63)+ (stroke+ (width 0.05)+ (type solid)+ )+ (layer "F.CrtYd")+ )+ (fp_line+ (start -5.93 5.63)+ (end -5.93 -5.63)+ (stroke+ (width 0.05)+ (type solid)+ )+ (layer "F.CrtYd")+ )+ (fp_line+ (start -4 -6.03)+ (end 4 -6.03)+ (stroke+ (width 0.05)+ (type solid)+ )+ (layer "F.CrtYd")+ )+ (fp_line+ (start -4 -5.63)+ (end -4 -6.03)+ (stroke+ (width 0.05)+ (type solid)+ )+ (layer "F.CrtYd")+ )+ (fp_line+ (start -4 5.63)+ (end -5.93 5.63)+ (stroke+ (width 0.05)+ (type solid)+ )+ (layer "F.CrtYd")+ )+ (fp_line+ (start -4 6.03)+ (end -4 5.63)+ (stroke+ (width 0.05)+ (type solid)+ )+ (layer "F.CrtYd")+ )+ (fp_line+ (start 4 -6.03)+ (end 4 -5.63)+ (stroke+ (width 0.05)+ (type solid)+ )+ (layer "F.CrtYd")+ )+ (fp_line+ (start 4 -5.63)+ (end 5.93 -5.63)+ (stroke+ (width 0.05)+ (type solid)+ )+ (layer "F.CrtYd")+ )+ (fp_line+ (start 4 5.63)+ (end 4 6.03)+ (stroke+ (width 0.05)+ (type solid)+ )+ (layer "F.CrtYd")+ )+ (fp_line+ (start 4 6.03)+ (end -4 6.03)+ (stroke+ (width 0.05)+ (type solid)+ )+ (layer "F.CrtYd")+ )+ (fp_line+ (start 5.93 -5.63)+ (end 5.93 5.63)+ (stroke+ (width 0.05)+ (type solid)+ )+ (layer "F.CrtYd")+ )+ (fp_line+ (start 5.93 5.63)+ (end 4 5.63)+ (stroke+ (width 0.05)+ (type solid)+ )+ (layer "F.CrtYd")+ )+ (fp_poly+ (pts+ (xy -2.75 -5.775)+ (xy 3.75 -5.775)+ (xy 3.75 5.775)+ (xy -3.75 5.775)+ (xy -3.75 -4.775)+ )+ (stroke+ (width 0.1)+ (type solid)+ )+ (fill no)+ (layer "F.Fab")+ )+ (fp_text user "${REFERENCE}"+ (at 0 0 0)+ (layer "F.Fab")+ (effects+ (font+ (size 1 1)+ (thickness 0.15)+ )+ )+ )+ (pad "1" smd roundrect+ (at -4.65 -5.08)+ (size 2.05 0.6)+ (layers "F.Cu" "F.Mask" "F.Paste")+ (roundrect_rratio 0.25)+ )+ (pad "2" smd roundrect+ (at -4.65 -3.81)+ (size 2.05 0.6)+ (layers "F.Cu" "F.Mask" "F.Paste")+ (roundrect_rratio 0.25)+ )+ (pad "3" smd roundrect+ (at -4.65 -2.54)+ (size 2.05 0.6)+ (layers "F.Cu" "F.Mask" "F.Paste")+ (roundrect_rratio 0.25)+ )+ (pad "4" smd roundrect+ (at -4.65 -1.27)+ (size 2.05 0.6)+ (layers "F.Cu" "F.Mask" "F.Paste")+ (roundrect_rratio 0.25)+ )+ (pad "5" smd roundrect+ (at -4.65 0)+ (size 2.05 0.6)+ (layers "F.Cu" "F.Mask" "F.Paste")+ (roundrect_rratio 0.25)+ )+ (pad "6" smd roundrect+ (at -4.65 1.27)+ (size 2.05 0.6)+ (layers "F.Cu" "F.Mask" "F.Paste")+ (roundrect_rratio 0.25)+ )+ (pad "7" smd roundrect+ (at -4.65 2.54)+ (size 2.05 0.6)+ (layers "F.Cu" "F.Mask" "F.Paste")+ (roundrect_rratio 0.25)+ )+ (pad "8" smd roundrect+ (at -4.65 3.81)+ (size 2.05 0.6)+ (layers "F.Cu" "F.Mask" "F.Paste")+ (roundrect_rratio 0.25)+ )+ (pad "9" smd roundrect+ (at -4.65 5.08)+ (size 2.05 0.6)+ (layers "F.Cu" "F.Mask" "F.Paste")+ (roundrect_rratio 0.25)+ )+ (pad "10" smd roundrect+ (at 4.65 5.08)+ (size 2.05 0.6)+ (layers "F.Cu" "F.Mask" "F.Paste")+ (roundrect_rratio 0.25)+ )+ (pad "11" smd roundrect+ (at 4.65 3.81)+ (size 2.05 0.6)+ (layers "F.Cu" "F.Mask" "F.Paste")+ (roundrect_rratio 0.25)+ )+ (pad "12" smd roundrect+ (at 4.65 2.54)+ (size 2.05 0.6)+ (layers "F.Cu" "F.Mask" "F.Paste")+ (roundrect_rratio 0.25)+ )+ (pad "13" smd roundrect+ (at 4.65 1.27)+ (size 2.05 0.6)+ (layers "F.Cu" "F.Mask" "F.Paste")+ (roundrect_rratio 0.25)+ )+ (pad "14" smd roundrect+ (at 4.65 0)+ (size 2.05 0.6)+ (layers "F.Cu" "F.Mask" "F.Paste")+ (roundrect_rratio 0.25)+ )+ (pad "15" smd roundrect+ (at 4.65 -1.27)+ (size 2.05 0.6)+ (layers "F.Cu" "F.Mask" "F.Paste")+ (roundrect_rratio 0.25)+ )+ (pad "16" smd roundrect+ (at 4.65 -2.54)+ (size 2.05 0.6)+ (layers "F.Cu" "F.Mask" "F.Paste")+ (roundrect_rratio 0.25)+ )+ (pad "17" smd roundrect+ (at 4.65 -3.81)+ (size 2.05 0.6)+ (layers "F.Cu" "F.Mask" "F.Paste")+ (roundrect_rratio 0.25)+ )+ (pad "18" smd roundrect+ (at 4.65 -5.08)+ (size 2.05 0.6)+ (layers "F.Cu" "F.Mask" "F.Paste")+ (roundrect_rratio 0.25)+ )+ (embedded_fonts no)+ (model "${KICAD10_3DMODEL_DIR}/Package_SO.3dshapes/SOIC-18W_7.5x11.6mm_P1.27mm.step"+ (offset+ (xyz 0 0 0)+ )+ (scale+ (xyz 1 1 1)+ )+ (rotate+ (xyz 0 0 0)+ )+ )+)
mcp2515.kicad_symadded+430@@ -0,0 +1,430 @@+(kicad_symbol_lib+ (version 20251024)+ (generator "kicad_symbol_editor")+ (generator_version "10.0")+(symbol "MCP2515-xSO"+ (exclude_from_sim no)+ (in_bom yes)+ (on_board yes)+ (in_pos_files yes)+ (duplicate_pin_numbers_are_jumpers no)+ (property "Reference" "U"+ (at -10.16 19.685 0)+ (show_name no)+ (do_not_autoplace no)+ (effects+ (font+ (size 1.27 1.27)+ )+ (justify right)+ )+ )+ (property "Value" "MCP2515-xSO"+ (at 19.05 20.32 0)+ (show_name no)+ (do_not_autoplace no)+ (effects+ (font+ (size 1.27 1.27)+ )+ (justify right top)+ )+ )+ (property "Footprint" "Package_SO:SOIC-18W_7.5x11.6mm_P1.27mm"+ (at 0 -22.86 0)+ (show_name no)+ (do_not_autoplace no)+ (hide yes)+ (effects+ (font+ (size 1.27 1.27)+ (italic yes)+ )+ )+ )+ (property "Datasheet" "http://ww1.microchip.com/downloads/en/DeviceDoc/21801e.pdf"+ (at 2.54 -20.32 0)+ (show_name no)+ (do_not_autoplace no)+ (hide yes)+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ (property "Description" "Stand-Alone CAN Controller with SPI Interface, SOIC-18"+ (at 0 0 0)+ (show_name no)+ (do_not_autoplace no)+ (hide yes)+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ (property "ki_keywords" "CAN Controller SPI"+ (at 0 0 0)+ (show_name no)+ (do_not_autoplace no)+ (hide yes)+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ (property "ki_fp_filters" "SOIC*7.5x11.6mm*P1.27mm*"+ (at 0 0 0)+ (show_name no)+ (do_not_autoplace no)+ (hide yes)+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ (symbol "MCP2515-xSO_0_1"+ (rectangle+ (start -12.7 17.78)+ (end 12.7 -17.78)+ (stroke+ (width 0.254)+ (type default)+ )+ (fill+ (type background)+ )+ )+ )+ (symbol "MCP2515-xSO_1_1"+ (pin output line+ (at 15.24 12.7 180)+ (length 2.54)+ (name "TXCAN"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ (number "1"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ )+ (pin input line+ (at 15.24 15.24 180)+ (length 2.54)+ (name "RXCAN"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ (number "2"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ )+ (pin output line+ (at -15.24 -10.16 0)+ (length 2.54)+ (name "CLKOUT/SOF"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ (number "3"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ )+ (pin input line+ (at 15.24 -7.62 180)+ (length 2.54)+ (name "~{TX0RTS}"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ (number "4"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ )+ (pin input line+ (at 15.24 -10.16 180)+ (length 2.54)+ (name "~{TX1RTS}"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ (number "5"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ )+ (pin input line+ (at 15.24 -12.7 180)+ (length 2.54)+ (name "~{TX2RTS}"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ (number "6"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ )+ (pin output line+ (at -15.24 -5.08 0)+ (length 2.54)+ (name "OSC2"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ (number "7"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ )+ (pin input line+ (at -15.24 -7.62 0)+ (length 2.54)+ (name "OSC1"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ (number "8"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ )+ (pin power_in line+ (at 0 -20.32 90)+ (length 2.54)+ (name "VSS"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ (number "9"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ )+ (pin output line+ (at 15.24 -5.08 180)+ (length 2.54)+ (name "~{RX1BF}"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ (number "10"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ )+ (pin output line+ (at 15.24 -2.54 180)+ (length 2.54)+ (name "~{RX0BF}"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ (number "11"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ )+ (pin output line+ (at 15.24 0 180)+ (length 2.54)+ (name "~{INT}"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ (number "12"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ )+ (pin input line+ (at -15.24 7.62 0)+ (length 2.54)+ (name "SCK"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ (number "13"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ )+ (pin input line+ (at -15.24 15.24 0)+ (length 2.54)+ (name "SI"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ (number "14"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ )+ (pin output line+ (at -15.24 12.7 0)+ (length 2.54)+ (name "SO"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ (number "15"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ )+ (pin input line+ (at -15.24 10.16 0)+ (length 2.54)+ (name "~{CS}"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ (number "16"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ )+ (pin input line+ (at 15.24 -15.24 180)+ (length 2.54)+ (name "~{RESET}"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ (number "17"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ )+ (pin power_in line+ (at 0 20.32 270)+ (length 2.54)+ (name "VDD"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ (number "18"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ )+ )+ (embedded_fonts no)+ )+)
package.jsonadded+31@@ -0,0 +1,31 @@+{+ "slug": "mcp2515",+ "version": "0.1.0",+ "type": "component",+ "description": "Microchip stand-alone CAN 2.0B controller with SPI, SOIC-18. 1 Mb/s, 3 TX + 2 RX buffers, 6 filters. Datasheet-verified.",+ "tags": [+ "component",+ "interface",+ "can-bus",+ "can-controller",+ "spi",+ "soic-18",+ "microchip"+ ],+ "dependencies": {},+ "hero": {+ "type": "image",+ "path": "docs/hero.png"+ },+ "files": [+ "page.json",+ "README.md",+ "mcp2515.kicad_sym",+ "mcp2515.kicad_mod",+ "mcp2515.glb",+ "docs/hero.png",+ "docs/mcp2515-datasheet.pdf",+ "viewers/symbol.html",+ "viewers/footprint.html"+ ]+}
page.json+28−7@@ -4,8 +4,16 @@ "slug": "mcp2515", "title": "MCP2515", "brief": "CAN bus controller with SPI interface, DIP-18",- "version": "1.0.0",- "tags": [],+ "version": "0.1.0",+ "tags": [+ "component",+ "interface",+ "can-bus",+ "can-controller",+ "spi",+ "soic-18",+ "microchip"+ ], "license": "MIT", "component": { "mpn": "MCP2515",@@ -20,18 +28,31 @@ }, "readme": "# MCP2515\n\nCAN bus controller with SPI interface, DIP-18\n\nThe MCP2515 is a standalone CAN controller from Microchip with SPI interface. Supports CAN 2.0B at up to 1Mbps. Used with an external transceiver (like MCP2551) for CAN bus communication.", "author": {- "id": "695820315b5f1e4db2fcf602", "name": "Kyle Bergstedt", "email": "[email protected]" },- "visibility": {- "public": true+ "visibility": "public",+ "hero": {+ "type": "image",+ "path": "docs/hero.png" },- "hero": null, "sample_prompts": [], "discovery_triggers": [], "discovery_pitch": null, "metadata": {}, "created_at": "2026-05-28T05:33:57.969Z",- "updated_at": "2026-05-28T05:33:57.969Z"+ "updated_at": "2026-05-28T05:33:57.969Z",+ "description": "Microchip stand-alone CAN 2.0B controller with SPI, SOIC-18. 1 Mb/s, 3 TX + 2 RX buffers, 6 filters. Datasheet-verified.",+ "dependencies": {},+ "files": [+ "page.json",+ "README.md",+ "mcp2515.kicad_sym",+ "mcp2515.kicad_mod",+ "mcp2515.glb",+ "docs/hero.png",+ "docs/mcp2515-datasheet.pdf",+ "viewers/symbol.html",+ "viewers/footprint.html"+ ] }