这个是一个朋友提问: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,这是错误的。