反激式开关电源(硬件面试86题 电源专栏)

news2024/9/24 9:25:01

在硬件面试经典中的第 86 题中提到的反激式开关电源,是通过开关通断将交流转变成直流的 AD-DC 开关电源的一种,并且反激式开关电源是由 BUCK-BOOST 电路演变而来,所以博客由浅入深一步一步讲解完反激式开关的知识,让我们开始吧!

一、升降压电路( BUCK-BOOST 电路)

在博客DC-DC基础知识 + 硬件电路_dcdc电路-CSDN博客中介绍了升压(BUCK)和降压(BOOST)电路,但是没有介绍升降压电路(BUCK-BOOST电路),现在简单介绍如下。

1.1电路简介

电路结构如下图,电路图由以下部分组成:

  1. MOS 管:开关电源的开关。接受PWM波形信号,高电平管子打开,低电平管子关闭。
  2. 电感 L :充放电。吸收电源的能量,并向后级电路释放。
  3. 二极管 D:指定电流的流向。
  4. 电容 C_{0} :平滑输出电流。
图1.1 BUCK-BOOST 电路原理图

1.2 MOS 管打开

当在 PWM 波高电平时,MOS 管打开,电源给电感充电,在电感上形成上上正下负的电压。

图1.2

1.3 MOS 管关闭

当在 PWM 波低电平时, MOS 管关闭,电感上的电源突然撤走,电感上感应出与电源供电方向相反的感应电动势,形成如下图的电流方向给负载供电。

图1.3

1.4电路说明

1.4.1升降压

BUCK-BOOST 电路输入输出存在公式(理想公式):

V_{O}=\frac{D}{1-D}V_{in}

其中 D 为 PWM 波的占空比,就是通过调节占空比来实现升降压:

  1. 当需要升压时 ,调大占空比,让电感可以吸收更多的能量,增大感应电动势;
  2. 当需要降压时,调小占空比,让电感不吸收很多的能量,减小感应电动势。

1.4.2注意

上述介绍的电路是最简单、最理想的 BUCK-BOOST 电路,只是为了说明一下电路原理,有很多问题都没有说清楚,如:

  1. 如果供电电源负极是地的话,那么在电路图上二极管正极那一点的电压其实是负电位,需不需要抬高?
  2. 供电电源如果是电池或者输出没有达到预期,需不需要添加输出到 PWM 波控制电路的反馈?
  3. BUCK-BOOST 电路原理很久就提出了,有没有好用、简单的芯片?怎么选择?等等

记录一下:单节锂电池如何转3.3V?升压还是降压?_哔哩哔哩_bilibili课程中介绍了一款 BUCK-BOOST 芯片 RT6150B-33GQW,可以输出稳定的 3.3V 电源。

在硬件面试经典中的第 86 题目给出的电路图,其实就是将上述的 BUCK-BOOST 电路图中的电感换成了变压器,我们逐步来展开介绍。

二、手机充电器原理

2.1初代电源原理

下面是最初代手机充电器的原理,最终可以得到输出稳定的 5V 电源给手机充电。

图2.1

但是这种手机充电器很少被使用,原因:

  1. 线性电源功率密度低;
  2. 发热严重;
  3. 体积大。
图2.2

2.2现代开关电源原理

其中仍然有全桥整流电路和变压器,但排列位置发生了变化,同时原来的 LM7805 被一颗 MOS管和控制芯片取代。

看到下面的电路,就发现和最开始的 BUCK-BOOST 电路的相似之处了。

图2.3

产生了一个方波加在了变压器的左侧绕组上,在变压器的右侧绕组上感应出另一个比较小的电压,经过滤波,就输出 5V 的直流电 (后面会详细讲解)。

2.3比较两个电路

2.3.1变压器体积更小

第一个电路中 220V 的交流电被直接送入变压器,然后输出经过整流滤波就变成了直流电;

第二个电路就比较麻烦了,先把 220V 的交流电整流滤波变成直流电,然后将直流电转变成方波才送入变压器中,最后输出直流电。

之所以弄得这么麻烦,就是为了减小体积和减少发热。

最初的 220V 交流电频率只有 50HZ,而送入变压器的方波频率可达 65KHZ 甚至更高,频率更高的好处就是可以使用更小的变压器。

为什么更高频率的信号就可以使用更小尺寸的变压器?

1、变压器的基本原理

        变压器的大小主要取决于其铁芯和绕组的尺寸,而这些尺寸与变压器要传输的功率和频率有关。对于给定的功率输出,铁芯的大小(体积)决定了变压器能否有效传输和转换能量,而绕组的线圈数量影响了感应电压的多少。

2、频率与变压器尺寸的关系

  • 磁通密度与频率:在变压器中,磁通密度(磁场在单位面积上的强度)与施加的交流信号频率成反比。较高的频率意味着磁通在单位时间内变化更快,因此在相同的磁通密度下,铁芯每周期只需要承受较少的磁通变化量。这就意味着使用高频率时,可以用较小的铁芯而不会达到铁芯饱和的情况。

  • 铁芯材料的利用效率:高频信号下,变压器的铁芯材料在高频下的利用率更高。换句话说,在高频率条件下,可以用更少的铁芯材料(即更小的变压器)来传输相同的能量。

3、高频率的其他优势

  • 绕组匝数减少:在高频条件下,由于每周期的时间较短,可以用较少的匝数来达到所需的感应电压。这进一步减小了绕组的尺寸和重量。

  • 变压器的电感和电容效应:在高频条件下,变压器的电感效应更为明显,而漏电感和分布电容的影响相对变小,这样可以设计更紧凑和高效的变压器结构。

2.3.1开关电源取代线性电源

由 MOS 管输出的受控方波,就可以添加反馈回路至控制器通过实时调节方波的占空比来稳定输出电压。

以上方案替换掉 LM7805 稳压器,是由于 LM7805 稳压器是线性稳压器,效率低,发热严重。

1. 线性稳压器的工作原理

        线性稳压器通过连续调整其内部的电阻来维持稳定的输出电压。当输入电压高于所需的输出电压时,线性稳压器通过将多余的电压转化为热量的方式来降低电压。这是线性稳压器工作的基础:

  • 简单的等效电路:线性稳压器可以被简单地等效为一个可变电阻(或三极管)与负载串联。当输入电压升高时,稳压器会增加其内部电阻,以确保输出电压保持恒定。

  • 能量转换:任何超过输出电压需求的能量都被转化为热量在稳压器上消耗掉。这意味着线性稳压器的效率主要取决于输出电压和输入电压之间的差异。

2. 开关电源的工作原理

       开关电源通过高速开关元件(如MOSFET)打开和关闭,以控制输入电压和输出电压之间的能量传递。开关电源通过储能元件(电感和电容)将电能转换和传输。以下是开关电源的关键特点:

  • 高频开关:开关电源工作在高频状态下(通常在几千赫兹到几兆赫兹范围)。高速开关使得输入电压被切割成高频脉冲信号,然后通过变压器或电感进行能量传递和转换。

  • 高效能量转换:由于开关元件(MOSFET)在完全导通或完全截止时工作,理想状态下几乎没有能量损耗。能量只是在电感和电容之间转移,因此能量损耗很小,转换效率可以高达80%-90%以上。

2.4开关电源

开关电源其实是一大类电源的统称,它们的相同之处就是都有 MOS 管构成的开关电路来产生 PWM 波,最后通过整流滤波来输出电压。不同之处就是每一种类型的电路有着完全不用的拓扑结构,有一些里面有电感,有一些里面是有变压器,不同的拓扑结构适用于不同的使用场景,有的适合 100W 以内的电源,有的适合做隔离,有的适用于可调输出的场景。

