首页 > 其他分享 >SPI中NSS/CS使用和SPI常见问题

SPI中NSS/CS使用和SPI常见问题

时间:2022-08-16 16:11:43浏览次数:72  
标签:常见问题 引脚 主机 SPI 从机 寄存器 CS NSS

转:https://blog.csdn.net/qq_41890114/article/details/121594327

前言

SPI是常用的通信手段之一,经常使用,但也经常踩坑;网上资料很多,但对于CS/NSS使用的讲解比较少,正好最近使用SPI也遇到了一些问题,记录一下。

SPI中NSS作用和用法
简单来说,NSS和CS是一个东西,主要用于片选从机的。SPI控制器上连接的内部NSS引脚。
NSS硬件模式和软件模式:可以通过寄存器配置,选择将内部NSS引脚连接到SSI寄存器,使用寄存器控制NSS电平,也可以选择内部NSS引脚和外部真正的NSS GPIO相连,由外部引脚电平来控制NSS。

我画了一个关系图,可以清晰的看明白NSS的控制流程:

NSS软件和硬件模式,实际是由SPI的相关控制寄存器决定的,这里就简单说下,详细的SPI寄存器可以查阅所使用芯片的芯片手册。

 

 

 

 

图中就是cortex-m3中的SPI控制寄存器,其他的芯片也基本是一样的。

SPI使用时常见问题
1.接线错误,记住主机的MOSI和从机的MOSI相连,不是交叉相连!!!!!!!
MISO也是一样;不要接反了,我以前也曾接反过,导致一直通信不上。

2.主机和从机,时钟极性(CPOL)和采样方式(CPHA)以及数据发送顺序(高位先行或低位先行)要设置一样,要不然多半会导致数据不一致。

3.对于NSS硬件模式的从机;主机要确保在发送时钟信号前,控制从机的NSS引脚要拉低,通信结束后等待Busy后再拉高NSS!!!!

4.这就意味着主机,主机在SPI初始化时不要立刻使能,要在NSS拉低后,主机SPI再使能,否则,可能会导致从机接收的时钟脉冲少一个,导致从机接收的数据全部为2倍。

5.很多时候,主机的NSS引脚是不用的,直接使用一个任意的GPIO普通引脚片选从机,方便灵活;此时NSS就直接设为软件模式,主机对NSS不做关心。

其他的有机会再补充,本文对SPI协议逻辑没有详细讲解,网上资料很多,就不再重复讲述了,如果需要了解SPI协议逻辑可以参考:SPI原理讲解.
如果有疏漏请指出,共同交流完善
————————————————
版权声明:本文为CSDN博主「嵌入式小武」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_41890114/article/details/121594327

标签:常见问题,引脚,主机,SPI,从机,寄存器,CS,NSS
From: https://www.cnblogs.com/wellons/p/16591932.html

相关文章

  • SPI:Java的高可扩展利器
    摘要:JAVASPI,基于接口的编程+策略模式+配置文件的动态加载机制。本文分享自华为云社区《一文讲透Java核心技术之高可扩展利器SPI》,作者:冰河。SPI的概念JAVASPI=基于......
  • python写入txt 和python写入csv 202208
     ##写入csvdic=[1,2,3,4,5]# # file = open('21.txt', mode='w',encoding='UTF-8')# # file.write(dic)# # # 关闭文件,不关闭文件可能会出问题# # fil......
  • 【ElasticSearch】别名
    1、查询别名查询所有GET/_alias查询单个GET/admin-service/_alias2、创建别名批量创建POST/_aliases{"actions":[{"add":{......
  • elasticsearch 集群搭建问题
    原本缓存数据,影响。问题1:[2022-08-09T10:37:14,478][WARN][o.e.c.c.ClusterFormationFailureHelper][fort1]masternotdiscoveredyet,thisnodehasnotpreviousl......
  • Elasticsearch 字段别名 field-alias
    环境Elasticsearch8.1Kibana8.1MacOS10.14.6简介首先我们还是先了解一下,什么是字段别名?大家可能听说过索引别名,通过索引的别名可以轻松的切换所需的数据来源与哪......
  • 【CSS】实现简单易上手的'手风琴效果'
    【CSS】实现简单易上手的'手风琴效果'点击打开视频讲解<template><divid="app"><divclass="shell"><divclass="box"><imgsrc="./assets/img......
  • 《初等数学概览,第一卷,实数与函数》习题选做 An Excursion through Elementary Mathema
    最近在看AntonioCaminhaMunizNeto的AnExcursionthroughElementaryMathematics,VolumeIRealNumbersandFunctions这本书,在这里随便写点课后练习。英语水平......
  • CSS之轻松实现rem适配
    1.vsCode安装pxtorem&rpx(cssrem)2.修改扩展rootfontsize这样就轻松使用rem了......
  • css的animate做一个信号动画
     html<divclass="jumpflex-fsfadeAndScaleIn"><span></span><span></span><span></span></div> css.jump{ align-items:flex-end; m......
  • css
    层叠样式表,给html标签添加样式注释:/*单行注释*//*多行注释多行注释*/css的结构语法选择器{属性1:值1;属性2:值2;属性3:值3;属性4:值4;}css的三种引入方式......