一个模拟 - 数字转换器,简称为ADC,它使用采样转换为连续量,以数字形式表示离散时间的设备。
TSC_ADC_SS Touchscreen_ADC_subsystem是一个8通道通用ADC,可选支持交错式触摸屏转换。这个TSC_ADC_SS可以使用在配置在下列的应用程序选项:?
。8个通用ADC通道
。4线TS?4个通用ADC通道
。5线TS?3个通用ADC通道
。8线TS
ADC采用的是12位SAR ADC的采样速率为200 kSPS。 ADC采样的模拟信号时开始转换为高,并继续采样1个时钟周期后的下降沿。它捕获的结尾处的信号采样周期和启动转换。它使用12个时钟周期以数字化的采样输入,然后一端转换信号被使能为高,表明数字数据ADCOUT<11:0>是准备被锁存。在以前的数据被锁存后,一个新的转换周期开始。 此时ADC输出为正的二进制加权数据
驱动配置:?
你可以使能ADC驱动?如下的内核配置:
当作为一个内核模块编译:?
用make modules命令,把Touchscreen 驱动作为模块编译,编译完之后模块位于此目录
"drivers/staging/iio/adc/ti_adc.ko".
向内核加载内核模块:?
使用insmod命令: insmod ti_adc.ko
平台数据
ADC平台数据默认没有在在PSP包里面添加?在arch/arm/mach-omap2/board-am335xevm.c
添加如下?
static struct adc_data am335x_adc_data = {
.adc_channels = 4,
};
static struct mfd_tscadc_board tscadc = {
.tsc_init = &am335x_touchscreen_data,
.adc_init = &am335x_adc_data,
};
参数“adc_channels”的数值,决于你要使用几通道的ADC。
。如果ADC单独被使用时?你需要禁用触摸屏。
。如果ADC和触摸屏一起使用时?增加平台的数据?如上图所示。
你可以在这里找到ADC的源代码:?
执行
要测试ADC,连接一个直流电压供给到每个在AIN0通过AIN7脚,并改变电压介于0和1.8V和通过sysfs变化的采样值。
注意
确保不跨越1.8V的供电电压
读取模拟转换后的值?使用sysfs入口。
公式
要进行交叉验证读取的数字值?
读值AIN4通道的输入电压支持1.01
从sysfs读出的数据?