一、spi是串行外设接口(serial peripheral interface),是高速的、全双工、同步通信总线,标准的spi仅仅使用4个引脚
spi ip核框图:
二、spi核的寄存器描述
三、配置spi核
四、SPI内核编程
alt_avalon_spi_command(
alt_u32 base,
alt_u32 slave,
alt_u32 write_length,
const alt_u8 * write_data,
alt_u32 read_length,
alt_u8 * read_data,
alt_u32 flags
)
五、sd卡的接口
在spi模式下,sd卡充当从设备,spi控制器发布命令,接收到命令之后,sd卡会回应一个响应帧。对于读和写操作,它连续传送数据令牌和批量数据。
sd卡的命令时序图:
-
主设备发送命令帧:
一个命令帧包含6个字节,第一个字节是命令,以01开始,然后跟着6位命令索引,接下来的4个字节是参数字段,可以容纳多达32位的信息。最后一个字节包含7位的CRC(循环冗余校验码),最后一位是停止位。
在spi模式下,crc校验码是可以选着的,默认情况下是不使用的,可以都置为1或置为0。即使不使用CRC特性,最后的字节也需要包括在内,构成6个字节的帧格式。CRC码的值可以手动计算和添加。
-
sd卡在一定时间内处理这个命令(通常称之为命令响应时间):
-
SD卡响应一个响应帧
多数命令期望的响应是0x00,表示没有发生错误。在我们的程序中,也使用R7格式的响应,R7格式包含5个字节,第一字节与R1格式是相同的,其余4个字节返回特定的状态信息。
六、sd的时序
-
SD卡的复位
-
SD卡的初始化
-
SD卡读一个扇区
SRAM和SDRAM的数据存取是以字节或者字为单位进行的,于此不同,sd卡数据是以块为单位的,512个字节称之为一个扇区。
-
SD卡写一个扇区
--晓凡 2023年8月7日于武汉书