- 博客(34)
- 资源 (2)
- 收藏
- 关注
原创 E2读写调试
我们使用的E2的片子是GT25A1024A的芯片,通讯使用的SPI。在我们的代码中在写数据的时候,发现地址的变量被篡改成0x00。2.写数据的时候不能跨页去写数据,一页的数据就是256K。1.写和读的操作之间要添加延时,需要延时5ms。目前还没有找到详细的原因。
2025-04-27 15:33:05
141
原创 ADS1114调试时发现只能收到高八位的电压值,收不到低八位的电压值
define config_LSB (DR << 5)|(COMP_MODE << 4)|(COMP_POL << 3)|(COMP_LAT << 2)|(COMP_QUE)//DR移动到低8位,COMP_MODE移动到低5位,COMP_POL移动到低4位,COMP_LAT移动到低3位,COMP_QUE最后两位。#define config_MSB (OS << 7)|(MUX << 4)|(PGA << 1)|(MODE)//OS移动到高8位 MUX移动到高7位 PGA移动到高四位 MODE高一位。
2025-04-13 20:17:59
287
原创 S32K144的m_data_2地址不够存,重新在LD文件中配置地址区域
在开发平台软件的时候代码中超出了64K的内存,单纯在ld文件中,增加m_data_2的存储长度,原先是0x00007000,我将长度修改为0x00008000,起始地址还是0x20000000,软件编译没有报错堆栈超出,但是软件下载到单片机中之后,144不工作了,花了一段时间,才解决。
2025-04-09 20:11:04
154
原创 ADS1114采集电压调试
内部有VDD上拉,会导致不接电压也会有输出,后续又仔细查看了一下datesheet,发现1114在使用时,需要AN0和AN1同时使用,如下图所示,这是我们忽视的一个点,如果要测量准确电压,在使用1114时,需要将正负表笔同时怼到AN0和AN1上,这样才能准确测量出电压!最近在调试ADS1114,想用这颗料来搭配非can霍尔采集电流,在跳过程遇到一些坑,现象是只是用AN0去采集电压,给了4.5V,到板子上却只剩下3.5V,量的是AN0对芯片地的电压,发现电压不对。
2025-04-02 11:38:24
162
原创 S32K144的can自动复位功能
目前在项目上遇到过2次,在整车上接入bms之后,bms没有报文或者can卡死之后,导致bms复位,需要配置一下can的自动复位功能,这样在发生阻塞的时候,能够仅复位can,不会造成整个系统复位。下图展示的是144相关的can的寄存器。
2025-04-01 11:36:55
114
原创 AFE首末节采集电压偏差大
在电路上AFE的Vbat和第一节电池的正,理论上这两个点是同一个点,但是在线束端,如果不分线,那么就会导致首末节的电压采集误差偏差大。正确的做法应该是板端出去分两根线,在电池段做到尽量的靠近,就能缩小误差。在验证了几款不同AFE产品之后,我们发现的一些共性问题。或者在软件采样过程中,通过复采的采样方式,解决。上述两种方式都可以进行尝试。
2024-12-31 10:54:15
294
原创 BMS的前后两片AFE采集电压出现整体偏差
按照这个排查思路,我们做了一一验证,在确定前后两片AFE的采集功耗时,我们使用6位半测量了前后两个片子的工作电流,发现第一篇采集芯片是12个MA,第二个采集芯片是10MA,起初在一开始的时候,我们并没有很在意这个2MA的偏差,在事隔几个礼拜之后,我们在和同行在做交流的时候,做了一个计算,如果一直差2MA,那么按照容量计算:0.002。至此,我们算是有了一点眉目,但从我们自己来说,我们对于这个容量的变化是认识不够的,不知道有没有同行,大家可以交流一下,做了大量充放电循环实验的小伙伴,可以一起交流!
2024-12-26 10:10:37
346
原创 磷酸铁锂电池大电流和小电流充放电末端压差
但是如果电池容量已经出现了偏差,那么在大电流放电的时候,有可能会导致电池还没有放空,还处于磷酸铁锂的平台区,压差较小,而小电流放电时,电池被彻底放空,导致压差变大,这完全取决于电池容量是否放的一致,如果个别电芯容量不一致的时候,就会出现大电流放电压差大。在客户现场根据电芯厂的反馈,磷酸铁锂的电池1C放电和0.3C放电实验时,1C放电压差要比0.3C放电压差要小,我们在百度上咨询了一下,结论相反。但实际上忽视了在同等容量的条件下,正常的情况下,电池的容量相差不大的情况下,应该是大电流放电压差大。
2024-11-07 16:35:52
1494
原创 NXP的K3平台软件开发工具链搭建
3.5版本的S32可以直接在官网下载,需要按照下载手册下载并且激活。RTD就需要一定的资源才能下载的到了,我是找了朋友才下载下来的。最后勾选上,点击接收选择按钮就将RTD添加成功了。S32使用3.5版本+RTD 3.0.0版本。
2024-09-02 13:38:06
374
原创 BMS电流采集——分流器采集问题
理论分析BDU中分流器线束和BCU连接情况,和客户沟通之后,得知该项目的BDU中分流器连接状态如图一所示,构成如红线所标识的回路,形成电流,此时,33771采集的压降相当于AC两点的压降,分流器左半边的一部分铜牌串在了回路当中,形成了电流,这就造成了在不吸合继电器的状态下,也有电流值,同时也会造成采集到的电流值偏大,而正常连接的状态下,如图二所示,该回路中,没有串进去电阻,没有电流。平台是K144+33771;调整BDU的线束,取消从shunt-上引出的pack-线,将pack-接在分流器的螺柱上。
2024-08-29 09:19:56
1099
原创 NXP的33771采集的隐藏bug
我们最终选择的是第三种方式,直接将CTRef对地短接,解决了这个问题,其实分析根本原因,还是不同车型上,存在的干扰不一样,有的车电磁干扰大的话,就会出现这一现象,造成很费解的现象,在客户端暴露出来了,就很难通过软件去做修正了,其实如果前期,在软件上电压采集的过程中,做好滤波,可能也能避免这一现象,分享出来,希望能在必要的时候帮助到同行!先说项目出现的工况现象:整车测试的时候,发现只要一加速,或者车辆过坎的时候,第一节采集到的单体电压值会出现掉的很低,之后又恢复正常。
2024-08-28 15:16:20
863
原创 国产BMS前端采集芯片XL8818测评
琪浦维XL8818的24401批次:从低到高扫描要比从高到低扫描精确度要高,此外单体电压和GPIO口采集是公用ADC采集的,这一批次出现一个现象:从低到高扫描时,GPIO1采集的数据和实际比相差400MV,修改扫描顺序为从高到低(这种会牺牲电压采集精度),或者GPIO口复采能解决这一bug,或者MACAL=0也可以解决。
2024-08-26 13:32:15
665
原创 储能bms-下电延时方案分享
下电延时功能在很多bms方案中是很常见的,主要是用来存储SOC,故障码,以及电池的一些重要信息,下图展示的是一种实现方案,VCC5V_A_ENIN在硬件上直接连接到三极管的后端,在ACC信号给过来之后,跳过三极管,直接给单片机供电,软件上在单片机供上点之后,将VCC5V0_EN引脚直接拉高,当ACC断电之后,我们的5VA使能脚始终有电,可以在程序中做延时,再切断5VA的电源,从而实现下电延时。
2024-08-26 11:16:44
322
原创 BMS绝缘检测方案
目前已有绝缘检测方案大都类似,我想分享一下,同时也想提出一个问题:在总压1500V的时候,检测100K以下的阻值有什么很好的方案吗?但是在负极固定2M欧,正极在100K以下采集时,正极的绝缘阻值采集误差很大,想和高手一起讨论一下,寻找一下原因~上述这种方案在正极固定2M欧,负极在100K以下的绝缘阻值的情况下,采集很准确。2.S断开,采集33K两端电压,得到一个Rp和Rn的等式;3.S闭合,采集33K两端电压,得到一个Rp和Rn的等式;4.联立两个等式,算出Rp和Rn。
2024-06-27 16:09:09
921
原创 野火STM32F103开发板使用串口3接收数据并通过串口2发送
废话不多说先上最终效果图,硬件连接如下所示,野火的开发板在使用串口2和串口3时需要用黄色跳帽如下图连接:具体代码如下所示:static void NVIC_Configuration(void){ NVIC_InitTypeDef NVIC_InitStructure; /* 嵌套向量中断控制器组选择 */ NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); /* 配置USART为中断源 */ NVIC_Init..
2022-03-01 15:49:26
10333
原创 即将上演的5G测量仪器大战
2019年作为5G商用元年,华为在全球范围内披荆斩棘,拿下一个又一个5G合同。5G基站相关的检测设备迎来了更加广阔的市场,国内目前主要还是依靠国外的检测设备公司:是德科技,罗德施瓦茨,NI等国际大公司,他们应对5G基站的检测设备都有自己的方案,推出了很成熟的产品。其中,是德科技的产品真的很吸引我,仔细了解了一波他们公司的历史,真的让我叹为观止!始建于1930年代,那样厚重的文化历史感给了我极大的...
2020-04-27 14:15:41
829
原创 便携式驻波检测仪研发难点
日前对这个项目的理论研究告一段落,查看了不少的论文资料以及同类型的产品厂家,目前最负盛名的当然是是德科技,他们的FieldFox系列,很适合装备部队使用,以及我之前关注到的一家叫SAF的公司,位于欧洲的拉脱维亚,他们生产的便携式频谱分析仪也同样为很多的军方组织所服务。驻波检测目前大多数采用的不外乎三种方法,根据频段的不同,各有优劣。1.测量线法这种方法主要适用于微波频段,用于测量波导的驻波比...
2020-04-22 10:27:41
823
原创 win10打不开Linux的共享文件地址
一共遇到了两种情况:第一种:虚拟机IP地址输入进去后提示无法访问解决方案:控制面板——程序功能——启用和关闭Windows功能,然后将画圈的部分勾上,重启电脑。第二种:提示输入网络凭据:直接在用户上输入guest,密码空着,点击确定即可。...
2019-12-30 13:18:08
806
原创 3GHz,带宽100M的频谱仪设计方案简化版
介绍方案之前先说说这个方案的难点,了解通信的朋友一定知道镜像频率,话不多说,先上图:IF:中频;RF:发射信号频率;VCO:本振信号频率;M:镜像频率有图不难看出镜像频率会对原有的频率产生干扰,详情请看:https://wenku.baidu.com/view/a6e028eb6294dd88d0d26b31.html因此采用加上变频,加高中频,以及可调滤波器的方法滤除镜像频率,如下图所示...
2019-12-24 10:14:52
862
原创 概念总结
多普勒雷达(PD)Pulse Doppler速度拖引干扰:该干扰的使用往往与目标的规避机动同时进行的,飞机向着脱离导弹攻击路线的方向规避机动 会造成目标回波的多普勒频率减小,而此时速度拖引干扰向多普勒频率变大的方向拖引,当拖引干扰信号中断 后,可以迫使导引信号进行较大范围的频率搜索。耦合器:分配功率行波管:微波信号,功率放大波导:定向引导电磁波的结构:车行双导线,同轴线,光纤…...
2019-10-24 11:59:06
331
原创 SPI,UART,I2C的区别
SPI 全双工 同步UART 全双工 异步(无时钟信号,通过设置波特率,数据位传输数据)I2C 半双工 同步其中最主要的区别在于UART在主从机通信时,从机如果不止一个的话,只能通...
2019-10-16 09:05:31
502
原创 GPIO端口模式配置
下图为GPIO硬件结构框图:GPIO 8 种工作模式:1 typedef enum2 {3 GPIO_Mode_AIN = 0x0, // 模拟输入4 GPIO_Mode_IN_FLOATING = 0x04, // 浮空输入5 GPIO_Mode_IPD = 0x28, // 下拉输入6 GPIO_Mode_IPU = 0x48, // 上拉输入7 GPIO_Mode_Out_O...
2019-10-14 10:49:07
4271
原创 Halcon学习笔记(三)——OCR识别
OCR:Optical character recognition (光学字符识别)一般步骤:排序:sort_region (SelectedRegions, SortedRegions, ‘character’, ‘true’, ‘column’)读入分类器:read_ocr_class_mlp (‘Industrial_0-9A-Z_Rej.omc’, OCRHandle)识别:do_o...
2019-10-09 14:33:59
1277
原创 Halcon学习笔记(二)
图像预处理:中值滤波;均值滤波;高斯滤波;模块滤波结合下图理解:将左侧的3*3方块遍历右侧的目标图像,方格代表一个个像素点中值滤波:从小到大排序灰度值,取中间值给红色区域,作为灰度值均值滤波:将9个元素的灰度值和除以9,所得到的值给红色区域,作为灰度值高斯滤波:给每个像素点加上权重,在进行中值滤波的操作,将最后计算得到的值赋给红色区域模块滤波:1.插值计算:将矩形框内的灰度最大值减...
2019-10-08 16:02:40
445
原创 C#编写串口调试助手,实时图像显示STM32发来的温度数据
本人新手,有错误的地方欢迎指出下位机使用的是STM32F103ZET6,通过DS18B20采集温度数据,每隔一秒钟采集一次,再使用串口发送数据到上位机,上位机使用C#中的串口控件实现功能,通过Chart控件实时图像显示温度数据,并且可以保存数据为TXT文件。代码参考了一部分别人,自己在上面做了一些修改。下图为上位机截图:具体代码如下图所示:在这里插入代码片...
2019-09-27 12:45:42
3186
原创 Halcon学习笔记(一)
读取图片的三种方式:一.文件——读取图像二.read_image(image,‘D://文件名.后缀’)读取多张图片read_image[‘D://文件名.后缀’,‘D://文件名.后缀’, ]三.采集助手——选择文件——代码生成显示图片:dev_display保存图像:write_image(image,‘格式’,0,‘'D://文件名.后缀’)Blob分析:能够准确找到你感...
2019-09-27 11:15:05
775
原创 C#中的string和string builder区别
自己写了一个串口调试软件,需要适时地接收字符串数据builder,然后转化成Double型发送给队列,我一开始用的就是ConvertTo强制转化,结果报错,后来仔细看了一下程序,又上网查了一下才发现string和string builder是不一样的,需要转化成string,才能转化成double,具体如下:private double str;private string string1;...
2019-09-24 13:21:46
347
原创 C语言中堆和栈的区别
之前有很多朋友在这方面有困惑,所以我打算来总结一波,好好梳理一下~~**一.概念**下图是我见过比较容易理解的图示:这张图表示的是程序运行时的分配区域,下面我将从几个方面来解释栈和堆的区别1.申请方式栈通过编译器自动分配堆则需要调用函数来分配,规定存储大小2.系统响应栈只要剩余空间大于栈的申请空间就能响应;堆需要通过遍历链表释放所需的存储空间,而且是不连续的。3.空间大小...
2019-09-20 09:08:32
911
原创 win10 keil5识别不了DAP,卸载驱动后可以下载
电脑win10,野火的板子STM32F103ZET6霸道,DAP刚买来那几天可以识别,能下载,没有任何问题,耽搁了一段时间之后就识别不了DAP了,后来我又换了win7的电脑,识别没有问题,后来我又问了淘宝卖家,他让我重装系统(what??),这个问题之前困扰了我不少时间,在贴吧,论坛都逛了很久,没有解决,设置那些都是对的,就是识别不了,按照常理来说DAP是不需要驱动的,所以之前也没想着驱动问题,今...
2019-09-19 12:55:32
18467
23
原创 C#编写的串口调试软件,下位机传过来的中文全是问号???
BUG:首先确认并不是下位机的问题,用野火自带的串口调试工具测试了一波,可以正常显示DS18B20的温度数据,但用自己x写的就变成了问号。现象如下:修改之后如下:只修改了其中一句代码:原先是builder.Append(Encoding.ASCII.GetString(buf));先修改为:builder.Append(Encoding.Default.GetString(buf));...
2019-09-17 09:36:35
2448
5
原创 用C#控件写串口调试助手,关闭串口时程序锁死
bug现象:打开串口时正常,再切换到关闭串按钮口后,按下按钮要等待很久的时间才能恢复到正常的界面,这其中按任何一个按钮都没用。参考博客:https://blog.csdn.net/wuyazhe/article/details/5606276解决方案:首先我们先来整理一下思路,搞清楚整个的工作流程,串口调试的上位机主要由两部分控制,一个是UI进程一个串口监视进程(优先级别高),UI进程主要是通...
2019-09-12 16:19:35
1272
原创 在移植了FreeRTOS操作系统的STM32开发板上点亮LED灯
你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。新的改变我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:全新的界面设计 ,将会带来全新的写作体验;在创作中心设置你喜爱的代...
2019-09-10 14:51:46
994
2
原创 STM32库开发中指针的应用
本人新手,不喜勿喷!本文为阅读零角度玩转STM32的读书心得,之前面试的时候一直有人问C语言指针的用法,有点忽略这块,现在回过头来了解一波~~简单来说呢,学习过51应该知道,用51单片机控制外设时,是直接对寄存器进行编程,实现功能,而在STM32库开发中我们对寄存器进行了封装,将寄存器放入到结构体(GPIOX)当中,通过指针,指向地址,访问寄存器,完成对寄存器的配置,而为了能够减少开发时的代码...
2019-09-10 13:22:17
2396
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人