项目知识复习1-----SPI
来源:互联网 发布:股票交易软件制作公司 编辑:程序博客网 时间:2024/05/21 01:53
最近一段在找工作,因此面试时,肯定会被问到一些自己做过的项目,因此我打算用一个系列把之前做的项目里用到的一些知识列出来复习一下,也方便以后自己查阅吧。
第一篇. SPI
使用场景:无线数传NRF24L01
1.概念
2.使用
上面这张图,是对SPI通信的一个简单的描述,里面有SSPBUF,这相当于一个FIFO。而SSPSR是设备里的移位寄存器。
然后还需要解释两个概念:
上面概述里说到,SPI有4种模式,那么这四种模式怎么来的,就是靠这个两个概念:
CPOL: 时钟极性, 表示 SPI 在空闲时, 也就是不进行数据传输的时候,时钟信号是高电平还是低电平. 若 CPOL 被设为 1, 那么该设备在空闲时 SCK 管脚下的时钟信号为高电平. 当 CPOL 被设为 0 时则正好相反.
CPHA: 时钟相位, 表示 SPI 设备是在 SCK 管脚上的时钟信号变为上升沿时触发数据采样, 还是在时钟信号变为下降沿时触发数据采样. 若 CPHA 被设置为 1, 则 SPI 设备在时钟信号变为下降沿时触发数据采样, 在上升沿时发送数据. 当 CPHA 被设为 0 时也正好相反.
好了,知道这两个概念,我来描述一下,SPI主机模式的工作流程:
1.首先我们需要知道从机支持4种模式的哪一种,然后我们将上述的极性跟相位配置好。
2.在要进行数据传输时,现将cs片选使能。使能之后,从机就知道你主机要跟我通信了,这个时候,只要一有时钟信号就可以进行同行了。
3.SSBUF在cpu内会存在两个寄存器,假设为Tx-Data和Rx-Data,好,这时候,我们先将数据写到Tx-Data中,之后,这些数据会被 Master-SSPSR 移位寄存器根据 Bus-Width 自动移入 Master-SSPBUF 里, 然后这些数据又会被 Master-SSPSR 根据 Channel-Width 从 Master-SSPBUF 中移出, 通过 Master-SDO 管脚传给 Slave-SDI 管脚Slave-SSPSR 则把从 Slave-SDI 接收到的数据移入 Slave-SSPBUF 里. 与此同时, Slave-SSPBUF 里面的数据根据每次接收数据的大小(Channel-Width), 通过 Slave-SDO 发往 Master-SDI, Master-SSPSR 再把从 Master-SDI 接收的数据移入 Master-SSPBUF.在单次数据传输完成之后, 用户程序可以通过从 Master 设备的 Rx-Data 寄存器读取 Master 设备数据交换得到的数据.
- 项目知识复习1-----SPI
- 项目知识复习2----IIC
- 金融知识复习 1
- HTML知识复习(1)
- java知识复习1
- SPI知识
- 项目知识复习3----CAN总线
- 复习知识
- SPI知识简介
- spi lcd知识简要
- SPI知识总结
- C语言小知识复习1
- web前端知识复习(1)
- JavaScript复习1(介绍基本的知识)
- C语言重点知识复习1
- 【黑马程序员】SqlHelper+三层架构 +例子1)复习创建客户和三层的知识+、(例子2)项目初始框架(HRMSys)
- 项目复习
- 软件项目管理师复习指南六:项目管理一般知识
- 《OpenCV3编程入门》学习笔记三:HighGUI图形用户界面
- Linux系统分区
- 开发中常见的bug/及项目解说
- 对SendMessage与PostMessage的理解
- 【Java数据结构与算法04】 | 第2章--小结
- 项目知识复习1-----SPI
- :enabled选择器
- php操作memcache
- xcode 代码不高亮 不提示语法错误 解决方法
- JAVA定时器的几种方式
- Add Binary
- 利用Jquery插件 DataTables 表格转PDF CVS EXCEL PRINT 等
- JAVA之集合框架
- USACO2014 Open Silver Dueling GPSs