周六下午王志成实验二_第1页
周六下午王志成实验二_第2页
周六下午王志成实验二_第3页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、一、实验目2.5D/A D/A 转换原MAX504D/A 转换芯片的使用方掌握不带有D/A 的CPU 扩展D/A 功能的主要方D/A 驱动程序加入内核的方二、实验内学习D/A 接口原理了解实现D/A 系统对于系统的软件和硬件要求。芯片文档,掌握其使用方法三、预备知C 语言基掌握在Linux 下常用编辑器的使Makefile 的编写和使Linux 下的程序编译与交叉编译过四、实验设备及工硬件:UP-NETARM2410-S入式实验平台、PCPentium500硬盘10G 以上。软件:PCREDHATLINUX9.0MINICOMARM-LINUX发环五、实验原1、D/A 转换D/A器的内部电路构

2、成无太大差异一般按输出是电流还是电压、进行分类。大多数D/A器由电阻阵列和n电流开关(或电压开值切换开关,产生比例于输入的电流(或电压)电压输出型(如电压输出型D/A换器虽有直接从电阻阵列输出电压的但一般采用作为高速D/A器使用电流输出型(如电流输出型D/A换器很少直接利用电流输出大多外接电流电压输出型相同这时由于在D/A换器的电流建立时间上加入了运算放补偿乘算型(如D/A器中有使用恒定基准电压的也有在基准电压输入上加交流得到数字输入和基准电压输入相乘的结果而输出,因而称为乘算D/A器。乘算型输入信号进行调制的调制器使用D/A 一位D/A换器与前述转换方式全然不同它将数字值转换为脉冲宽2、D/

3、A 转换器的主要技术指分辩率之比建立时间(Setting时间。D/A 中常用建输出D/A 建立时间较短,电压输出D/A较长其他指标还有线性度(Linearity),转换精度,温度系数/漂移3、MAX50410 位D/A 转换器的特1、由单个5V 电源供2、电压输出缓3、内部2.048V 参考电4、INL=1/25、电压不随温度变6、可变的输出范围7、上电复8、串行输4、MAX504 在开发板上的连MAX504 在 开 发 板 中 的 连 接 如 图 2.5.1 所 示 :上图中,RFB 连接VOUT、BIPOFF 连接AGND,使得输出电压范围02VREFIN,即04.069V注意,MAX50

4、4 可接受送8 位的数据,所以数据。CLR 和CS 分别MAX504_CLEAR()MAX504_ENABLE()MAX504_DISABLE()数(Max504.c)控制六、程序分具体程序代码da_main.c下byzoujian HYPERLINK mailto: HYPERLINK mailto: 2004.9.27thedriveriss3c2410_da_max504.cin#include #include #include #include#defineDA0_IOCTRL_WRITE0 x10 #defineDA1_IOCTRL_WRITE0 x11 #define DA_IO

5、CTRL_CLR 0 x12 #define Max504_FULL 4.096fstaticintda_fd=-char *DA_DEV=/dev/exio/0raw;void Delay(int int i; int main(int argc, char *argv)floatunsignedint/char/unsignedintda_num=0; if(argc 3)printf(Error parametern); printf(Input as:n); printf(./ad_mainda_idnumn);printf(da_id:selectbetween0and1n); pr

6、intf( num: range 0.0 4.096n); printf(n);return 1;sscanf(argv2, %f,&v); if(vMax504_FULL)printf(DAoutmustbetween:0to%fn,returnvalue=(unsignedint)(v*1024.0f)/Max504_FULL); if(da_fd=open(DA_DEV, O_WRONLY)0) printf(Error opening /dev/exio/0raw devicen); return 1;if(strcmp(argv1,0)=ioctl(da_fd,DA_IOCTRL_C

7、LR,0);/clearda. ioctl(da_fd, DA0_IOCTRL_WRITE, else if (strcmp(argv1,1) = 0) ioctl(da_fd,DA_IOCTRL_CLR,1);/clearda.ioctl(da_fd,DA1_IOCTRL_WRITE,&value); #if 0ioctl(da_fd,DA_IOCTRL_CLR,0);/clearda. ioctl(da_fd,DA0_IOCTRL_WRITE,&value); printf(CurrentVoltageis%fvn,v); return 0;七、实验步1、阅读理解源进入/arm2410s/

8、exp/basic/05_da录,使用vi辑器或其他编辑2、编译应用程运行make生da执行文件rootzxt/#cd/arm2410s/exp/basic/05_da/ rootzxt 05_da# makearmv4l-unknown-linux-gcc-c-oda_main.oda_main.c armv4l-unknown-linux-gcc da_main.o -o da_main rootzxt 05_da# lsda_mainda_main.cda_main.odocdriversMakefiles3c44b0-3、下载调切换到minicom端窗口,使用NFSmount发主机的/

9、arm2410s/host录,然后进/host/exp/05_da/drivers录,用insmodexio.o令插入D/A动,并用 lsmod 命令查看是否已经插入/mnt/yaffscd /host/exp/basic/05_da/ /host/exp/basic/05_dacd drivers/ /host/exp/basic/05_da/driversinsmodexio.o Using exio.o Module Size Used by Not taintedexio23840i2c-tops2141040注意:卸载模块可以使用rmmod 命令,以本实验为例,卸载方法下/host/

10、exp/basic/05_darmmod 进入/host/exp/basic/05_da录,运行./da_main,观察运行结果./da_main会出现下面的提示信息Error parameterInput./ad_main da_id num da_id:selectbetween0and1num:range0.0这是由于我们没有指定参数造成的,它的格式为./da_maindaid数字,们可以通过选择01决定输出到开发板上的哪个D/A口之间来选择一个输出电压下面的例子是用了开发板上的DA0且输出1V 的电压,我们可以使用万用表对其进行测量/host/exp/basic/05_da./da_main01 Current Voltage is 1.000000 v八、思考D/A换器的分类D/A换器的主要技术指标MAX504特点及使用方法1D/A型和一位 D/A 转换器。2、D/A 转换器的主要技术指分辨之比建立时时间。D/A 中常用建立时间来描

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论