imx6ul adc驱动

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

imx6ul adc驱动

2,593 Views
xinjianlu
Contributor II

用是ADC1_IN8 GPIO1_IO08,在文件里i.MX_Linux_Reference_Manual.pdf

• ADC1_IN0: Analog channel 1 input 0
• ADC1_IN1: Analog channel 1 input 1

• ADC1_IN2: Analog channel 1 input 2
• ADC1_IN3: Analog channel 1 input 3
• ADC2_IN0: Analog channel 2 input 0
• ADC2_IN1: Analog channel 2 input 1
• ADC2_IN2: Analog channel 2 input 2
• ADC2_IN3: Analog channel 2 input 3

只有8路,编程接口

/sys/devices/soc0/soc.1/2200000.aips-bus/2280000.adc/iio:device0:
/sys/devices/soc0/soc.1/2200000.aips-bus/2284000.adc/iio:device1:

不知该如何设置配置?

Labels (1)
0 Kudos
1 Reply

1,374 Views
weidong_sun
NXP TechSupport
NXP TechSupport

Hello xinjian,

(1)Reference Manual解释

在I.MX6ULRM中的第177页列出了ADC input引脚和CPU PAD之间的对应关系,它说明CPU内部有2个ADC控制器:ADC1和ADC2。每个ADC模块最多支持10路(IN0~IN9)模拟输入,ADC1和ADC2两个模块的信号共用CPU的GPIO1_IO00~GPIO1_9这10个引脚。

(2)i.MX_Linux_Reference_Manual.pdf中列出来内容:

• ADC1_IN0: Analog channel 1 input 0
• ADC1_IN1: Analog channel 1 input 1

• ADC1_IN2: Analog channel 1 input 2
• ADC1_IN3: Analog channel 1 input 3
• ADC2_IN0: Analog channel 2 input 0
• ADC2_IN1: Analog channel 2 input 1
• ADC2_IN2: Analog channel 2 input 2
• ADC2_IN3: Analog channel 2 input 3

表示对于ADC1模块,支持0~3四个输入;对于ADC2也是支持0~3四个通道的输入。说明驱动支持8路ADC输入。但是,有ADC1和ADC2的input通道都是对应地复用GPIO1_0~GPIO3,那么,只能同时使用4个通道的模拟输入。

(3)软件上配置

你需要在dts中:

----(如果你想使用ADC1)把GPIO1_00~GPIO1_03复用为ADC1对应的4个通道信号输入;

----(如果你想使用ADC2)把GPIO1_00~GPIO1_03复用为ADC1对应的4个通道信号输入;

BSP和驱动的编写,是在I.MX6UL开发板硬件基础上做的,所以i.MX_Linux_Reference_Manual.pdf中列出来的ADC四个通道,如果使用默认BSP和驱动是没有问题的。

(4)额外说明

在I.MX6ULRM手册中,说明了ADC1和ADC2每个都支持10路input,所以,如果你要使用的话,需要对BSP中的复用进行调整,把你用到的都复用出来。

伟东

0 Kudos