上面介绍的现代开关电源的名称为反激电源,是因为该电源电路中的变压器两个绕组绕制方向是相反的,该电源有隔离的功能,但是支持的功率并不高,大量使用在 ADCD 的电源中,生活中所见的 100W 功率以内的电源大多是都是反激拓扑结构。

图2.4

三、反激电源原理

正式进入到反激式开关电源的原理,这一节会制作 220V 转 5V/2A  输出的开关电源。

3.1拓扑结构

在图 2.3 中其他部分都介绍清楚了,除了在上面埋下了一个坑:副级绕组上是怎么感应出一个较小的电压的?

其实反激电源最关键的部分就是这个变压器,在之前的刻板印象中:
一般只有交流的正弦波可以穿过这个变压器,并且输入输出电压比就是变压器的匝数比。

而只有正电压的方波穿过变压器是整个架构中最精巧的部分。

3.1.1当 MOS 管从关闭到打开时

有变化的电流流入到主绕组,从而在铁芯中感应出一个 变化的磁场,变化的磁场会在副绕组中感应出电压,由于两个线圈缠绕方向相反,故上正下负的电压会在另一边感应出一个上负下正的电压。

由于在副边添加了一个反向二极管,故此时的电压不能导通,故在副边其实没有电流。

既然没有电流,可以当做副边的电路不存在,所以此时的变压器的初级线圈可以等效成一个普通的电感,电流流入电感就存储能量。

3.1.2当 MOS 管从打开到关闭时

当 MOS 管关闭,电感(初级线圈)上的电源突然被撤走,电感(初级线圈)会感应出来的上负下正的电压来阻止突变,也就是说在这个 MOS 管关闭瞬间,初级线圈两端的电压会瞬间从上正下负变为上负下正。

这个电压会正好在次级线圈中感应出一个上正下负的电压,此时符合二极管的导通方向,副边的电路中就有了电流。该电流一部分给电容充电,维持输出电压的稳定,另一部分给后级的负载供电。

同时这个过程又将初级线圈中存储的能量给释放出来,能量释放完之后再等待下一次 MOS 管打开给它充电,如此就完成了一个循环。

3.1.3总结

以上就是反激式开关电源的精髓所在,总结成一句话就是:

MOS 管打开时给初级线圈储能, MOS 管关闭时,线圈将所储能量释放到次级线圈中。

输出电压的计算公式:

3.2拓展电路

拓展的电路增加两部分电路,分别是 RCD 电路和反馈路径,如下图所示。

3.2.1 RCD 电路

由于各种原因,MOS 管产生的 PWM 波存在较大的尖峰,图下图中蓝色的波形图,尖峰的存在很可能导致 MOS 管的烧毁,RCD 电路就是用来吸收这个尖峰的,尖峰产生时,通过下图中红色的通路,迅速被电容吸收,并在剩余的时间里电容向电阻释放自身能量,经过这样的循环,尖峰就会被消减很多,确保 MOS 管的安全。

3.2.2反馈路径

反馈路径用来监测输出电压值:

  1. 输出电压 < 5V ,增加 PWM 的占空比;
  2. 输出电压 > 5V ,减小 PWM 的占空比;

按照常规的反馈电路设计思想,往往设计出的是两电阻分压反馈电路,如下图:

但是由于变压器初级线圈侧都是强电,不可以直接与输出的 5V 弱电有电器连接,所以需要有隔离,故使用光电耦合电路来反馈电压信号。

整体电路,传递能量的为磁能,电压反馈回去的能量为光能,原边和副边是完全隔离的。

3.2.3其他

所谓的 AC-DC 广义上其实指的是只有整流桥和电容,这一部分是 220V 交流电转变为 310 伏的直流电,这部分才是真正意义上的 AC-DC。后面剩余部分其实是DC-DC,而反激拓扑结构其实仅仅指的是DC-DC 这部分电路。

3.3电路图

3.3.1全桥整流电路

