关于高边(high side)与低边(low side)

最近与朋友聊到,我们的REF7306可以高边(high side)与低边(low side),然后朋友问我,啥子叫high side与low side,我……

  1. 先看图1
    图1,MOS管的高边与低边

图2,三级管的高边与低边,MOS管的高边与低边
2. 驱动负载有两种基本方法:低边驱动,高边驱动。
电路中,晶体管常常被用来当做开关使用。晶体管用作开关时有两种不同的接线方式:高边(high side)和低边(low side)。高边和低边是由晶体管在电路中的位置决定的。晶体管可以是双极性晶体管(BJT)或者场效应管(MOSFET)。
左边
图3 ,左边,开关接地,也就是说开关管在负载和地之间,是低边电路
图3 ,右边,开关连接在电源正极和负载高电压端之间,是高边电路

图3,高边与低边是由开关的位置决定的

  1. 低边晶体管电路
    低边开关,晶体管接地,也就是说晶体管在负载和地之间。由于晶体管正在开关接地线路或位于负载的低电压端,因此称为低边开关。
    通常使用 NPN 型三极管或者 N 沟道场效应管。
    图4,低边电路
    对于 NPN 三极管来说,发射极接地,集电极连接到负载。作为开关,三极管工作在饱和状态。饱和意味着有足够的基极电流来完全开启三极管。
    对于 N 沟道场管来说,源极接地,漏极连接到负载的负侧。虽然您可以在该电路中使用结型场效应管(JFET),但增强型场管效果更好。注意:场管有一个下拉电阻。
    低边驱动特点:容易实现(电路也比较简单,一般由MOS管加几个电阻、电容)、适用电路简化和成本控制的情况。

  2. 高边晶体管电路
    与低边开关相对的是高边开关。晶体管连接在电源正极和负载高电压端之间。在 Arduino 或 Raspberry Pi 电路中使用这些晶体管可能会有些困难。
    通常使用 PNP 型三极管或者 P 沟道场效应管。
    图5,高边电路
    对于 PNP 型三极管来说,发射极连接到电压正极,而集电极连接到负载。对比上面的低边三极管开关电路,PNP 的发射极和集电极正好是与之颠倒的。就像 NPN 三极管一样,PNP 三极管需要在饱和区工作才能完全导通晶体管。
    对于 P 沟道场管来说,源极连接到电压正极,漏极连接负载。与低边开关一样,您可能希望使用增强型场效应管。注意:场管有一个上拉电阻。
    图6,高边电路
    当被控信号(负载电路)的电压电压和控制信号电压相同时,如果使用 P 型晶体管,上面的电路可以正常工作。值得注意的是 P 管是个反管,也就是说,输入高电平时,电路不导通,输入低电平时导通。
    高边驱动器的设计比同等的低边复杂一些,一个原因是它通常使用(NMOSFET)作为功率元件。NMOSFET是优选的,因为它们可以制造得比p沟道器件更小且更便宜,以获得相同的性能。但是NMOSFET通过将栅极电压升高到漏极电压以上而导通。在汽车应用中,漏极电压通常是系统中的最高电压(即电池电压),因此需要额外的升压器件将栅极电压提升到足够的水平。

  3. 高边晶体管为什么会存在
    对于开关来说,使用低边开关简单易用,易于理解。而且,对于双极型(BJT)晶体管和场管来说,P 管通常比 N 管具有更大的电阻值(或更低的电流输出能力)。既然如此,它们为什么存在呢?
    低边开关电路切换的是对地的导通,高边开关电路切换的是对电源的导通。有时候,你想保持接地并且控制对电源的导通与否。还有一个原因就是,即使晶体管完全导通,其两端仍然存在一个很小的压降。这意味着,被控制器件的接地不是完全接地的 0 伏电压。对于像 LED 这样的器件,切换电源或是地并不重要。但是,对于像 MCU 这样的的有源设备需要良好的接地!这种情形需要用到高边管。还有一种情况就是开关电源中,需要控制对待转换电源的通断,也需要高边管。还有一些其他的情况,我们不一一赘述。
    总体来说,如果你要打开或关闭器件,低边开关是一个简单的解决方案。但是,如果你要控制的是整个电路或电压敏感设备的供电,则需要使用高边开关。

  4. 晶体管驱动另一个晶体管
    晶体管驱动电路是指用来驱动另一个晶体管的电路。晶体管驱动电路被用在当驱动信号电压(或电流)和被控晶体管电压不同的情况。下图是需要晶体管驱动的两种情况。
    图7,晶体官驱动另一个晶体管
    大电流场管具有相当大的栅源极阈值电压(Vgs)。虽然来自 Arduino GPIO 引脚的 5 伏电压可能足以打开晶体管,但不足以使其进入饱和状态。在场管饱和之前,其导通电阻可能相对较高,从而限制了它可以处理的最大电流。
    当被控电压高于控制信号电压时,用 NPN 三极管驱动 PNP 三极管 或 P 沟道场管是很常见的。如果没有驱动电路,晶体管可能永远不会关断。

