把常见的硬件面试题进行总结,方便及时巩固复习。其中包括网络上的资源、大佬们的大厂面试题,其中可能会题目类似,加强印象即可。
更多硬件面试题:
硬件工程师面试题 1-10
硬件工程师面试题 11-20
21、单片机最小系统需要什么?
单片机最小系统是指能够使单片机芯片正常运行并发挥其功能所必需的最少硬件电路集合。它主要由以下几个关键部分组成:
- 电源:为单片机提供稳定的直流电源供电,确保单片机能够正常工作。常见51系列通常需要5V直流电源,STM32系列需要3.3V。
电源电路可能包括直流电源稳压模块、滤波电容以及电源指示灯等元件,其中直流电源稳压模块用于将输入的交流电转换为稳定的直流电,滤波电容则用于滤除电源中的杂波干扰。- 时钟(晶振)电路:是单片机正常运行的关键部分。提供了单片机运行所需的时钟信号,用于单片机的计时、延时、同步等操作,是单片机内部各部件协调工作的基础。
通常由晶振和相关的电容、电阻等元件组成,能够产生稳定的频率信号,确保单片机按照预定的时间周期执行指令。典型的晶振频率有11.0592MHz和12MHz等。- 复位电路:在单片机上电初期或发生异常情况时,复位电路能够确保单片机处于一个可控的初始状态,避免系统启动时出现异常。
通常由复位按钮、电容和电阻等元件组成。当复位按钮被按下时,复位电路会产生一个高电平信号,使单片机内部各电路状态恢复到确定的初始值,并从这个状态开始工作。
22、FreeRTOS移植最重要的是什么
FreeRTOS移植过程中最重要的是确保移植后的系统能够在目标硬件上稳定运行,并满足应用需求。
一、文件与文件夹的添加与删除
- 添加必要文件:从FreeRTOS官方下载的源码包中,将必要的文件和文件夹添加到自己的工程中。通常包括FreeRTOS的内核文件、配置文件、端口文件等。
- 删除无关文件:删掉
portable
文件夹中与自己芯片无关的部分,以减小工程体积并提高编译效率。二、中断函数的处理
- 删除本地中断处理函数:在移植FreeRTOS之前,需要删除本地原有的中断处理函数。
- 添加FreeRTOS中断处理函数:将FreeRTOS中的三个主要中断处理函数(如
PendSV_Handler
、SVC_Handler
和SysTick_Handler
)进行声明,并确保能被正确调用。三、配置文件调整
- 修改
FreeRTOSConfig.h
:这是FreeRTOS的核心配置文件,需要根据目标硬件和应用需求进行详细的调整。包括但不限于设置是否使用抢占式内核、时间片调度、任务优先级、堆栈大小、时钟节拍频率等参数。- 配置中断优先级:在STM32等基于ARM Cortex-M系列的单片机上,需要配置NVIC的中断优先级分组,并确保FreeRTOS的中断优先级设置合理。
四、内核代码适配
- 任务管理:确保FreeRTOS的任务管理功能能够在目标硬件上正常工作,包括任务的创建、删除、挂起、恢复等。
- 内存管理:如果使用动态内存分配功能,需要确保FreeRTOS的内存管理模块与目标硬件的内存管理单元(如MMU)兼容。
- 时间管理:配置FreeRTOS的时钟节拍源和节拍频率,以确保系统能够按照预定的时间周期执行任务调度。
五、端口代码移植
- 硬件抽象层:根据目标硬件的特性,编写或修改FreeRTOS的端口代码,以实现对硬件的抽象和封装。
- 外设驱动:如果FreeRTOS需要使用到外设(如UART、SPI、I2C等),需要确保这些外设的驱动代码已经正确移植到目标硬件上。
六、其他注意事项
- 编译器兼容性:确保使用的编译器与FreeRTOS兼容,并正确配置编译环境。
- 调试与测试:在移植过程中,需要进行充分的调试和测试,以确保FreeRTOS能够在目标硬件上稳定运行并满足应用需求。可以使用调试器、日志输出等方式进行调试测试。
23、DC-DC与LDO区别
DC-DC转换器和LDO(低压差线性稳压器)是两种常见的电源管理技术.
工作原理:
- LDO:采用线性调节方式,通过调整可变阻抗元件(如MOSFET)的导通状态,将多余的输入电压转化为热量来降低电压。其内部通常使用P沟道MOSFET,通过负反馈控制输出电压的稳定性。
- DC-DC:采用开关调节方式,通过快速开关控制电感和电容的充放电过程,将输入电压转换为所需的输出电压。其工作原理包括开关元件的导通和截止状态切换,通过脉宽调制(PWM)调节输出电压。
效率:
- LDO:效率较低,尤其在输入输出电压差较大的情况下,效率更低,通常在40%
- DC-DC:效率较高,尤其在输入输出电压差较大的情况,效率可达80%以上
输出特性:
- LDO:输出纹波小,负载响应快,噪声低,适用于对电源质量要求较高的场合,但输出电流能力有限,通常不超过几安培。
- DC-DC:输出纹波较大,负载响应较慢,但带载能力强,适合需要大电流输出的应用。
输入输出电压范围:
- LDO:适用于输入电压稍高于输出电压的场合,输入输出电压差不能太大,通常要求输入电压比输出电压高出1~2V。
- DC-DC:输入电压范围较宽,可以实现升压、降压或升降压等多种拓扑结构。
成本与复杂性:
- LDO:外围元件少,电路简单,成本低。
- DC-DC:外围元件多,电路复杂,成本较高。
应用场景:
- LDO:适用于对电压稳定性要求高但功率需求不大的场合,如传感器、微控制器
- DC-DC:适用于需要高效率、大电流输出的场合,如手机、通信设备和医疗设备
24、PSRR是什么,单位是什么
应用LDO、DCDC、运放的时候,规格书中都会标准PSRR这个指标
PSR为电源抑制(Power Supply Rejection),即电源到输出增益的抑制,
PSRR为电源抑制比( Power Supply Rejection Ratio),即输入到输出的增益除以从电源到输出的增益。描述了电路抑制任何电源变化传递到其输出信号的能力
单位是dB
电源抑制比(PSRR)的基础知识_psrr电源抑制比-CSDN博客
25、iic时序?随机读取一个字符的过程?iic设备出问题的时候怎么排查?上拉电阻对iic速率有没有影响?
I²C时序
I²C通信协议的时序要求非常严格,主要包括以下几个关键信号和状态:
- 起始信号(Start Condition):当SCL(串行时钟线)为高电平时,SDA(串行数据线)由高电平变为低电平,表示一个起始信号的开始。这标志着一次通信的起始。
- 停止信号(Stop Condition):当SCL为高电平时,SDA由低电平变为高电平,表示一个停止信号的结束。这标志着一次通信的结束。
- 数据传输:在SCL为低电平时,SDA可以变化数据;而在SCL为高电平时,SDA必须保持稳定,以便接收方能够正确地读取数据。数据是逐位传输的,高位在前,低位在后。
- 应答信号(Acknowledge):在接收方成功接收到一个字节的数据后,它会在SCL的高电平期间将SDA拉低,产生一个应答信号(通常为0)。如果接收方没有应答(例如,由于缓冲区已满或地址不匹配等原因),则它会在SCL的高电平期间保持SDA为高电平(无应答信号,通常为1)
随机读取一个字符的过程
在I²C通信中,随机读取一个字符通常涉及以下步骤:
- 发送起始信号:主机产生并发送起始信号到从机,表示一次通信的开始。
- 发送设备地址和写控制命令:主机发送从机的设备地址,并设置读写控制位为低电平,表示将对从机进行写数据操作。同时,主机还需要发送要访问的从机内部寄存器的地址(即字地址)。注意,这些地址和命令的发送都是高位在前,低位在后。
- 接收应答信号:从机接收到设备地址和写控制命令后,会回传一个应答信号。如果主机接收到应答信号,则表示从机已准备好接收数据。
- 发送字地址:主机向从机发送要读取数据的字地址。如果是双字节地址,则需要先发送高8位地址,再发送低8位地址。每发送一个地址字节后,主机都需要等待从机的应答信号。
- 重新发送起始信号:在字地址写入完成后,主机需要再次发送一个起始信号,以切换到读数据模式。
- 发送读控制命令:主机发送读控制命令到从机,设置读写控制位为高电平,表示将对从机进行读数据操作。
- 接收数据:从机接收到读控制命令后,会开始输出数据。主机在接收到从机回传的应答信号后,开始接收从机传回的单字节数据。数据是逐位接收的,直到接收完一个完整的字节。
- 发送非应答信号(可选):如果主机只需要读取一个字节的数据,则在接收完数据后,它会向从机发送一个非应答信号(即将SDA保持为高电平),表示不再继续读取数据。
- 发送停止信号:最后,主机发送停止信号到从机,表示一次通信的结束
iic设备出问题的时候怎么排查
1. 基本检查
- 确认设备连接:首先检查I²C设备的连接是否正确,包括引脚焊接、线材是否断线或接触不良等问题。
- 检查电源:确保I²C设备及其相关电路正常供电,没有电源波动或不足的情况。
2. 波形抓取与分析
- 使用示波器:利用示波器抓取I²C总线上的SCL(时钟线)和SDA(数据线)波形,以便进行详细的时序分析。
- 检查波形异常:观察波形是否存在异常,如尖波、斜波、杂波等不符合I²C设备的波形。这些异常可能由于驱动能力不足、上拉电阻设置不当、总线负载过重等原因引起。
3. 硬件问题排查
- 检查上拉电阻:确认I²C总线上是否按从机要求加了合适阻值的上拉电阻(通常为2~10kΩ)。阻值的选择应根据从机芯片手册或模块手册的要求进行。
- 引脚配置:检查I²C设备的引脚配置是否正确,特别是SDA和SCL引脚是否配置为开漏输出模式。对于软件模拟I²C,还需要确保GPIO被正确配置。
- 检查从机地址:确认从机地址是否正确,以及是否存在与其他I²C设备的地址冲突。
4. 通信协议与速率匹配
- 通信速率匹配:确保I²C主机的通信速率与从机的通信速率相匹配。如果速率不匹配,可能会导致通信失败。
- 协议一致性:检查I²C通信协议的一致性,包括起始信号、停止信号、数据传输格式、应答信号等。
5. 软件问题排查
- 初始化代码:检查I²C设备的初始化代码是否正确,包括GPIO配置、I²C模块使能、中断配置等。
- 固件更新:如果可能,尝试更新I²C设备的固件或驱动程序,以修复存在的软件问题。
6. 特定问题排查
死锁问题:如果I²C设备出现死锁现象(即数据线被拉低,主机无法拉高),可以按照以下方法排查:
- 检查是否存在从机设备在返回数据时未发送完成,而主机时钟消失的情况。这可能导致从机等待时钟信号,产生钳住并拉低SDA的现象。
- 尝试在系统复位时提供足够的时钟信号,以解锁SDA。
中断问题:如果I²C通信过程中无法产生中断或中断处理异常,可以检查中断号是否正确、中断脚电平是否异常、IC供电电平是否等于中断电平等问题。
上拉电阻对iic速率有没有影响?
有影响。
上升时间:
- 上拉电阻的阻值直接影响I²C总线上信号的上升时间。电阻越大,上拉至高电平的速度就越慢,这会导致数据传输速率受限。
- 为了保证数据传输速率,需要根据I²C总线的最大频率来确定合适的上升时间,并据此选择阻值。一般来说,I²C总线标准建议的上升时间应小于300ns。
寄生电容:
- I²C总线上的寄生电容(包括引脚电容、PCB导线寄生电容等)与上拉电阻形成RC充电回路。这个回路会影响信号的上升沿速率,从而影响数据传输速率。
- 较大的寄生电容需要较小的上拉电阻来保持较快的上升沿速率,但过小的电阻又会增加功耗和可能的电流冲击。
功耗与电流限制:
- 上拉电阻上会持续消耗一定的功率(P=I²R),虽然这部分功耗通常很小,但在低功耗设计中仍需考虑。
- 同时,I²C总线规范定义了每个总线上的设备在拉低线路时能够承受的最大电流(灌电流)。上拉电阻的阻值应确保即使所有挂载的设备同时尝试将线路拉低,也不会超过任何单个设备的最大灌电流规格。
26、pwm输入捕获定时器怎么工作的
主要基于定时器的捕获单元和外部PWM信号的交互。
PWM输入捕获是指定时器能够捕获外部PWM信号的周期和占空比。在STM32等微控制器中,定时器的捕获单元通常具有多个捕获通道,这些通道可以配置为输入捕获模式,用于检测外部信号的边沿变化。
PWM输入捕获的工作过程:
信号接入:
- 外部PWM信号通过定时器的输入通道接入捕获单元。
边沿检测:
- 捕获单元内部的边沿检测器会检测外部PWM信号的上升沿或下降沿。
- 当检测到边沿变化时,定时器当前的计数值会被捕获并存入捕获比较寄存器中。
捕获周期和占空比:
- 在PWM输入模式下,定时器通常会使用两个捕获通道来同时捕获PWM信号的周期和占空比。
- 假设使用捕获通道1和捕获通道2,捕获通道2会在PWM信号的上升沿将主计数器清除并开始向上计数。随后,捕获通道1会在PWM信号的下一个下降沿捕获当前计数值,这个值即为PWM信号的高电平周期(或占空比的一部分)。
- 当捕获通道2再次检测到PWM信号的下一个上升沿时,此时计数器的值即为PWM信号的完整周期。同时,计数器会被清除以准备下一次测量。
中断处理:
- 在捕获到PWM信号的周期和占空比后,定时器可以产生中断或DMA请求,以便CPU能够及时处理捕获的数据。
27、绿色发光二极管的导通压降大概是多少伏?如果一个LED指示灯没有定义颜色,红、绿、黄、橙、蓝、白色你会选择哪一种,为什么?
2V 左右。按照使用习惯,电源指示灯用红色,信号指示灯用绿色,这两种颜色的LED灯技术最成熟,价格最便宜。
28、请简述TVS瞬态电压抑制二极管的工作原理。
当TVS(Transient Voltage Suppressor,瞬态电压抑制二极管)上的电压超过一定幅度时,器件迅速导通,从而将浪涌能量泄放掉,并将浪涌电压限制在一定的幅度。
工作原理基于二极管的雪崩击穿效应,能够在极短的时间内吸收大量的能量,从而保护电路不受损害。
正常工作状态:在正常工作电压下,TVS二极管表现为高阻抗状态,几乎不导电,因此不会影响电路的正常工作。
雪崩击穿:当电路中出现电压瞬态冲击,如静电放电(ESD)、电感负载切换、雷击等,导致电压超过TVS二极管的击穿电压时,TVS二极管会迅速从高阻抗状态转变为低阻抗状态,即雪崩击穿。
能量吸收:在雪崩击穿状态下,TVS二极管能够导电并将瞬态电压限制在一个安全水平,同时吸收和分流这些高能量的瞬态电流,防止电压冲击对后续电路造成损害。
恢复高阻抗:一旦瞬态冲击结束,TVS二极管会迅速恢复到高阻抗状态,电路可以继续正常工作。
极性保护:TVS二极管分为单向和双向两种类型。单向TVS二极管只在一个方向上导电,而双向TVS二极管则可以在两个方向上导电,分别对应正向和反向电压冲击。
响应时间:TVS二极管的响应时间非常快,通常在皮秒(ps)级别,远快于电路中其他保护元件的响应时间,因此能够有效地保护电路。
29、请列举您知道的二极管型号。
1N4148、1N5817、1N5819、1N5820、1N5822、1N4001、1N4007、SR160、SR360、BAT54A、BAT54C、BAT54S
30、请列举您知道的NPN三极管型号。
2N2222、2N3904、2N5550、2N5551、M8050、S9013、S9014、S9018