欢迎您光临机械网,如有问题请及时联系我们。

SPI怎么和SDA进行数据通讯?spi数据传输

作者:机械网
文章来源:本站

  SDA和SCL是IIC/I2C中用到的两个线,一根是数据线,一根是时钟线。SPI也是一种通讯方式,一般为三线或者四线制。IIC和SPI都是非常常用的近距离通讯总线,一般芯片的通讯接口以IIC和SPI居多,例如ADS1115系列采样芯片的通讯总线就是IIC;而气压传感器BMP280则是IIC和SPI可选的,这两种通讯接口都是用在芯片之间近距离通讯的,并且相互独立,不能共用。

  但是,这两种通讯方式有比较特别,都是可以通过单片机的GPIO口来模拟实现的。题目中的芯片是IIC的,所以,如果单片机没有硬件IIC的片上资源的话,可以使用GPIO口来模拟实现IIC,只要单片机的引脚能配置为输入/输出就可以当作IIC来用,哪怕是该引脚具有SPI功能。

  所以,题目的问题就可以转化为,单片机的普通GPIO如何来实现IIC功能了,不需要考虑SPI了。IIC具有数据线SDA和时钟线SCL等两根线。其中SCL是作为输出引脚使用的,所以将单片机的SCL配置为输出功能;而SDA既能输出又能输入,所以需要根据IIC的时需配置为输入或者输出功能。

  IIC通讯在编程的时候需要参考器件的时序图,时序图是编程的基础。比如,IIC通讯中需要用到起始信号和终止信号。通过查看时许可以发现,起始信号时需要将SCL时钟线拉高,SDA数据线为下降沿;而终止信号中SCL是高电平,而SDA是上升沿。所以,用单片机的GPIO口来模拟这个过程即可。起始信号的C程序如下图所示。

  如果芯片的通讯接口为IIC,就要设计IIC电路和单片机进行通讯;如果芯片的通讯接口为SPI就要设计SPI电路和单片机进行通讯。IIC和SPI都是可以通过普通的IO口来实现的,不一定需要单片机具有该两种硬件片上资源。

  如果用单片机内置硬件通讯应该不能,一个spi一个i2c,不兼容。但是i2c速度不高,可以把单片机端口配置成gpio用软件方式通讯。

  

SPI怎么和SDA进行数据通讯?spi数据传输

  

SPI怎么和SDA进行数据通讯?spi数据传输

来源:文章来源于网络,如有侵权请联系我们及时删除。本文由机械网转载编辑,欢迎分享本文!