| .. _SDHC_disks: |
| |
| SDHC disks |
| ########## |
| |
| Zephyr includes support for connecting an SD card via the SPI bus. |
| This can be used with Zephyr's built-in filesystem support to read and |
| write FAT formatted cards. Both standard and high-capacity SD cards are |
| supported. |
| |
| The system has been tested with cards from Samsung, SanDisk, and 4V |
| with sizes from 2 GiB to 32 GiB in single partition mode. Higher |
| capacity cards should also work but haven't been tested. Please let |
| us know if they work! |
| |
| MMC cards are not supported and will be ignored. |
| |
| .. note:: The system does not support inserting or removing cards while the |
| system is running. The cards must be present at boot and must not be |
| removed. This may be fixed in future releases. |
| |
| FAT filesystems are not power safe so the filesystem may become |
| corrupted if power is lost or if the card is removed. |
| |
| Enabling |
| ******** |
| |
| For example, this devicetree fragment adds an SDHC card slot on ``spi1``, |
| uses ``PA27`` for chip select, and runs the SPI bus at 24 MHz once the |
| SDHC card has been initialized: |
| |
| .. code-block:: none |
| |
| &spi1 { |
| status = "okay"; |
| cs-gpios = <&porta 27 0>; |
| |
| sdhc0: sdhc@0 { |
| compatible = "zephyr,mmc-spi-slot"; |
| reg = <0>; |
| status = "okay"; |
| label = "SDHC0"; |
| spi-max-frequency = <24000000>; |
| }; |
| }; |
| |
| Usage |
| ***** |
| |
| The SDHC card will be automatically detected and initialized by the |
| filesystem driver when the board boots. |
| |
| To read and write files and directories, see the :ref:`file_system` in |
| :zephyr_file:`include/fs.h` such as :c:func:`fs_open()`, |
| :c:func:`fs_read()`, and :c:func:`fs_write()`. |