图中为四个二极管组成的全桥整流电路,将交流电负半轴电路翻转至正半轴,实际制造选择了一个集成好的整流桥芯片,型号是 MB10F ,耐压 1000V ,体积小巧,并且芯片内部二极管一致性比较好。

MB10F 实物图
MB10F 原理图与 PCB

3.3.2输入电容

主要作用是滤波,将整流之后的“馒头波”变成比较平直的波形。电容越大,波形就越平稳,但是受到成本与体积因素也不能无限制的增加电容。

一般会按照输出功率配置电容,大致的标准为 2~3uF/W ,本次项目输出位 5V/2A ,也就是 10W ,故选择 33uF 的电解电容,并且电容的正极电压高达 330V ,故电容的耐压要求取 400V (保留裕量)。 

3.3.3 RCD 电路

主要用于吸收 MOS管上的尖峰电压,防止 MOS 管被烧坏。既然是吸收尖峰电压的,它的耐压值也会比较高一些,老师选择的是 FR107 ,是一颗耐压 700V 的快恢复二极管,电阻、电容的取值先按照数据手册推荐的来(电阻: 150K 1206 ;电容: 2.2uF 1206),后期会根据电路实际测试的波形进行微调。

3.3.4变压器

变压器的作用是将高压变为低电压,同时起到一个强电弱电隔离的作用,变压器是整个反激开关电源的核心,但是不同于其他电子元器件可以直接购买现成的产品,变压器一般都需要定制,先给出最后设计出变压器的参数如下图。

详情请见 3.5 变压器的机关方法。

3.3.5输出二极管

输出二极管的作用是在原边的 MOS 管打开时截止住感应出的反向电压,并且这个电压有可能会很大,所以这颗二极管的耐压要求会比较高,一般要几十伏。

同时在原边 MOS 管关闭时,它又需要承受一个比较大的输出电流,所以这次我选择的是 SB10100,耐压 100V ,最大导通电流 10A 。

这颗二极管两端的电压也会存在尖峰,所以也需要给它配置电容、电阻来吸收这个尖峰,取值也暂时按照数据手册推荐值(电阻 22R ;电容 1nF )。 

3.3.6输出电容

输出电容主要影响输出纹波的大小, 选型时主要考虑两个参数:容值大小、ESR(电容寄生电阻),至于两个参数的取值可以根据公式大致推算,但是一开始比较简单的方法是一开始就选择两颗差不多大小的电容,先放上去看看,然后再根据纹波的大小来调节电容的大小。

老师保守一点,第一版选择的是两颗 680uF/45mΩ 的电容,这样测量出的纹波大致 130mV 。

如果想进一步减小纹波,可以考虑在这两颗电容之间加一颗电感,构成一个 CLC 网络,纹波就可以减小到 30mV ,如下图。

3.3.7电压反馈电路

电压反馈电路作用是向芯片反馈当前的电压值,从而让芯片微调 PWM 的占空比来稳定输出电压,主要过程如下:

某时刻输出低于 5V → 下图中蓝色原点的电压降低 → TL431 试图稳定住该点的电压 → TL431 所在通路上电流会减小 → 光偶中的发光二极管变暗 → 将电压不足信号传递到了芯片内部 → 芯片收到信号后增加占空比来抬高电压。

注意事项:

(1)右侧两个电阻的取值会影响到输出电压,对应的关系如下。

(2)光耦需要选择线性光耦,老师选择的型号是 PC817A

3.3.8主芯片

主芯片所涉及的电路如下图所示:

本项目老师选择的芯片是 HE500-15,该芯片内部集成了 MOS 管,PWM波产生电路以及反馈和保护电路,是一颗非常典型的反激芯片。这部分电路其实反而是最简单的,直接照着数据手册抄就可以,简单介绍如下:

(1)1 号引脚:接反馈

(2)2 号引脚:芯片的电源输入。

