diff --git a/litex_boards/platforms/arty.py b/litex_boards/platforms/arty.py index e0d9a90..88b4c39 100644 --- a/litex_boards/platforms/arty.py +++ b/litex_boards/platforms/arty.py @@ -306,6 +306,29 @@ def sdcard_pmod_io(pmod): ] _sdcard_pmod_io = sdcard_pmod_io("pmodd") # SDCARD PMOD on JD. +def numato_sdcard_pmod_io(pmod): + return [ + # SDCard PMOD: + # https://numato.com/product/micro-sd-expansion-module/ + # This adaptor does not have the card detect (CD) pin connected + ("spisdcard", 0, + Subsignal("clk", Pins(f"{pmod}:5")), + Subsignal("mosi", Pins(f"{pmod}:1"), Misc("PULLUP True")), + Subsignal("cs_n", Pins(f"{pmod}:4"), Misc("PULLUP True")), + Subsignal("miso", Pins(f"{pmod}:2"), Misc("PULLUP True")), + Misc("SLEW=FAST"), + IOStandard("LVCMOS33"), + ), + ("sdcard", 0, + Subsignal("data", Pins(f"{pmod}:2 {pmod}:6 {pmod}:0 {pmod}:4"), Misc("PULLUP True")), + Subsignal("cmd", Pins(f"{pmod}:1"), Misc("PULLUP True")), + Subsignal("clk", Pins(f"{pmod}:5")), + Misc("SLEW=FAST"), + IOStandard("LVCMOS33"), + ), +] +_numato_sdcard_pmod_io = numato_sdcard_pmod_io("pmodd") # SDCARD PMOD on JD. + # Platform ----------------------------------------------------------------------------------------- class Platform(XilinxPlatform): diff --git a/litex_boards/targets/arty.py b/litex_boards/targets/arty.py index e7225f4..70a56b8 100755 --- a/litex_boards/targets/arty.py +++ b/litex_boards/targets/arty.py @@ -119,6 +119,7 @@ def main(): sdopts = parser.add_mutually_exclusive_group() sdopts.add_argument("--with-spi-sdcard", action="store_true", help="Enable SPI-mode SDCard support") sdopts.add_argument("--with-sdcard", action="store_true", help="Enable SDCard support") + parser.add_argument("--sdcard-adapter", type=str, help="SDCard PMOD adapter: digilent (default) or numato") parser.add_argument("--no-ident-version", action="store_false", help="Disable build time output") builder_args(parser) soc_sdram_args(parser) @@ -138,7 +139,10 @@ def main(): ident_version = args.no_ident_version, **soc_sdram_argdict(args) ) - soc.platform.add_extension(arty._sdcard_pmod_io) + if args.sdcard_adapter == "numato": + soc.platform.add_extension(arty._numato_sdcard_pmod_io) + else: + soc.platform.add_extension(arty._sdcard_pmod_io) if args.with_spi_sdcard: soc.add_spi_sdcard() if args.with_sdcard: