• 1
    回复
  • 收藏
  • 点赞
  • 分享
  • 发新帖

SPI的CS低电平为片选,那么CS能直接下拉到地吗?

这个是一个朋友提问:SPI的CS拉低为片选,那么CS能直接下拉到地吗?

答:一般情况下不能(除非芯片做了特殊设计)。

以spi接口的最常用的flash--W25Q64为例子,在其数据手册中就有对CS的描述,通过其数据手册也可以知道,CS在通讯时需要置高和置低,下面是WSQ64里对CS的描述:

意思为:SPI芯片选择(/CS)引脚用于使能和禁用设备操作。当/CS为高时,设备被禁用,串行数据输出(1、102、103)引脚具有高阻抗。当设备被禁用时,除非正在执行内部擦除、或写状态寄存器时,否则设备的功耗将处于待机级别。当/CS 变为低时,设备将被选中,功耗将增且可以向设备写入指令并从设备读取数据。上电后,/CS必须从高电平切换到低电在接收新的指令前。/CS输入必须在加电和断电时上拉到VCC供电电平(可以在/CS引脚上使用上拉电阻)。

所以说,就算只有一个SPI的从机,CS也是不可以直接下拉到GND的,芯片识别不到CS由高变低的下降沿,便无法建立通讯。可以看到,在通讯开始时,CS产生一个下降沿;在通讯结束时,CS产生一个上升沿。CS必不可少,不可以直接下拉到GND。

再看一个SPI接口的ST7789屏幕驱动芯片的规格书,在规格书内也有标注,CS的下降沿代表数据的开始通讯,如果CS直接接到GND,那么CS将无法产生下降沿,从而通讯异常:

总结:不要盲目自信,以规格书为准!不要为了省个IO口,直接将片选接到GND,这是错误的。

全部回复(1)
正序查看
倒序查看
jrh200310
LV.3
2
08-19 10:04

不行,因为上拉到高电平时内部寄存器处在复位状态,下拉开始工作,如果一直下拉,操作多次后,可能不知道器件处在状态。所以需要重新下拉低电平

2
回复