关于STM32项目面试题02:ADC与DAC篇(输入部分NTC、AV:0-5V、AI:4-20mA和DAC的两个引脚)

news2024/11/16 10:33:01

博客的风格是:答案一定不能在问题的后面,要自己想、自己背;回答都是最精简、最精简、最精简,可能就几个字,你要自己自信的展开。

面试官01:什么是模数转换/ADC?说说模数转换的流程?

面试官02:你在项目中有没有使用到模数转换?

面试官03:详细说说你项目中模数转换的设计全过程。

01:模数转换是将模拟信号(连续信号)转换成数字信号(离散信号),这一过程使用到的模数转换器是一种电子设备接受模拟信号,可以是电压或者电流,通常是电压,然后转换成与信号幅度成比例的数字信号。

模数转换的流程:

(1)采样:在某一时刻采样模拟信号,将连续的模拟信号转换成离散的样本点。

(2)保持:保持采样点的电压/电流,使其在整个转换过程中保持稳定,为了避免信号变化带来的误差。

(3)量化:将模拟信号的值映射到一定比例的离散的数字值上。

(4)编码:将量化后的数字转换成二进制数,便于后续的数字处理和存储。

02:项目中一共有三个地方使用到了模数转换,分别是NTC模拟温度传感器电路、0-5V电压输入检测电路和4-20mA电流输入检测电路。

03:我想以NTC模拟温度传感器电路展开。

硬件电路的设计(脑海里要有硬件电路的原理图):以MUC的模拟电源VDDA为电源,经过电容滤波,选择的热敏电阻是SDNT2012X103FXXXXX(负温度系数),在25摄氏度下的阻值为10K,故串联一个10K/1%的分压电阻,两个电阻相互匹配,在中间节点引出经过电容滤波和RC滤波之后送到单片机具有ADC功能的引脚。

硬件测试:为了进行硬件测试,所以我对后续的过程也有一定的了解。制作表格。

在进行硬件测试之前先制作表格,查阅热敏电阻的数据手册,得到-30~70摄氏度每一度下的电阻最小值,中心值,最大值,如在-30度下电阻最小值,-30下电阻中间值,-30度下电阻最大值,表格做到70度。然后根据分压公式3.3*\frac{X}{X+10}将每一个值对应到实际设计的电路中,得到每一温度下对应的最小值、中心值、最大值。然后因为是用的单片机是12为ADC,再把刚刚得到的值对应到0~4096范围中取整,并组成数组,最后得到所有某一温度下的数组范围,如-25度是(3850,3867),-24是(3835~3850)。

编写软件代码,让单片机ADC引脚每隔1s采样数据,得到电压对应的二进制数,通过二分法查表匹配到对应的温度,将得到的温度显示在数码管上,并用串口助手每间隔1S打印一次温度信息。

注意虽然只说这一个模数转换的电路,但是你心里要对0-5V电压输入检测电路和4-20mA电流输入检测电路做到心中有数。其中电压检测就是把热敏电阻换成10K/1%的电阻分压后还是经过电容滤波、RC滤波。4~20mA电流检测就是直接引出经过150Ω(没有分压)还是电容滤波、RC滤波。

面试官04:什么是数模转换/DAC?说说数模转换的流程?

面试官05:你在项目中有没有使用到数模转换?

面试官06:详细说说你项目中数模转换的设计全过程。

04:数模转换是将数字信号(通常是二进制数)转换为模拟信号(如电压或电流)的过程。数模转换的流程是:

(1)输入数字信号:通常是由微控制器或者其他数字设备提供的二进制数,数字信号代表了需要转换的模拟量的离散级别。

(2)量化过程:根据输入的数字信号生成与之对应的模拟信号。

(3)电路生成模拟信号:DAC内部通过使用特定的电路来输出模拟信号。

(4)滤波与平滑:因为输出的是离散的模拟信号,因此还可能会通过低通滤波器进行滤波与平滑处理,使输出为一个更连续、平滑的模拟信号。

05:在项目使用到了数模转换,是使用一个具有DAC功能的引脚上电后输出正弦波,通过触摸按键1可以调整正弦波的频率。

