嵌入式Linux下AD7490驱动的实现 .pdf

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

龙源期刊网

嵌入式Linux下AD7490驱动的实现

作者:尹舸蔡军

来源:《软件导刊》2011年第02期

摘要:用AD7490对s3c2440进行了扩展,提高其数模转换精度。介绍了嵌入式Linux操

作系统下AD7490驱动程序的开发原理及流程,并编写测试程序测试其功能,对于基于Linux

的嵌入式系统中小型外设的开发具有借鉴意义。

关键词:A/D;s3c2440;嵌入式Linux;ARM;驱动程序

中图分类号:TP312文献标识码:A文章编号:(2011)

作者简介:尹舸(1984-),男,山东郯城人,硕士,睿昇电子科技(深圳)有限公司工

程师,研究方向为材料加工工程;蔡军(1981-),男,湖北黄冈人,硕士,宁波三星电气股

份有限公司工程师,研究方向为机械控制工程。0引言

A/D转换是控制系统的基本组成部分,为了满足高精度、高速度的A/D转换应用要求,

需要在嵌入式的控制系统中外接高性能的A/D转换芯片。s3c2440本身自带8通道10位A/D

转换器,在要求不高的情况下可以直接使用,但是当测量精度、速度要求较高时,片内的A/D

转换器往往不能满足要求,所以我们利用s3c2440的外部接口资源直接进行扩展,使用独立的

A/D转换芯片AD7490。在嵌入式Linux系统下,要对AD7490进行操作,需要编写相应的驱

动程序。设备驱动程序为应用程序屏蔽了硬件的细节,在应用程序看来,硬件设备只是一个设

备文件,应用程序可以像操作普通文件一样对硬件设备进行操作。

1AD7490工作原理

AD7490是AD公司推出的12位16通道高速、低功耗、逐次逼近式AD转换器。它带有

高速的串行接口SPI,所以很容易与微处理器接口。本设计中采用IO口模拟SPI的方式实现

对AD7490的操作,使用了s3c2440的通用IO口GPG0、GPG1、GPG2、GPG3。AD7490

位控制字从s3c2440的MOSI模拟脚即GPG1输出,由AD7490的DIN端读入AD控制寄

存器,根据输入控制字,把规定一路送到采样保持电路,对此信号进行采样;②AD7490向

s3c2440发送前次转换结果的数据,在AD7490的输出数据寄存器中保存的前次A/D转换结果

通过DOUT端在每个时钟的下降沿输出给s3c2440的MISO模拟脚,即GPG3。A/D转换周

期在最后一个时钟下降沿完成,片内转换器对采样值进行逐次逼近式A/D转换,转换结果在

转换完成后锁存在输出数据寄存器中,在下一个转换过程输出。

龙源期刊网

驱动程序的实现2

Linux中提供的模块化机制能够动态加载任意模块,包括设备驱动模块。模块具有以下特

点:①模块本身不被编译到内核映象,从而控制了内核的大小②模块一旦被加载,它就和内核

中的其他部分完全一样。本设计采用模块化的方法来实现AD7490的驱动程序。

驱动模块加载函数2.1

Linux内核模块加载函数一般以__init标示声明,这里定义加载函数为staticint__init

s3c2440_AD7490_init(void),在字符设备驱动模块加载函数中实现设备号的申请、设备名的注

册和IO口的初始化。定义设备号NEWMAJOR为203,设备名DEVICE_NAME为AD7490。

调用系统函数register_chrdev()向内核注册驱动,然后调用devfs_mk_cdev()创建设备文件,方

法分别如下:

向内核注册驱动:

ret=register_chrdev(NEWMAJOR,DEVICE_NAME,s3c2440_AD7490_fops);

if(ret0){

printk(DEVICE_NAMEcantregistermajornumber\\n);

return-1;

}

创建设

您可能关注的文档

文档评论(0)

LLFF222 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档