OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4607|回复: 6

如何使SPI NSS引脚在发送数据时为低电平,发完拉高

[复制链接]

9

主题

27

帖子

0

精华

初级会员

Rank: 2

积分
77
金钱
77
注册时间
2016-8-1
在线时间
25 小时
发表于 2017-5-25 16:33:18 | 显示全部楼层 |阅读模式
1金钱
使用的是STM32 SPI1,是否是软件输入模式下使SSOE位置1,然后把PA4配置成通用IO,发送前置0,发送完置1,目前这么做了,但是PA4始终为低电平,大佬求解。(没有正原电子开发板资料)

最佳答案

查看完整内容[请看2#楼]

从选择(NSS)脚管理 有2种NSS模式: 图211● 软件NSS模式:可以通过设置SPI_CR1寄存器的SSM位来使能这种模式(见)。在这种模式下NSS引脚可以用作它用,而内部NSS信号电平可以通过写SPI_CR1的SSI位来驱动 ● 硬件NSS模式,分两种情况: ─ NSS输出被使能:当STM32F10xxx工作为主SPI,并且NSS输出已经通过SPI_CR2寄存器的SSOE位使能,这时NSS引脚被拉低,所有NSS引脚与这个主SPI的NSS引脚相连并配置为硬件NSS的SPI设备,将自动变 ...
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

23

主题

323

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1010
金钱
1010
注册时间
2016-11-8
在线时间
233 小时
发表于 2017-5-25 16:33:19 | 显示全部楼层
xinghongyc 发表于 2017-5-25 17:03
电路板确定了,就是要在NSS上发送数据是为低电平,发完拉高。但是软件模式配置成主机时已经把SSI位置1, ...

从选择(NSS)脚管理
有2种NSS模式:
图211● 软件NSS模式:可以通过设置SPI_CR1寄存器的SSM位来使能这种模式(见)。在这种模式下NSS引脚可以用作它用,而内部NSS信号电平可以通过写SPI_CR1的SSI位来驱动
● 硬件NSS模式,分两种情况:
─ NSS输出被使能:当STM32F10xxx工作为主SPI,并且NSS输出已经通过SPI_CR2寄存器的SSOE位使能,这时NSS引脚被拉低,所有NSS引脚与这个主SPI的NSS引脚相连并配置为硬件NSS的SPI设备,将自动变成从SPI设备。 当一个SPI设备需要发送广播数据,它必须拉低NSS信号,以通知所有其它的设备它是主设备;如果它不能拉低NSS,这意味着总线上有另外一个主设备在通信,这时将产生一个硬件失败错误(Hard Fault)。
─ NSS输出被关闭:允许操作于多主环境。

软件模式下 NSS引脚就不使用了。
硬件模式  可以使用,但是使用条件已经给出了。作用就是用来配置主从设备的啊

至于你想直接操作PA4输出高低电平的意义是啥啊,只是单纯输出高低电平不就是普通IO口功能吗 ?和NSS也没有关系了。
你到底要NSS干嘛嘞
亦余心之所善,
虽九死其犹未悔。
回复

使用道具 举报

23

主题

323

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1010
金钱
1010
注册时间
2016-11-8
在线时间
233 小时
发表于 2017-5-25 16:45:46 | 显示全部楼层
本帖最后由 南有乔木 于 2017-5-25 16:47 编辑

SPI NSS是从设备选择引脚,用来选择主设备与特定从设备通讯的。
比如SPI1上挂了几个从设备,可以用此引脚来选择特定从设备通讯。一般单主单从NSS由软件管理,此引脚是不用的。。。

NSS是PA4复用功能引脚,配置成 Standard IO是使用IO口的普通功能。

具体可参考原子的SPI例程啊,资料在置顶的帖子
亦余心之所善,
虽九死其犹未悔。
回复

使用道具 举报

9

主题

27

帖子

0

精华

初级会员

Rank: 2

积分
77
金钱
77
注册时间
2016-8-1
在线时间
25 小时
 楼主| 发表于 2017-5-25 17:03:28 | 显示全部楼层
南有乔木 发表于 2017-5-25 16:45
SPI NSS是从设备选择引脚,用来选择主设备与特定从设备通讯的。
比如SPI1上挂了几个从设备,可以用此引脚 ...

电路板确定了,就是要在NSS上发送数据是为低电平,发完拉高。但是软件模式配置成主机时已经把SSI位置1,输出无效,怎么搞
QQ图片20170525165746.png
回复

使用道具 举报

14

主题

171

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
450
金钱
450
注册时间
2017-3-31
在线时间
118 小时
发表于 2017-5-25 20:37:06 | 显示全部楼层
软件模式NSS就是个普通引脚。你说的NSS脚没法拉高要么是你外部电路把电平拉低了,要么就是你SPI没启动成功,程序没跑到拉高电平的地方
回复

使用道具 举报

1

主题

101

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
254
金钱
254
注册时间
2017-5-10
在线时间
55 小时
发表于 2017-5-26 10:40:48 来自手机 | 显示全部楼层
xinghongyc 发表于 2017-5-25 17:03
电路板确定了,就是要在NSS上发送数据是为低电平,发完拉高。但是软件模式配置成主机时已经把SSI位置1, ...

软件模式要你自己在软件里面拉低拉高对应的gpio,ssi是把自己配成从机用的
回复

使用道具 举报

1

主题

101

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
254
金钱
254
注册时间
2017-5-10
在线时间
55 小时
发表于 2017-5-26 10:45:17 来自手机 | 显示全部楼层
配置成软件模式是为了解放nss,尤其是唯一主机的情况,就不需要额外把nss拉高把自己配置成主机
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-8-20 20:19

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表