广东省内游之四,深圳六个海边栈道(摘抄自头条定格深圳)

1.大小梅沙海滨栈道

环海⽽建,⼀眼望去皆是海景,栈道连接了⼤⼩梅沙,还可以去打卡
大小梅沙海滨栈道1
大小梅沙海滨栈道2
大小梅沙海滨栈道3
大小梅沙海滨栈道4
大小梅沙海滨栈道5

2.深圳湾海滨栈道

蜿蜒在深圳湾畔,全长近17公里,沿途串连了二十余个主题公园
深圳湾海滨栈道1
深圳湾海滨栈道2
深圳湾海滨栈道3
深圳湾海滨栈道4
深圳湾海滨栈道5

3.深圳天文台海滨栈道

依山而建,蜿蜒曲折,直通大海,你可以边感受海风拂面,边欣赏山川大海
深圳天文台海滨栈道1
深圳天文台海滨栈道2
深圳天文台海滨栈道3
深圳天文台海滨栈道4
深圳天文台海滨栈道5

4.前海⽯公园海边栈道

漫步栈道,海对岸的跨海⼤桥、鳞次栉⽐的城市⾼楼,震撼⼜浪漫的巨型摩天轮…..
前海石公园海边栈道1
前海石公园海边栈道2
前海石公园海边栈道3
前海石公园海边栈道4
前海石公园海边栈道5
前海石公园海边栈道6

5.S型公路旁的海滨栈道

位于万科十七英里与玫瑰海岸中间,藏了一条长长的海边栈道。
S型公路旁的海滨栈道1
S型公路旁的海滨栈道2
S型公路旁的海滨栈道3
S型公路旁的海滨栈道5
S型公路旁的海滨栈道6
S型公路旁的海滨栈道7

6.背仔角海滨栈道

栈道的尽头还藏着一座灯塔,蓝天白云下,红白相间的灯塔极具视觉冲击。
背仔角海滨栈道1
背仔角海滨栈道2
背仔角海滨栈道3
背仔角海滨栈道4
背仔角海滨栈道5

广东省内游之三,深圳网红打卡点(摘抄自头条定格深圳)

深圳10个充满异域风情的好去处,我只选了其中六个

一.官湖村 — 被吹成是 日本“小镰仓”风情

深圳官湖村1
深圳官湖村2
深圳官湖村3
深圳官湖村4
深圳官湖村5

官湖村,又被称为深圳的“小镰仓”,不仅有同款碧海蓝天、银白沙滩,更有一个神似镰仓车站的小路口,漫步其中有种走在日本镰仓街头的错觉,来这里逛逛,随处可见的海滨风情

二. 玫瑰海岸, 被吹成是 “圣托里尼”海岛风情 “,拍婚纱照的好地方,不适合游泳。

玫瑰海岸1
玫瑰海岸2
玫瑰海岸3
玫瑰海岸4

蔚蓝大海、红色大桥、各色城堡…,加上玫瑰海岸别具特色的海景,让你仿佛来到了“圣托里尼”,不仅可以感受到海岸风情,拍婚纱照的好地方

三. 杨梅坑, 被吹成是 | 英国度假山庄风情 |,但的确值的一去。

杨梅坑1
杨梅坑2
杨梅坑3
杨梅坑4

杨梅坑,深圳看海的绝佳去处,海水清澈透亮、沙滩干净细腻,临海的悬崖张牙舞爪、岩石粗犷狂野,半山上还藏着浪漫的鹿嘴山庄,远远望去有种英国度假庄园的风情

四. 大沙河生态长廊, 以前的臭水河,治理后,被吹成是 | “塞纳河”河畔风情 |

大沙河1
大沙河2
大沙河3
大沙河4

大沙河生态长廊是深圳最大的生态长廊,大沙河纵贯南山区,全长13.7km ,总面积95万㎡,潺潺的流水、盎然的绿意,来这里散散步,感受“塞纳河”的河畔风情

五. 欧洲印象, 几个破房子,被神吹成| 仿若欧洲风情小镇 |

