sdcardio
– Interface to an SD card via the SPI bus¶
-
class
sdcardio.
SDCard
(bus: busio.SPI, cs: microcontroller.Pin, baudrate: int = 8000000)¶ SD Card Block Interface
Controls an SD card over SPI. This built-in module has higher read performance than the library adafruit_sdcard, but it is only compatible with
busio.SPI
, notbitbangio.SPI
. Usually an SDCard object is used withstorage.VfsFat
to allow file I/O to an SD card.Construct an SPI SD Card object with the given properties
- Parameters
spi (busio.SPI) – The SPI bus
cs (microcontroller.Pin) – The chip select connected to the card
baudrate (int) – The SPI data rate to use after card setup
Note that during detection and configuration, a hard-coded low baudrate is used. Data transfers use the specified baurate (rounded down to one that is supported by the microcontroller)
Example usage:
import os import board import sdcardio import storage sd = sdcardio.SDCard(board.SPI(), board.SD_CS) vfs = storage.VfsFat(sd) storage.mount(vfs, '/sd') os.listdir('/sd')
-
count
(self) → int¶ Returns the total number of sectors
Due to technical limitations, this is a function and not a property.
- Returns
The number of 512-byte blocks, as a number
-
readblocks
(self, start_block: int, buf: WriteableBuffer) → None¶ Read one or more blocks from the card
- Parameters
start_block (int) – The block to start reading from
buf (WriteableBuffer) – The buffer to write into. Length must be multiple of 512.
- Returns
None
-
writeblocks
(self, start_block: int, buf: ReadableBuffer) → None¶ Write one or more blocks to the card
- Parameters
start_block (int) – The block to start writing from
buf (ReadableBuffer) – The buffer to read from. Length must be multiple of 512.
- Returns
None