| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 嵌入式 -> SPI通信原理 -> 正文阅读 |
|
[嵌入式]SPI通信原理 |
一、SPI概述SPI是串行外设接口 (Serial Peripheral Interface) 的缩写。是 Motorola 公司推出的一种同步串行接口技术,是一种高速的,全双工,同步的通信总线。SPI 接口主要应用在 EEPROM,FLASH,实时时钟,AD 转换器,还有数字信号处理器和数字信号解码器之间。 SPI没有指定的流控制,没有应答机制确认是否接收到数据,所以跟IIC总线协议比较在数据可靠性上有一定的缺陷。 二、SPI接线SPI 接口一般使用 4 条线通信:
SPI允许至少有一个主机,一般都是一个主机多个从机,当只有一个从机时: 这站图来自于STM32参考手册,这个应该是STM双机通讯的接线,而且主机从机都工作在硬件模式(对于双击通讯不太懂),一会儿再聊移位寄存器的原理,现在先看个大概接法。 当有多个从机时,每个从机单独接一个片选信号: 三、SPI 总线四种工作方式STM32中的SPI_CR寄存器的CPOL和CPHA位,能够组合成四种可能的时序关系。
CPOL与CPHA各有两种状态,所以可以组成四种不同的工作方式。 为了能让主机与从机正常通讯,主机与从机应当设置为相同的模式,一般从机是出场就固定好的(一般在手册的SPECIFICATIONS-> 四、SPI接口初始化举例以STM32f103控制的一个从设备的初始化过程来说明:
五、主设备NSS的接线想一下为何上面的初始化这两句什么含义呢? 先来看看参考手册怎么说NSS的:
反正我看完很晕,但我大致知道,NSS管脚可以配置为输入,也可以配置为输出,NSS有硬件模式和软件模式之分。而且NSS的连接与设备工作在主模式还是从模式有必然联系,我来慢慢讲。 问题1:NSS由“软件”还是“硬件”管理如何确定? 五、(1)NSS信号软件模式(最常用):就是NSS管脚由软件管理,就是stm芯片内部的NSS信号只与芯片的SPI_CR1寄存器有关系,与STM芯片的NSS管脚接啥毫无关系。这时候STM芯片的NSS脚可以当做普通的GPIO口用。
(2)软件模式下把stm32设置为从模式的方法:在NSS软件模式下,将SPI_CR1寄存器中的SSM位置1并清零SSI位。这些要求是我在参考手册找到的,因为没有实际应用,不清楚库函数怎么配置。
【注】:上面两种方法只是说明了在软件模式时,设置STM32为主模式还是从模式时与NSS有关寄存器的不同设置,其他的操作比如:指定数据传输从MSB位还是LSB位开始,设置SPI工作模式设置的相关SPI_CR1寄存器位还要视情况操作。还有一般STM32都做主模式使用,从模式用到了再做补充。 五、(2)NSS信号硬件模式:就是NSS管脚由外部NSS引脚管理。而最让人困惑的是NSS引脚还可以设置为输入模式和输出模式,通过SPI_CR2的SSOE位进行设置。 (1)硬件模式下把stm32设置为主模式的方法: (2)硬件模式下把stm32设置为从模式的方法(最常用): 总结:就是主机一般选用软件模式,NSS信号来自由内部寄存器,外部NSS管脚可做普通IO端口使用,从机一般选用硬件NSS为输入模式。 六、SPI数据交换原理多亏这几个高质量的博客: |
|
嵌入式 最新文章 |
基于高精度单片机开发红外测温仪方案 |
89C51单片机与DAC0832 |
基于51单片机宠物自动投料喂食器控制系统仿 |
《痞子衡嵌入式半月刊》 第 68 期 |
多思计组实验实验七 简单模型机实验 |
CSC7720 |
启明智显分享| ESP32学习笔记参考--PWM(脉冲 |
STM32初探 |
STM32 总结 |
【STM32】CubeMX例程四---定时器中断(附工 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 19:22:37- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |