如何通过并行端口控制32个DAC通道

描述

有时,系统需要几个数字可编程电压输出通道。这种输出通道通常提供对机器人定位,工业过程甚至家庭自动化的控制。图1中的电路控制来自PC并行端口的32个电压输出通道。该电路包括8个DAC7615四路电压输出,串行数据可编程,12位DAC。控制PC分别对32个DAC通道中的每个通道进行编程,并且所有DAC输出同时更新。

并行端口的8条数据输出线为8个四通道DAC7615中的每一个提供串行数据。并行端口的其余四条控制线提供串行数据时钟,输入寄存器时钟,DAC寄存器时钟和DAC复位功能。每个DAC7615都有一个参考高低输入,电路分别连接到2.5V和-2.5V的外部参考电压。两个OPA4277四通道运算放大器缓冲±2.5V DAC参考电压。由于所有DAC均使用相同的±2.5V基准电压,因此所有DAC输出均作为这些基准电压的函数一起跟踪。所有32个通道的最终DAC输出电压范围为-2.5V至+ 2.5V。

该电路通过移入包含两个串行16位字的串行16位字对八个DAC7615中的每一个进行编程地址位,两个哑位和DAC 12位数据字。每个DAC7615的V OUTA 通道的串行数据首先移位,然后是V OUTB ,V OUTC ,以及V OUTD 个通道。 DAC7615具有双缓冲数据输入,因此电路可以将所有DAC通道的编程数据加载到输入寄存器,而无需更改先前设置的DAC输出电压。在每个16位字移入相应的DAC7615后,DAC控制线瞬间产生低电平脉冲,将移位后的数据锁存到每个DAC的内部输入寄存器中。最后,当电路对所有DAC输入寄存器进行编程时,信号为低电平,以更新内部DAC寄存器并更改所有DAC输出。

使用并行端口同时进行串行数据传输到所有DAC7615,软件必须首先操纵数字输出数据,使其以可以流出并行端口的形式放置。控制软件将一组8个16位字(代表移入每个DAC7615的代码)转换为一组16个8位字(图2)。得到的16个8位字的向量表示16位串行数据流,该电路同时移入DAC7615的四个寄存器中。此转置重复四次以对每个DAC7615的所有四个通道进行编程。

华强pcb线路板打样

随附的程序“WriteDAC32”,这是用Borland Turbo Pascal编写,接受一组32个12位代码,用于编程每个DAC通道。 WriteDAC32使用汇编语言程序重复左移每个12位DAC代码的前导位,然后重建12个8位字,表示PC在所有8个并行端口数据线上输出的流数据。要对所有32个DAC通道进行编程,需要4X16个数据时钟周期。如果以菊花链方式连接DAC,则所需的时钟周期数为4X8X16。 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分