i2c-tops2 14104 0 (unused)
进入/host/exp/basic/05_da目录,运行./da_main,观察运行结果的正确性。 [/host/exp/basic/05_da]./da_main 0 1
五、实验结果
通过ls查看da_main
用insmod exio.o命令插入D/A驱动,并用lsmod命令查看是否已经插入。 进入/host/exp/basic/05_da目录,运行./da_main,观察运行结果如下图5.1所示,电压为1v:
图 5.1 运行da_main 输出结果
六、 思考题
1.D/A 转换器的分类。
D/A 转换器的内部电路构成无太大差异,一般按输出是电流还是电压、能否作乘法运算等 进行分类。大多数 D/A 转换器由电阻阵列和 n 个电流开关(或电压开关)构成。按数字输入 值切换开关,产生比例于输入的电流(或电压)。
? 电压输出型(如 TLC5620)
电压输出型 D/A 转换器虽有直接从电阻阵列输出电压的,但一般采用内置输出放大器以低 阻抗输出。直接输出电压的器件仅用于高阻抗负载,由于无输出放大器部分的延迟,故常 作为高速 D/A 转换器使用。
8
? 电流输出型(如 THS5661A)
电流输出型 D/A 转换器很少直接利用电流输出,大多外接电流—电压转换电路得到电压输 出,后者有两种方法:一是只在输出引脚上接负载电阻而进行电流—电压转换,二是外接 运算放大器。用负载电阻进行电流—电压转换的方法,虽可在电流输出引脚上出现电压, 但必须在规定的输出电压范围内使用,而且由于输出阻抗高,所以一般外接运算放大器使 用。此外,大部分 CMOS DA 转换器当输出电压不为零时不能正确动作,所以必须外接运算 放大器。当外接运算放大器进行电流电压转换时,则电路构成基本上与内置放大器的电压 输出型相同,这时由于在 D/A 转换器的电流建立时间上加入了运算放入器的延迟,使响应 变慢。此外,这种电路中运算放大器因输出引脚的内部电容而容易起振,有时必须作相位 补偿。 ? 乘算型(如 AD7533)
D/A 转换器中有使用恒定基准电压的,也有在基准电压输入上加交流信号的,后者由于能 得到数字输入和基准电压输入相乘的结果而输出,因而称为乘算型 D/A 转换器。乘算型 D/A 转换器一般不仅可以进行乘法运算,而且可以作为使输入信号数字化地衰减的衰减器及对 输入信号进行调制的调制器使用。 ? 一位 D/A 转换器
一位 D/A 转换器与前述转换方式全然不同,它将数字值转换为脉冲宽度调制或频率调制的 输出,然后用数字滤波器作平均化而得到一般的电压输出(又称位流方式),用于音频等场合。 2.D/A 转换器的主要技术指标。
1)分辩率(Resolution) 指最小模拟输出量(对应数字量仅最低位为‘1’)与最大量(对应数字量所有有效位为‘1’)之比。
2)建立时间(Setting Time) 是将一个数字量转换为稳定模拟信号所需的时间,也可以以为是转换时间。DA中常用建立时间来描述其速度,而不是AD中常用的转换速率。一般地,电流输出 DA建立时间较短,电压输出DA则较长。 其他指标还有线性度(Linearity),转换精度,温度系数/漂移。
3.MAX504 的特点及使用方法。 由单个5V电源供电 电压输出缓冲
内部 2.048V 参考电压 INL=0.5 LSB(MAX) 电压不随温度变化
可变的输出范围:0V~VDD,VSS~VDD 上电复位 串行输出
9
实验六:直流电机实验
一、实验目的
熟悉ARM本身自带的PWM,掌握相应寄存器的配置。 Linux下编程实现ARM系统的PWM输出,从而控制直流电机。
了解直流电机的工作原理,学会用软件的方法实现步进电机的脉冲分配。
掌握带有PWM的CPU编程实现其相应功能的主要方法。
二、实验内容
学习直流电机的工作原理,了解实现电机转动对于系统的软件和硬件要求。学习ARM PWM的生成
方法。使用Redhat Linux 9.0 操作系统环境及ARM 编译器,编译直流电机的驱动模块和应用程序。运行 程序,实现直流电机的调速转动。
三、实验设备及工具
硬件:UP-NETARM2410-S 嵌入式实验平台、PC机。
软件:PC 机操作系统REDHAT LINUX 9.0+MINICOM+ARM LINUX 开发环境。
四、实验步骤
1、编译直流电机模块
cd /arm2410s/kernel-2410s make menuconfig
进入Main Menu / Character devices 菜单,选择DC MOTOR 为模块加载:
10
编译内核模块: make dep make
make modules
直流电机模块的编译结果为:
/arm2410s/kernel-2410s/drivers/char/s3c2410-dc-motor.o 2、编译应用程序
cd /arm2410s/exp/basic/10_dcmotor/ make
生成dcm_main 3、运行程序 在超级终端中,通过加载NFS 运行编译结果(注意:首先要设定/arm2410s 为NFS 共享目录):
mount –t nfs –o nolock 192.168.0.121:/arm2410s /host insmod /host/kernel-2410s/drivers/char/s3c2410-dc-motor.o cd /host/exp/basic/10_dcmotor/ ./dcm_main
程序运行结果:直流电机变速转动。 五.实验结果
11