MCU

AD7545写时序及总线实现方式一

0
阅读(4293)

   继之前的学习,今天继续介绍如何通过控制信号将数据DB0-DB11写入AD7545,从该器件的DATASHEET中可以找到如图1所示的图片。

                                  图1

   时序图中有两个控制信号CHIP SELECT和WRITE和DATA IN数据输入端口,分别对应器件管脚CS、WR和DB0-DB11,由CS和WR都有上划线可知这两个信号均是低电平有效,然后我们就可以来看时序图是怎么实现的啦。从图1可以得知,要写入数据,首先得把CS信号拉低,然后把WR信号拉低,由图中可知这两个操作之间无须延时,最后再把数据DB0-DB11送入数据端口,延时tWR时间,数据就被写入AD7545的内部锁存器中,注意这时CS信号不能马上拉高,还要再延时tCH时间,等于D/A转换结束后,才能把CS信号释放。至此完成数据的写入操作。

   由前面分析可知,要对AD7545进行写操作,需要连接CS、WR和DB0-DB11至单片机的I/O口,总共需要14个I/O,而一般的单片机的I/O口也就28个左右,14个已经占了一半的I/O口,如果直接用I/O口去控制,对于稍微复杂一点的系统,I/O口是肯定不够用的。那么,有没有办法可以解决这个问题呢?答案是肯定的。我们可以通过单片机的外部总线的地址信号来实现对AD7545的写操作,连接方式如图2所示,这样虽然还是连接了14个I/O口,但是通过单片机的外部总线复用技术,这些I/O口除了用于AD7545的写操作,还能用于其他器件的操作。

                                     图2

   我们来分析一下图2的实现过程,在图2中,DB0-DB11和CS是由外部总线地址信号来控制的,WR信号同样连接至单片机的WR管脚,外部总线的数据信号跟AD7545无连接。由单片机的外部总线时序可以知道,当输出16位地址信号时,单片机的WR信号也随着被拉低,如此我们只需将要写入AD7545的数据放在A0-A11的位置,图2中的ADDRESS DECODE可以看作一个4-16译码器,如74LS154,将A12-A15设置为0000,则4-16译码器的Q0管脚输出低电平,从而使能AD7545器件,CS、WR信号均符合数据写入时序的要求,这样A0-A11地址信号上的数据将被写入AD7545中,最终实现D/A转换。