首页 > 其他分享 >BUG[系列]:imx6ull调试ADC功能。

BUG[系列]:imx6ull调试ADC功能。

时间:2024-08-14 17:16:44浏览次数:13  
标签:microvolt name regulator adc ADC imx6ull BUG 设备

一、前言

产品上有一个声控开关的需求,需要用到ADC,调试过程遇到了很多问题,特此记录下。(都可以写个小故事了)

二、过程

1.修改设备树
板子上ADC功能默认是没有打开的,所以先改设备树。
1.1
BUG1:从doc文档直接复制代码,格式错误,编译和运行不会报错。
描述:我直接从doc文档把ADC设备树代码复制过来,然后格式不对,就是ADC驱动文件显示不出,一直没发现,最后拿着FAE的设备树文件直接替换,才正常。
解决办法:照着文档敲,或者从源文件copy。

1.2
BUG2:驱动代码的匹配名和设备树不一致。
描述:vf610_adc.c文件的vf610_adc_probe函数下,查找的regular设备名字和设备名字有差异,代码如下。

点击查看代码
//vf610_adc_probe函数
printk("iio_adc_probe444\n");
info->vref = devm_regulator_get(&pdev->dev, "vref");  
if (IS_ERR(info->vref))
	return PTR_ERR(info->vref);


//设备树regulator节点
reg_verf_3V3: regulator@2 {
	compatible = "regulator-fixed";
	regulator-name ="verf";//就是这里,然后导致设备驱动注册失败
	regulator-min-microvolt = <3300000>;
	regulator-max-microvolt = <3300000>;
 };

解决办法: 改设备regulator的名字。

1.3
BUG3: 使用menuconfig配置".config"文件不生效,配置完成,重新编译之后,再次打卡menuconfig文件发现刚才使能adc模块,标记消失了。

原因: ".config"被"arch/arm/configs/imx_v7_deconfig"覆盖了。通过分析脚本和查阅资料发现,imx_v7_deconfig文件是板子的出厂默认配置,不使能adc驱动,编译开始会把imx_v7_deconfig的配置合并到.config,若冲突,.config文件会被 imx_v7_deconfig覆盖掉,然后内核会使用.config文件配置。

方法: 配置完menuconfig时将配置路径改为"arch/arm/configs/imx_v7_deconfig",这样编译就不会被覆盖了

1.4

BUG4:读取到adc的原始数据正确,但是分辨率错误。
原因:设备树问题,设备树里最小设为0,最大电压设为3.3,造成了驱动程序的分辨错误。不清楚驱动程序为什么这么设计。

点击查看代码
reg_verf_3V3: regulator@2 {
	compatible = "regulator-fixed";
	regulator-name ="vref";
	regulator-min-microvolt = <0000000>;
	regulator-max-microvolt = <3300000>;
 };

方法:修改设备树,电压最小最大都设为3.3v。

点击查看代码
reg_verf_3V3: regulator@2 {
	compatible = "regulator-fixed";
	regulator-name ="vref";
	regulator-min-microvolt = <3300000>;
	regulator-max-microvolt = <3300000>;
 };

四、详细设备树代码

点击查看代码
//file name: imx6ull.dtsi
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 = <2>;
	clock-names = "adc";
	status = "disabled";
            };

//file name: imx6ull-14x14-evk.dts。在iomuxc节点下添加引脚复用信息
pinctrl_adc1: adc1grp {
	fsl,pins = <
		MX6UL_PAD_GPIO1_IO01__GPIO1_IO01	0xb0
	>;
};

//file name: imx6ull-14x14-evk.dts。追加节点信息,把状态设置为使能。
&adc1 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_adc1>;
	num-channels = <2>;
	verf-supply = <&reg_verf_3V3>;
	status = "okay";
};
//


标签:microvolt,name,regulator,adc,ADC,imx6ull,BUG,设备
From: https://www.cnblogs.com/Charles-Hui/p/18359211