单独在变压器上绕了一个线圈,通过二极管以及电容的整流滤波变成低压直流电后给芯片供电。

(4)4 号引脚:MOS 管的漏极,接到变压器的初级线圈。

(5)5 号引脚:MOS 管的源级。

接两个采样电阻,用来监测输入电流的大小。如果电流太大,就会触发内部的过流保护。

(6)6 号引脚:接地。

(7)7 号引脚:接过压保护的分压电阻,注意 7 号引脚接入的 VBUS 是在电路一开始,整流后引出的 VBUS 电压。

(8)8 号引脚:内部比较电压,接 47nF 的电容即可。

(以上序号存在一点问题,但是老师就这么讲了,我就顺着他这么写了。)

以上电路是可以工作的,但是需要量产售卖的话,还需要假如一些保护器件和 EMI 器件,否则就只要读懂数据手册即可。

3.4 LAYOUT 要点

3.4.1走线顺畅

下图中蓝色标注出来的为主回流,电流大,故这两条路径走线要尽可能的短,不能绕弯。

主回流的原理图
主回流的PCB图(白线)

(我画过 PCB ,所以我可以理解老师大致的意思,没有画过的读者,建议自己实操一遍。)

3.4.2电路隔离

初级和次级电路必须要做好隔离,如下图,可以看到两边的地平面都是分开的。

3.4.3防干扰

芯片周边的元件要尽离芯片近,尤其是反馈部分(上面横向的矩形)的元件要远离干扰源。

3.5变压器的计算方式

思考:变压器输入电压和输出电压的比值就是主副线圈的杂数比。但是实际在制作一个变压器,这两个线圈到底应该绕多少圈呢? 10 圈和1  圈,以及 100 圈和 10 圈,它们都是 10: 1 的匝数比,那么它们之间会有区别吗?我们又应该用多粗的线去绕制这个变压器呢?铁芯又应该如何选择呢?等等,计算出变压器的所有参数其实是制作手机充电器中最复杂的问题。

说明1:因为我这个人比较较真,有点钻牛角尖了,所以我可能会在博客里字里行间的表达没有必要什么都钻牛角尖的想法,表达产品需要一次一次迭代、参数计算没不可能一次就完美实现的想法,如果正在看这篇博客的你没有这个问题的话,略过就好了

说明2:设计该电源需要你对反激电源的原理有足够充分的认识,但是一般的新人又不太了解反激电源的原理,所以就设计不出变压器,那设计不出变压器就做不出反激电源,不亲自做一遍反激电源,你就不可能对反激电源的原理有充分的认识。很多人都会在这个死循环中跳脱不出来了,破局的关键其实就是先别管理论,放下看不懂的知识,用最简单的办法先把反激变压器给设计出来再说,然后再一步一步的迭代学习。

3.5.1确定匝数比

第一步需要根据下面的公式确定匝数比,其中需要讲解的如下:

  1. V_{in(min)}是指变压器输出(主绕组端)电压的最小值,一般认为 220V 交流电压有效值最低为 185V ,经过整流滤波之后电压值乘以 \sqrt{2} 。
  2. V_{F} :输出二极管的导通压降,一般为 0.7V 。
  3. D:最大占比,一般取 0.4 。

综上,可以计算出大致的匝数比为 30。

看到这里不知道你会不会觉得这有点糊弄人,这些参数选取都非常随意,比如说二极管的导通压降,有的可能是 0.6V ,包括最大占空比,那为什么非要是 0.4 呢? 0.35 行不行?而一旦修改了这些值,最后的匝数比计算结果也就不是 30 了。

这其实也是反激变压器设计时最麻烦的一件事,永远不可能一下子就得到最优解,只要参数在一个差不多的范围之内,最后设计出来的电源其实都是可以工作的,所以一开始我们不需要纠结太多,包括公式是如何推导出来的,也不需要太在意,时刻记住我们今天的目标就是先把第一个变压器计算出来再说,后面再来迭代优化。

