sdcardio
– Interface to an SD card via the SPI bus
Available on these boards
- 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)
Important
If the same SPI bus is shared with other peripherals, it is important that the SD card be initialized before accessing any other peripheral on the bus. Failure to do so can prevent the SD card from being recognized until it is powered off or re-inserted.
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() 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(start_block: int, buf: circuitpython_typing.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(start_block: int, buf: circuitpython_typing.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