相关文章

  • 精密Δ-Σ ADC的有效噪声带宽
    1简介        即使对最有经验的模拟设计工程师来说,理解ADC噪声也是一项挑战。Δ-ΣADC具有量化噪声和热噪声,其变化取决于ADC的分辨率、参考电压和输出数据速率。在系统层面上,噪声分析因附加的信号链组件而变得更加复杂,这些组件中的许多具有不同的噪声特性,使得它们很......
  • Δ-Σ ADC选型时噪声性能实例详解
    1系统规格   假设一个灵敏度为2mV/V、激励电压为2.5V的电桥,数据采样率为5SPS。1kg最大施加重量时,最大输出电压为5mV,系统希望能够检测最小应用重量为50mg(电压信号为50/1000000*5mV=250nV)。2无噪声分辨率计算    根据系统需求,可先计算出无噪声计数和无......
  • BugKu CTF Misc:密室逃脱 & 铁子,来一道 & 想要种子吗 & 哥哥的秘密
    前言BugKu是一个由乌云知识库(wooyun.org)推出的在线漏洞靶场。乌云知识库是一个致力于收集、整理和分享互联网安全漏洞信息的社区平台。BugKu旨在提供一个实践和学习网络安全的平台,供安全爱好者和渗透测试人员进行挑战和练习。它包含了各种不同类型的漏洞场景,如Web漏洞、系统......
  • BugKu CTF Misc:被勒索了 & disordered_zip & simple MQTT & 请攻击这个压缩包
    前言BugKu是一个由乌云知识库(wooyun.org)推出的在线漏洞靶场。乌云知识库是一个致力于收集、整理和分享互联网安全漏洞信息的社区平台。BugKu旨在提供一个实践和学习网络安全的平台,供安全爱好者和渗透测试人员进行挑战和练习。它包含了各种不同类型的漏洞场景,如Web漏洞、系统......
  • 【ARM CoreLink 系列 5.5 -- CI-700 Debug trace and PMU 】
    文章目录DebugtraceandPMUCI-700Debugtrace系统概述DTCDomainDTCDomain约束条件DTMdeviceportsDebugtraceandPMU本篇文章主要是介绍CI-700中实现的DebugTrace(DT)andPerformanceMonitoringUnit(PMU).CI-700Debugtrace系统......
  • bugbountyhunter scope BARKER:第十滴血 存储型 Storage Cross-Site Scripting XSS 添
    登录后点击MemberDogs,Addyourdog头像处可以上传SVG图片检查xsspayload:https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/XSSInjection#xss-in-files使用SVG进行图片上传,发现SVG文件上传成功并返回图片地址poc:https://cfceb12f2bfd-sec875.a.barker......
  • bugbountyhunter scope BARKER:第九滴血 存储型 Storage Cross-Site Scripting XSS SVG
    登录后来到Myprofile页面,页面里存在一个EditProfile头像处可以上传SVG图片检查xsspayload:https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/XSSInjection#xss-in-files使用SVG进行图片上传,发现SVG文件上传成功并返回图片地址poc:https://cfceb12f2......
  • bugbountyhunter scope BARKER:第八滴血 存储型 Storage Cross-Site Scripting XSS SVG
    登录后来到home页面,留言中存在一个Attachimage检查xsspayload:https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/XSSInjection#xss-in-files使用SVG进行图片上传,发现SVG文件上传成功并返回图片地址poc:https://cfceb12f2bfd-sec875.a.barker-social.com......
  • Bug | priority_queue.size()无符号整型进行减法运算引发的惨案
    问题描述:使用优先队列(priority_queue)来实现大根堆和小根堆。在维护两个堆平衡的过程中,需要使用priority_queue.size()来判断两个堆的大小。因为.size()返回的是无符号类型,直接进行减法运算会导致错误。错误代码if(max_heap.size()-min_heap.size()>1)Balance(1);......