3.5.2原边电感

确定好匝数比之后,根据以下公式确定原边线圈的电感值,其中需要解释的部分如下:

(因为在 MOS 管打开时,副边就相当于不存在,原边就等效成一个电感,该电感值的大小就直接影响到纹波电流的大小。)

  1. \eta:效率先取估算值为 75%。
  2. fsw:是指原边电感接受到的频率,也就是芯片的频率 为 65KHZ。
  3. P_{0}:输出功率,5V/2A 故输出功率为 10W 。

通过以上计算可得,原边电感值约为 6.2mH 。

 3.5.3选定磁芯

磁芯的大小一般和输出功率有关,如下图,因为磁芯越大就可以选用更粗的线,绕更多的线圈,具体选多大的磁芯更多的是经验值。

本次输出功率为 10W ,又是第一次设计变压器,稳妥一些选大一号的 EE22,确定磁芯后就确定了磁芯额截面积,如下图。

3.5.4线圈匝数

原边线圈需要根据以下公式计算,需要说明的是:

  1. I_{PK}:原边峰值电流,计算公式在下图中小字附上,不展开讲解。
  2. B_{M}:最大磁通密度,一般取值为 0.25T 。
  3. A _{e}:最大磁芯面积,上一节中确定的参数。

最后计算出的原边匝数大约为 157 匝,根据一开始算出来的匝比是30,可以算出副边为 15.2 匝,向上取整为 16 匝,再根据匝比反推出原边匝数是 180 匝。

本次用的芯片还需要辅助绕组供电,芯片要求的输入电压是 15V 左右, 是 5V 的 3 倍,所以辅助绕组的杂数为 18 圈。

3.5.5绕线的直径

一般来说流过 5A 的电流就需要至少 1mm^{2} 粗的线,故首先计算出线圈中电流的有效值如下图红色框(省略了计算过程),其中需要解释的部分如下:

  1. 计算出的原边线径为 0.15mm,稳妥一些用 0.2mm 直径的。
  2. 计算出的副边线径为 0.89mm,稳妥一些采用 0.1mm 直径的,考虑到趋肤效应,故改用 4 根 0.5mm 直径的铜丝,并联起来用会更好一点。
  3. 辅助绕组电流比较小,直接用 0.1mm 的就可以

3.5.6交付产家

交付厂家生产之前,还需要提供以下信息:

  1. 骨架样式
  2. 引脚个数
  3. 线圈绕制方向

小 tips:

  1. 在前面提到过,反激电源的两个线圈是以相反方向缠绕,需要标注清楚同名端
  2. 因为初级线圈比较多,可以采用三明治绕法:先绕一半的初级线圈,然后 依次 绕 次级线圈和辅助线圈,最后再绕初级线圈的剩下的一半,这样耦合的效果会更好。

反激变压器的计算方法有很多,以上介绍的其中最简单的一种,而且计算出的结果也不一定是最优解,甚至两个章节给出的参数都不太一样。实际上这两组参数都可以正常工作,但是都需要做成成品电源后测试,优化迭代。本项目的首要目的是设计出第一个能用的反激变压器,制作出来 后带着板子去学习更多相关的电源知识,充分理解公式的意义,思考如何改进变压器,就会事半功倍,远胜于拿着书本知识从入门到放弃。


本文参考:工科男孙老师的个人空间-工科男孙老师个人主页-哔哩哔哩视频 (bilibili.com)

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

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

相关文章

未使用CMSIS之前的stm32标准库中SystemHandler的宏定义

背景&#xff1a; 在stm32的标准库还叫STM32F10xxx_FWLib_V2.0.3的那个年代 文件 STM32F10xFWLib_V2.0.3/FWLib/library/inc/stm32f10x_nvic.h 中有对System Handlers的定义。具体内容如下&#xff1a; /* System Handlers -------------------------------------------------…

【Python】2.基础语法(2)

