天天看點

imx6ull開發闆使用iio讀取ADC值一、修改裝置樹二、修改kernel,使能ADC驅動三、擷取adc值

一、修改裝置樹

使用GPIO_IO04管腳,對應通道ADC1_IN4通道
           

1.打開imx6ull.dtsi檔案 将adc1修改如下

adc1: adc@02198000 {
				compatible = "fsl,imx6ul-adc", "fsl,vf610-adc";
				reg = <0x02198000 0x4000>;
				interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
				clocks = <&clks IMX6UL_CLK_ADC1>;
				num-channels = <5>;
				clock-names = "adc";
				status = "disabled";
            };
           

2、打開闆級的裝置樹檔案imx6ull-XXXXX-XXXX.dts,修改如下

(1)、添加pinctrl子節點

pinctrl_adc_keyboard: adkeygrp{
			fsl,pins = <
				MX6UL_PAD_GPIO1_IO04__GPIO1_IO04	0x0f080
			>;
		};
           

(2)、追加adc1子節點屬性

&adc1 {
	inctrl-name = "default";
	vref-supply = <&reg_vref_3v3>;
	pinctrl-0 = <&pinctrl_adc_keyboard>; 
	num-channels = <5>;
};
           

(3)、在regulators節點中添加

reg_vref_3v3: regulator@3 {
			compatible = "regulator-fixed";
			regulator-name = "vref-3v3";
			regulator-min-microvolt = <3300000>;
			regulator-max-microvolt = <3300000>;
			//reg = <3>; 
		}; 
           

二、修改kernel,使能ADC驅動

路徑如下

--->Device Drivers 
 	---> <*> Industrial I/O support 
 		--->Analog to digital converters 
 			---><*> Freescale vf610 ADC driver
           
imx6ull開發闆使用iio讀取ADC值一、修改裝置樹二、修改kernel,使能ADC驅動三、擷取adc值

配置完成後編譯核心。使用新的zImage 啟動

三、擷取adc值

1、進入目錄

cd /sys/bus/iio/devices/iio\:device0/
	cat in_voltage4_raw
           
使用以上的指令即可擷取到ADC的值 
           

繼續閱讀