欧洲小镇1
欧洲小镇2
欧洲小镇3

唯一特点只能是拍照好看

超多的拍照打卡点,让你随手拍出欧洲风情满满的照片

六. 烟墩山生态公园,被神吹成| 西班牙建筑风情 |

烟墩山生态公园1
烟墩山生态公园2
烟墩山生态公园3
烟墩山生态公园4
烟墩山生态公园5
烟墩山生态公园6

约56000㎡的公园满满西班牙风情,等比例复刻了一座“海格力斯灯塔”,逼真程度让人仿佛窥见了明媚的西班牙海岸,灯塔旁边的红砖小楼,复古味十足,公园还私藏了条沿海而建的砖红色木质栈道。

Hexo重新布置到github出错

本来在github上部署的,可是因为速度慢,转战到gitee上了。然而两年中一直写技术文章没有问题。可是因为看了网络小说,想写出一些糟点,因为有点儿关键字,总是不给更新。一气之下,决定转回github,然而竟然部署失败了……

1
2
3
4
5
6
7
8
9
fatal: 'https://github.com/你的用户名/你的用户名.github.io.git/' 鉴权失败
FATAL {
err: Error: Spawn failed
at ChildProcess.<anonymous> (/home/主目录名/myblog/node_modules/hexo-util/lib/spawn.js:51:21)
at ChildProcess.emit (node:events:513:28)
at Process.ChildProcess._handle.onexit (node:internal/child_process:293:12) {
code: 128
}
} Something's wrong. Maybe you can find the solution here: %s https://hexo.io/docs/troubleshooting.html
  1. 反复登录用户名,与密码,木有错误。然而还是失败

  2. ssh的密钥重新生成,并重新更新在github上,确认没有错。然而还是失败

    然后百度搜索了“鉴权失败”那一行,给出的解决办法
  3. 进入github.com我的主页里,

    setting

    Developer settings

    Personal access tokens

    new access tokens

的时候有个时间选择,可以选择某个时间长度(一个月、三个月什么的,因为我个人用的就选择的永不过期),然后创建成功后会有个token,把它当作密码,在你重新推送你项目的时候,命令行提示你输入邮箱和密码的时候,把这个token当密码输入(复制即可)。满决欢喜的试,然而还是失败了。当时陷入误区,还反复试了三遍!!!

以为没有半法了,过了三天,才想起来百度 hexo的错误代码。给出试错
  1. 以下方法。还是失败了

    1
    2
    3
    4
    $ cd myblog
    $ rm -rf .deploy_git
    $ git config --global core.autocrlf false #把git加入系统环境变量
    $ hexo clean & hexo g & hexo d
  2. 再查,以下方法成功了

    1
    2
    $ cd myblog
    $ vim _config.yml #到最后几行
    1
    2
    3
    4
    5
    6
    7
    8
    # Deployment
    ## Docs: https://hexo.io/docs/one-command-deployment
    deploy:
    type: git
    repo: https://github.com/YourName/YourName.github.io.git(不要使用这个)
    git@github.com:YourName/YourName.github.io.git(用这个)
    branch: master
    $ hexo clean & hexo g & hexo d

在Ubuntu系统中安装Docker

官网安装教程:
https://docs.docker.com/engine/install/ubuntu/

一.卸载docker-engine旧版本:
1
$ sudo apt-get remove docker docker-engine docker.io containerd runc

完全卸载所有docker相关文件的操作方式:

1
2
3
$ sudo apt-get purge docker-ce docker-ce-cli containerd.io docker-compose-plugin
$ sudo rm -rf /var/lib/docker
$ sudo rm -rf /var/lib/containerd
二. 安装方法
  1. 设置存储库 更新apt包索引并安装包,以允许apt通过HTTPS使用存储库:
1
2
3
$ sudo apt-get update
$ sudo apt-get install ca-certificates curl
gnupg lsb-release
  1. 添加Docker的官方GPG密钥:

    1
    2
    $ sudo mkdir -p /etc/apt/keyrings
    $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
  2. 使用以下命令设置存储库:

1
2
3
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

配置镜像加速器

1
2
3
4
5
6
7
8
9
$ sudo mkdir -p /etc/docker
$ sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://5sxvtqpp.mirror.aliyuncs.com"]
}
EOF

$ sudo systemctl daemon-reload
$ sudo systemctl restart docker
  1. 安装Docker引擎

    1
    2
    $ sudo apt-get update
    $ sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
  2. 启动Docker服务

    1
    $ sudo service docker start
  3. 验证Docker安装是否成功。

    1
    $ sudo docker run hello-world

