STM32F103 SPI 主机模式分析
STM32F103的SPI模块,跟通用SPI芯片的工作模式有些区别,手册上也没有特别注明,所以光看手册有时候还不容易理解。
STM32上的不同之处在于SPI模块工作在主机模式时,模块内部有一个控制脚必须由外部给它保持为高电平状态才能工作,为了方便描述这里就简称为CS_ENABLE脚。有了这个概念,里面的各种逻辑关系就比较清晰了。
这里主要分析主机模式,从机模式没有什么特别之处,就简单带过了。先看一下手册上的结构图:
要保持CS_ENABLE为高电平,只能通过红线标识的2个途径来实现,但如果选择NSS,那么NSS就不能作为其他用途了。
但主机模式下在某些时候还要考虑从机片选信号的控制,这时候NSS就不能作为CS_ENABLE高电平的维持信号了。下图标识输出从机控制的片选时的信号途径:
这种模式下,CS_ENABLE信号的高电平状态必须有SSI来维持!
另外还有一种情况,就是SPI模块不使用NSS脚,相当于跟NSS断开连接,NSS作为通用IO口来使用,SPI模块不控制从机的片选信号,由软件的方式通过控制通用IO口来实现,如下图:
这种情况,CS_EANBLE的高电平状态必须由SSI来维持。
综上,再结合控制寄存器的定义,理解起来应该就比较简单了!
STM32F103 SPI 主机模式分析相关推荐
- ESP32S3系列--SPI主机驱动详解(一)
一.目的 SPI是一种串行同步接口,可用于与外围设备进行通信. ESP32S3自带4个SPI控制器外设(Master),其中SPI0/SPI1内部专用,共用一组信号线,通过一个仲裁器访问外部Flash ...
- STM32F103 SPI
SPI (Serial Peripheral interface) 串行外围设备接口 SPI特征 3线全双工同步传输,第4根线是片选 8或16位传输帧格式选择 主或从操作 ...
- ESP32学习笔记(19)——SPI(主机)接口使用
一.SPI简介 SPI(Serial Peripheral Interface) 协议是由摩托罗拉公司提出的通讯协议,即串行外围设备接口,是一种高速全双工的通信总线.它被广泛地使用在 ADC.LCD ...
- 国产W806 SPI主机/从机驱动程序
一段时间芯慌后国外芯片价格飙升,国内芯片厂突然崛起:乘此机会使用了该芯片做了一批产品,经过一段时间测试芯片稳定性还可以,工作在电磁环境较差的电源监控中没有出现复位死机现象. 关于该国产芯片资料实在是很 ...
- Verilog实现SPI主机通信
前言 在今年二月份的时候我写了一篇关于SPI模式的Verilog代码实现的博客(原文 ),当时由于时间关系,我只测试了SPI的一种通信模式(CPOL = 0, CPHA = 0),在该模式下通信正常, ...
- stm8s开发(七) SPI的使用:SPI主机通信!
前几篇介绍过UART串口,地址:http://blog.csdn.net/devintt/article/details/52512457 这次讲解一下另一个常用的串口:SPI通信 科普SPI:是一种 ...
- STM32做SPI主机用得多,SPI从机玩过吗?
STM32如何配置为SPI从机? 前言 在平常的开发中,很多时候我们使用SPI都是使用主机模式去驱动一些传感器.存储器等等,很少会用到SPI从机.有时候,我们又需要STM32的SPI配置为从机去接收数 ...
- 杰理之关于 SPI 主机配置参数的几个说明【篇】
clk:SPI 时钟,从机模式则跟随主机. port:SPI 硬件接口,数据手册的 SPI 的 spi_do.spi_di.spi_clk 即为标准的 MOSI.MISO.CLK. SPI 1 por ...
- 杰理之关于 SPI 主机配置参数的几个说明:【篇】
clk:SPI 时钟,从机模式则跟随主机. port:SPI 硬件接口,数据手册的 SPI 的 spi_do.spi_di.spi_clk 即为标准的 MOSI.MISO.CLK. SPI 1 por ...
最新文章
- 你真的了解深度学习生成对抗网络(GAN)吗?
- 人工智能的鱼与熊掌:精度与可解释性
- 与癌症作战的 12 家 AI 公司,八仙过海各显神通
- ubuntu安装node.js
- 6、HIVE JDBC开发、UDF、体系结构、Thrift服务器、Driver、元数据库Metastore、数据库连接模式、单/多用户模式、远程服务模式、Hive技术原理解析、优化等(整理的笔记)
- IIS环境下ShopEx伪静态配置【图文教程+视频教程】
- Python+pandas+matplotlib数据分析与可视化案例(附源码)
- 迅捷cad_迅捷功能
- 【python】MAC链接oracle
- 微软私有云分享(R2)24 审核WDS部署
- kubenerte启动_老司机和你深聊Kubenertes 资源分配之 Request 和 Limit 解析
- 谈谈CompoundButton的OnCheckedChangeListener
- Python如何实现人脸识别系统
- 迅雷11抢先体验版,免费2T空间可离线不限速取回
- 【青少年编程】【Scratch】03 声音模块
- 韩顺平Linux教程学习笔记
- Nat学习(sNat和dNat)
- 39. 实战:基于api接口实现视频解析播放(32接口,窗口化操作,可导出exe,附源码)
- k8s每天报告服务器状态信息,[工作随笔] 配置 cron 检查 K8s Pod 存活状态以推送钉钉消息...
- 学习大数据的第48天(zookeeper篇)
热门文章
- 没看过这条鄙视链,别轻易说你懂区块链!
- spring boot实战(第四篇)分散配置
- 关系数据库是如何工作的
- python excelwriter保存路径_python管理文件神器 os.walk
- linux内核4.0,新闻|Linux内核4.0功能:实时内核补丁,支持PS3
- 如何采用锂离子电池提高数据中心电源效率
- 内部数据中心不会消失的6个原因
- 数据中心防火要把“十关”
- 数据中心采用液体冷却的障碍
- 成功解决raise ValueError(‘No model found in config file.‘) ValueError: No model found in config file.