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 主机模式分析相关推荐

  1. ESP32S3系列--SPI主机驱动详解(一)

    一.目的 SPI是一种串行同步接口,可用于与外围设备进行通信. ESP32S3自带4个SPI控制器外设(Master),其中SPI0/SPI1内部专用,共用一组信号线,通过一个仲裁器访问外部Flash ...

  2. STM32F103 SPI

    SPI (Serial Peripheral interface) 串行外围设备接口 SPI特征     3线全双工同步传输,第4根线是片选     8或16位传输帧格式选择     主或从操作    ...

  3. ESP32学习笔记(19)——SPI(主机)接口使用

    一.SPI简介 SPI(Serial Peripheral Interface) 协议是由摩托罗拉公司提出的通讯协议,即串行外围设备接口,是一种高速全双工的通信总线.它被广泛地使用在 ADC.LCD ...

  4. 国产W806 SPI主机/从机驱动程序

    一段时间芯慌后国外芯片价格飙升,国内芯片厂突然崛起:乘此机会使用了该芯片做了一批产品,经过一段时间测试芯片稳定性还可以,工作在电磁环境较差的电源监控中没有出现复位死机现象. 关于该国产芯片资料实在是很 ...

  5. Verilog实现SPI主机通信

    前言 在今年二月份的时候我写了一篇关于SPI模式的Verilog代码实现的博客(原文 ),当时由于时间关系,我只测试了SPI的一种通信模式(CPOL = 0, CPHA = 0),在该模式下通信正常, ...

  6. stm8s开发(七) SPI的使用:SPI主机通信!

    前几篇介绍过UART串口,地址:http://blog.csdn.net/devintt/article/details/52512457 这次讲解一下另一个常用的串口:SPI通信 科普SPI:是一种 ...

  7. STM32做SPI主机用得多,SPI从机玩过吗?

    STM32如何配置为SPI从机? 前言 在平常的开发中,很多时候我们使用SPI都是使用主机模式去驱动一些传感器.存储器等等,很少会用到SPI从机.有时候,我们又需要STM32的SPI配置为从机去接收数 ...

  8. 杰理之关于 SPI 主机配置参数的几个说明【篇】

    clk:SPI 时钟,从机模式则跟随主机. port:SPI 硬件接口,数据手册的 SPI 的 spi_do.spi_di.spi_clk 即为标准的 MOSI.MISO.CLK. SPI 1 por ...

  9. 杰理之关于 SPI 主机配置参数的几个说明:【篇】

    clk:SPI 时钟,从机模式则跟随主机. port:SPI 硬件接口,数据手册的 SPI 的 spi_do.spi_di.spi_clk 即为标准的 MOSI.MISO.CLK. SPI 1 por ...

最新文章

  1. 你真的了解深度学习生成对抗网络(GAN)吗?
  2. 人工智能的鱼与熊掌:精度与可解释性
  3. 与癌症作战的 12 家 AI 公司,八仙过海各显神通
  4. ubuntu安装node.js
  5. 6、HIVE JDBC开发、UDF、体系结构、Thrift服务器、Driver、元数据库Metastore、数据库连接模式、单/多用户模式、远程服务模式、Hive技术原理解析、优化等(整理的笔记)
  6. IIS环境下ShopEx伪静态配置【图文教程+视频教程】
  7. Python+pandas+matplotlib数据分析与可视化案例(附源码)
  8. 迅捷cad_迅捷功能
  9. 【python】MAC链接oracle
  10. 微软私有云分享(R2)24 审核WDS部署
  11. kubenerte启动_老司机和你深聊Kubenertes 资源分配之 Request 和 Limit 解析
  12. 谈谈CompoundButton的OnCheckedChangeListener
  13. Python如何实现人脸识别系统
  14. 迅雷11抢先体验版,免费2T空间可离线不限速取回
  15. 【青少年编程】【Scratch】03 声音模块
  16. 韩顺平Linux教程学习笔记
  17. Nat学习(sNat和dNat)
  18. 39. 实战:基于api接口实现视频解析播放(32接口,窗口化操作,可导出exe,附源码)
  19. k8s每天报告服务器状态信息,[工作随笔] 配置 cron 检查 K8s Pod 存活状态以推送钉钉消息...
  20. 学习大数据的第48天(zookeeper篇)

热门文章

  1. 没看过这条鄙视链,别轻易说你懂区块链!
  2. spring boot实战(第四篇)分散配置
  3. 关系数据库是如何工作的
  4. python excelwriter保存路径_python管理文件神器 os.walk
  5. linux内核4.0,新闻|Linux内核4.0功能:实时内核补丁,支持PS3
  6. 如何采用锂离子电池提高数据中心电源效率
  7. 内部数据中心不会消失的6个原因
  8. 数据中心防火要把“十关”
  9. 数据中心采用液体冷却的障碍
  10. 成功解决raise ValueError(‘No model found in config file.‘) ValueError: No model found in config file.