- 1、本文档共12页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实 验 报 告
( 11 — 12 学年第 1 学期)
课程名称: 嵌入式系统
姓 名: 李翔
学 院: 工学院
专 业: 计算机技术
年 级: 2011级
实 验 报 告
2012年 1 月 1日 第节 综合 楼 号室
进入实验室
时间 进入时仪器
设备状况 离开实验室
时间 离开时仪器
设备状况 机器号 实验项目名称 实验4、AD 接口实验 实验目的
1.了解在 linux 环境下对S3C44B0 芯片的8 通道10 位AD 的操作与控制。
实验内容
1.学习 A/D 接口原理,了解实现A/D 系统对于系统的软件和硬件要求。
2.阅读ARM 芯片文档,掌握ARM 的A/D 相关寄存器的功能,熟悉ARM 系统硬件的A/D 相关接口。3.利用外部摸拟信号编程实现ARM 循环采集全部前4 路通道,并且在超级终端上显示。
预备知识
1. 有 C 语言基础。
2. 掌握在 LINUX 下常用编辑器的使用。
3. 掌握 Makefile 的编写和使用。
4. 掌握 Linux 下的程序编译与交叉编译过程
实验设备及工具
硬件:NET-ARM3000 嵌入式实验仪,PC 机pentumn500 以上, 硬盘40G 以上,内存大于128M。
软件:PC 机操作系统redhat linux 9.0 + minicom+uClinux 开发环境。
实验原理
ARM S3C440BX 芯片自带一个8路10 位A/D 转换器,该转换器可以通过软件设置为Sleep 摸式,可以节电减少功率损失,最大转换率为500K,非线性度为正负1位,其转换时间可以通过下式计算:如果系统时钟为66MHz,比例值为9,则为
66MHz/2 (9+1)/16 (完成转换至少需要16 个时钟周期)=205.25KHz(相当于4.85us)
ARM 芯片与A/D 功能有关的引脚为以下几个,其中AIN[7:0]为8 路摸拟采集通道,AREFT 为参考正电压,AREFB 为参考负电压,AVCOM 为摸拟共电压。
与AD 相关的寄存器主要是如下三个:
ADCPSR:采样比率寄存器。其地址和意义参见下表:
通过设置该寄存器,可以设置采样率,最后得到的除数因子=2(寄存器值+1)。
⑵ ADCCON:采样控制寄存器。其地址和意义参见下表:
⑶ ADCDAT:转换结果数据寄存器。该寄存器的十位表示转换后的结果,全为1时为满量程3.3 伏。
实验步骤
进入 exp/03_ad 目录,使用vi 编辑器或其他编辑器阅读理解源代码。
hardware.h包含了A/D寄存器地址:
#define REGBASE 0x01c00000
#define REGL(addr) (*(volatile unsigned int *)(REGBASE+addr))
/*********************************/
/* A/D Converter Registers */
/*********************************/
#define ADCCON REGL(0x140000)
#define ADCPSR REGL(0x140004)
#define ADCDAT REGL(0x140008)
main.c
#include stdio.h
#include unistd.h
#include sys/types.h
#include sys/ipc.h
#include sys/ioctl.h
#include pthread.h
#include hardware.h
/*宏定义控制寄存器各位*/
#define ADCCON_FLAG 0x40
#define ADCCON_SLEEP 0x20
#define ADCCON_ADIN0 (0x02)
#define ADCCON_ADIN1 (0x12)
#define ADCCON_ADIN2 (0x22)
#define ADCCON_ADIN3 (0x32)
#define ADCCON_ADIN4 (0x42)
#define ADCCON_ADIN5 (0x52)
#define ADCCON_ADIN6 (0x62)
#define ADCCON_ADIN7 (0x72)
#define ADCCON_REA
文档评论(0)