一些硬件知识【2025/3/1】
隔离电源的内部构造:
里面的电源驱动芯片是VPS8702,价格大概在1块钱左右。
可以看到其特点也正符合B0505S这种小型的隔离电源模块。其内部是一个全桥的拓扑,可以驱动外置变压器从而达到将外部输入电源隔离输出的目的。并且他集成了过流检测保护和过温保护的功能,可以大大避免输出短路造成模块损坏的概率。
485模块的隔离问题:
一个很有意思的数据隔离芯片:
模拟电路的打孔包地:
USB隔离方案:
USB数据隔离芯片采用的是ADI的USB数据隔离芯片ADUM3160,其中SPU管脚拉高(设置速率为全速12Mbps,若拉低则设置为低速1.5Mbps):
ADI的USB数据隔离芯片ADUM3160还是蛮贵的,一片二十多块钱,目前没找到比较合适的国产USB隔离芯片,如果各位总工有好用且合适的USB隔离芯片麻烦留言推荐一下。
CH318芯片自身带有USB HUB功能,上行端口支持USB2.0高速,下行端口支持USB2.0高速480Mbps、全速12Mbps和低速1.5Mbps。CH318可以用于高速USB信号隔离、隔离HUB、延长HUB等。
终端电阻的问题:
当终端电阻接入RS-485总线时,会显著降低驱动信号的差分幅值。总线上负载的增大导致RS-485收发器的输出差分电压幅值下降。例如,在5米、500kbps的通信距离下,未加终端电阻与加终端电阻的波形对比如图1和图2所示。通过波形图可以看出,添加终端电阻后,驱动信号幅值大约减少了2V,对信号强度产生明显影响。
根据下面的几张图可以得出结论:短距离并不适合加终端电阻,长距离适合加终端电阻
5m 500kbps 无终端电阻波形:
5m 500kbps 加终端电阻波形:
1200m 115.2kbps 首端波形(加终端电阻):
1200m 115.2kbps 末端波形(加终端电阻):
终端电阻会显著增大收发器功耗:
终端电阻的引入对RS-485收发器的功耗有明显影响,特别是在驱动状态时。
以RSM485ECHT为例:
-
接收状态:工作电流约为20mA。
-
驱动状态(无终端电阻):工作电流为27mA左右。
-
驱动状态(加终端电阻):工作电流上升至83mA。
从数据中可以明显看出,终端电阻在驱动状态下显著增加了功耗。
因此,在对功耗敏感的应用场景中,应谨慎使用终端电阻。
为什么PCB地与金属机壳用阻容连接?
电子产品接地是一个老生常谈的话题我们经常会看到一些系统设计中将PCB板的地(GND)与金属外壳(EGND)之间通常使用一个高压电容C1(1~100nF/2KV)并联一个大电阻R1(1M)连接。那么为什么这么设计呢?
1、电容的作用
从EMS(电磁抗扰度)角度出发,该电容在确保PE与大地连接的基础上,旨在降低可能存在的、以大地电位作为参考的高频干扰信号对电路产生的影响,从而达到抑制电路与干扰源之间瞬间共模电压差的目的。事实上,将GND直接连接到PE最为理想,但由于直连可能会导致操作困难或存在安全隐患
2、电阻的作用
这个电阻可以有效防止ESD(静电释放)对电路板造成损害。若仅采用电容将电路
板地与外壳地相连,电路板便构成一个浮地体系。在进行ESD测试时,或者在复杂电磁场环境下使用,电荷注入电路板后难以得到有效释放,进而会积累。
3.需要注意的问题:
① 如果设备外壳良好接大地,那PCB应该也与外壳良好的单点接地,这个时候工频干扰会通过外壳接地消除,对PCB也不会产生干扰;
② 如果设备使用的场合可能存在安全问题时,那必须将设备外壳良好接地;
然而,若在多个设备彼此连接时,设备外壳无法实现良好接地,那么将其转为浮地状态,内部PCB无需与外壳接地反而更为适宜;
做轨道交通车载设备的。铁标严禁数字地和大地直接相连,违反安规要求。
电子产品和轨道交通不是同一个产品,你那与高压有关,车载产产大部分是12V,你拆几个产品看一下,不管是国内外大厂,哪个PCB不是接外壳大地。
硬盘盒桥接芯片来自JMicron智微,型号JMS583,是一颗USB3.1 Gen 2 to PCIr Gen3x2 桥接芯片,支持10Gbps传输速率,支持对SSD进行Trim操作,符合NVM Express 1.3,符合USB3.1 Gen1 和Gen2规范,采用QFN64 8*8封装。
实心铺铜和网格铺铜:
覆铜的意义在于:减小地线阻抗,提高抗干扰能力;降低压降,提高电源效率;与地线相连,还可以减小环路面积。
IP5307系列 2 A 充电 3.1 A 放电 边充边放 高集成度移动电源 SOC
注意:这个以前实习的时候用过TI的类似功能的芯片,可以两路输出,其中一路给负载,其中一路给电池:
过孔大小的设定:(1mm=39.37mil)
在电流大的地方,需要预估最大电流的值,设计合理的过孔尺寸,或者放置足够多的过孔以满足载流能力,要嘛加大过孔尺寸,要嘛增加过孔数量,这两种方式都是可以提高载流能力的。
20道单选(2.5*20)+2道编程(25*2)【一个必须C,第二个随便语言】
1、I2S 协议,串行还是并行?
串行传输:I²S 使用串行方式传输音频数据,通过一根数据线逐位传输。
2.任务调度器(Task Scheduler)是操作系统或多任务系统中的核心组件,负责管理和分配系统资源(如 CPU 时间)给多个任务或进程。它的主要工作是调度,即决定哪个任务在何时运行,以确保系统资源的高效利用和任务的合理执行。
3.在 C 语言中,continue
和 break
语句确实主要用于循环体中,但它们的作用和使用场景有所不同。以下是对它们的详细说明:
1. continue
语句:
作用:continue
用于跳过当前循环体中剩余的代码,直接进入下一次循环迭代。使用范围:continue
只能用于循环体中(如 for
、while
、do-while
循环)在嵌套循环中,continue
只会跳过当前循环体的剩余部分,不会影响外层循环。continue
不能用于 switch
语句或其他非循环结构中。
for (int i = 0; i < 10; i++) {
if (i % 2 == 0) {
continue; // 跳过偶数,不执行后面的代码
}
printf("%d ", i); // 只输出奇数
}
break
语句
作用:break
用于立即终止当前循环或 switch
语句的执行使用范围:可以用于循环体中(如 for
、while
、do-while
循环)。也可以用于 switch
语句中,用于跳出 switch
块。
for (int i = 0; i < 10; i++) {
if (i == 5) {
break; // 当 i 等于 5 时,终止循环
}
printf("%d ", i);
}
int num = 2;
switch (num) {
case 1:
printf("One\n");
break; // 跳出 switch
case 2:
printf("Two\n");
break; // 跳出 switch
default:
printf("Other\n");
}
4.在基于 51单片机 的系统中,定时器的启动和停止可以通过 GATE 位 和 TR0/TR1 位 来控制。你提到的场景是 GATE = 0 的情况,此时定时器的启动和停止完全由软件通过 TR0/TR1 位 控制,而不需要依赖外部引脚信号(如 INT0 或 INT1)。
5.PCI和PCIE的区别: