iTOP-4412开发板实现3路ADC数模转换驱动例程

学习下 linux 数模程序驱动的编写,本节咱们实现的功能是实现三路
ADC 数模转换。
驱动程序
驱动程序的名字:“itop4412_adc.c”。
要想把这个驱动注册到内核,先把这个驱动程序放到内核的“driver/char”目录下面,如
下图所示:linux

Makefile
而后打开 drive/char 目录下面的 Makefile,添加:
obj-$(CONFIG_ADC_CTL) += itop4412_adc.o
以下图所示:android

添加完成后保存退出。
Kconfig
打开“drive/char”目录下面的 Kconfig,搜索“LEDS_CTL”,找到以后在下面添加
“DS18B20_CTL”,仿照着“LEDS_CTL”写就能够了,添加内容以下:
config 3LADC_CTL
bool "Enable 3LADC config"
default y
help
Enable 3LADC config
添加完成后以下图所示:vim

修改完成后保存退出。
添加设备到平台文件
最后使用命令“vim arch/arm/mach-exynos/mach-itop4412.c”,打开平台文件。添
加设备,参考 led 的驱动,添加内容一以下:
#ifdef CONFIG_ADC_CTL
struct platform_device s3c_device_adc_ctl = {
.name = "adc_ctl",
.id = -1,
};
#endif
添加完成后以下图所示:学习

添加内容二以下:
#ifdef CONFIG_ADC_CTL
&s3c_device_adc_ctl,
#endif
添加完成后以下图所示:测试

修改完成后保存退出。
内核的编译
内核在编译以前应该先对其进行参数配置。具体讲解能够参考 itop-4412 开发板精英使
用手册 5.3.2,这里以 SCP 2G 核心板为例编译 zImage 内核镜像,那么配置文件为
config_for_linux_scp_elite 使用命令 cp cconfig_for_linux_scp_elite .config 配置,orm

在内核目录下使用 make menuconfig 命令打开内核配置界面,进入 “Device Drivers
--->”→“Character devices --->”→“ADC driver for iTOP4412”,以下图所示,配置
上宏 定义“ADC_CTL”。blog

配置完成后保存退出,以避免出错能够再查看一遍,而后使用编译命令“make zImage”
编译内核。编译完成后在目录
“/home/topeet/android4.0/iTop4412_Kernel_3.0/arch/arm/boot”下找到新生成的
zImage 编译到开发板,启动开发板。开发板启动以后,使用命令“ls
/sys/devices/platform/”能够查看到新注册的 adc_ctl 设 备,以下图所示。开发

以下图所示,加载以后使用命令“ls /dev”,能够看到新生成了设备节点 adc。it

测试程序
名字:“adctest.c”
在 Ubuntu 系统下新建 ada 文件夹,将写好的 “adctest.c” 拷贝到文件夹下,使用
“arm-none-linux-gnueabi-gcc -o adctest adctest.c -static”命令编译应用。 以下图所
示。编译

将上图中的文件“adctest” 拷贝到 U 盘。 启动开发板,将 U 盘插入开发板,使用命
令“ mount /dev/sda1 /mnt/udisk/”加载 U 盘符, 有三条命令运行小应“adctest”,
第一条使用命令“./mnt/udisk/adctest 0 0”,运行小应用 “adctest”,以下图所
示:

调整滑动电阻器以后,再次使用测试程序,以下图所示,输出数值会有变化。

滑动变阻器向顺时针旋转,阻值会减少,最小为 0;
滑动变阻器向逆时针旋转,阻值会增大,最大为 10k。
第二条使用命令“./mnt/udisk/adctest 1 0”,运行小应用 “adctest”,以下图所
示:

调整滑动电阻器以后,再次使用测试程序,以下图所示,输出数值会有变化

滑动变阻器向顺时针旋转,阻值会减少,最小为 0;
滑动变阻器向逆时针旋转,阻值会增大,最大为 10k。
第三条使用命令“./mnt/udisk/adctest 1 1”,运行小应用 “adctest”,以下图所
示:

调整滑动电阻器以后,再次使用测试程序,以下图所示,输出数值会有变化。

滑动变阻器向顺时针旋转,阻值会减少,最小为 0; 滑动变阻器向逆时针旋转,阻值会增大,最大为 10k。

相关文章
相关标签/搜索