I.MX6UL 增加ADC

2023-12-07 21:39
文章标签 adc 增加 mx6ul

本文主要是介绍I.MX6UL 增加ADC,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

项目需要,需要增加ADC功能,通道数量是8个

因为中间GPIO06和GPIO07没有对应IO,且不知道如何跳过这两个IO,所以配置中使用了10通道。

 

 

 

 

1. 修改设备树

&adc1 {pinctrl-names = "default";pinctrl-0 = <&pinctrl_adc1>;num-channels = <10>;vref-supply = <&reg_vref_3v3>;status = "okay";
};

上图使用了10通道

 

 regulators {compatible = "simple-bus";#address-cells = <1>;#size-cells = <0>;reg_can_3v3: regulator@0 {compatible = "regulator-fixed";reg = <0>;regulator-name = "can-3v3";regulator-min-microvolt = <3300000>;regulator-max-microvolt = <3300000>;};reg_vref_3v3: regulator@3 {compatible = "regulator-fixed";regulator-name = "vref-3v3";regulator-min-microvolt = <3300000>;regulator-max-microvolt = <3300000>;};reg_usb_ltemodule: regulator@1 {compatible = "regulator-fixed";regulator-name = "ltemodule-pwr";regulator-min-microvolt = <3800000>;regulator-max-microvolt = <3800000>;gpios = <&gpio5 5 GPIO_ACTIVE_HIGH>;enable-active-high;regulator-boot-on;};reg_gpio_wifi: regulator@2 {compatible = "regulator-fixed";regulator-name = "wifi-pwr";regulator-min-microvolt = <3300000>;regulator-max-microvolt = <3300000>;gpios = <&gpio1 10 GPIO_ACTIVE_LOW>;regulator-boot-on;};};
                pinctrl_adc1: adc1grp {fsl,pins = <MX6UL_PAD_GPIO1_IO00__GPIO1_IO00        0xb0    /*ADC1*/MX6UL_PAD_GPIO1_IO01__GPIO1_IO01        0xb0MX6UL_PAD_GPIO1_IO02__GPIO1_IO02        0xb0MX6UL_PAD_GPIO1_IO03__GPIO1_IO03        0xb0MX6UL_PAD_GPIO1_IO04__GPIO1_IO04        0xb0MX6UL_PAD_GPIO1_IO05__GPIO1_IO05        0xb0                                MX6UL_PAD_GPIO1_IO06__GPIO1_IO06        0xb0    /*NULL*/MX6UL_PAD_GPIO1_IO07__GPIO1_IO07        0xb0    /*NULL*/MX6UL_PAD_GPIO1_IO08__GPIO1_IO08        0xb0    /*ADC7*/MX6UL_PAD_GPIO1_IO09__GPIO1_IO09        0xb0    /*ADC8*/>;};

ADC6和7实际没用上,但是也要加上去,否者读不了ADC8和9。这个问题应该是可以解决的吧,有空再说吧。

 

2. 升级后

[root@SCU iio:device0]# cd /sys/bus/iio/devices/iio\:device0/
[root@SCU iio:device0]# ls 
dev                            in_voltage6_raw                of_node
in_voltage0_raw                in_voltage7_raw                power
in_voltage1_raw                in_voltage8_raw                sampling_frequency_available
in_voltage2_raw                in_voltage9_raw                subsystem
in_voltage3_raw                in_voltage_sampling_frequency  uevent
in_voltage4_raw                in_voltage_scale
in_voltage5_raw                name
[root@SCU iio:device0]# 

直接到/sys/bus/iio/devices/iio\:device0/目录下,就可以看到新增的10个ADC通道,in_voltage0_raw ~ in_voltage9_raw

直接cat就可以读到对应的ADC值了。

后话:如何跳过ADC6 ADC7通道?

这篇关于I.MX6UL 增加ADC的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/467451

相关文章

EMLOG程序单页友链和标签增加美化

单页友联效果图: 标签页面效果图: 源码介绍 EMLOG单页友情链接和TAG标签,友链单页文件代码main{width: 58%;是设置宽度 自己把设置成与您的网站宽度一样,如果自适应就填写100%,TAG文件不用修改 安装方法:把Links.php和tag.php上传到网站根目录即可,访问 域名/Links.php、域名/tag.php 所有模板适用,代码就不粘贴出来,已经打

STM32(十一):ADC数模转换器实验

AD单通道: 1.RCC开启GPIO和ADC时钟。配置ADCCLK分频器。 2.配置GPIO,把GPIO配置成模拟输入的模式。 3.配置多路开关,把左面通道接入到右面规则组列表里。 4.配置ADC转换器, 包括AD转换器和AD数据寄存器。单次转换,连续转换;扫描、非扫描;有几个通道,触发源是什么,数据对齐是左对齐还是右对齐。 5.ADC_CMD 开启ADC。 void RCC_AD

STM32 ADC+DMA导致写FLASH失败

最近用STM32G070系列的ADC+DMA采样时,遇到了一些小坑记录一下; 一、ADC+DMA采样时进入死循环; 解决方法:ADC-dma死循环问题_stm32 adc dma死机-CSDN博客 将ADC的DMA中断调整为最高,且增大ADCHAL_ADC_Start_DMA(&hadc1, (uint32_t*)adc_buffer, ADC_Buffer_Size); 的ADC_Bu

一些数学经验总结——关于将原一元二次函数增加一些限制条件后最优结果的对比(主要针对公平关切相关的建模)

1.没有分段的情况 原函数为一元二次凹函数(开口向下),如下: 因为要使得其存在正解,必须满足,那么。 上述函数的最优结果为:,。 对应的mathematica代码如下: Clear["Global`*"]f0[x_, a_, b_, c_, d_] := (a*x - b)*(d - c*x);(*(b c+a d)/(2 a c)*)Maximize[{f0[x, a, b,

黑神话:悟空》增加草地绘制距离MOD使游戏场景看起来更加广阔与自然,增强了游戏的沉浸式体验

《黑神话:悟空》增加草地绘制距离MOD为玩家提供了一种全新的视觉体验,通过扩展游戏中草地的绘制距离,增加了场景的深度和真实感。该MOD通过增加草地的绘制距离,使游戏场景看起来更加广阔与自然,增强了游戏的沉浸式体验。 增加草地绘制距离MOD安装 1、在%userprofile%AppDataLocalb1SavedConfigWindows目录下找到Engine.ini文件。 2、使用记事本编辑

学习硬件测试05:NTC(ADC)+正弦波(DAC)+DMA(ADC+DAC)(P73、P76、P78)

文章以下内容全部为硬件相关知识,鲜有软件知识,并且记的是自己需要的部分,大家可能看不明白。 一、NTC(ADC) 1.1实验现象 本实验用 NTC 采集温度,数码管实时显示温度数据(整数),左下角 USB 小串口每隔 1S 打印温度信息。 1.2硬件电路 NTC 电阻是一个模拟温度传感器,随着温度的升高,电阻值逐渐减小。电路简单介绍如下: 电源滤波电容在 25℃ 室温下 NTC 电

STM32CubeMX 2 解锁ADC模块

掏出上次写完的project。选择引脚 选择PA4和ADC1_IN4 2.选择设置配置 3.发现改完前面的配置之后这里的时钟自动变成了56, 选定,改回72. 4.改configuration,双击ADC1 跳出如下界面: Mode 选independent mode Data Alignment选Right Aligment是为了方便读数,因为这是一个12位的AD

STM32F103调试DMA+PWM 实现占空比逐渐增加的软启效果

实现效果:DMA+PWM 实现PWM输出时,从低电平到输出占空比逐渐增加再到保持高电平的效果,达到控制 MOS 功率开关软启的效果。 1.配置时钟 2.TIM 的 PWM 功能配置 选择、配置 TIM 注意:选择 TIM 支持 DMA 控制输出 PWM 功能的通道,有的TIM通道支持PWM 但不支持PWM注意选择。 PWM参数设置 Counter Period :

嵌入式s3c2240: ADC

ADC :模数转换 10 位 CMOS ADC (模 / 数转换器)是一个 8 通道模拟输入的再循环类型设备。其转换模拟输入信号为 10 位二进制数字编码,最大转换率为 2.5MHz A/D 转换器时钟下的 500 KSPS 。 模拟:连续信号 数字:离散信号 原理  当采样到信号后, 与各个比较器相比较 假设采样到2.5 2

ADC——模数转换器

一、转换流程 在处理器中主要进行ADC 1、AD转换流程 :采样、保持、量化、编码 通过比较器获得的电信号转换数字信号,根据自己需求,如果要求速率就可以使用较多的比较器,不要求速率考虑成本就可以使用较少的比较器,将最后的转换结果,通过编码来表示 2、转换需要考虑的指标: 量程:0~3.3V 精度:10位 转换速率:500 KSPS 二、使用处理器上的A/D转换器 10 位