ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

S3c2440裸机-spi编程-1.spi协议

2021-12-09 17:31:22  阅读:196  来源: 互联网

标签:采样 SPI SSPBUF 裸机 spi S3c2440 数据 移位 时钟


1.spi概述

  SPI是串行外设接口(Serial Peripheral Interface)的缩写。是 Motorola 公司推出的一

种同步串行接口技术,是一种高速的,全双工,同步的通信总线。

2、SPI优点

支持全双工通信(SPI的数据输入和输出线独立,所以允许同时完成数据的输入和输出)

通信简单

数据传输速率块

3、缺点

没有指定的流控制,没有应答机制确认是否接收到数据,所以跟IIC总线协议比较在数据

可靠性上有一定的缺陷。

4、特点

1):高速、同步、全双工、非差分、总线式

2):主从机通信模式

2.硬体框架

SPI协议,硬件框架如下:

SCK:提供时钟
DO:作为数据输出
DI:作为数据输入
CS0/CS1:作为片选

同一时刻只能有一个SPI设备处于工作状态。因此cs选中谁,谁就和主控通信。

2.数据传输时序

 

这里是一款SPI flash在SCLK上升延采样数据(D7~D0)的示意图。

设现在2440传输一个0x56数据给SPI Flash,时序如下:

 

CS0低选中SPI Flash,配置成模式0, 0x56的二进制就是0b0101 0110,因此在每个SCK时钟周期,DO输出对应的电平。会在每个时钟周期的上升沿采样DO上的电平

 SPI相关的缩写或说法

CKPOL (Clock Polarity)(时钟)极性

CKPHA (Clock Phase)(时钟)相位

SCK=SCLK=SPI的时钟

Leading edge=前一个边沿

Trailing edge=后一个边沿

3.时钟极性相位模式

CPOL:表示SPI CLK的初始电平,0为电平,1为高电平

CPHA:表示相位,即第一个还是第二个时钟沿采样数据,0为第一个时钟沿,1为第二个时钟沿

SPI模式

CPOL

CPHA

空闲状态时钟极性

采样/移位时钟相位

0

0

0

低电平

上升沿采样(锁存)下降沿移位

1

0

1

低电平

上升沿移位下降沿采样(锁存)

2

1

0

高电平

上升沿移位下降沿采样(锁存)

3

1

1

高电平

上升沿采样(锁存)下降沿移位

 4个模式波形对比:

 

常用的是模式0和模式3,因为它们都是在上升沿采样数据.

当配置成模式3时,对于主设备,数据采样在时钟上升沿,数据传送在时钟下降沿

主设备SPI时钟和极性的配置应该由外设来决定;二者的配置应该保持一致,即主设备的SDO同从设备的SDO配置一致,主设备的SDI同从设备的SDI配置一致。即因为主从设备是在SCLK的控制下,同时发送和接收数据,并通过2个双向移位寄存器来交换数据 。

 4.SPI控制器工作原理

SSPSR

SSPSR:移位寄存器(Shift Register). 根据 SPI 时钟同步信号, 将SSPBUF中的数据一位一位移出去或者收进来。

SSPBUF

Master 与 Slave 之间交换的数据其实都是移位寄存器从 SSPBUF 里面拷贝的。通过往 SSPBUF 对应的寄存器 (Tx-Data / Rx-Data register) 里读写数据, 间接地操控 SPI 设备内部的 SSPBUF.

Controller

用来发送控制信号的,像CS,SCK等控制信号。

标签:采样,SPI,SSPBUF,裸机,spi,S3c2440,数据,移位,时钟
来源: https://www.cnblogs.com/fuzidage/p/15668433.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有