>
首页 » 业界动态 » 串行12位ADC与PC之间的接口电路

串行12位ADC与PC之间的接口电路

作者:  时间:2007-12-22 15:35  来源:

近几年来,ic制造商设计了实现接口的各种方法,并且特别重视减少ic接口i/o引脚的数量。max187就是这样一个器件,它是一个12位模/数转换器(adc)。你可以利用串行数据通信技术产生与该adc的一个接口。max187的模/数转换和数据传输仅需三条数字i/o线。你可以利用pc的centronics打印机端口在max187和pc之间产生一个简易接口(图1)。只要将引脚分别设置为高电平或低电平,你就能启用或禁用max187(引脚 3)。如果使该引脚开路,则内部参考电压(4.096v) 就被禁用,你必须将一个外部参考电压加到引脚ref(引脚4)上。在其他情况下,该引脚 与4.7μf旁路电容c1连接。通过使用sclk引脚(引脚8)上的外部时钟脉冲,来自 max187的数字数据就以每次1位的速度传输给处理单元。

一次完整的数据传输需要13个外部时钟脉冲。第一个时钟脉冲的下降沿锁存dout引脚(引脚6)的第一个数据位(msb)。输出数据位在下一个外部时钟脉冲的下降沿就改变,可以读取串行数据位,直到下一个时钟周期的下降沿出现为止。模/数转换在adc的引脚(引脚7)变成低电平时开始进行。该引脚必须保持低电平,直到模/数转换整个周期结束为止,随后进行串行数据传输。dout引脚从低电平至高电平的状态变化表示eoc(转换结束)状态。然后,串行的12位数据就可以进行传输了。max187的工作情况由软件控制。该软件应能产生成功完成转换所需的所有控制信号,而且应能检测eoc状态。它还应能产生13个外部时钟脉冲,以便读取串行12位数据并将其转换成并行数据。

控制max187工作情况的软件是turbo c++ 3.0版本(可从http://www.edn.com/网站的《设计实例》的web版本下载)。在代码中,port定义与max187接口的pc的 centronics端口。write port定义用于初始化模/数转换和产生外部时钟脉冲的端口。read port定义用于从adc读取eoc和串行数据的端口。在将cs引脚和sclk引脚下拉至低电平后,eoc环路检查eoc状态。如果未出现有效的eoc,则该环路将继续工作。有效eoc出现,13个时钟周期中的第一个周期就出现,并锁存第一个数据位(msb)。此后,例行程序调用一个子例程(get_adc())。子例程产生剩下的外部时钟周期,以便读取12位串行数据。子例程还将接收到的串行数据转换成并行数据(adc_val)。这一转换过程为:使adc_val左移一位,由此将前一个数据乘以2,如果串行数据位的值为1,则将1加到并行数据上。一旦并行数据就绪,子例程将返回这个值并将其显示在屏幕上。

图1 实现12位串行adc与pc之间的接口是很容易的。

相关推荐

三星系统IC业务2014年订立技术领先目标

三星  IC  2013-12-27

信息消费“大势”将至 IC业面临考验

IC  移动互联网  2013-09-22

IC业十大“芯”结求解:整机与芯片联而不动?

IC  芯片  2013-08-28

中国IC业“芯”结求解:进口替代难见起色?

IC  CPU  2013-08-23

台湾IC业上季产值增16.8%

IC  封装  测试  2013-08-19

半导体大军 竞逐3D IC

半导体  IC  2013-07-09
在线研讨会
焦点