Setup
- nRF54LM20 DK, NCS 3.4.0 / Zephyr 4.4. Custom MM8108 module (chip 0x809), BCF mf15457, morselib 2.10.4, FW 1.17.6.
- Module has its own supply; ~10 cm jumper wires. SDIO_D2 tied to VDD.
- SPI mode 0 at 8 MHz. GPIO CS held low per transaction. Per-byte transfers.
- RESET_N low 5 ms, then 20 ms wait. 17×0xFF training with CS high, then CMD63/CMD0 ×3.
Problem
Same firmware, same hardware: each reset randomly ends in one of these.
- OK (after SDK retries):
CMD63 invalid ack=0x1f / CMD0 invalid ack=0x08 / CMD52 invalid ack=0xff
MM chip 0x809, firmware 1.17.6 -> connects, streams fine
- No response:
CMD63/CMD0 invalid ack=0xff data=0xff (x3) -> Transport init failed
- Chip ID read fails:
CMD52 invalid ack=0xff -> chip-ID failed chip=0x00000000
- Firmware download fails:
SPI write response 0xeb rc=-6 size=512 -> CMD53 invalid ack=0xe0 -> Firmware init failed
- Boot OK, TX fails later:
morse_yaps_tx: TX skb failed err -12 / Command 3e:1f2 timed out
Tried: SPI at 2/4/8/32 MHz, reset 5–100 ms, external-crystal wait on/off, WAKE high/low, MISO pull-up on/off, repeated hard resets. I also applied fixes suggested in other SPI threads on this forum, but the problem remains. Once stuck at 0xFF, further RESET_N pulses rarely recover it.
Questions
- Required RESET_N pulse, post-reset delay and power sequencing for SPI mode?
- Why does the chip stay at 0xFF or bit-shifted responses after RESET_N?
- Which SDIO pins need pull-ups in SPI mode?
- How to have a stable communication?