File transfer from SD Card to WiFi using nRF5340 and nRF7002 - recommended signal wiring

The question is not only "software" related, it is also debating the hardware topology:

Part of a project's goal is to transfer files stored in a uSD Card to an external client via WiFi (all with Zephyr). The controller is a nRF5340, and the WiFi module is nRF7002.

The discussion here is what would be the most efficient signal connection, considering that:

- Both peripherals (SDCard and WiFi companion) can communicate to the CPU either via regular SPI or via QSPI.

- QSPI is much faster than SPI, so an immediate comment is that connecting the WiFi module via regular SPI will limit the speed.

- But if we have both in the same bus, I assume that DMA is impossible. So a buffer inside the CPU would be needed.

So what is the best bet?

SDCard -> QSPI -> CPU buffer -> QSPI -> nRF7002 (same QSPI bus with different CS signal)

SDCard -> SPI -> CPU DMA -> QSPI -> nRF7002

SDCard -> QSPI -> CPU DMA -> SPI -> nRF7002

That is, assuming that Zephyr and the IC will actually allow for such direct DMA, and that it is possible to transfer content from SD to WiFi just like that (most likely the Zephyr TCP stack will have to manage the packages first).

Cheers

Bruno

Parents
  • You can't use the QSPI peripherial with an SD card, so only method 2 is possible.

  • Thanks for the quick feedback!

    Really no QSPI for SD allowed?? Do you have off hand any document reference to that?

    The current version of our product has SD Card, and I know that the traces were routed between the nRF5340 and the uSD as QSPI. Also, I can confirm that the product works (writing/reading lots of files to the uSD).
    But I was not involved in the software, so maybe my colleagues configured those pins as regular SPI instead and I never knew it...

    Or a separate point: do you know if the data transfer can be really "raw bytes" from the SD to the nRF7002, and the TCP packages are dealt inside that component, or is it handled by the code that runs inside the nRF5340?

Reply
  • Thanks for the quick feedback!

    Really no QSPI for SD allowed?? Do you have off hand any document reference to that?

    The current version of our product has SD Card, and I know that the traces were routed between the nRF5340 and the uSD as QSPI. Also, I can confirm that the product works (writing/reading lots of files to the uSD).
    But I was not involved in the software, so maybe my colleagues configured those pins as regular SPI instead and I never knew it...

    Or a separate point: do you know if the data transfer can be really "raw bytes" from the SD to the nRF7002, and the TCP packages are dealt inside that component, or is it handled by the code that runs inside the nRF5340?

Children
Related