06:在项目中使用的是一个复用引脚,是SPI通信的热电偶接口中的一个引脚(是一个只能由单片机向向接口引脚输出的引脚),硬件电路很简单,就是排针的接口。为了硬件测试,我对后续软件编写和简单的原理也有简单的了解。显示的正弦波是将一个周期中的正弦波分成32份来显示,故软件编写中先有数组存储了32个正弦波的采样点,代表一个完整周期的正弦波周期。将32个值通过DAC通道每隔X输出一个,其中X就是可以通过触摸按键1调整的值,这就可以通过按键1来调整正弦波的周期。

(上述涉及到的SPI通信,会在通信专栏中讲解。)

(热电偶的讲解如下:热电偶是一种用于测量温度的传感器。在使用时需要配合使用热电偶芯片,常见的热电偶芯片常采用SPI通信。)

面试官07:AD转换的精度由什么影响?

07:基准电压V_{REF+}V_{REF-},然后把我同门跟我讲的内部划分、对应二级制、逐个去找 讲一遍。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2144009.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

STM32F407 - 01

嵌入式概述 什么是嵌入式?嵌入式是以应用为中心,以计算机技术为基础 硬件可裁剪 适用于对体积 可靠性 功耗 性能等方面有着严格的专用计算机系统 简单来说 除了处理桌面PC和服务器之外所有的控制类设备都是嵌入式. 通用计算机和专用计算机的区别 两者的区别在于技术的发展和…

Python编码系列—Python组合模式:构建灵活的对象组合

🌟🌟 欢迎来到我的技术小筑,一个专为技术探索者打造的交流空间。在这里,我们不仅分享代码的智慧,还探讨技术的深度与广度。无论您是资深开发者还是技术新手,这里都有一片属于您的天空。让我们在知识的海洋中…

质量与数量的博弈!大模型数据建设

质量与数量的博弈!大模型数据建设 前言大模型数据建设 前言 大数据和人工智能(DataAI)技术正以惊人的速度改变着我们的生活和工作方式。大模型数据建设作为人工智能领域的核心组成部分,其重要性日益凸显。 大模型数据建设涉及到海…

硬件工程师笔试面试——电机

目录 18、电机 18.1 基础 电机原理图 电机实物图 18.1.1 概念 18.1.2 电机的一些基本分类和特点 18.2 相关问题 18.2.1 不同类型的电机在实际应用中有哪些具体的优势和劣势 18.2.2 在设计一个电机系统时,我应该如何考虑电机的选型和配置? 18.2.3 对于需要频繁启停的…

【C++篇】C++类与对象深度解析(三):类的默认成员函数详解

文章目录 【C篇】C类与对象深度解析(三)前言4. 运算符重载基本概念4.1 运算符重载的基本概念4.2 重载运算符的规则4.3 成员函数重载运算符4.4 运算符重载的优先级与结合性4.5 运算符重载中的限制与特殊情况4.5.1 不能创建新的操作符4.5.2 无法重载的运算…

TypeScript入门 (一)数据类型与运算符

引言 大家好,我是GISer Liu😁,一名热爱AI技术的GIS开发者。本系列文章是我跟随DataWhale 2024年9月学习赛的TypeScript学习总结文档。希望通过我的知识点总结,能够帮助你更好地学习TypeScript。💕💕&#x…

【漏洞复现】科荣AIO UtilServlet 代码执行漏洞

免责声明: 本文内容旨在提供有关特定漏洞或安全漏洞的信息,以帮助用户更好地了解可能存在的风险。公布此类信息的目的在于促进网络安全意识和技术进步,并非出于任何恶意目的。阅读者应该明白,在利用本文提到的漏洞信息或进行相关测…

学习实践: Procdump获取本地远控信息

看到一篇文章是通过Procdump获取ToDesk远控信息的,于是实操了一下;顺便也测试了一下向日葵远控,发现都是适用的。该方法对于肉鸡提权有一定价值。 1、获取ToDesk远控信息 测试版本:ToDesk v4.7.4.3 测试工具:procdump、…

【Java EE】文件IO

Author:MTingle major:人工智能 --------------------------------------- Build your hopes like a tower! 目录 一、文件是什么? 二、针对文件系统操作的API 1.文件路径,文件名,文件是否存在 2. 创建文件 3.删除文件&#…

