一、修改裝置樹
使用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 = <®_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
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiIXZ05WZj91YpB3I2EzX4xSZz91ZsAzNfRHLGZkRGZkRfJ3bs92YsAjMfVmepNHLxdET2YmSYRVQClGVF5UMR9Fd4VGdsATNfd3bkFGazxycykFaKdkYzZUbapXNXlleSdVY2pESa9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnLkNzN4UmM0gzN1UDZiFzNhBjY0QTN3QzMyEGMmBzM1kzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
配置完成後編譯核心。使用新的zImage 啟動
三、擷取adc值
1、進入目錄
cd /sys/bus/iio/devices/iio\:device0/
cat in_voltage4_raw
使用以上的指令即可擷取到ADC的值