sdioio – 通过 SDIO 总线连接到 SD 卡

在这些板上可用
  • Adafruit Feather STM32F405 Express
  • Adafruit Grand Central M4 Express
  • PyboardV1_1
  • SAM E54 Xplained Pro
  • SPRESENSE
  • STM32F4_DISCO
  • SparkFun STM32 MicroMod Processor

class sdioio.SDCard(clock: microcontroller.Pin, command: microcontroller.Pin, data: Sequence[microcontroller.Pin], frequency: int)

带 SDIO 的 SD 卡块接口

通过 SDIO 控制 SD 卡。SDIO 是为 SD 卡设计的并行协议。它使用一个时钟引脚、一个命令引脚和 1 或 4 个数据引脚。它可以在25MHz等高频下工作。通常使用 SDCard 对象 storage.VfsFat 来允许文件 I/O 到 SD 卡。

使用给定的属性构造一个 SDIO SD 卡对象

参数
  • clock (Pin) – 用于时钟的引脚。

  • command (Pin) – 用于命令的引脚。

  • data – 用于数据的引脚序列。

  • 频率 – 以赫兹为单位的总线频率

用法示例:

import os

import board
import sdioio
import storage

sd = sdioio.SDCard(
    clock=board.SDIO_CLOCK,
    command=board.SDIO_COMMAND,
    data=board.SDIO_DATA,
    frequency=25000000)
vfs = storage.VfsFat(sd)
storage.mount(vfs, '/sd')
os.listdir('/sd')
configure(self, frequency: int = 0, width: int = 0)None

配置 SDIO 总线。

参数
  • frequency (int) – 所需的时钟频率,以赫兹为单位。由于可用时钟设置的粒度,实际时钟速率可能更高或更低。检查frequency实际时钟速率的属性。

  • width (int) – 要使用的数据行数。必须为 1 或 4 且不得超过构建时的数据线数

笔记

未指定值或 0 表示保留当前设置

count(self)int

返回扇区总数

由于技术限制,这是一个函数而不是一个属性。

返回

512 字节块的数量,作为一个数字

readblocks(self, start_block: int, buf: _typing.WriteableBuffer)None

从卡中读取一个或多个块

参数
  • start_block (int) – 开始读取的块

  • buf (WriteableBuffer) – 要写入的缓冲区。长度必须是 512 的倍数。

返回

没有任何

writeblocks(self, start_block: int, buf: _typing.ReadableBuffer)None

将一个或多个块写入卡中

Parameters
  • start_block (int) – 开始写入的块

  • buf (ReadableBuffer) – 要从中读取的缓冲区。长度必须是 512 的倍数。

返回

没有任何

property frequency(self)int

实际的 SDIO 总线频率。由于内部限制,这可能与请求的频率不匹配。

property width(self)int

实际的 SDIO 总线宽度,以位为单位

deinit(self)None

永久禁用。

返回

没有任何

__enter__(self)SDCard

上下文管理器使用的无操作。由上下文管理器助手提供。

__exit__(self)None

退出上下文时自动取消初始化硬件。有关更多信息,请参阅 Lifetime 和 ContextManagers