随着转换精度要求的不断提高,A/D 转换
芯片的位数不断提高。一方面高精度并行 A/D 转换芯片
引脚数不断增加,价格攀升,一定程度上限制了用户的选用;另一方面,由于模拟量 和数字量之间需要考虑隔离,在数字端隔离具有技术成熟、稳定,无误差等一系列优点,被广 泛使用,但是随着并行A/D 位数增加,数字隔离代价太大,不现实;此外引脚增加也无形中增 大了印制板的面积,增加了成本,限制了某些场合的使用。 随着芯片集成度和工艺水平的提高,
串行 A/D(尤其是高精度串行 A/D)转换芯片正在被 广泛地采用。串行A/D 转换芯片以其引脚数少(常见的8 引脚或更少),集成度高(基本上无需 外接其他器件),价格低,易于数字隔离,易于芯片升级(例如10 位串行A/D MAXl243 和12 位 串行A/D MAX187/189 都是DIP8 封装且引脚完全对应一致,再如14 位串行A/D MAXl94 和16 位串行A/D MAXl95 都是DIPl6 封装且引脚完全对应一致),廉价等一系列优点,正逐步取代 并行 A/D 转换芯片,其代价仅仅是速度(主要是数据串行逐位传送的速度,而非转换速度)略 微降低。 串行A/D 转换芯片的型号较多,例如,MAXl71 是带光电隔离的12 位串行A/D 芯片,MAXl47 是8 通道的12 位串行A/D 芯片等等。 串行A/D 转换器的生产厂商很多,例如著名的厂商有:ADI、NS(国家半导体)、TI(德州 仪器)等。由于串行A/D 转换器的基本结构功能相似,本书以MAXIM 公司的MAXl87/189 为例 介绍。 1.MAXl87/189 芯片引脚及功能 MAXl87/189 是 MAXIM 公司的具有 SPI(Serial Peripheral Interface)总线接口的 12 位逐次逼近型(SAR)A/D 转换芯片。DIP8 引脚封装,外接元件简单,使用方便。具有1 个模拟 量通道,单一+5 V 供电,转换速度为 75 kHz,转换时间为 8.5μ s,内建采样/保持器 (Track/Hold),可转换0~5V 模拟电压。 MAXl87/189 的不同在于:MAXl87 具有内部基准,无需外部提供基准电压;MAXl89 则需 外接基准电压。 MAXl87/189 内部结构如图1 所示,芯片引脚如图2 所示。 图1 MAXl87/189 内部结构 图2 5.25 MAXl87/189 芯片引脚 MAXl87/189 芯片引脚及功能如下: (1)与电源相关的引脚(共4 脚) .VDD:工作电源,为+5V±5%。 .GND:模拟和数字地。 .REF:参考电压输入。对于内含基准电压的MAXl87;只需外接一个4.7μ F 的退耦电容 “激活”内部基准,使其产生4.096V 的输出即可;对于MAXl89 需外接2.5V 到VDD 的精密电 压,并增加0.1μ F 的退耦电容(外接基准电压也适用于禁止内部基准电压的MAXl87)。 .AIN:模拟电压输入范围为0~ REF 或0~4.096V(MAXl87)。 (2)与控制和数据相关的引脚(共4 脚) .SHDN(Shut Down):关闭控制信号输入,提供三级关闭方式。当SHDN 输入低电平时,表 示芯片处于待命低功耗状态,此时电流仅10μ Α ;当SHDN 输入高电平时,允许使用内部基准; 当SHDN 悬浮时,禁止使用内部基准,只能使用外部参考电压。 .DOUT:串行数据输出,串行脉冲SCLK 的下降沿数据变化。 .CS:片选输入,低电平有效。CS 信号下降沿启动A/D 转换,A/D 转换期间CS 应保持低电 平。CS 变高时,DOUT 呈高阻态。 .SCLK:串行时钟输入,最大允许频率5MHz。 MAXl87/189 具有内部的采样保持器(T/H),待转换模拟电压(范围在0~REF 之间)经T/H 与 DAC 转换的结果比较,比较结果影响 12 位移位寄存器,移位寄存器数据再送入 DAC 转换, 再比较,直至转换结束。 使用MAXl87/189 进行A/D 转换时应分两步走。 第一步,启动A/D 转换,等待转换结束。当CS 蝇输入低电平时,启动A/D 转换,此时DOUT 引脚输出低电平,充当传递“转换结束”信号的作用。当DOUT 输出变高电平时,说明转换结 束(在转换期间,SCLK 不允许送入脉冲)。 第二步,串行读出转换结果。此时,从 SCLK 引脚输入读出脉冲,SCLK 每输入一个脉 冲,DOUT 引脚上输出一位数据,数据输出的顺序为先高位后低位,在 SCLK 信号的下降沿数据 改变,在SCLK 的上升沿数据稳定。因此,读出12 位数据需要13 个SCLK 下降沿。可以在SCLK 信号为高电平期间从DOUT 引脚上读数据。 2.接口与编程 (1)硬件连接 MAXl87与MCS-51 的连接如图3所示。其中,P1.7 控制片选,P1.6 输入串行移位脉冲,P1.5 取出串行数据。MAXl87 外接 4.7μ F 退耦电容激活内部电压基准,SHDN 接+5V 允许使用内部 基准。 图3 MAXl87 与MCS-51 的连接 与其他器件片选不同的是,MAXl87/189 的片选在转换和读出数据期间始终保持低电平, 不能采用前面章节介绍的写P2.7 之类的做法。 (2)程序设计 工作流程:清P1.7,启动MAXl87 开始A/D 转换。读P1.5 直至变高,等待转换结束。从 P1.6 引脚发串行脉冲,从P1.5 引脚逐位读取数据。 由于MCS-51 单片机外接晶振最大不超过12 MHz,即便是执行一条单周期指令也需1μ s, 所以发送SCLK 时无需延时。 例如,将MAX187 转换结果存入31H、30H 单元,右对齐,31H 存高位(高4 位补0)。程序清 单如下: HIGH EQU 31H LOW EQU 30H MOV HIGH,#00 MOV LOW,#00 将转换结果单元清除 CLR P1.6 CLR P1.7 启动A/D 转换 JNB P1.5,$ 等待转换结束 SETB P1.6 XLK 上升沿 MOV R7,#12 置循环初值12 LP: CPL p1.6 发SCLK 脉冲 JNB P1.6,LP 等待SCLK 变高 MOV C,P1.5 将数据取到C MOV A,LOW RLC A MOV LOW,A MOV A,HIGH RLC A MOV HIGH,A 将取到的数据位逐位移入结果保存单元 DJNZ R7,LP SETB P1.7 结束 RET 在实际应用场合中,通常需要电气隔离。图4 给出了采用电气隔离的电路原理图。由于 读取 A/D 转换结果的速度较慢,对光耦的要求也不是很高,使用 TLP521-4 也是可行的,“自定义--首选项--视口”页面,并选择“配置驱动程序”然后在configureopenGL对话框中取消选择display wireframe objects using trianglestrips(使用三角面显示线框对象)[这个设置默认为取消],即可消除三角线。——————————————————————————图形驱动程序主要有三种:软件,OpenGL,Direct3D●软件算法最慢,但如果其他模式工作不良好的话那就只能用这个,这个是最稳定的。●OpenGL是CG显示标准之一,也是缺省的模式,这个模式下一般都是正常的,速度也是ok的。●Direct3D是针对游戏开发使用的,因为max一直在游戏领域份额很大,这个模式的利用也很成熟,用这个模式进入max会发现材质球的种类变多了。如果要启动硬件shader(实时的反射折射,凹凸,法线贴图,运动模糊,硬件卡通等),就必须使用这个模式,可以大大强化视图显示的功能。在功能完善的显卡上,Direct3D比OpenGL来得更快。●自定义不是人人都有的选择的,需要特别显卡对max支持才行。比如nvidia系列就开发了加速max显示的maxtreme驱动,装了这样的卡就会在自定义里发现maxtreme,显示能力成倍加强,不过也出现了很多显示错误。综合看来,普通情况下选用OpenGL或D3D都可以使用。1、重新安装3dsmax软件,运行3dsmax,或者不用重新安装,在3dsmax菜单中选择“自定义--首选项--视口”,选择“选择驱动程序”,并选择revertfrom direct3d或revert fromopenGL,然后选择software,之后必须重启3dsmax,三角线即可消失,但是如果你的显卡支持硬件加速(也就是支持openGL,或支持Direct3d技术的话)那么,你选择sofeware意味这你放弃了硬件加速,而使用软件加速,这样会使你的显卡没有充分的发挥效能,在这种前提下,不提倡使用这种方法2、假设你的显卡支持openGL的话,你也选择了openGL那么请在3dsmax菜单中选择“自定义--首选项--视口”页面,并选择“配置驱动程序”然后在configureopenGL对话框中取消选择display wireframe objects using trianglestrips(使用三角面显示线框对象)[这个设置默认为取消],即可消除三角线3、假设你的显卡支持Direct3d的话,你也选择了Direct3d那么请在3dsmax菜单中选择customize--preferences--viewports页面并选择configure driver...,然后在configureDirect3d对话框中取消选择display all triangleedges(显示所有三角形边)[这个设置默认为开启],即可消除三角线
插件Maxscript与当前版本3dmax不兼容或者兼容的不好造成的。解决方法:
卸载该插件(必要时手动清除残留文件),然后重启3dmax。
重新安装正确版本的插件。
评论列表(0条)