- 博客(104)
- 收藏
- 关注
原创 算法 - 滤波算法
j = i - window_len/2 ,用于从选中元素的左半边开始选取,到右半边停止,算平均值;将两个或多个传感器的信号通过加权组合,利用它们在不同频段的优势,抵消各自的缺点。也就是说限制信号的变化速率,对快速变化信号进行衰减,对缓慢变化信号进行保留;这种方式比较简单,而且可以从matlab的图中看到,曲线变得更平滑了;这里先memcpy把需要处理的数组放进来,防止修改到原数组;FILTER_WINDOW 是窗口大小,我这用5,与低通滤波器相反,是过滤低频噪声,保留高频部分;
2025-12-23 09:54:35
268
原创 算法 - FOC
让 a 相电流直接等于 α 轴分量,从而可以只采集两路电流并省去一次额外的乘法/矩阵运算。在实际控制时,一般是用PWM占空比来控制电压,所以乘上一个电阻R,转成电压形式;比如机械角度旋转一圈,但是里面N对磁极,切割了N次,发了N个周期的电;之前克拉克变换时,是在定子线圈那里的,或者说是固定的。上面提到过了帕克变换、克拉克变换,都是电流形式;电机磁极对数,1个N极和1个S极为一对磁极;但是转子是转动的,所以引入Q-D坐标系;坐标系形成一定夹角,这里称为电角度。:电角度 = 机械角 * 极对数。
2025-12-23 09:41:20
634
原创 硬件 - BMS、电池整合
因为我们可以想象,充电的时候,把电池当作负载,那么PACK+是充电器正极,PACK-是充电器负极,假如是PACK+ -> 电池 -> GND的流向,那么就不构成回路了;的时候,因为电阻值还是存在的,比如这里的10mR,那么通过电流,SRP和SRN左右会存在一定的压差,虽然可能很小...主动均衡可支持更大的均衡电流,平衡速度更快,能更精准地消除单体差异,尤其在电池组老化后,仍能保持较好的均衡效果。然后放电的时候,把PACK+和PACK-这边当负载,电池电流从PACK+过负载,到PACK-到电流检测电阻;
2025-12-12 19:08:25
969
原创 硬件 - 电机相关部分整合
这里我推荐是立创商城直接搜 《高侧栅极驱动芯片》找个合适的IC,比如我下面这张,主要自举部分是R69,D16,C127,这里电阻作用就不必多说了,自举电容可以认为是给自举电容充电,利用电容两端电压不能突变原则,使得G极电压总是比S极高一些,然后这里的D16主要起到一个防止自举电容往反方向放电的作用;VCC=12V,Vgs(th)=2V,做上管的话起先S极电压是浮动的,我们就先算它是0V,那么G给个3V,Vgs=3V > Vgs(th)=2V,这里导通。这里为什么不能直接做上管?
2025-12-12 18:40:24
664
原创 硬件 - Layout合集
可以并联1-4个较大容值(1-22uf)的钽电容,这样负载很重的时候,器件周围电压可以保持正常;会形成一定的尖峰脉冲,对电路形成干扰,又由于等效电感与导线成正相关,所以可以在IC附近加个电容,跳变时利用电容充放电,减小等效电感形成的干扰。电源层和地层都存在阻抗,但是电源层阻抗>>地层阻抗,所以大量铺地就是尽量让电流从地层跑掉,减少发热量;这里可以作参考,高频为Mhz-Ghz级别,中频为Khz-Mhz级别,低频为<Khz级别;使用DCDC的时候,可以“入口处”,开关电源也是会产生干扰的;
2025-12-12 18:26:42
459
原创 硬件 - 高速协议设计整合
必要时进行 时钟抖动预算 与 功率完整性(PI) 分析,确保满足代数对应的误码率(BER)要求。Fly‑by 拓扑对 地址/控制线的等长要求更严格(±50 mil),而数据/ DQS 组的等长误差要求更紧(±10 mil)数据组:同一 Byte‑Lane 的 8 根 DQ、对应 DQS、DM 同层走线,保持 等长误差 ≤ ±10 mil(DDR4)或 ≤ ±5 mil(DDR5)CK‑P/CK‑N、DQS‑P/DQS‑N 必须 差分走线,保持 线宽‑间距匹配,差分阻抗控制在 100 Ω ± 10 %
2025-12-12 17:56:59
611
原创 硬件 - 常见通信协议整合
对应逻辑 1 的,称为隐性电平。对应逻辑 0 的,称为显性电平;闭环结构:隐性电平压差0V附近,显性电平压差2V附近;开环结构:隐性电平压差小于0V,显性电平压差大于2V;通常情况下只需要TX、RX和GND在RS232中,逻辑1一般是 -3V~-15V , 逻辑0一般为 3V~15V也就是和印象中的01倒过来的。
2025-12-12 16:50:39
659
原创 无人机 - 关于快速启停时尖峰问题
因为处于分区二时,有电流流过,但是存在阻抗,这时候若是时间较长,容易发生发热或者损坏。MOS关断后,内部二极管反向阻断,会产生一个反向恢复电流(Irr),这个电流叠加在寄生感应电压的di/dt上,会产生电流尖峰,并且提升电压尖峰;有种做法是TVS串联一个限流电阻,一般取2-5R,电阻更容易烧坏(TVS贵些),另外当烧坏电阻后,TVS对地端悬空,此时也能降低短路风险;无人机的电池在大电流突变的时候,内阻不恒定,这时候电压会出现瞬时的波动。无人机无刷电机的三相换相时,电流方向瞬间突变,也会产生电流尖峰。
2025-12-09 20:15:10
761
原创 机器人 - 关于MIT电机模式控制
Mixed Integrated Torque为一种混合控制模式,在同一帧CAN数据里包含位置、速度、扭矩三类的闭环指令。驱动器里面把位置环、速度环、前馈扭矩相加,得到一个参考电流,然后再交给电流环完成精准扭矩输出。
2025-11-21 12:25:18
1583
原创 机器人 - 关于电机获取力矩反馈
这种方法硬件需求低,只需要获取电流。但是受到电机磁路非线性、温度、饱和等因素影响,需要校准;:利用电机的电感、反电动势常数 与转速信息,构建状态空间模型,使用。其中T为输出扭矩,Kt为电机的扭矩常数,Iq为电机的q轴电流;
2025-11-21 12:10:31
149
原创 Windows PC 上使用 ADB 调试运行 Ubuntu 系统的 RK3588 开发板
PC端执行,有xxxxxxxxxxx device 的输出,表示成功建立连接。在系统环境变量里添加刚刚解压好的Platform-Tools路径。先用板子调试成功一次,然后板子和PC在同一局域网,记下板子的IP。
2025-11-20 14:52:34
361
原创 激光雷达(LiDAR)说明
步骤关键要点说明发射激光器(波长 250‑1600 nm)发出短脉冲或连续波光束高亮度、方向性强、相干性好,使光束在空间中保持窄束传播 & 目标反射光束照射到目标后产生散射/反射,部分光返回传感器目标的材质、反射率决定回波强度接收接收光学系统(望远镜、光电探测器)捕获回波并转换为电信号常见的探测方式有时间飞行(ToF)和相位/频率调制(FMCW)计算距离通过测量发射‑回波的往返时间(ToF)或相位差,得到目标距离距离 = 光速 × 往返时间 / 2;
2025-11-18 10:13:11
713
原创 硬件 - 关于PCIe设计要求
在 PCIe TX/RX 端放置对称的 AC 耦合电容(0.1 µF ~ 1 µF),并在电源层布置足够的去耦电容(10 nF ~ 100 nF)以抑制电源噪声。使用自动匹配或手动微调,使每对差分线长度差 ≤ 0.15 mm(或 ≤ 5 mil),并在换层点前后保持相同走线路径。PCIe 走线应远离射频、音频、晶振及大电流电源走线,保持至少 5 mm(约 200 mil)间距,防止耦合噪声。推荐 4‑层或以上结构:顶层信号层、内部参考层(GND/PWR)交替排列,保证每条高速走线都有紧邻的参考平面。
2025-11-17 11:46:18
594
原创 硬件 - 关于DDR设计要求
Fly‑by 拓扑对 地址/控制线的等长要求更严格(±50 mil),而数据/ DQS 组的等长误差要求更紧(±10 mil)同一 Byte‑Lane 的 8 根 DQ、对应 DQS、DM 同层走线,保持 等长误差 ≤ ±10 mil(DDR4)或 ≤ ±5 mil(DDR5)地址/控制/时钟组:同样要求 等长匹配,误差可放宽至 ±50 mil(DDR4)或 ±40 mil(LPDDR5)* 地址/控制/时钟等长误差 ≤ ±50 mil(DDR4)/≤ ±40 mil(LPDDR5)
2025-11-17 11:23:26
930
原创 硬件 - 硬件问题排查
在实际研发过程中,经常遇到各种硬件问题,这里主要简单介绍遇到硬件问题时,排查顺序。为了后续工作中debug的标准化、流程化;
2025-11-17 10:46:29
220
原创 硬件 - LM5122MH - 24V升压26.4V 10A
输出电压 26.4V ,最大电流10A。输入电压23.5V~24.5V。工作频率0.517MHz。
2025-11-07 13:23:44
228
原创 软件 - BQ40Z80命令
此类命令直接通过 SBS 协议发送,用于读取电池基础运行数据或配置基础功能,无需通过。两类接口功能互通,支持访问 “制造商访问系统(MAC)”,命令通过。(SMBus 块协议)发送,结果可通过。(SMBus 字协议)或。
2025-11-07 10:42:09
2330
原创 硬件 - Allegro - 通过改env来换快捷键,适合新手
比如 E:\06_Cadence\SPB_22.1\share\pcb\text。用记事本打开,然后把里面的内容全部替换成下面代码的内容;在安装Allegro的目录下面找到一个叫env的,这篇文章基于凡亿教育,主要是让新手方便修改;
2025-11-06 20:28:16
402
原创 硬件 - Cadence&Allegro入门使用常见问题
2.Options -> Grid Display -> Gird spacing 把默认的1,1改成1,2或者再多点;Setup(设置) -> User Preferences(用户偏好设置) -> Paths -> Library。然后File(文件) -> import(导入) -> Logic/Netlist。会发现元件全都放出来了,这里我把飞线去掉了,在显示那里点击隐藏飞线-全部;放置->快速放置,点击完放置后在背景板的地方,点一下左键。之后点击显示 -> 状态,能看到新导入的元件没放置。
2025-11-05 10:49:39
453
原创 硬件 - EMC简单介绍 (是啥、怎么形成、如何整改)
改原理图/PCB,比如加滤波器,或者装个罩子;电磁兼容,指电子设备在共同的电磁环境中能够。确定是RE(辐射)还是CE(传导)超标;根据干扰源来确定用上述的哪种方法;用频谱仪、近场探头找干扰源;
2025-11-04 17:55:08
437
原创 硬件 - BLDC半桥驱动
上下桥臂MOS、驱动IC、软启动;上下两个部分是,主要控制导通的时候电流流向;的话,可以防止电气、机械冲击。比如可以在MOS的栅-源极加个10nF的电容;除此之外,还可以在栅源极加个10K或者再高些的电阻,做到;然后上面的1N4148的二极管那块地方,在MOS被驱动的时候,电流通过R5从栅极那边过去,R5可以平滑一些振荡;在关断的时候,1N4148那里提供了一条回路,让电荷快速回去;C3那地方布局的时候记得靠近EG2133,它拉高电平用的;
2025-11-03 21:00:46
394
原创 单片机 - 关于RS485硬件与伪代码
利用差分信号传输、距离远、抗干扰能力强、支持半双工和全双工模式;RS485B - RS485A,看它们俩直接的压差;逻辑1 为 +2~+6V, 逻辑0 为 -2~-6V,-2~+2之间无效区;Modbus-RTU在RS485上采用8-N-1帧结构,[地址][功能码][数据][CRC]在单片机上的应用(以STM32为例)
2025-11-03 19:53:20
433
原创 无人机 - 关于无人机电池
实际上我们应该用这个来计算能量,这里会发现标称电压高的情况下,能量其实也会受影响变高;除此之外,高压锂电池一般能保持较好的电压稳定性,换句话说,在大电流的情况下,这类电池电压下降速度不会那么快。这可以使得在恒定功率的情况下电流会小一些;一般的锂电池单个电芯满充电压为4.2V,截止放电电压在2.5V左右,如sony US18650VTC6;我们都知道电芯在电压方面有四个注意点,截止放电电压、充电电压、标称电压、满充电压;还有一些高压电池,单个电芯满充电压为4.35V,截止放电电压在3.2V左右。
2025-11-03 08:36:37
469
原创 硬件 - 减小导线、铜层的线阻
在PCB板上的话,增加铜厚、增大线宽;金属电阻率会随着温度上升而增大,比如铜温度系数为0.004/℃,即温度每升 1℃,ρ 增加 0.4%;也就是在PCB布线的时候,尽量不要绕远路,尽量短走线;设计时,根据工作电流来定线宽、线粗,防止导致 线宽不够->发热->电阻率上升 的正反馈;信号频率>100kHz时,需要注意以下集肤效应,也就是电流主要集中在导线表面;(R 为电阻,ρ 为材料电阻率,L 为导线 / 铜层长度,S 为横截面积)比如,PCB中可以用开窗把铜层暴露,在铜层处加散热过孔;
2025-10-25 16:28:20
355
原创 算法 - PEC校验
接收端接收到数据后,也用相同式子计算,对比两者PEC校验码是否相同,相同的话认为数据完整可靠,不同认为这个包错误;PEC基于CRC-8,一般用在I2C / SMBus这样的地方,它没有纠错能力,只能判断数据是否完整可靠;发送端在发送数据时,利用一个式子把需要校验的数据进行计算,得到一个PEC校验码;
2025-10-24 16:22:22
182
原创 硬件 - 电量计配置GG详解 - 以BQ40Z80为例
Scale Factor 电流缩放因素,主要解决内部电流寄存器不够用的情况(最多到32A那里),我这边因为要用到50A以上,所以我设置为2,相对应的和电流、容量有关的全除2;不能出现OCC填正值(充电),因为充电过流保护后,充电MOS关闭了,这时候充不进去了,放电同理;这里显示输出传感器温度,11不使用,10是最低温度,01平均温度,00最高温;维护充电时的电流,主要就是充满的时候,一个保持电流;CC2,CC1,CC0用于设置电池串数,比如我这里6串,那么为110,
2025-10-21 17:33:05
789
原创 硬件 - BQ40Z80电量计应用详解(4) - 充电算法GG配置 -ing
这个可以在Advanced Charge Algorithm中,填入不同温度下的充电电压值,芯片会根据设计的串数,来决定充电电压;在Settings中的Configuration 的 FET Options中可以设置 PCHG_COMM,来调节预充电方式;当RSOCL=1时,剩余容量在终止结束前,会保持在99%,充完电后才达到100%,充电的时候,会根据温度、电芯电压、电芯状况等,控制充电时的参数,比如图4所示。使能CRATE=1后,会根据充满容量/设计容量,来调节充电电流;VCT 表示 有效终止充电;
2025-10-15 16:01:43
1157
原创 硬件 - BQ40Z80电量计应用详解(3) - 永久保护功能
在Gas Gauging中,可以对IT Cfg:[Referenc Grid]设置,这个是设置参考网格,0(满充电芯阻抗),14(满放电芯阻抗),我们可以选择默认值4,接近20%~100%SOC的平均值;1.电芯在参考网格下阻抗差值 > IMP:[Delta Threshold]*设计电阻(IT Cfg:[Design Resistance])更新次数;假设Pack中最大电芯容量为MAX[QMAX],最小电芯容量为MIN[QMAX],主要根据TS[1:4]返回的温度数据进行判断,用于检测电芯的;
2025-10-15 14:08:54
585
原创 硬件 - BQ40Z80电量计应用详解(2) - 保护功能
其中Hysteresis Temp 的作用,因为NTC温度检测回传时的噪声、实际温度的干扰,可能出现温度在某个区的边缘跳动,比如温度为T5,那么它小一点就会掉到Standard Temp Low,高一点会升到Rec Temp,这时候很容易造成充电电流一直在变换;并且有个Counter Dec Delay的值,在COV中可以设置,每触发一次COV,那么Delay值都会递减Counter Dec Delay,也就是每过压保护一次,下次就更容易触发过压保护;OCC2是针对过流大的充电电流,所以触发时间要短;
2025-10-14 17:36:24
850
原创 硬件 - BQ40Z80电量计应用详解(1) - 引脚复用(Pin Configuration)
设置方式为 MFP12_SEL[0:2] = 000,主要在7Cell时作为ADC,这里的ADC检测被限制在0~1V,又因为Pack包最大为32V,所以此处至少要做32:1的分压;设置方式为 MFP12_SEL[0:2] = 001,此模式下,RC2复用为TS3,用于连接外部的NTC检测温度;设置方式为MFP13_SEL[0:2] = 001,选用这个功能后,该引脚外接一个NTC,用于温度检测;11时弃用,高阻态;设置方式为 MFP12_SEL[0:2] = 1xx,这个方式后,该引脚会变成高阻态;
2025-10-14 13:22:56
956
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