电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

ADC驱动完全注释

ADC驱动完全注释_第1页
1/9
ADC驱动完全注释_第2页
2/9
ADC驱动完全注释_第3页
3/9
嵌入式Linux 之我行,主要讲述和总结了本人在学习嵌入式linux 中的每个步骤。一为总结经验,二希望能给想入门嵌入式Linux 的朋友提 供方便。如有错误之处,谢请指正。 一、开发环境 主 机:VMWare--Fedora 9 开发板:Mini2440--64MB Nand, Kernel:2.6.30.4 编译器:arm-linux-gcc-4.3.2 二、硬件原理分析 S3C2440内部 ADC 结构图 我们从上面的结构图和数据手册可以知道,该 ADC 模块总共有8个通道可以进行模拟信号的输入,分别是AIN0、AIN1、AIN2、AIN3、 YM、YP、XM、XP。那么 ADC 是怎么实现模拟信号到数字信号的转换呢?首先模拟信号从任一通道输入,然后设定寄存器中预分频器的值来确定AD 转换器 频率,最后 ADC 将模拟信号转换为数字信号保存到 ADC 数据寄存器0中(ADCDAT0),然后 ADCDAT0中的数据可以通过中断或查询的方式来访问。 对于 ADC 的各寄存器的操作和注意事项请参阅数据手册。 上图是mini2440上的ADC 应用实例,开发板通过一个10K 的电位器(可变电阻)来产生电压模拟信号,然后通过第一个通道(即:AIN0)将 模拟信号输入ADC。 三、实现步骤 ADC 设备在 Linux 中可以看做是简单的字符设备,也可以当做是一混杂设备(misc 设备),这里我们就看做是misc 设备来实现 ADC 的驱动。 注意:这里我们获取 AD 转换后的数据将采用中断的方式,即当 AD转换完成后产生AD 中断,在中断服务程序中来读取 ADCDAT0的第0-9位的值(即AD 转换后的值)。 1、建立驱动程序文件 my2440_adc.c,实现驱动的初始化和退出,代码如下:  #include  #include  #include  #include  #include  #include  #include  #include  #include  #include  #include   /*定义了一个用来保存经过虚拟映射后的内存地址*/  static void __iomem *adc_base;   /*保存从平台时钟队列中获取 ADC 的时钟*/  static struct clk *adc_clk;   /*申明并初始化一个信号量 ADC_LOCK,对 ADC 资源进行互斥访问*/  DECLARE_MUTEX(ADC_LOCK);   static int __init adc_init(void)  {  int ret;...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

ADC驱动完全注释

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部