推动公平学习与身份归一化的视网膜神经疾病数据集

人工智能咨询培训老师叶梓 转载标明出处 在机器学习领域,公平性(也称为公正性或平等性)是一个日益受到关注的话题,它对于社会的福祉至关重要。然而,目前缺乏专门用于公平学习且包含成像数据的公共医学数据集&#xff…

vs2022配置opencv==4.9.0(C++)

1、下载opencv-windows [opencv4.9.0下载地址](Releases - OpenCV) 下载4.9.0版本: 双击下载好的opencv-4.9.0-windows.exe,选择安装路径: 2、配置opencv环境 (1)添加系统环境变量 此电脑–>右键“属性”–…

小红书治愈插画副业,猛猛涨粉上万+,每天只用5分钟

在这个数字化时代,AI技术正以前所未有的速度改变着我们的生活和工作。特别是在内容创作领域,AI的运用已经催生了一种全新的创作模式。一幅幅温馨可爱的治愈插画如同清流,不仅契合当下年轻人生活的状态,更成为许多人表达生活态度、…

「iOS」push与present

iOS学习 前言push与poppresent与dismiss使用dismiss弹出多级PresentedViewController 与 PresentingViewController区别 总结 前言 在此前就学习过视图的push与present。与之对应的退出方法为pop与dismiss。这里进行一次总结。 push与pop pushViewController 是通过导航控制器…

黑神话:悟空 后话

《黑神话:悟空》在游戏界掀起了波澜。对许多人来说,包括我自己,这款游戏是我们一直期待的——一款纯粹、沉浸且专注于高质量游戏体验的作品。它不追求现代趋势,没有微交易或在线服务模式,也没有为了未来扩展包而设计的…

PumpkinFestival靶机详解

靶机下载地址 https://www.vulnhub.com/entry/mission-pumpkin-v10-pumpkinfestival,329/ 靶机配置 主机发现 arp-scan -l 端口扫描 nmap -sS -Pn -A -p- -n 192.168.229.163 访问网页 http://192.168.229.163/ 这些可能是用户名和账号留存 F12查看页面源码,发…

瑞芯微RK3588开发板Linux系统添加自启动命令的方法,深圳触觉智能Arm嵌入式鸿蒙硬件方案商

本文适用于触觉智能所有Linux系统的开发板、主板添加自启动命令的方法,本次使用了触觉智能的EVB3588开发板演示,搭载了瑞芯微RK3588旗舰芯片。 该开发板为核心板加底板设计,为工业场景设计研发的模块化产品,10年以上稳定供货,帮助…

2024年9月18日历史上的今天大事件早读

1043年9月18日 范仲淹实行改革 1393年9月18日 “活财神”沈万三逝世 1783年9月18日 瑞士著名数学家欧拉逝世 1851年9月18日 《纽约时报》创刊 1903年9月18日 清末爱国将领冯子材逝世 1917年9月18日 护法战争爆发 1931年9月18日 “九一八”事变爆发 1936年9月18日 阎锡山…

SOMEIP_ETS_115: SD_Entry_references_more_options_than_exist

测试目的: 验证DUT能够拒绝一个订阅请求,该请求中的选项引用超出了实际存在的选项数量,并以SubscribeEventgroupNAck作为响应。 描述 本测试用例旨在确保DUT遵循SOME/IP协议,当接收到一个引用了比实际存在的更多选项的Subscrib…

SPI中的CPOL和CPHA

SPI中的CPOL和CPHA学习SPI必须掌握的知识,因为它涉及到“数据位采集”。重点掌握空闲时SCK的电平是怎么定义的。采集时,是怎么规定发生在哪个时钟边沿。CPOL用来决定SPI总线在空闲时,SPI_SCK引脚输出的电平;CPHA用来决定“数据位采集点”发生在第几边沿。…

【Python】从基础到进阶(八):文件操作与上下文管理

🔥 个人主页:空白诗 文章目录 一、引言二、Python文件操作基础1. 打开文件2. 读取文件3. 写入文件4. 文件指针定位 三、上下文管理1. 使用with管理文件2. 自定义上下文管理器 四、文件操作的最佳实践五、案例:日志文件管理1. 需求分析2. 实现…