- 博客(10)
- 收藏
- 关注
原创 FreeRtos的内部机制
从这个角度想:函数被暂停时,我们怎么保存它、保存什么?怎么恢复它、恢复什么?任务是一个函数吗?函数保存在Flash上Flash上的函数无需再次保存所以:任务不仅仅是函数任务时变量吗?单纯通过变量无法做事所以:任务不仅仅是变量任务时一个运行中的函数运行中:可以曾经运行,现在暂停了,但是未退出怎么描述一个运行中的函数假设在某一个瞬间时间停止,你怎么记录这个运行中的函数要立即任务的本质,需要理解ARM架构、汇编。
2025-03-14 00:28:22
843
原创 FreeRTOS的链表代码分析
需要注意“公平”以及没有真正意义的最后项,每次插入需要在pxindex指向的前一项插进去,因为本来有item1、item2、item3这3项,如果执行过程中是2、3、1,如果我们在3后面插入,item1本来已经排队很久了但是被外来者插队了,这是不允许的,而这时pxindex指向的应该是item2,所以我们只需要在pxindex的pre项也就是item1(环形缓冲区)插入新项。就是将该项左边的next指向该项的next,右边的pre指向该项的pre。像书之间的索引标签,告诉你下一本书和上一本书的位置。
2025-03-12 23:56:13
844
原创 通用链表的三种实现方式
person里含有node,person就是node的"容器"、"container"。dog里含有node,dog就是node的"容器"、"container"。核心在于:怎么根据node找到container。
2025-03-12 23:39:58
174
原创 STM32 HAL 无刷电机驱动 关于高级定时器互补输出与刹车功能
死区设定是防止半桥上下MOS同时导通,造成MOS烧坏,如下图1,因为MOS导通和关断是有时间限制的,虽然MCU输出的互补信号在高低电平上没有重叠,但是由于中间电路的延时和MOS本身特性导致最后驱动MOS的信号有开关重叠,如下图2。例如f407 168M主频,ckd配置为00,则Tck_int = 1/168M,DTG位设置为120,即0111 1000,高三位为011,即DT=120 * 1/168M。一般来说,死区时间为200ns-2us,不能再大,有些电机应用中对这个要求更高,那要用死区补偿来优化。
2024-09-25 16:14:52
2914
原创 为什么晶振并联1MΩ电阻时,程序运行正常?没有1MΩ就会出问题?
实际上反相门电路中许多电路不加这个电阻也能起振,因为一般的电路都有扰动信号,但有个别的反相门电路不加这个电阻就不能起振,因为扰动信号强度不够。这时,我们也需要给晶振并联1MΩ电阻,建议为了增加振荡电路稳定性,给晶振同时串联一个100Ω的电阻,这样可以减少晶振的频率偏移程度。时,程序运行正常,而在没有1MΩ电阻的情况下,程序运行有滞后及无法运行现象发生。(-R),即提升了增益,缩短了晶振起振时间,达到了晶振起振更容易之目的。因此,当发生程序启动慢或不运行时,建议给晶振并联1MΩ的电阻。阻抗也会发生变化,当。
2024-09-23 20:17:01
407
原创 编码器与霍尔传感器的工作原理及区别
在无刷电机的应用中,霍尔传感器用于检测转子的位置,以便电机控制器可以适时地切换电机的相位电流,从而维持电机的旋转。增量式编码器或绝对式编码器,它们可以提供更高分辨率的角度测量,这意味着编码器能够在更小的角度变化中提供反馈,从而实现更平滑和精确的电机控制。高分辨率编码器可以提供更多的位置信息,使得电机控制更加精细,从而改善电机的性能,尤其是在需要高精度定位的应用中。总结来说,霍尔传感器和霍尔编码器在无刷电机中都扮演着重要角色,但霍尔编码器在精度和分辨率上通常优于霍尔传感器,适用于更高端的应用场景。
2024-09-22 23:53:20
2698
原创 关于bldc的学习笔记(三)无刷测速原理
可以知道,一极对下,电机转一圈霍尔信号就是一高一低(一次高电平,一次低电平为一个周期,此时刚好转一圈)因为此时电角度等于机械角度。第二步:计算其中高电平的持续时间,即:t = C / Ft (其中Ft是计数频率,C为计数次数。由此,我们可以推导出,在n极对数下,电机转一圈霍尔信号就是n高n低,一圈机械角度为360度,那么。所得出的结果就为:s/圈 ,倒数就为:圈/s ,转化为RPM即:Ft/(2*C) *60 即可。第一步:可以看出当只有一对级时,旋转一圈霍尔输出一个完整脉冲(一N一S)
2024-09-19 01:08:25
1206
原创 关于bldc的学习笔记(二)驱动原理-六步换相
极对数多的电机霍尔传感器读值会更多,会在相同转速下更快地达到下一个换向状态,因为电机的极对数越多,电机的步进角(即转子每换向一次所需的电角度)就越小。到这里,我们也就知道了使用六步换相法控制bldc,只需要通过三相逆变电路切换极性,通过控制上桥臂PWM占空比来进行调速,并且通过位置传感器检测当前转子位置,控制线圈按照真值表顺序通电。可以知道,控制电机旋转,我们只需要在意对bldc三个定子线圈交替通电,而六步换相法在这里,主要是两两导通,根据对应的导通顺序,即可控制电机正转与反转。(文末附上相关代码)
2024-09-19 00:58:01
6183
原创 关于bldc的学习笔记(一)相关基础知识
1. **母线电流**:通常指的是电机控制器的直流母线上的电流,这个电流是电机输入电源的总电流。在BLDC电机中,母线电流包括了流经电机三相的所有电流,以及可能的其他电路所需的电流。母线电流的大小取决于电机的负载和控制器的控制策略。在电机运行过程中,如果负载增加,母线电流也会相应增加,因为它需要提供更多的电能来驱动负载。母线电流的控制对于保护电机和控制器免受过载和损坏非常重要。2. **相电流**:指的是流经电机每个相(通常有三个相:A相、B相、C相)的电流。
2024-09-17 01:54:57
3914
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人