博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SPI总线之NSS
阅读量:4292 次
发布时间:2019-05-27

本文共 711 字,大约阅读时间需要 2 分钟。

对于每个SPI的NSS,可以output也可以input
如果是Input:就是把NSS的电平信号给自己,
如果是Output:就是把NSS信号发出去,给从机
NSS配置为输出还是不输出,通过SPI_CR2寄存器的SSOE选择,
 SSOE为1的时候,且SPI是主模式,NSS就拉低,那么其他的设备,自动接收到低电平,自动为从设备
NSS的输入,分为硬件输入和软件控制输入两个模式,
 软件模式:
  1. 对于Master来说,设置SPI_CR1的SSM和SSI都为1,SSM为1是为了是能软件管理。此时,NSS外部引脚可以干别的(作为驱动Slave的片选信号)
   内部的NSS则通过SPI_CRL的SSI来驱动,前面讲SSI为1,是为了使内部NSS内电平为1,为毛内电平要为1呢?
   因为STM32上说,要保持Master状态,NSS就应该为1,硬件模式下也是如此。
  2. 对于Slave呢,Master自己解决了NSS为高的问题,Slave自己的NSS为低也要解决啊,
    若Slave是一个MCU,比如是个STM32单片机,你就得把SSM置为1,SSI置为0啊!这就解决了Slave的NSS需要拉低的问题。
    如果Slave是个支持SPI片子(比如我那个EN25Q64),那直接把CS接到GND就可以了;洋气点,不是Master那个NSS信号内部自己解决了吗,那直接用它当作GPIO输出低电平给Slave的CS啊,其他GPIO也成
 硬件模式:
  对于Master,NSS直接怼到VCC,对于Slave,NSS怼到GND就完了
  上面说过,主机SSOE为1的时,它是把NSS信号(低电平)发出去,直接把主机的NSS和从机的CS接一块就成。

转载地址:http://ovhgi.baihongyu.com/

你可能感兴趣的文章
奖学金评比系统(数据库系统设计版)
查看>>
HTTP Live Streaming直播
查看>>
rtmp+fms rtmp 视频发布环境
查看>>
最简单的基于librtmp的示例:发布(FLV通过RTMP发布)
查看>>
Windows/Linux下引用jar包,并用javac/java编译运行
查看>>
HttpClient使用详解
查看>>
HttpClient详解(一)
查看>>
httpclient 请求http数据,json转map
查看>>
git 常用命令
查看>>
用递归方法建立二叉树
查看>>
用递归方法对二叉树进行先序、中序和后序遍历
查看>>
翻转二叉树
查看>>
逆序链表
查看>>
epoll 使用详解
查看>>
stl 中 set容器用法
查看>>
有序数组求交集
查看>>
文字常量区与栈
查看>>
非阻塞connect 编写方法
查看>>
epoll 边沿触发
查看>>
String类 默认生成的函数
查看>>