imx6ull ADC

目录

  • 一、硬件资源
  • 二、设备树
    • 2.1 设置通道数
    • 2.2 关闭电阻触摸
    • 2.3 设置pinctrl
    • 2.4 重新编译设备树
    • 2.5 更新设备树
  • 三、ADC使用
  • 四、C语言操作

一、硬件资源

  imx6ull开发板默认将电阻屏幕的4个引脚没有使用,这4个引脚可以作为ADC使用,其对应关系如下:

功能名 GPIO ADC
GPIO1_00 in_voltage0_raw
TS_YN GPIO1_01 in_voltage1_raw
TS_YP GPIO1_02 in_voltage2_raw
TS_XN GPIO1_03 in_voltage3_raw
TS_XP GPIO1_04 in_voltage4_raw

二、设备树

  在使用ADC前,需要在设备树中进行设置,设置如下:

2.1 设置通道数

  如需要使用4个ADC引脚,则需要设置通道数为5(GPIO1_IO00占用一个)。

&adc1 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_adc1>;
	num-channels = <5>;
	status = "okay";
};

2.2 关闭电阻触摸

  因ADC和电阻触摸屏使用了同样的引脚,所以使用ADC时,需关闭电阻触摸功能。

&tsc {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_tsc>;
	xnur-gpio = <&gpio1 3 GPIO_ACTIVE_LOW>;
	measure_delay_time = <0xffff>;
	pre_charge_time = <0xfff>;
	status = "disabled";
};

  注,如需同时使用ADC和电阻触摸,可选择其他引脚使用。

2.3 设置pinctrl

	pinctrl_adc1: adc1grp {
		fsl,pins = <
			MX6UL_PAD_GPIO1_IO01__GPIO1_IO01	0xb0
			MX6UL_PAD_GPIO1_IO02__GPIO1_IO02	0xb0
			MX6UL_PAD_GPIO1_IO03__GPIO1_IO03	0xb0
			MX6UL_PAD_GPIO1_IO04__GPIO1_IO04	0xb0
		>;
	};

2.4 重新编译设备树

build-dtb.sh

2.5 更新设备树

  笔者喜欢用tftp更新,命令如下

# 在开发板执行
cd /run/media/mmcblk1p1
rm imx6ull-xly-emmc-lcd.dtb
tftp -g -r imx6ull-xly-emmc-lcd.dtb 192.168.1.180
sync

  后面IP地址为tftp服务器IP,读者需要替换为自己的IP地址。
  更新完设备树后,直接重启即可。

三、ADC使用

  对ADC的读取可以直接通过/sys/bus/iio/devices/iio:device0下面的文件读取得到。

cd /sys/bus/iio/devices/iio:device0
cat in_voltage1_raw

  目录中,in_voltage1_raw,in_voltage2_raw2,in_voltage3_raw,in_voltage4_raw中的内容就是ADC的值。由于IMX6ULL ADC为12位,所以其最小值为0,对应0V,最大值为4095(2^12),对应3.3V。

四、C语言操作

  如需使用C语言操作ADC,可直接使用C文件操作,打开/sys/bus/iio/devices/iio:device0/in_voltagex_raw,读取里面的内容即可。

本文地址:https://blog.csdn.net/xinluyao/article/details/109003441

相关推荐:

FS4412开发板怎么使用Linux IIO驱动框架实现ADC驱动

这篇文章给大家介绍FS4412开发板怎么使用LinuxIIO驱动框架实现ADC驱动,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。1.概述FS4412开发板有一个4通道(0/1/2)、10/12比特精度的ADC,其中:1)ADCIN0:在核心板中引出2)ADCIN1:在核心板中引...

stm32f051 adc单次软件选择循环采样的方法是什么

本篇内容主要讲解“stm32f051adc单次软件选择循环采样的方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“stm32f051adc单次软件选择循环采样的方法是什么”吧!void ADC1_Config(void) {  ...

用STM32内置的高速ADC实现简易示波器

  做一个数字采样示波器一直是我长久以来的愿望,不过毕竟这个目标难度比较大,涉及的方面实在太多,模拟前端电路、高速ADC、单片机、CPLD/FPGA、通讯、上位机程序、数据处理等等,不是一下子就能成的,慢慢一步步来呗,呵呵,好歹有个目标,一直在学习各方面的知识,也有动力:)由于高速ADC涉及到采样后...

STM32F407 ADC 个人笔记

1.ADC概述(STM32F4xx系列) 3个ADC 可分别独立使用 也可使用双重/三重模式(提高采样率) 2个通道组 规则通道:相当于正常运行的程序 注入通道:相当于中断(可以打断规则通道的转换) 转换模式分为 单次、连续、扫描、间断模式 位数 12位模拟数字转换器 结果左对齐或右对齐,存在16位...

Hi3518EV200平台ADC多通道采样

Hi3518EV200平台ADC多通道采样流程 Hi3518EV200ADC 本文针对Hi3518EV200平台处理器,通过ADC单次采样方式,实现对多通道(1~4通道)ADC进行采样控制。本文仅仅是对Hi3518EV200芯片ADC的用法的介绍,不涉及ADC具体的工作原理、转换原理等细节内容。废话...

基于STM8的ADC读取---STM8-第四章

1.综诉   想学会如何在STM8上使用ADC这个功能,我们先得了解单片机中ADC究竟是什么。   ADC是模拟信号转成数值信号,单片机只能识别TTL电平,其实就是1或者0,但是如果我们给它一个3.3V电压,单片机就无法识别,,若想使用单片机读取出来得时候,它必须将模拟量变成数字量。 2.关于STM...

stm32CubeMx 实现单通道ADC DMA采集

今天要做的是ADC单通道DMA采集实验 MCU:STM32F429 开发工具:STM32CubeMx版本号5.0.0 实验目的:实现ADC113通道DMA采集 一:简介   首先,我们来看一下STM32F4XX参考手册里关于该芯片的ADC功能介绍    二:STM32CubeMx配置 数据对齐方式为...