自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

刻[苦] 的 blog

开源中国的markdown 是s-h-i-t

  • 博客(101)
  • 资源 (3)
  • 问答 (3)
  • 收藏
  • 关注

原创 MT9700 不能用作USB 口电流倒灌保护

RT,就是有外部供电的USB HUB,希望防止外部的+5V 供电倒灌到电脑的VBUS。MT9700 本身只是个USB 口过流保护,它的手册里也没说带倒灌保护,只是功能框图似乎画出来个反向电流检测功能模块,所以我就想试试看,结果是,果然没有这个隐藏功能。下面是MT9700 手册里的功能框图:注意到这个Reverse Voltage Comparator,也就是反向电压比较器。字面上理解,看起来就是如果存在反向电压,就会让MOS 管截止。而反向电压就是由倒灌的电流引起的。

2025-03-19 02:46:07 205

原创 AVR 单片机硬件供电处理

供电设计是任何硬件设计的关键一环,直接影响到系统的性能。在设计供电时,有两个重要的方面需要考虑:ESD 防护和噪声干扰。这些内容在 [应用笔记 AVR040](http://ww1.microchip.com/downloads/en/appnotes/atmel-1619-emc-design-considerations_applicationnote_avr040.pdf) 中有更详细的叙述,本文只提供简短的总结。

2025-03-02 20:00:23 574

原创 加入二极管的NE555 PWM 电路

R0 阻值等于R2,且远小于R1,所以占空比基本只取决于电位器R1 的位置。可见,这种PWM 电路,高电平对应电容的充电时间,低电平对应放电时间。电容的充电路径上串联了R1 和R2,而放电路径上只有R2,所以放电的时间不可能比充电长。加入二极管就能解决这个问题,用二极管把充电和放电路径分离开,两个路径上的电阻可以独立的调整,占空比也就能随意控制了。这种电路可以用电位器代替两个独立的电阻,使充电时间增加,放电时间就对应缩短,反之亦然,于是方波周期就基本不变,只改变占空比。

2025-03-02 05:29:29 472

原创 PY32F002A 20PIN 引脚分配辅助表格

适用于20pin 封装的PY32F002A 单片机,比如TSSOP-20。表格里方便的显示出所有引脚的功能,标记出已经分配的引脚,避免冲突。标记功能全是用条件格式做的,兼容性比较好。下载连接:https://download.youkuaiyun.com/download/Etberzin/90403138,0 积分。压缩包里面包含ods 和xlsx 两种格式的表格。推荐用libre office 打开ods 格式的,excel 也能打开。xlsx 格式是从ods 转换的,丢失了条件格式。

2025-02-19 11:33:14 248

翻译 掌握FreeRTOS 实时内核 - Mastering the FreeRTOS Real Time Kernel(九至十三章)

十三章全文翻译自:《 Mastering-the-FreeRTOS-Real-Time-Kernel.v1.1.0.pdf 》;内核版本:FreeRTOS V10.6.2;原文 repo:FreeRTOS-Kernel-Book;部分复制粘贴自:Mastering-the-FreeRTOS-Real-Time-Kernel-CN; 本文开源协议:CC BY-SA 4.0;

2025-01-25 09:38:03 100

翻译 掌握FreeRTOS 实时内核 - Mastering the FreeRTOS Real Time Kernel(一至八章)

十三章全文翻译自:《 Mastering-the-FreeRTOS-Real-Time-Kernel.v1.1.0.pdf 》;内核版本:FreeRTOS V10.6.2;原文 repo:FreeRTOS-Kernel-Book;部分复制粘贴自:Mastering-the-FreeRTOS-Real-Time-Kernel-CN; 本文开源协议:CC BY-SA 4.0;

2025-01-25 09:16:54 237

原创 CD4017 转换为二进制计数 - 将译码器输出反向转换实现8-3 编码器

3-8 译码器是把3 位二进制数映射成8 个独立输出,但有时又需要把独立输出转换回二进制数,这个功能可以用几个二极管和电阻搭的电路实现。

2025-01-12 05:16:14 523

原创 用CD4017 计数器实现单键开关电路

单键开关就是一个轻触按键按一下开、再按一下关,所以需要电路自身有记忆功能,或者说是可以锁存状态,然后每次按键时切换状态。CD4017 刚好就可以实现这种状态锁存、切换的功能。

2025-01-06 18:53:14 512

原创 将单色像素值转换成灰阶屏的灰度序列的算法

就是想办法把单色OLED 屏幕的字库转换给灰阶屏用,并且代码中可以根据设置的灰度参数,用一种字体显示出多种深浅颜色。本来感觉会挺复杂的,想了想突然发现其实很简单。

2024-11-12 10:48:38 547

原创 STM32F1 LL 库和HAL 库在GPIO 上的区别

F0 和F4 系列GPIO 寄存器把输出模式、速度、上下拉之类的配置都用单独的寄存器实现,而F1 系列是全部塞进CRH 和CRL 寄存器里,各个模式之间相互耦合,某一个寄存器位的含义取决于其他寄存器位的值;STM32F1 的LL 库在GPIO_PIN 定义上用了特别的处理,和HAL 库不一样,不能按HAL 库或标准库的惯例处理。,和GPIO 里ODR,IDR 等寄存器的操作对应,而LL 库把pin mask 左移了八位,然后在低8 位和高8 位附加了其他信息

2024-11-08 04:26:43 756

原创 AD 单独设置电源焊盘直连铺铜

就是只让电源芯片的地焊盘直连铺铜,其他的地焊盘则默认用十字连接,从而给电源提供大电流通道和散热平面。

2024-11-06 00:16:31 1269

原创 自己动手给ESP8285 / ESP8266 1MB 编译新版AT 固件

适用于ESP8266 或ESP8285 的1MB 版本,其他容量版本也可以参考,步骤差不多。官网上说可以到github 下载临时编译的固件,但是过去找了就发现,文件都过期了,所以不得不自己编译。而且官方固件的串口引脚都换成了15、13,我的板子上线接在1、3 上,也得自己编译了改引脚。

2024-10-29 22:38:08 1155

原创 SysTick 校准寄存器-SKEW-TENMS

如果硬件上提供了精确的参考时钟,TENMS 的值对应SysTick 计时10ms 的重装值,如果TENMS 值为0,表示没这个功能。大概就是,有参考时钟的话,硬件可以自动跟参考时钟比较,计算出10ms 对应的重装值。就是“NO无 REF 参考时钟”,如果值是1,表示没有外部参考时钟,SysTick 只能用CPU 核心时钟,或者内部的其他时钟。通常NOREF 值是1,TENMS 是0,SKEW 是1,表示这些校准功能没完全没用。值为1,表示TENMS 寄存器的值不准。

2024-10-22 03:12:21 331

原创 Keil MDK 添加外部工具用clang-format 格式化代码

没办法一次性把全部代码文件格式化,它的命令行参数好像只能一个一个文件来,或者用另外一个文件先把所有要格式化的文件的路径放进去,作为列表文件,再把这个列表文件放在命令行参数里传进去,所以我用了个python 脚本来生成列表文件。是个专门用来格式化C/C++ 代码文件的程序,安装LLVM 或者CLANG 编译器的时候会带上,Keil 的armclang 编译器也带了这个,要加到PATH 里。上面显示了所有被过滤出来的文件,再按一下回车确认,就调用clang-format 执行格式化。,脚本执行完就自动删除。

2024-10-21 11:20:48 1180

原创 WS2812 可以用3.3V 电源驱动

实测过了,完全没问题

2024-10-18 23:34:23 991

原创 戴尔 Latitude5290 平板上手笔记

想搞个Windows 平板平时带着方便,比安卓平板更泛用,戴尔这个二手九成新机器价格还不错,七百块咸鱼上捡回来个二手。虽然用7 代CPU 的5285 价格更便宜,但是我觉得还是上8 代i5 吧,因为还记得当年说8 代更新牙膏挤了挺多。

2024-09-05 13:35:08 3190

原创 Multisim 用LM358 运放模拟线性稳压器 - 运放输出饱和 - 前馈电容

就是拿运放搭一个可调的LDO 稳压器,类似下面这个功能框图里的感觉。本来应该非常简单,没什么好说的,没想到遇到了非轨到轨运放输出电压饱和的问题。

2024-08-11 00:57:45 1758

原创 Windows 下用MSYS2 环境为RP2040 编译MicroPython 固件

就是想试试看MSYS2 能兼容到什么地步。自己做了个RP2040 板子,用了4MB 的Flash,默认的Micropython 固件是2MB 的,所以只能自己编译固件。

2024-07-05 06:56:39 1207

原创 下载和安装AD19 - Altium Designer 19.1.9 Build 167

虽然有AD24 的安装资源,但是我比较喜欢19 这个数字[doge]

2024-05-26 04:27:04 2546 1

原创 Altium Designer 中键拖动,滚轮缩放,并修改缩放速度

首先用`#HotIf WinActive("ahk_exe x2.exe")` 检测AD 的窗口,按键映射只会对AD 生效。`MButton::RButton` 就是把鼠标中键映射成右键,从而可以用中键拖动图纸,不过这么一来,所有中键上的功能就都用不了了。下面的`WheelDown::` 和`WheelUp::` 用来加速缩放速度,AD 默认的滚轮缩放太慢了。这几句代码就是接收并拦截发给AD 的滚轮事件,然后,只要用户滚轮滚了一格,就给AD 连续发三次滚轮事件,让AD 认为鼠标已经滚了三格,缩放速度自然

2024-05-26 02:28:16 3399

原创 TM1650 并联在I2C 信号线的处理方法

目的是可以并联多个TM1650 在标准I2C 总线上,并且不影响其他标准I2C 器件。思路就是拿个额外的开关控制每一片TM1650 的使能,就像SPI 的CS 信号那样。

2024-05-13 03:20:31 992

原创 串口单线半双工转换电路

用来把单线半双工模式的串口转换成双线,然后才能连接到普通的双线USB 串口模块,比如CH340 之类的。。他在Arduino 上用软件模拟串口功能,利用这个电路,可以进一步减少串口占用的引脚,ARM 单片机一般都有硬件单线半双工模式,就不用折腾软件时序了,不过软件串口可以在所有IO 引脚上实现通信,某些情况下还是方便的。

2024-05-02 22:12:29 2875 2

原创 STM32F103 USB 端口的电阻配置

参考ST 官方的STLINK V2 电路图,DP,DM 上串的是0 Ω 电阻,所以103 系列芯片应该是内置了匹配电阻,外置的22Ω 可以去掉了。因为,USB 连接上以后,单片机可能没有立即准备好USB 通讯,如果上拉电阻硬连接到3.3V,主机那边立即就检测到了连接,开始枚举设备,单片机就来不及响应。另外,不知道这里为什么要用一个NPN 三极管控制上拉,结果不得不把5V 引过来拉高三极管基极,还得配个电阻分压电路,直接用个PNP 应该完全没问题才对。控制,所以

2024-04-27 22:35:03 1594

原创 基于链表的滑动中值滤波器实现思路

基本上,中值滤波,或者说滑动中值滤波,需要做三件事:1. 在新数据添加到窗口的同时,将最旧的数据删除;2. 对窗口中的数据排序;3. 找出中位数;

2024-04-25 03:44:08 798

原创 A1322 电烙铁发热芯热电偶温度与电压数据

温度是用另外的热电偶测温表测量,热电偶贴在发热芯表面。为了或多或少减小误差,电压是在温度比较稳定的时候记录的。室温25 ~ 26摄氏度,所以热电偶的冷端温度大致就是这个室温。从室温26 ℃开始,到450 ℃,看起来还挺线性的,当然,这只是我手头这一根1322 的数据,这种便宜东西参数肯定稳定不了。取温度范围100 到300,电压是3.9 到12.9,斜率为。两根红色线是发热丝,另外两根是热电偶线,透明线是正极,不能搞错了。顺便一说,A1321 是电阻测温,和A1322 完全不一样。

2024-04-21 00:12:29 1643

原创 贴片滚珠振动开关 / 振动传感器的用法

比如,用引脚电平变化中断接收信号,中断函数记录一次抖动事件后关闭引脚中断,从而避免快速跳变让单片机卡在中断里,主函数可以在从容处理完别的任务后重启引脚中断。或者每次采样一段时间的抖动,单片机比较闲的时候就启动引脚中断一段时间,持续记录抖动次数,之后再关闭引脚中断,去处理别的事。这种波形和按键按下时的抖动很像,通常是要给它过滤掉的,但现在就得无损失的把信号送给单片机,不能添加电容滤波,不然会大大降低灵敏度。就是有个小滚珠会接通开关两边的电极,振动时滚珠会在内部蹦跳,开关状态就会发生快速变化,从而检测振动。

2024-04-17 00:57:01 1187

原创 使用稳压管和三极管射极输出器电路驱动PMOS

栅极驱动电压通过6.8V 稳压管D2 和串联的10k 电阻得到,当下方的NPN 三极管导通时,PNP 三极管Q13 的基极电压大约是30V - 6.8V,以电源正极为参考,就是-6.8V;另外,图中的1K 电阻两端电压是6.1V,那么MOS 管导通后,流过PNP 三极管的常态电流就是6.1mA,而三极管的CE 电压是30 - 6.1 = 23.9V,那么PNP 三极管上的功耗就有大约0.15W,不算很小,需要关注一下发热。如果想减少PNP 管上的功耗,只能增大放电电阻的阻值,那MOS 关断就更慢了。

2024-04-16 05:20:26 1579

原创 LTC4054 充电指示灯转灯电路

由于这个芯片只有引脚,不像4056 那样两个引脚能分别接一个LED,要实现充电指示就必须自己整整外围电路。先说明一下,网上常见的这种接法:一个LED 直连引脚,我试了是不行的,即使充满电,LED 始终会微亮。不知道是不是我买的芯片的问题,或许给加个上拉电阻就能解决,但是按你胃,我整了个稍微复杂一点的方案。

2024-04-10 11:30:35 2788

原创 实现精简的通用环形缓冲器或环形队列

老实说太简单了,没什么好说的。成员函数的命名参考了C++ 的STL,push和pop应该不用解释,front指头部,back是尾部。

2024-04-07 02:59:01 350

原创 热电偶测温仪UT320D 拆机

性能应该还好吧,毕竟是便宜货。本来打算看看学习一下热电偶电路的前端设计,用什么滤波器、保护电路之类的,结果比较失望。

2024-03-31 21:37:47 464

原创 Python 正则分割字符串并提取匹配的记号和关键词

需求是:原字符串内含有特殊记号,比如,其中_{CC}VCC​VDD​,这种感觉,方便之后单独处理下标。re库里官方的split函数太“简陋”了,不太好使。

2024-01-26 11:27:23 506

原创 Python 获取字符串前部空格数量或空格片段

有个比较奇怪的需求,就是把字符串前部的空格片段单独提取出来,而不是像往常一样用。把前部的空白都切除掉,这样就能获得第一个非空白字符,然后用。在原字符串里把空白部分切出来。可以用正则表达式,比如。

2024-01-24 08:31:02 1042

原创 下载和安装AD14 - Altium Designer 14.3.20.54863

这个版本应该还支持XP 系统[doge],总之就是想安装一下,没什么特别的意义。

2023-12-29 23:49:26 2707

原创 拆解贝医生冲牙器F3,换电池

是这款伸缩式的,如下图,用了差不多两年,终于充不了电,而且不能开机,估计是电池坏了,拆开试一下。

2023-12-08 17:45:15 1510 3

原创 优化ADC 采样计算的简单思路

想法是尽量简化ADC 采样值换算到真实电压的过程,最好是不涉及浮点运算,整数乘除法成本比较低。

2023-08-23 17:08:50 4979 2

原创 精简体积的OLED 基础驱动库 - OLED_BASIC

1. 目前支持SPI 接口的SSD1316 和I2C 接口的SSD1306,想扩展支持相似的其他SSD 这一家子型号难度应该不大,似乎主要是初始化代码上有区别;2. 不是u8g2 库的替代;3. 不需要显示缓冲区,几乎没有额外的RAM 占用;4. 只支持文本和整数输出函数,不支持矩形以外的绘图功能;5. 想显示图片的话,只要把图片当作大一点字符来用就行,自定义一个单独的字库放进去;6. 自定义字库的部分特意做的很简单,不用像U8G2 库那样还要整一堆编码上的劳什子,取模软件输出的数组直接放进代码就

2023-08-21 17:27:37 629

翻译 PID 算法实现的细节问题处理 - 从新手级别开始逐步完善

翻译自Arduino PID 库作者的系列博客文章:[Improving the Beginner’s PID](http://brettbeauregard.com/blog/2011/04/improving-the-beginners-pid-introduction/)。作者的结论应该经过了不少人的实际检验,而且文章讲得平易近人,不需要太多的理论基础。

2023-08-03 22:33:03 986

原创 简单的按键监听函数 - 按键消抖和长按、双击事件

用一个简单的C 语言函数实现对单个按键的监听,预定可以用在各种芯片平台上,arduino,C51,stm32 等,对硬件没特别的要求。首先明确这个函数要实现的功能,以及调用它的代码要如何响应各种按键事件。上面说的“时间” 都是指函数调用的次数,也就是轮询按键的次数。较短时间或较长时间,意思就是经过的轮询次数的多少。具体是多长时间,取决于调用者调用函数的间隔。这样做是为了减少依赖,不需要有一个时间函数用来提供时间戳,可以用最简单的延时函数循环调用,从而实现更好的通用性。

2023-07-21 15:00:03 1330

原创 有刷直流电机的续流、反向电压和H 桥驱动频率 - 伊朗电系法师视频观后感

从以上这些因素考虑,似乎PWM 频率是越高越好,但就和DC-DC 电源的开关频率一样,频率越高,单位时间开关次数越多,MOS 管就有越多的时间待在过度区间里,从而导致MOS 管的发热增加,整体的效率降低。频率太高还会降低占空比的调节等级数,也就是降低了PWM 分辨率,知道单片机上PWM 原理的人应该都明白这一点。

2023-07-06 02:45:15 8328 1

原创 ADC 读取电位器旋钮,用回差消除临界值档位跳动

就是比如,用电位器当旋钮做风扇调速,划分出10 个速度档位,对应10 个ADC 转换结果的阈值。如果直接比较阈值,当旋钮拧到临近阈值的地方时,ADC 结果的微小跳动会导致风扇档位在两个级别之间不停左右横跳,因此想到了利用回差来消除抖动。

2023-06-17 23:46:50 3979

PY32F002A 20PIN 引脚分配辅助表格

用来辅助分配引脚功能的表格,单片机引脚的复用功能又多又乱,所以用表格汇总所有复用功能,并且设置了公式和条件格式,可以显示每个引脚的分配状态。里面包含ods 和xlsx 两种格式的表格。推荐用libre office 打开ods 格式的,excel 也能打开。xlsx 格式是从ods 转换的,丢失了条件格式。

2025-02-19

辉芒FMD FT60F011单片机C 语言例程、资料、应用笔记

包含FT60F011 单片机的数据手册、应用笔记、C 语言例程,应该也适用于FT60E011。本来还有更多应用笔记的PDF,忘记存,回头再找就发现完全搜不到,也记不起来我自己以前是从哪儿找的这些资料。 C 语言开发环境和编程器去立创社区找。 编程器原作者的项目:https://oshwhub.com/kktun/PICjian-rong-dan-pian-ji-xue-xi-; 我修改的硬件:https://oshwhub.com/etberzin/ft60-bian-cheng-qi; 行吧,想起来之前从哪儿下载的了,直接去辉芒官网下载就有,https://www.fremontmicro.com。

2025-02-13

HK32F030MF4P6 引脚分配辅助表格

包含两种格式的表格文件,XLSX 和ODS。用LibreOffice 的话推荐ODS 格式

2023-06-01

BPG 图片格式转换工具。

Romeolight Bpgconv 2.5 便携版 Description : Batch conversion tool for BPG images Version : 2.5 Website : http://www.romeolight.com/products/bpgconv License : BSD-2-Clause Binaries : BPGconv.exe

2022-08-31

Op Amps for Everyone 第5版,运放权威指南

运放指南 Op Amps for Everyone - 2018 fifth edition

2022-05-30

Circuit Wizard 2 教育版,电路仿真和设计软件

可以直接安装,Circuit Wizard 2 教育版,打开后里面会显示个教育版标签,不影响使用。比1.5 版本多了个单片机功能。

2022-05-27

8051单片机指令定义详解 - 来自STC 文档

RT,中英文对照8051 指令集详解,77页。

2022-02-11

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除