#sdio #embedded-hal-driver #mmc #sdmmc

no-std mci

使用MCI实现的多媒体卡接口(SD、MMC、SDIO)

1个不稳定版本

0.1.0 2020年8月16日

#706嵌入式开发


用于 mci-atsamd51

MIT/Apache

135KB
4K SLoC

MCI

描述

多媒体卡接口。MCI支持SD、MMC和SDIO卡。这个crate实现了SDIO、MMC和SD协议。不依赖std,适用于嵌入式使用。

从哪里开始

ATSAMD51的示例

pub fn mci() {
    use mci::mci_card::MciCard;
    use mci_atsamd51::AtsamdMci;

    let mut device: hal::pac::Peripherals = c.device;

    let mci = AtsamdMci::new(device.SDHC0);
    let mut pins = hal::Pins::new(device.PORT);
    // Write protect pin
    let mut wp = pins.wp.into_pull_up_input(&mut pins.port);
    // Card detect pin
    let mut detect = pins.detect.into_pull_up_input(&mut pins.port);
    let card = MciCard::new(
        mci,
        wp, true,       // Write protect pin must be pulled high in order to be protected
        detect, true,   // Detect pin must be pulled high in order to signal a card to be detected
        0               // Slot 0. ATSAMD51 can only support 1 slot in anyway
    );
}

对于ATSAMD51,请记住使用目标 thumbv7em-none-eabihf 编译

文件夹结构

mci/

提供并实现SD/MMC/SDIO协议的crate

文件夹 描述
command_arguments 为要发送到卡的命令创建参数
command_arguments/mmc MMC特定命令参数
command_arguments/sd SD特定命令参数
command_arguments/sdio / SDIO特定命令参数
functions 根据卡类型在MciCard结构上实现的功能
registers 描述命令和/或寄存器的返回值
registers/sd SD特定寄存器
registers/sdio SDIO特定寄存器
sd SD特定枚举

mci-atsamd51

为ATSAMD51设备实现MCI接口的crate

文档和规范

https://www.sdcard.org/

依赖项

~115KB