SPI 接口由SDI(串行数据输入),SDO(串行数据输出),SCK(串行移位时钟),CS(从使能信号)四种信号构成,CS 决定了唯一的与主设备通信的从设备,如没有CS 信号,则只能存在一个从设备,主设备通过产生移位时钟来发起通信。通信时,数据由SDO 输出,SDI 输入,数据在时钟的上升或下降沿由SDO 输出,在紧接着的下降或上升沿由SDI 读入,这样经过8/16 次时钟的改变,完成8/16 位数据的传输。
由此可知,软件模拟SPI通信IO端口设置:
SDI设置弱上拉或开漏输入(加上拉电阻);
SDO设置推挽输出;
SCK设置推挽输出;
CS设置推挽输出(如果只有一个从设备,可以省掉这根线)。
SDI不是设置成高阻输入么?
SDO设置成强推挽产生很大的功耗,把1117都烧冒烟了,疑惑中
开漏