单片机编程时如何分析芯片的时序图?

时序对于数字电路而言非常重要,可以说时序是数字电路正常工作的基础。说到时序,一般是指可编程器件的编程方法,在单片机编程时,需要根据被控芯片的时序去写程序,把芯片手册上规定好的时序用代码来实现,放可以实现单片机和芯片之间的通讯。下面以几种常用芯片的时序来简单介绍一下如何看懂时序。
IIC通讯的开始/结束时序
IIC是常用的芯片间的通讯方式,也叫I2C,适合于PCB板内近距离的通讯,总共具有两跟线,可挂接不同地址的多个设备,其硬件连线如下图所示。
IIC在通讯时需要首先发送一个开始信号,数据结束时需要发送结束信号,开始和结束就在器件手册上就给出了时序图,在编程时就需要用C语言代码去实现开始和结束的时序,时序图如下所示。
SCL是IIC的时钟线,SDA是数据线,SDA数据如何传输需要在特定的SCL时序上。从图中可以看出,在开始时,必须SCL是高电平,而SDA是下降沿,这就是开始的时序。在发送结束信号时,必须让SCL为高电平,让SDA是上升沿,这就构成了结束信号。用C语言代码所实现的结束信号如下所示。

IIC数据传输时的时序

IIC在发送完开始信号后,就要开始发送数据,发送数据的过程也必须得遵守IIC的时序,IIC数据传输的时序如下图所示。
从时序图上,可以看出,在SCL为高电平期间是不允许SDA数据发生变化的,如果要改变SDA数据必须发在SCL为低电平期间。这就是这个时序图的含义。单片机在编程时要遵循这个规则才可以。
时序图是编程的依据,在写代码时必须要严格按照芯片手册上的时序图,否则通讯失败。所以,时序图这个东西要多看,多写代码。
(0)

相关推荐