debootstrap学习笔记2

  1. LD_PRELOAD,是个环境变量,用于动态库的加载,动态库加载的优先级最高,一般情况下,其加载顺序为LD_PRELOAD>LD_LIBRARY_PATH>/etc/ld.so.cache>/lib>/usr/lib。

1.1 LD_PRELOAD运用总结

定义与目标函数完全一样的函数,包括名称、变量及类型、返回值及类型等

将包含替换函数的源码编译为动态链接库

通过命令 export LD_PRELOAD="库文件路径",设置要优先替换动态链接库

如果找不替换库,可以通过 export LD_LIBRARY_PATH=库文件所在目录路径,设置系统查找库的目录

替换结束,要还原函数调用关系,用命令unset LD_PRELOAD 解除

想查询依赖关系,可以用ldd 程序名称

debootstrap学习笔记1

1. 简介

        debootstrap是debian与ubuntu下都有的一个工具,用来构建一套基本的系统(根文件系统)。生成的目录符合Linux文件系统标准(FHS),即包含了/boot、/etc、/bin、/usr等等目录,但它比发行版本的Linux体积小很多,当然功能也没那么强大,因此只能说是“基本的系统”。fedora下(centos亦可用)有类似功能的工具:febootstrap。

2. 安装 与 命令行格式
1
2
3
sudo apt-get install debootstrap
# 可加参数指定源
sudo debootstrap --arch [平台] [发行版本代号] [目录] [源]

当前debootstrap支持的发行版本可以在/usr/share/debootstrap/scripts查看

2.1 命令行示例

sudo debootstrap –arch amd64 jammy /mnt

构建x86(64位)平台ubuntu最新发行版22.04(代号为jammy)的基本系统,存放到/mnt目录

sudo debootstrap –arch amd64 buster ./

构建amd64平台debian最新发行版debian10(代号为buster)的基本系统,存放到当前目录下

以上两行例子都没有指定源,那么就是默认了。
输入上述命令后,就会从网络下载相关的文件。如果出现以下情提示则表示成功

1
I: Base system installed successfully.
3. 用debootstrap构建编译环境–amd64架构debian10案例
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

# 创建环境进入
mkdir buster&cd buster
sudo debootstrap --arch amd64 buster ./buster1
sudo chroot ./buster1

# 修改云源
sudo vim /etc/apt/sources.list # 改为阿里云或科大,或清华云
# 改完后保存退出vim
apt-get update

# 部分版本是没有装编译工具包的
apt-get install dpkg-dev
apt-get install debhelper

