简单粗暴学习SPI 协议之CC2530

简单粗暴学习SPI 协议之CC2530

一、定义

:SPI,是英语Serial Peripheral Interface的缩写,顾名思义就是串行外围设备接口。SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线(有些地方会用到三根或两根),节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,正是出于这种简单易用的特性,现在越来越多的芯片集成了这种通信协议

二、特点:

	1、3线或4线
    2、高速,
    3、全双工
    4、同步
	5、频率可编程时钟
	6、发送结束中断标志;
	7、写冲突保护

三、结构:

  SPI总线有 CS(SS) ,SCK,MOSI,MISO,
 CS  片选信号 (通常低电平表示选中)
 SCK 时钟信号
 MOSI  数据信号(主机输出 从机输入) 
 MISO  数据信号(主机输入 从机输出 )

SPI 总线在传输过程有主从之分,一般来讲一个主机可以连接多个从机其拓扑结构如下图所示。
SPI 与I2C连接方式一样 多个SPI可以并联在SPI总线之中,通过CS线,选择使用哪一个SPI器件。
在这里插入图片描述

当SPI设备作为主机传输时 先发送需要读取的从设备地址,然后再发8个时钟信号,由此看来 SPI设备如果需要读取或者写入一个Byte的数据至少需要16个始终信号,当然实际项目中往往一个操作不止16个时钟信号,

比如我们这里有一个主设备一个从设备,主设备地址0x03主设备向从设备写入0xAA;
要写入的数据是读写操作bit位+地址
一般情况下做高位 1代表写,0代表读
具体操作是 第一步主机拉低CS信号,
主机第一个字节发送0x83,(0x80|0x03)第二个字节发送0xAA,

四、工作方式:

SPI总线根据传输状态分为4种工作方式(SPI0,SPI1,SPI2,SPI3)在实际项目中我们使用比较多的是SPI0和SPI3.
根据时钟极性(CPOL)分:
CPOL=0, 时钟信号(SCLK)空闲状态为低电平,
在这里插入图片描述

CPIOL=1,时钟信号(SCLK)空闲状态为高电平,
在这里插入图片描述

根据时钟相位分(CPHA)分:
CPHA=0; 时钟信号(SCLK)在第一个跳变沿数据被采样,
在这里插入图片描述

CPHA=1; 时钟信号(SCLK)在第二个跳变沿数据被采样,
在这里插入图片描述

SPI设备的主机和从机时钟的相位和极性必须保持一致。
特别提示:
在一些特殊情况下有些主机与从机采用3线或者2线进行通信,
3线的情况:比如主机只向从机发数据,而不需要从机回复数据,MISO可以不要;如果只需要主机接收数据,而不需要主机发送数据MOSI可以不要。
2线的情况:如果主机只连接一个从机,从机的片选信号CS可以一直固定在低电平使能状态,CS引脚可以直接用一个下拉电阻或者直接接GND,此时片选CS线和数据线MOSI或MISO可以省略,
3线和2线SPI在在实际项目中用的还是比较多的,希望大家认真学习,当前我们讨论的一般都是指标准的4线SPI,
好吧,今天先写到这里!

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值