component
MCP23S17 SPI GPIO Expander
Public Made by Adomby adom
16-bit general-purpose I/O expander with an SPI interface and interrupt outputs.
← Commit history
Publish 0.1.0
6 files changed
+1059
docs/hero.pngadded⋯ 1 unchanged line ⋯
docs/mcp23s17-datasheet.pdfadded⋯ 1 unchanged line ⋯
mcp23s17.glbadded⋯ 1 unchanged line ⋯
mcp23s17.kicad_modadded+420@@ -0,0 +1,420 @@+(footprint "SOIC-28W_7.5x17.9mm_P1.27mm"+ (version 20260206)+ (generator "kicad-footprint-generator")+ (layer "F.Cu")+ (descr "SOIC, 28 Pin (JEDEC MS-013AE, https://www.analog.com/media/en/package-pcb-resources/package/35833120341221rw_28.pdf)")+ (tags "SOIC SO")+ (property "Reference" "REF**"+ (at 0 -9.9 0)+ (layer "F.SilkS")+ (effects+ (font+ (size 1 1)+ (thickness 0.15)+ )+ )+ )+ (property "Value" "SOIC-28W_7.5x17.9mm_P1.27mm"+ (at 0 9.9 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 -9.06)+ (end 3.86 -9.06)+ (stroke+ (width 0.12)+ (type solid)+ )+ (layer "F.SilkS")+ )+ (fp_line+ (start -3.86 -8.815)+ (end -3.86 -9.06)+ (stroke+ (width 0.12)+ (type solid)+ )+ (layer "F.SilkS")+ )+ (fp_line+ (start -3.86 9.06)+ (end -3.86 8.815)+ (stroke+ (width 0.12)+ (type solid)+ )+ (layer "F.SilkS")+ )+ (fp_line+ (start 3.86 -9.06)+ (end 3.86 -8.815)+ (stroke+ (width 0.12)+ (type solid)+ )+ (layer "F.SilkS")+ )+ (fp_line+ (start 3.86 8.815)+ (end 3.86 9.06)+ (stroke+ (width 0.12)+ (type solid)+ )+ (layer "F.SilkS")+ )+ (fp_line+ (start 3.86 9.06)+ (end -3.86 9.06)+ (stroke+ (width 0.12)+ (type solid)+ )+ (layer "F.SilkS")+ )+ (fp_poly+ (pts+ (xy -4.65 -8.82)+ (xy -4.99 -9.29)+ (xy -4.31 -9.29)+ )+ (stroke+ (width 0.12)+ (type solid)+ )+ (fill yes)+ (layer "F.SilkS")+ )+ (fp_line+ (start -5.93 -8.81)+ (end -4 -8.81)+ (stroke+ (width 0.05)+ (type solid)+ )+ (layer "F.CrtYd")+ )+ (fp_line+ (start -5.93 8.81)+ (end -5.93 -8.81)+ (stroke+ (width 0.05)+ (type solid)+ )+ (layer "F.CrtYd")+ )+ (fp_line+ (start -4 -9.2)+ (end 4 -9.2)+ (stroke+ (width 0.05)+ (type solid)+ )+ (layer "F.CrtYd")+ )+ (fp_line+ (start -4 -8.81)+ (end -4 -9.2)+ (stroke+ (width 0.05)+ (type solid)+ )+ (layer "F.CrtYd")+ )+ (fp_line+ (start -4 8.81)+ (end -5.93 8.81)+ (stroke+ (width 0.05)+ (type solid)+ )+ (layer "F.CrtYd")+ )+ (fp_line+ (start -4 9.2)+ (end -4 8.81)+ (stroke+ (width 0.05)+ (type solid)+ )+ (layer "F.CrtYd")+ )+ (fp_line+ (start 4 -9.2)+ (end 4 -8.81)+ (stroke+ (width 0.05)+ (type solid)+ )+ (layer "F.CrtYd")+ )+ (fp_line+ (start 4 -8.81)+ (end 5.93 -8.81)+ (stroke+ (width 0.05)+ (type solid)+ )+ (layer "F.CrtYd")+ )+ (fp_line+ (start 4 8.81)+ (end 4 9.2)+ (stroke+ (width 0.05)+ (type solid)+ )+ (layer "F.CrtYd")+ )+ (fp_line+ (start 4 9.2)+ (end -4 9.2)+ (stroke+ (width 0.05)+ (type solid)+ )+ (layer "F.CrtYd")+ )+ (fp_line+ (start 5.93 -8.81)+ (end 5.93 8.81)+ (stroke+ (width 0.05)+ (type solid)+ )+ (layer "F.CrtYd")+ )+ (fp_line+ (start 5.93 8.81)+ (end 4 8.81)+ (stroke+ (width 0.05)+ (type solid)+ )+ (layer "F.CrtYd")+ )+ (fp_poly+ (pts+ (xy -2.75 -8.95)+ (xy 3.75 -8.95)+ (xy 3.75 8.95)+ (xy -3.75 8.95)+ (xy -3.75 -7.95)+ )+ (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 -8.255)+ (size 2.05 0.6)+ (layers "F.Cu" "F.Mask" "F.Paste")+ (roundrect_rratio 0.25)+ )+ (pad "2" smd roundrect+ (at -4.65 -6.985)+ (size 2.05 0.6)+ (layers "F.Cu" "F.Mask" "F.Paste")+ (roundrect_rratio 0.25)+ )+ (pad "3" smd roundrect+ (at -4.65 -5.715)+ (size 2.05 0.6)+ (layers "F.Cu" "F.Mask" "F.Paste")+ (roundrect_rratio 0.25)+ )+ (pad "4" smd roundrect+ (at -4.65 -4.445)+ (size 2.05 0.6)+ (layers "F.Cu" "F.Mask" "F.Paste")+ (roundrect_rratio 0.25)+ )+ (pad "5" smd roundrect+ (at -4.65 -3.175)+ (size 2.05 0.6)+ (layers "F.Cu" "F.Mask" "F.Paste")+ (roundrect_rratio 0.25)+ )+ (pad "6" smd roundrect+ (at -4.65 -1.905)+ (size 2.05 0.6)+ (layers "F.Cu" "F.Mask" "F.Paste")+ (roundrect_rratio 0.25)+ )+ (pad "7" smd roundrect+ (at -4.65 -0.635)+ (size 2.05 0.6)+ (layers "F.Cu" "F.Mask" "F.Paste")+ (roundrect_rratio 0.25)+ )+ (pad "8" smd roundrect+ (at -4.65 0.635)+ (size 2.05 0.6)+ (layers "F.Cu" "F.Mask" "F.Paste")+ (roundrect_rratio 0.25)+ )+ (pad "9" smd roundrect+ (at -4.65 1.905)+ (size 2.05 0.6)+ (layers "F.Cu" "F.Mask" "F.Paste")+ (roundrect_rratio 0.25)+ )+ (pad "10" smd roundrect+ (at -4.65 3.175)+ (size 2.05 0.6)+ (layers "F.Cu" "F.Mask" "F.Paste")+ (roundrect_rratio 0.25)+ )+ (pad "11" smd roundrect+ (at -4.65 4.445)+ (size 2.05 0.6)+ (layers "F.Cu" "F.Mask" "F.Paste")+ (roundrect_rratio 0.25)+ )+ (pad "12" smd roundrect+ (at -4.65 5.715)+ (size 2.05 0.6)+ (layers "F.Cu" "F.Mask" "F.Paste")+ (roundrect_rratio 0.25)+ )+ (pad "13" smd roundrect+ (at -4.65 6.985)+ (size 2.05 0.6)+ (layers "F.Cu" "F.Mask" "F.Paste")+ (roundrect_rratio 0.25)+ )+ (pad "14" smd roundrect+ (at -4.65 8.255)+ (size 2.05 0.6)+ (layers "F.Cu" "F.Mask" "F.Paste")+ (roundrect_rratio 0.25)+ )+ (pad "15" smd roundrect+ (at 4.65 8.255)+ (size 2.05 0.6)+ (layers "F.Cu" "F.Mask" "F.Paste")+ (roundrect_rratio 0.25)+ )+ (pad "16" smd roundrect+ (at 4.65 6.985)+ (size 2.05 0.6)+ (layers "F.Cu" "F.Mask" "F.Paste")+ (roundrect_rratio 0.25)+ )+ (pad "17" smd roundrect+ (at 4.65 5.715)+ (size 2.05 0.6)+ (layers "F.Cu" "F.Mask" "F.Paste")+ (roundrect_rratio 0.25)+ )+ (pad "18" smd roundrect+ (at 4.65 4.445)+ (size 2.05 0.6)+ (layers "F.Cu" "F.Mask" "F.Paste")+ (roundrect_rratio 0.25)+ )+ (pad "19" smd roundrect+ (at 4.65 3.175)+ (size 2.05 0.6)+ (layers "F.Cu" "F.Mask" "F.Paste")+ (roundrect_rratio 0.25)+ )+ (pad "20" smd roundrect+ (at 4.65 1.905)+ (size 2.05 0.6)+ (layers "F.Cu" "F.Mask" "F.Paste")+ (roundrect_rratio 0.25)+ )+ (pad "21" smd roundrect+ (at 4.65 0.635)+ (size 2.05 0.6)+ (layers "F.Cu" "F.Mask" "F.Paste")+ (roundrect_rratio 0.25)+ )+ (pad "22" smd roundrect+ (at 4.65 -0.635)+ (size 2.05 0.6)+ (layers "F.Cu" "F.Mask" "F.Paste")+ (roundrect_rratio 0.25)+ )+ (pad "23" smd roundrect+ (at 4.65 -1.905)+ (size 2.05 0.6)+ (layers "F.Cu" "F.Mask" "F.Paste")+ (roundrect_rratio 0.25)+ )+ (pad "24" smd roundrect+ (at 4.65 -3.175)+ (size 2.05 0.6)+ (layers "F.Cu" "F.Mask" "F.Paste")+ (roundrect_rratio 0.25)+ )+ (pad "25" smd roundrect+ (at 4.65 -4.445)+ (size 2.05 0.6)+ (layers "F.Cu" "F.Mask" "F.Paste")+ (roundrect_rratio 0.25)+ )+ (pad "26" smd roundrect+ (at 4.65 -5.715)+ (size 2.05 0.6)+ (layers "F.Cu" "F.Mask" "F.Paste")+ (roundrect_rratio 0.25)+ )+ (pad "27" smd roundrect+ (at 4.65 -6.985)+ (size 2.05 0.6)+ (layers "F.Cu" "F.Mask" "F.Paste")+ (roundrect_rratio 0.25)+ )+ (pad "28" smd roundrect+ (at 4.65 -8.255)+ (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-28W_7.5x17.9mm_P1.27mm.step"+ (offset+ (xyz 0 0 0)+ )+ (scale+ (xyz 1 1 1)+ )+ (rotate+ (xyz 0 0 0)+ )+ )+)
mcp23s17.kicad_symadded+609@@ -0,0 +1,609 @@+(kicad_symbol_lib+ (version 20251024)+ (generator "kicad_symbol_editor")+ (generator_version "10.0")+(symbol "MCP23S17x-x-SO"+ (exclude_from_sim no)+ (in_bom yes)+ (on_board yes)+ (in_pos_files yes)+ (duplicate_pin_numbers_are_jumpers no)+ (property "Reference" "U"+ (at -9.398 24.638 0)+ (show_name no)+ (do_not_autoplace no)+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ (property "Value" "MCP23S17x-x-SO"+ (at 11.176 24.638 0)+ (show_name no)+ (do_not_autoplace no)+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ (property "Footprint" "Package_SO:SOIC-28W_7.5x17.9mm_P1.27mm"+ (at 5.08 -25.4 0)+ (show_name no)+ (do_not_autoplace no)+ (hide yes)+ (effects+ (font+ (size 1.27 1.27)+ )+ (justify left)+ )+ )+ (property "Datasheet" "http://ww1.microchip.com/downloads/en/DeviceDoc/20001952C.pdf"+ (at 5.08 -27.94 0)+ (show_name no)+ (do_not_autoplace no)+ (hide yes)+ (effects+ (font+ (size 1.27 1.27)+ )+ (justify left)+ )+ )+ (property "Description" "16-bit I/O expander, SPI, interrupts, w pull-ups, SOIC-28"+ (at 0 0 0)+ (show_name no)+ (do_not_autoplace no)+ (hide yes)+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ (property "ki_keywords" "Microchip port-expander GPIO"+ (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.5x17.9mm*P1.27mm*"+ (at 0 0 0)+ (show_name no)+ (do_not_autoplace no)+ (hide yes)+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ (symbol "MCP23S17x-x-SO_0_1"+ (rectangle+ (start -10.16 22.86)+ (end 10.16 -22.86)+ (stroke+ (width 0.254)+ (type default)+ )+ (fill+ (type background)+ )+ )+ )+ (symbol "MCP23S17x-x-SO_1_1"+ (pin bidirectional line+ (at 12.7 -2.54 180)+ (length 2.54)+ (name "GPB0"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ (number "1"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ )+ (pin bidirectional line+ (at 12.7 -5.08 180)+ (length 2.54)+ (name "GPB1"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ (number "2"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ )+ (pin bidirectional line+ (at 12.7 -7.62 180)+ (length 2.54)+ (name "GPB2"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ (number "3"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ )+ (pin bidirectional line+ (at 12.7 -10.16 180)+ (length 2.54)+ (name "GPB3"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ (number "4"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ )+ (pin bidirectional line+ (at 12.7 -12.7 180)+ (length 2.54)+ (name "GPB4"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ (number "5"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ )+ (pin bidirectional line+ (at 12.7 -15.24 180)+ (length 2.54)+ (name "GPB5"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ (number "6"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ )+ (pin bidirectional line+ (at 12.7 -17.78 180)+ (length 2.54)+ (name "GPB6"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ (number "7"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ )+ (pin bidirectional line+ (at 12.7 -20.32 180)+ (length 2.54)+ (name "GPB7"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ (number "8"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ )+ (pin power_in line+ (at 0 25.4 270)+ (length 2.54)+ (name "V_{DD}"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ (number "9"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ )+ (pin power_in line+ (at 0 -25.4 90)+ (length 2.54)+ (name "V_{SS}"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ (number "10"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ )+ (pin input line+ (at -12.7 20.32 0)+ (length 2.54)+ (name "~{CS}"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ (number "11"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ )+ (pin input line+ (at -12.7 17.78 0)+ (length 2.54)+ (name "SCK"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ (number "12"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ )+ (pin input line+ (at -12.7 15.24 0)+ (length 2.54)+ (name "SI"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ (number "13"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ )+ (pin output line+ (at -12.7 12.7 0)+ (length 2.54)+ (name "SO"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ (number "14"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ )+ (pin input line+ (at -12.7 -15.24 0)+ (length 2.54)+ (name "A0"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ (number "15"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ )+ (pin input line+ (at -12.7 -17.78 0)+ (length 2.54)+ (name "A1"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ (number "16"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ )+ (pin input line+ (at -12.7 -20.32 0)+ (length 2.54)+ (name "A2"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ (number "17"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ )+ (pin input line+ (at -12.7 -2.54 0)+ (length 2.54)+ (name "~{RESET}"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ (number "18"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ )+ (pin tri_state line+ (at -12.7 2.54 0)+ (length 2.54)+ (name "INTB"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ (number "19"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ )+ (pin tri_state line+ (at -12.7 5.08 0)+ (length 2.54)+ (name "INTA"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ (number "20"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ )+ (pin bidirectional line+ (at 12.7 20.32 180)+ (length 2.54)+ (name "GPA0"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ (number "21"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ )+ (pin bidirectional line+ (at 12.7 17.78 180)+ (length 2.54)+ (name "GPA1"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ (number "22"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ )+ (pin bidirectional line+ (at 12.7 15.24 180)+ (length 2.54)+ (name "GPA2"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ (number "23"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ )+ (pin bidirectional line+ (at 12.7 12.7 180)+ (length 2.54)+ (name "GPA3"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ (number "24"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ )+ (pin bidirectional line+ (at 12.7 10.16 180)+ (length 2.54)+ (name "GPA4"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ (number "25"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ )+ (pin bidirectional line+ (at 12.7 7.62 180)+ (length 2.54)+ (name "GPA5"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ (number "26"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ )+ (pin bidirectional line+ (at 12.7 5.08 180)+ (length 2.54)+ (name "GPA6"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ (number "27"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ )+ (pin bidirectional line+ (at 12.7 2.54 180)+ (length 2.54)+ (name "GPA7"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ (number "28"+ (effects+ (font+ (size 1.27 1.27)+ )+ )+ )+ )+ )+ (embedded_fonts no)+ )+)
package.jsonadded+30@@ -0,0 +1,30 @@+{+ "slug": "mcp23s17",+ "version": "0.1.0",+ "type": "component",+ "description": "16-bit general-purpose I/O expander with an SPI interface and interrupt outputs.",+ "tags": [+ "gpio-expander",+ "spi",+ "io-expander",+ "interrupt",+ "microchip",+ "soic-28"+ ],+ "dependencies": {},+ "hero": {+ "type": "image",+ "path": "docs/hero.png"+ },+ "files": [+ "page.json",+ "README.md",+ "mcp23s17.kicad_sym",+ "mcp23s17.kicad_mod",+ "mcp23s17.glb",+ "docs/hero.png",+ "docs/mcp23s17-datasheet.pdf",+ "viewers/symbol.html",+ "viewers/footprint.html"+ ]+}