文章目录 1.顺序语句2.条件语句2.1语法格式2.1.1 if2.1.2 if - else2.1.3 if - elif - else 2.2缩进和代码块2.3 空语句 pass 3. 循环语句3.1 while 循环3.2 for 循环3.3 continue3.4 break 4. 综合案例4.1 设置初始属性4.2 设置性别4.3 设置出生点4.4 针对每一岁, 生成人生经历…

【MySQL】主键优化原理篇——【数据组织方式&主键顺序插入&主键乱序插入&页分裂&页分裂】

前言 大家好吖&#xff0c;欢迎来到 YY 滴MySQL系列 &#xff0c;热烈欢迎&#xff01; 本章主要内容面向接触过C Linux的老铁 主要内容含&#xff1a; 欢迎订阅 YY滴C专栏&#xff01;更多干货持续更新&#xff01;以下是传送门&#xff01; YY的《C》专栏YY的《C11》专栏YY的…

AI搜索:重塑信息获取的新纪元

在信息爆炸的时代&#xff0c;如何快速、准确地获取所需信息成为了每个人面临的挑战。传统的搜索引擎虽然在一定程度上解决了这一问题&#xff0c;但广告干扰、结果冗余、内容质量参差不齐等问题仍让用户体验大打折扣。随着AI技术的不断发展&#xff0c;AI搜索产品以其独特的优…

【软件测试】bug以及测试用例的设计方法

系列文章目录 第一章 【软件测试】常见的开发模型和测试模型 文章目录 系列文章目录前言一、bug的基本要素。二、bug的处理流程三、弱网测试四、设计方法1.基于需求的设计方法2.具体的测试方法&#xff08;1&#xff09;等价类划分法&#xff08;2&#xff09;边界值分析法&am…

Serilog文档翻译系列(三) - 基础配置

Serilog 使用简单的 C# API 来配置日志记录。当需要外部配置时&#xff0c;可以&#xff08;慎用&#xff09;通过使用 Serilog.Settings.AppSettings 包或 Serilog.Settings.Configuration 包进行混合配置。 创建日志记录器 日志记录器是通过 LoggerConfiguration 对象创建的…

STM32硬件篇:W25Q64

W25Q64简介 W25Qxx系列是一种低成本、小型化、使用简单&#xff08;使用SPI通信协议&#xff09;的非易失性&#xff08;掉电不丢失&#xff09;存储器&#xff0c;常用于数据存储、字库存储、固件程序存储等场景。 【注意】W25Qxx芯片只支持SPI的模式0和模式3。 存储介质&am…

【单片机开发】IAP技术详解及应用

【前言】 在单片机开发过程中&#xff0c;程序的烧录是一个至关重要的环节。随着技术的不断演进&#xff0c;单片机烧录方式也日益多样化。 【单片机开发】单片机的烧录方式详解&#xff08;ICP、IAP、ISP&#xff09;-CSDN博客文章浏览阅读775次&#xff0c;点赞14次&#x…

kali系统学习笔记1

收集DSN相关信息命令 1、ping IP/URL 例如 ping 153.3.238.110 ping www.baidu.com2、nslookup 域名 例如 nslookup www.baidu.com3、dig URL //查询域名正向解析 dig www.baidu.com //查询域名所有解析&#xff08;正向、反向&#xff09; dig www.baidu.com any//通过指…

江协科技stm32————11-1SPI通信协议

目录 SPI通信 硬件电路 移位示意图 SPI时序基本单元 模式0 模式1 SPI时序 发送指令 指定地址写 指定地址读 SPI通信 四根通信线&#xff1a; SCK&#xff08;Serial Clock&#xff09;&#xff1a;串行时钟线 MOSI&#xff08;Master Output Slave Input&#xff09…

书生大模型实战营闯关记录----第十一关:LMDeploy 量化部署进阶实践 KV cache量化部署,W4A16 模型量化和部署