# 下载编译源码
cd /tmp
apt-get source redis
apt-get build-dep redis
cd redis.x.x
dpkg-buildpackage
find ../*.deb

ubuntu安装Wine

一 安装wine, 以在debian12下为例

  1. 开启32位架构的支持

    1
    2
    3
    sudo dpkg --add-architecture i386  #必须先执行这一个
    sudo apt update # 这一点很重要
    sudo apt upgrade -y # 这一点很重要
  2. 下载添加wine的仓库密钥

    1
    2
    3
    $ sudo mkdir -pm755 /etc/apt/keyrings
    $ sudo wget -O /etc/apt/keyrings/winehq-archive.key https://dl.winehq.org/wine-builds/winehq.key
    # 上一句因为网站问题,总是不成功,但在win11下竟然能下载https://dl.winehq.org/wine-builds/winehq.key 这个文件,于是copy到 /etc/apt/keyrings/目录下,并改名为 winehq-archive.key
  3. 添加wine的仓库(适合Ubuntu22.04,别的ubuntu版本请在wine官网上找)

    1
    2
    $ sudo wget -nc -P /etc/apt/sources.list.d/ https://dl.winehq.org/wine-builds/debian/dists/bookworm/winehq-bookworm.sources
    # 上一句因为网站问题,总是不成功,但在win11下竟然能下载https://dl.winehq.org/wine-builds/debian/dists/bookworm/winehq-bookworm.sources, 于是copy到 /etc/apt/sources.list.在/目录下
  4. 更新并安装wine的包

    1
    2
    3
    4
    5
    6
    7
    sudo apt update  # 必须升级
    sudo apt install --install-recommends winehq-stable #稳定分支
    # 或者
    sudo apt install --install-recommends winehq-devel #开发分支
    # 因为 dl.winhq.org的网址非常难以到达,很不成功。 于是
    $ vim /etc/apt/sources.list.d/winehq-bookworm.sources
    把文件中的 https://dl.wineqh.org/wine-builds/debian/ 改为 https://mirrors.tuna.tsinghua.edu.cn/wine-builds/debian/

二 安装wine依赖环境(很重要)

  1. 安装winetricks,Wine的辅助配置工具,超级便利

    1
    2
    sudo apt install --install-recommends winetricks # debian得到wine网站上下了 

  2. 安装字体,解决Wine及初始配置界面乱码

    将以下 simfang.ttf 、 simhei.ttf 、 simkai.ttf 、simsun.ttc 字体文件复制到 Wine 安装路径下的字体目录 /opt/wine-stable/share/wine/fonts 即可。如果有别的需求,也可以将更多字体复制到该目录下,比如微软雅黑字体文件 msyh.ttf 、 msyhbd.ttf。

  3. 安装Wine依赖,终端下执行

    1
    2
    3
    $ winetricks
    如果因网络原因winetricks无法安装与执行,则运行
    $ winecfg # 进行配置

初始执行 winecfg或 wine 或 winetricks ,会要求下载安装 wine-mono 和 wine-gecko ,这是一个相对漫长的过程,并且中途还可能出错,有可能需要反复多次才能下载安装成功。这些依赖文件是下载安装在: ~/.cache/wine 目录下的。

然后会出现界面,选择默认容器,安装配置,用鼠标选择

1
2
3
4
5
6
7
8
corefonts colorprofile
fontfix fontsmooth-gray fontsmooth-rgb fontsmooth-bgr
gdiplus
d3dx9
riched20 riched30 # 很重要,关系到输入中文时的输入框问题
mfc40 mfc42
vcrun6 vb6run vcrun2003 vcrun2005 vcrun2008
msxml3 msxml4 msxml6

也可以在终端下用命令行形式安装,效率更高。

1
2
3
4
5
6
7
8
$ winetricks corefonts colorprofile
$ winetricks fontfix fontsmooth-gray fontsmooth-rgb fontsmooth-bgr
$ winetricks gdiplus
$ winetricks d3dx9
$ winetricks riched20 riched30
$ winetricks mfc40 mfc42
$ winetricks vcrun6 vb6run vcrun2003 vcrun2005 vcrun2008
$ winetricks msxml3 msxml4 msxml6

这些依赖,将会下载安装到: ~/.cache/winetricks 目录下。

  1. Wine配置

    1
    $ winecfg

    就打开了Wine配置窗口,其实在winetricks中也能打开。

三 安装微信
1
2
到腾讯网站上下载微信windows版的安装软件weixin*.exe,然后鼠
标点击它,右键,选择wine安装就行

更推荐的方式是以 Wine 添加 - 删除程序
去完成,如下:
终端下执行: wine uninstaller

四 后遗症

以上步聚安装完wine,并成功运行微信后,本来是正常的,可是发现硬盘可用空间不断的缩小,以致于影响到别的软件的运行。于是

1
2
3
$ df -lh #查看硬盘空间,发现己经没有多少可用空间了。
$ du -h --max-depth=1 #查看到认底是哪个目录占用了多少空音
# 发现是 ~/.wine 竟然在不停地吞噬可用硬盘空间。

于是只好删除wine,还是用了vbox

摘抄2---中国真心不容易

  1. 突然觉得中国真心不容易,国力要和美国比,福利要和北欧比,环境要和加拿大比,机械要和德国比,手机要和苹果比,联想要和IBM比,长城要和通用丰田比,龙芯要和Intel比, C919要和波音比…… 一个国家的制造vs整个世界全部高端! 但我不知道有哪个国家建国60多年靠自己的努力达到中国目前的高度的?! 不偏激,客观评论。不想赞美谁,也不想诋毁谁,只想说一句:人无完人,事无完美。 我记着有一句话:我国的武器再不好也是保护你的,外国的武器再好也是揍你的。 这世界也有太多人张嘴就是“人家外国人最棒,中国人则完全不行。”说得好像他自己,他爹妈都不是中国人一样。  当很多人有房有车,有钱有闲,享受和平时代时,却跟风喷中国,媚外国。是谁洗了你的脑?难道非要中国象乌克兰、伊拉克、利比亚、叙利亚…… 乱了,失去这一切才醒悟? 别喷我们的祖国了,她知道有不足的地方,她也正在努力追赶与弥补。

  2. 甘蔗哪有两头甜。想要钱多又没有压力,想要稳定安逸钱又不能少,这样的工作地球上哪能找到。能发挥自己潜能、专业长处,且收入稳中有升的工作就是好工作。