SPI

来源:互联网 发布:淘宝的卡券包在哪里 编辑:程序博客网 时间:2024/06/05 19:18

1、SPI简介

        SPI意思是串行外设接口(serial peripheral interface)的简称。是一种高速全双工同步的通信总线
       SPI接口一般使用4条通信线
       1、SCLK时钟信号,由主设备产生
       2、CS 从设备片选信号,由主设备控制
       3、MOSI,master output slave input 主设备输出从设备输入
       4、MISO,master input slave output 主设备输入从设备输出
      我们以STM32F407为例来看看


        主机和从机都有一个串行移位寄存器,主机通过向它的移位寄存器写入一个字节来发起一次传输。寄存器通过MOSI信号线将字节传输给从机,从机也将自己的移位寄存器中的内容通过MISO线返回给主机。这样,两个寄存器中的内容就会被交换。
        对于上面的话,到实际的SPI设备读写时,实际过程应该这样,主机要写数据时,发送一字节数据,MISO就会收到一笔数据,若数据没有用,应将数据读取忽略。而主机若想读取数据,应先发一个空字节数据,才能收到一字节数据。
        SPI的工作模式根据时钟极性CPOL和时钟相位CPHA的不同有4中
        CPOL: SPI空闲时,时钟信号SCLK的电平,0空闲时为低电平,1为空闲时为高电平
        CPHA: 在何时开始采样,何时输出。0表示时钟第一个跳变沿开始采样(输入),第二个跳变沿输出。1表示第一个跳变沿输出,第二个跳变沿开始采样。
        mode0: CPOL为0,CPHA为0 上升沿采样,下降沿输出,第一个跳变沿为上升沿
        mode1: CPOL为0,CPHA为1 上升沿输出,下降沿采样,第一个跳变沿为上升沿
        mode2: CPOL为1,CPHA为0 上升沿输出,下降沿采样,第一个跳变为下降沿
        mode3: CPOL为1,CPHA为1  上升沿采样,下降沿输出,第一个跳变沿为下降沿
        mode0和mode3比较常用,都是在上升沿采样,下降沿输出,唯一不同的是,spi空闲时,mode0的sclk电平为低,mode3的sclk电平为高。









原创粉丝点击