1、基本知识:SPI serial peripheral interface 串行外设接口 ;主要应用在EEPROM 、flash、实时时钟,ad转换器等。高速、全双工、同步的通信总线;
spi 接口一般使用四根线,(1)MSIO : 主设备数据输入,从设备数据输出;
(2)MOSI : 主设备数据输出,从设备数据输入;
(3)SCLK: 时钟信号,由主设备产生;
(4)CS: 从设备片选信号,由主设备产生;
主要特点:可以同时发出和接收串行数据,可以当作主机或者从机工作,提供可编程时钟,发送结束中断标志,写冲突保护,总线竞争保护等;
2、STM 的SPI
(1) stm32 的SPI 可以 工作在全双工、单向发送和单向接收模式,可以直接用DMA来控制;
(2)在发送模式下CRC值可被作为最后一个字节发送;
(3)在全双工模式下,对接收到的最后一个字节自动进行CRC校验;
备注:
奇偶校验码作为一种检错码虽然简单,但是漏检率太高。在计算机网络和数据通信中用得最广泛的检错码,是一种漏检率低得多也便于实现的循环冗余码 (Cyclic Redundancy Code, CRC),又称为多项式码。CRC的工作方法是在发送端产生一个冗余码,附加在信息位后面一起发送到接收端,接收端收到的信息按发送端形成循冗余码同样的算法进行校验,如果发现错误,则通知发送端重发。
(4)主模式故障、过载以及CRC错误标志均可触发中断;
(5)专用发送和接收标志;
3、FLASH W25X16
工作电压:2.7 ~3.6 v ,工作电流0。5mA , 空间大小2M Byte , 8192 个可编程页, 每页256字节;用页编程指令,每次可编程256个字节;用扇区擦除指令,每次可以擦除16页;
用块擦除指令每次可以擦除256页,用整片擦除指令可以擦除整个芯片;有512个可擦除扇区和32个可擦除块;扇区大小:4k 字节;块大小:64K字节
SPI 接口四线制:
4、实验任务:用stm32的spi 对W25X16 FLash 进行读写。主模式、全双工通信;
5、实验代码:
此部分学习代码是参照了MDK 自带flash examples 以及野火例程而写的:其实野火也是大部分抄官方代码的,呵呵,大家懂就好
文章评论(0条评论)
登录后参与讨论