文章目录 1 配置LMDeploy环境1.1 环境搭建1.2 InternStudio环境获取模型1.3 LMDeploy验证启动模型文件 2 LMDeploy与InternLM2.5 2.1 LMDeploy API部署InternLM2.52.1.1 启动API服务器 2.1.2 以命令行形式连接API服务器 2.1.3 以Gradio**网页形式连接API服务器** 2.2 LMDeploy…

使用developer command prompt查看代码信息

1.在Visual Studio里面写入以下的代码&#xff0c;命名为Myproject #include <iostream>template<typename T> T Sub(T a, T b) {return a - b; } int main() {int x 1, y 2;int z Sub(x, y);double a 1.0, b 2.0;double c Sub(a, b);return 0; }2.打开dev…

在VBA中,对Excel单元格的操作方法 (qo+op)

一、读取单元格内容 读取单元格的内容&#xff0c;将单元格的值赋给一个变量。例如&#xff0c;读取A1单元格的内容并打印到窗口。 Sub Cell() Dim cellContent As String cellContent Worksheets("Sheet1").Range("A1").Value Debug.Print cellContent …

C语言基础(二十八)

1、冒泡排序&#xff1a; #include "date.h" #include <stdio.h> #include <stdlib.h> #include <time.h> // 函数声明 void bubbleSort(int *arr, int n); int* createRandomArray(int n, int *size); int main() { int time getTi…

全能型AI vs 专业型AI:未来AI市场的决战?

随着人工智能&#xff08;AI&#xff09;技术的飞速发展&#xff0c;AI的应用范围已从最初的学术研究扩展到商业、医疗、制造、金融等众多领域。在这个过程中&#xff0c;不同类型的AI产品应运而生&#xff0c;并逐渐成为市场的焦点。近年来&#xff0c;全能型AI和专业型AI之间…

【时时三省】(C语言基础)指针进阶6qsort函数的使用

山不在高&#xff0c;有仙则名。水不在深&#xff0c;有龙则灵。 ----CSDN 时时三省 qsort函数的使用 冒泡排序 qsort() 快速排序 它什么类型都可以用 比如&#xff1a; 整形数据 字符串数据 结构体排序 void gsort ( void * base&#xff0c;// base中存放的是待排…

智能指针(RAII)

智能指针&#xff08;RAII&#xff09; 一、内存泄漏1、介绍2、原因3、泄漏的内存类型分类 二、RAII1、介绍2、基本思想3、优点4、实现方式 三、unique_ptr1、介绍2、主要特性3、注意事项4、unique_ptr类5、示例代码6、运行结果7、简单实现 四、shared_ptr1、介绍2、主要特点3、…

深度学习(11)---Swin Transformer详解

文章目录 一、引言二、结构三、Patch Merging操作四、W-MSA详解五、SW-MSA详解 一、引言 1. 在原论文中&#xff0c;首先在开头作者就分析&#xff0c;当前的Transformer从NLP迁移到CV上没有大放异彩主要原因集中在&#xff1a;  (1) 两个领域涉及的规模不同&#xff0c;NLP的…

YOLOv9改进策略【模型轻量化】| ShufflenetV2,通过通道划分构建高效网络

一、本文介绍 本文记录的是基于ShufflenetV2的YOLOv9目标检测轻量化改进方法研究。FLOPs是评价模型复杂独的重要指标&#xff0c;但其无法考虑到模型的内存访问成本和并行度&#xff0c;因此本文在YOLOv9的基础上引入ShufflenetV2&#xff0c;使其在在保持准确性的同时提高模型…

十一. 常用类

文章目录 一、包装类1.1 包装类的继承关系1.2 包装类和基本数据类型的转换1.3 包装类与String之间的转换1.4 包装类的常用方法 二、String类2.1 String类的理解和创建对象2.2 String的创建方式2.3 字符串的特性2.4 String的常用方法 三、StringBuffer和StringBuilder类3.1 Stri…