What I've tried:
Testing Summary: SD Card on Port 2
- Setup: Wired an SDHC card (Transcend 8GB) to the Connector P2 (middle header) on an nRF54L15 DK v1.0.0.
- Hardware Config:
- Board Configurator: Set "External memory" to OFF to rout Port 2 pins from the onboard flash to the header.
- Solder Bridges: SB11 cut to isolate the flash CS from P2.05.
- Pin Mapping:
- SCK: P2.01 (Label (01) / Physical Pin 2)
- MOSI: P2.02 (Label (02) / Physical Pin 5)
- MISO: P2.04 (Label (04) / Physical Pin 7)
- CS: P2.05 (Label (05) / Physical Pin 6)
- Speeds Attempted:
- 2 MHz: First attempt via driver clamp. Result:
-134(No OCR detected). - 1.016 MHz: Hardware minimum for SPI00 (128MHz / 126 prescaler). Result:
-134. - 400 kHz: Attempted via SPI22 (Slow domain). Result: Driver crash (
0bad0004) due to domain isolation.
- 2 MHz: First attempt via driver clamp. Result:
Here's my device tree overlay:
&spi00 {
status = "okay";
pinctrl-0 = <&spi00_default>;
pinctrl-names = "default";
cs-gpios = <&gpio2 5 GPIO_ACTIVE_LOW>;
sdhc0: sdhc@0 {
compatible = "zephyr,sdhc-spi-slot";
reg = <0>;
status = "okay";
mmc {
compatible = "zephyr,sdmmc-disk";
status = "okay";
};
};
};
I also had to patch the Zephyr driver to bypass the NRFX_ERROR_INVALID_PARAM caused by the 128MHz base clock's prescaler limits:
Hardware configuration:
- Board: nRF54L15 DK v1.0.0.
- Board Configurator: "External memory" set to OFF (to route P2 pins to headers).
- Solder Bridges: SB11 cut (to isolate flash CS from P2.05).
- SD card: Transcent 8GB HC 10
- Wiring (Connector P2):
- SCK: P2.01
- MOSI: P2.02
- MISO: P2.04
- CS: P2.05
Question: Is there any supported way to initialize a legacy SD Card on the Port 2 header of the nRF54L15 DK, given these domain and prescaler constraints? Or is Port 2 fundamentally restricted to high-speed QSPI/SPI Flash?
Any help would be much appreciated.