spi 认知

SPI、I2C、UART三种串行总线协议的区别和SPI接口介绍,以及SPI接口详解
http://www.elecfans.com/emb/jiekou/20170508514183.html
//////////////////////////////////////////////////////////////
SPI 速率低 高电压占空比少 功耗低 一个挂多个从设备 高速通信用 I2C 的多,手机之类的
也看从设备是否支持 IIC 或者 SPI~
spi 可以全双工 iic 不行 半双工
/////////////////////////////////////////////////////////////
SCK 时钟信号
MOSI主出从入
MISO 主入从出
SCS 片选 : 低 有效 选择要通讯的SPI外设
-----------------------一些概念------------------------
1.CPOL 时钟极性 (c clock pol polity 极性)
CPOL=0 SCLK高电平有效 即SCLK=1
CPOL=1 SCLK低电平有效 SCLK=0
2.Edge 边沿
一个周期内两个沿 leading dege 0–>1 || 1–>0 / trailing edge 0–>1 || 1–>0
3.CPHA (clock physe) 在第几个始终采集数据
CPHA=0 在第一个边沿采集数据
CPHA =1 在第二个边沿采集数据
在这里插入图片描述
spi 寄存器:
notick table224: inten = 1 中断使能
intenset =1 中断允许职位寄存器
intenclr = 1 中断允许清零寄存器 1 禁止中断
ENABLE= 1 控制使能寄存器 写1使能控制
PSELSCK 引脚映射寄存器 用来选择用作 SCK 时钟信号的 GPIO
PSELMOSI MOSI 引脚映射寄存器,用来选择用作 MASTER OUT SLAVER IN 信号的 GPIO
PSELMISO MISO 引脚映射寄存器,用来选择用作 MASTER IN SLAVER OUT 信号的 GPIO
RXD 数据接收寄存器 丛集发送搞来的数据 存在这两
RXD 数据发送寄存器。在主机发数据之前,CPU 要把欲发送的数据放这里
frequency SPI工作时钟配置寄存器,频率配置得越高,数据传输会越快。
CONFIG:SPI控制器配置寄存器。用来配置数据传输的位序、时钟相位、时钟极性


4.程序编写
本例程实现的功能是 SPI 主机和 SPI 从机的通讯。我们用到了 2 个讯联电子
NRF51822EK_TM 开发板。其中一个板作为 SPI 主机,烧主机程序,一个板作为 SPI 从机,烧从
机程序。主机每发送完一个字符,七彩灯的绿灯会闪烁;从机每收到一个字符,七彩灯的绿灯
也会闪烁。
程序中用到的引脚:1)CS–P0.13 2)MOSI–P0.14 3)MISO–P0.12 4)SCK–P0.15。
4.1 SPI 控制器的配置
1)选择 SCK、MOSI、MISO、CS 信号对应的 GPIO。
2)配置 SPI 的模式工作模式
3)配置高低位序
4)配置 SPI 时钟频率
5)中断的配置,中断极性的配置
4.2 实例程序流程
1)配置 GPIO,用来点亮 RGB 灯的绿灯。
2)配置 SPI控制器。
3)发送“Nordic”这个字符串到 SPI从机端。
4)数据发送完成,开发板上的 RGB 灯的绿灯会闪烁。
5. 功能验证
打开本例中的项目工程,路径为:第 13讲 SPI主设备\SPI主
\examples\peripheral\spi\pca10028\arm5_no_packs,编译并下载到开发板中,然后给开发板重新
上电,开发板上的 RGB 绿灯会闪烁,表示 SPI主机正在发送数据。请用另外一块板子烧录第
14讲的 SPI 从设备程序。用杜邦线把 2个板子的 SPI信号管脚连起来,从机上的 RGB 绿灯也会
闪烁。

猜你喜欢

转载自blog.csdn.net/weixin_40654382/article/details/91040225
SPI
今日推荐