专业
文章平均质量分 52
只写不看小叶子
这个作者很懒,什么都没留下…
展开
-
NXP无感方波原理
将就着看吧,从onenote复制过来的- -!原创 2021-01-21 21:13:19 · 2012 阅读 · 1 评论 -
方波续流分析
如下图显示两个PWM周期。在周期I中,B相和C相是一样的占空比,但是发生了移位,从而可以从单个电流信号中进行三相电流重构;在周期II中,在A相和B相PWM中也操作了类似的情况。 最小脉冲和采样脉冲计算 minZeroPulse:MOS管完全关闭和开启的最小时间。 minSamplingPulse:ADC最小的采样时间。 minZeroPulse需要查看MOS管手册适当给值一般不用修改。minSamplingPulse需要查看数据手册的ADC部分,如下图所...原创 2021-01-21 21:08:40 · 766 阅读 · 0 评论 -
基于S12ZVM的NXP单电阻FOC电流重构原理分析
三相桥一共有8种开关状态,在开关状态为111或000的时候不能有效采样到任一三相电流,除去全开111或全关000还剩下6种开关状态。如下图为开关状态101期间,可以采样到B相的电流,以此类推可得下表。 开关状态CBA 001 011 010 110 100 101 可采样电流 A -C ...原创 2020-08-01 10:37:17 · 5076 阅读 · 0 评论 -
基于S12ZVM的无感FOC缺相检测
缺相检测的原理是当发生缺相事件时,所缺相的相电流会在零附近震荡,跟其他两相形成鲜明对比。当检测到其中一相电流值低于阈值一段时间,就产生缺相错误。(首先确定电流较大时,三相电流波形为正弦波)测试方法:先把电机跑起来,切进闭环后拔掉其中一项电机线,看看是否报缺相错误。注意:可能会出现两种情况,一种是一进去闭环就报缺项错误,需要调整最小电流阈值或检测次数。还有一种是不管拔多久都不会产生缺项错误,这时需要检查三相电流波形是否为正弦,如果电流波形不行就先调整电流环参数或修改硬件。 ...原创 2020-08-01 10:13:32 · 1957 阅读 · 0 评论 -
基于S12ZVM的无感FOC失步检测
失步检测的原理是进入闭环后,闭环观测器计算的位置和开环速度斜坡计算的位置不断进行比较,相差过大一定次数就会被失步错误,说明闭环观测器跑飞了。当请求速度和当前实际速度差很多时会报失速错误。测试方法:可以故意把跟随器的参数改的很大或很小,让电机切不进闭环,看看是否报失步错误 ...原创 2020-08-01 10:11:21 · 1322 阅读 · 0 评论 -
基于S12ZVM的无感FOC堵转检测
无刷直流电机的无传感器控制一般包含方波控制和正弦波控制。无论是哪一种控制方式,由于没有传感器信号的接入,一旦遇到外界阻力或者巨大的负载突变,都可能会使得系统进入到堵转状态。在这种堵转状态下,电机只是原地抖动并消耗电流,而系统会处于异常状态。长时间保持这样的状态,无疑是有害的。众所周知,对于有传感器的无刷直流电机系统,堵转检测就变得很简单了。只需要检测传感器信号是否在正常刷新就可以了,而对于无传感器系统,可靠的堵转检测就变得没那么容易了。本文会就这个议题进行详尽的解析,希望可以起到抛砖引玉的作用,对大..原创 2020-08-01 10:07:54 · 2775 阅读 · 0 评论 -
S12ZVM电路设计说明
电源域概述S12ZVM是恩智浦公司推出的汽车级集成产品芯片,它将微处理器、电源、驱动以及各种模拟外设集成在一起的单芯片方案,内部集成了三相电机控制所需的所有元件。所以内部的电源域相对于同等级的MCU要复杂一些,如下图1.1所示为S12ZVM的电源域框图。下面对实际电路分别进行详细说明。VSUP-主电源引脚VSUP是片上稳压器的12V/18V电源电压引脚。这是电压源输入引脚,电压...原创 2020-03-17 21:18:00 · 4457 阅读 · 7 评论 -
无感FOC电机参数测量方法
无感FOC需要实时观测反向电动势来判断转子的电气角和转速。观测反向电动势时,一方面需要每个PWM周期采集相电压和电流,另一方面需要提前测量出电机的极对数、反电势常数、定子线圈的相电阻和相电感。下面是测量参数的方法极对数将直流稳压电源电压设置为0,电流设置在电机额定电流的5%左右,比如额定电流5A,设置为250mA将直流稳压电源的正负极任接电机两根线,打开电源输出开关用手旋转电机,感觉电机...原创 2019-12-12 23:48:00 · 13791 阅读 · 4 评论 -
S32 Design Studio IDE for Arm教程五之输出bin文件代码
在平时开发时,总是会遇到将代码生成bin文件的时候,比如Bootloader。使用S32DS可以通过设置直接编译生成bin文件。首先,要将工程转换成Release模式工程名Temple点击右键,选择Properties点击C/C++ Build中的Settings,将Create flash image打勾,点击OK再次右击工程名,进入Properties,点击Settings中的F...原创 2019-04-20 10:26:17 · 2977 阅读 · 0 评论 -
通俗易懂Xmodem协议
在工作中写Bootloader时,需要串口传输代码数据,为了保证传输数据时不丢帧,需要用到通信协议,我选择的是Xmodem协议。文章目录1. 定义2. 控制字符3. 帧数据格式4. 数据包说明5. 启动传输6. 传输过程7. 代码7.1 Xmodem接收数据代码7.2 CRC16位校验代码1. 定义Xmodem协议是串口通信中广泛使用到的异步文件传输协议。以128字节块的形式传输数据,并且...原创 2019-04-20 12:00:04 · 9985 阅读 · 8 评论 -
毕业设计外文文献下载方法
在撰写毕业设计论文时,学校要求每人找两篇外文文献并进行翻译,以下推荐一种方法。登录网站全国图书馆参考咨询联盟网站为http://www.ucdrs.superlib.net/有时候登不上去,需要翻墙,大部分时候都可以直接登录。将你要输入的关键词先翻译为英文,比如我要搜索汽车电子相关的外文文献。点击期刊,输入汽车电子的英文,点击外文搜索选择一个点进去看一下摘要,如果是自己需要的...原创 2019-05-15 15:06:22 · 5728 阅读 · 3 评论 -
LIN总线的学习
LIN介绍LIN 是 Local Interconnect Network 的缩写,是基于 UART/SCI,通用异步收发器/串行通信接口)的低成本串行通信协议。可用于汽车、家电、办公设备等多种领域。作为一个低成本的辅助总线,LIN总线在汽车电子中应用广泛,车门、车窗、车灯以及中控锁等低速应用都使用LIN总线。其实如果在新能源汽车中,CAN实现这些功能会更简单,但限于汽车里的配件太多,在制作时...原创 2019-07-07 21:51:12 · 8585 阅读 · 1 评论 -
示波器指南
示波器探头当探头探测到被测电路后,探头成了被测电路的一部分。探头的负载效应应包括下面3个部分:阻性负载效应容性负载效应感性负载效应阻性负载阻性负载相当于在被测电路上并联了一个电阻,对被测信号有分压的作用,影响被测信号的幅度和直流偏置。有时,加上探头时,有故障的电路可能变得正常了。一般推荐探头的电阻R>10倍被测源电阻,以维持小于10%的幅度误差。容性负载容性负载相当于在被...原创 2019-08-20 22:30:04 · 576 阅读 · 0 评论 -
CAN外设详细参数测试
文章目录电平标准协议标准测试分析正常波形测量数据解码测量电平测量边沿时间测量总结阻抗匹配测量测量传输距离对信号的影响测量寄生电容对信号的影响总结传输速率测量3MHZ速率总结测试平台:S32K148测试工具:CAN Scope、示波器电平标准CAN总线采用双线查分信号的方式,在CAN总线上,利用CAN_H和CAN_L两根线上的电位差来表示CAN信号。CAN总线上的电位差分为显性电平和隐性电...原创 2019-08-21 22:16:28 · 5990 阅读 · 1 评论 -
S32K144移植S32DS工程到KEIL MDK(史上最详细)
准备需要准备以下三个工具Keil 5高版本MDK下载地址:https://www.keil.com/demo/eval/arm.htmS32DS下载地址:https://nxp.flexnetoperations.com/control/frse/download?agree=Accept&element=9671497S32K Keil_pack包下载...原创 2019-09-11 20:49:51 · 8304 阅读 · 6 评论 -
S32K系列之PWR电源管理
1. S32K电源每个MCU都有自身的电源域和供电架构,这也是MCU电路设计的基础。一般每个芯片的供电框图会在数据手册中提供。如图所示为S32K系列的电源供电架构图。由上图所示,可以将供电系统按电源域来进行分类,分别为域、域和域。下面分类介绍。1.1D=Device,为器件内部的工作电压,与相对,它是数字工作电压。由数据手册可得,和的差值要小于100mA,所以一般在电路...原创 2019-09-29 21:01:19 · 1948 阅读 · 0 评论 -
S32K系列之PDB框图详解及PDB触发ADC
可编程延迟模块PDB,PDB可提供从内部或外部触发或可编程间隔信号到ADC硬件触发输入的可控制延迟。 PDB可以选择提供脉冲输出,用作CMP块中的采样窗口。S32K系列的PDB资源如下表:PDB功能框图在下图中,以下字母表示的意义:N:PDB通道的总数n:PDB通道号,范围从0到N-1M:每个PDB通道的总可用预触发m:预触发编号,范围从0到M-1Y:脉冲输出的总数y:脉冲数...原创 2019-10-01 22:45:43 · 9466 阅读 · 4 评论 -
S32K系列之ADC
简介在S32K中,不同的芯片型号支持的ADC通道不同,S32K144UAVLL有两个ADC,每个ADC有12位、10位、8位和6位可选,每个ADC有16个外部通道。学习ADC的第一步是要掌握ADC的功能框图,对ADC的工作过程和编程过程有个整体的了解。ADC功能框图对ADC的配置主要涉及三种寄存器,控制状态寄存器、触发寄存器和数据寄存器。控制状态寄存器主要有SC2、SC3、CFG1和CFG2...原创 2019-10-02 11:06:56 · 7677 阅读 · 9 评论 -
S32 Design Studio IDE for Arm教程四之更换CPU类型
更换CPU类型在S32DS中,在创建工程的时候可以直接选择芯片类型,但是只有类似S32K116,118等选择,没有具体型号的选择。比如我要选择的是48Pin的S32K118,在选择118时,默认创建的是64Pin的,所以需要在创建工程之后,再次更换CPU类型。点击右侧栏的Components Library选择Processors,将右侧改为ALL,如果刚一开始没有看到自己的芯片类型是...原创 2019-04-20 10:23:31 · 4391 阅读 · 1 评论 -
基于S32K的油门踏板检测项目(基于CAN的Bootloader覆盖升级、回滚升级)
文章目录项目概述要求Bootloader介绍原理设计功能设计硬件设计软件设计主机主机流程Xmodem协议代码从机从机流程升级方案区域划分Boot链接文件修改APP A链接文件修改APP B链接文件修改代码传感器程序设计SPI读芯片寄存器代码SPI写芯片寄存器代码磁角度数据计算代码实物效果项目概述本设计模拟一个车载电子油门踏板检测系统,采用NXP汽车级主控芯片S32K118,使用磁角度传感器AS...原创 2019-05-02 12:14:02 · 3352 阅读 · 6 评论 -
动态库的安装(以json动态库为例)
一、gcc编译器安装动态库链接动态库时编译器会去 LD_LIBRARY_PATH环境变量 记录的路径下寻找对应的库注:如果想要配置一直生效需要将export语句加到~/.bashrc文件末尾1)因为我安装了zsh终端shell所以默认的环境变量在.zshrc里面vi ~/.zshrcexport LD_LIBRARY_PATH=$LD_LIBRARY_PATH:添加路径将exp...原创 2018-10-24 15:18:36 · 1161 阅读 · 0 评论 -
Ubuntu 16.04上安装arm-linux-gcc-4.4.3
Ubuntu 16.04上安装arm-linux-gcc-4.4.3 一、首先下载arm-linux-gcc-4.4.3-20100728.tar安装包,安装包地址: 百度云链接:https://pan.baidu.com/s/13_DnjmfYaugvuuhK6Owt5Q 提取码:f54e 二、解压安装包 sudo tar -zxvf arm-linux-gcc...原创 2018-10-12 08:57:03 · 6271 阅读 · 0 评论 -
jpg实现图像缩放
jpg其实性质和bmp的差不多,但是jpg是经过压缩的,所以在读取jpg的图像数据时,不能像bmp图像那样直接read了,而是有专门的动态库函数支持,需要利用。这个动态库中的函数其他都是按照流程来,这里需要提一下jpeg_read_scanlines这个函数,jpg其实数据也是RGB 3个字节的数据,但是他的顺序是G B R,相对于bmp是反过来的,所以这里需要注意一下。在读取jpg图像时...原创 2018-09-25 19:33:11 · 1677 阅读 · 1 评论 -
bmp实现图像缩放
bmp刷图是比较简单的,它需要注意的是bmp在windows系统下会自动生成54个字节的头文件结构体信息,如果要在知道bmp图的图像尺寸的话,就可以用lseek函数直接跳过这54个字节直接读取自己想要的RGB图像数据,bmp图像不同的是它的图像读取顺序,是从左到右,从上到下,所以要刷到LCD屏幕中显示,需要进行颠倒图像数据。还有就是bmp图像RGB图像是3个字节即24位,但LCD一个像...原创 2018-09-25 19:26:51 · 2325 阅读 · 3 评论 -
图像缩放算法-双线性插值
比如,象刚才的例子,现在假如目标图的象素坐标为(1,1),那么反推得到的对应于源图的坐标是(0.75 , 0.75), 这其实只是一个概念上的虚拟象素,实际在源图中并不存在这样一个象素,那么目标图的象素(1,1)的取值不能够由这个虚拟象素来决定,而只能由源图的这四个象素共同决定:(0,0)(0,1)(1,0)(1,1),而由于(0.75,0.75)离(1,1)要更近一些,那么...原创 2018-09-25 19:25:28 · 791 阅读 · 8 评论 -
图像缩放算法-最近邻插值
简单来说,用最近邻插值算法实现图像的扩大和缩小任意的尺寸,目标图的任意一点的x,y坐标的像素值取源图最接近x,y坐标的X,Y坐标的像素值,以达到扩大和缩小的目的。图像也分RGB图和灰度图,下面讨论的是RGB图bmp格式和jpg格式。 这种放大图像的方法叫做最临近插值算法,这是一种最基本、最简单的图像缩放算法,效果也是最不好的,放大后的图像有很严重的马赛克,缩小...原创 2018-09-25 19:19:27 · 4164 阅读 · 0 评论 -
C++数据转换规则
两个类型不一致的操作数进行算数运算时吧,编译器会按照下面的顺序查阅变换(优先级从上到下)如果有一个操作数的类型是long double,则将另一个操作数转换为long double 否则,如果有一个操作数类型是double,则将另一个操作数转换为double 否则,如果有一个操作数类型时候float,则将另一个操作数转换为float 否则,到这里说明两个操作数都是整型,因此执行整形提升...原创 2018-09-25 19:14:32 · 583 阅读 · 0 评论 -
C语言运算符优先级口诀
基本的优先级需要记住:指针最优,单目运算优于双目运算。如正负号。先乘除(模),后加减。先算术运算,后移位运算,最后位运算。请特别注意:1 << 3 + 2 & 7等价于 (1 << (3 + 2))&7.逻辑运算最后计算。 C语言常用运算符的优先级口诀是:“单算关逻条赋逗”;如果加入位运算符,完整口诀是:“单算移关与,异或逻条...原创 2018-09-25 19:13:29 · 12428 阅读 · 2 评论 -
C/C++常用的文件函数注释格式
下面是我经常使用的两个注释格式,一个用于文件信息注释,一个用于函数信息注释,谢谢大家/*************************************************************** * @file 程序文件的名称 * @brief 程序文件的功能 * @author 作者 * @version 版本号...原创 2018-10-24 20:21:20 · 5511 阅读 · 0 评论 -
strcpy memcpy和memset的区别
strcpy函数只能复制字符串,返回目标字符串的首地址注意:strcpy为什么有返回值,有什么用?strcpy不需要返回值,这个返回值是为了增加灵活性如支持链式表达。memcpy函数可以复制任意内容,例如字符数组、整型、结构体、类等。注意:memcpy要考虑dest和src的地址重叠,这样造成的后果无法预知。所以第一步dest必须在src的左边或者src+size右...原创 2018-11-01 23:22:32 · 618 阅读 · 0 评论 -
Debug和Release的区别
许多IDE里面都会存在Debug和Release两种模式,我们知道Debug是调试模式,可以设置断点,观察变量的值来进行查找问题,那Release模式和Debug模式有什么区别呢,让我们深入了解一下。 Debug可以称为调试版本,它包含调试信息,对代码不作任何优化,便于程序员调试程序。Release称为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优方案,所以在规则...原创 2019-04-15 19:15:49 · 4688 阅读 · 0 评论 -
S32 Design Studio IDE for Arm教程三之点灯配置
S32DS跟我之前用的Keil和IAR不太一样,配置好时钟和引脚后,它会自动修改你的代码,可以更快速更方便的开发,但是上手难度高,现通过S32DS来给S32K148开发板点灯。首先配置时钟在工程界面的左下角,双击如下按钮往下拉,时钟配置成16MHZ,SPLL_CLK配置为2分频,保存配置GPIO引脚,查看原理图发现LED灯是PTE21,22,2...原创 2019-03-30 16:28:48 · 8484 阅读 · 15 评论 -
DS18B20使用详解
DS18B20单线数字温度传感器,支持“一线总线”接口,测量温度范围为-55摄氏度到+125摄氏度,精度为±0.5摄氏度。大大提高了系统的抗干扰性。适合于恶劣环境的现场温度测量。支持3V~5.5V的电压范围。 DS18B20中的温度传感器完成对温度的测量,用16位二进制形式提供,形式表达,其中S为符号位。 由此可见,0~3Bit是温度小数部...原创 2018-12-27 18:55:26 · 5764 阅读 · 0 评论 -
五分钟掌握时间空间复杂度
一、定义在进行算法分析时,语句总的执行次数转载 2018-12-04 12:31:45 · 455 阅读 · 0 评论 -
IIC通信协议
IIC是半双工同步通信方式 两线式串行总线,它是由数据线SDA和时钟SCL构成的串行总线,可发送和接收数据。在CPU与被控IC之间、IC与IC之间进行双向传送,高速IIC总线一般可达400kbps以上。 多主机IIC总线系统结构 IIC通信协议空闲状态 开始信号 停止信号 应答信号 数据的有效性 数据传输 1)空闲状态 I2C...原创 2018-11-25 10:25:30 · 590 阅读 · 0 评论 -
串口UART
UART使用的是异步,串行通信 串行通信是指利用一条传输线将资料一位位地顺序传送。特点是通信线路简单,利用简单的线缆就可实现通信,降低成本,适用于远距离通信,但传输速度慢的应用场合。 异步通信以一个字符为传输单位,通信中两个字符间的时间间隔多少是不固定的,然而在同一个字符中的两个相邻位间的时间间隔是固定的。 数据传送速率用波特率来表示,即每秒钟传送的...原创 2018-11-25 10:13:59 · 301 阅读 · 0 评论 -
五分钟掌握快速排序
快速排序采用的分治法的思想,在数据量大的时候效率极高,所以在许多情景下都能能使用到,是必须掌握的排序方法。 快速排序的基本思想是:先从数列中取出一个数作为基准数(我更喜欢叫标兵) 进行分区,将比标兵大的数放到它右边,小于等于的数放到它的左边 对两个分区重复第二步,直到各分区只剩一个数时退出 在网上看的一篇博客用的是分治法加填坑法,讲的...原创 2018-11-05 21:34:13 · 264 阅读 · 1 评论 -
C语言有符号数截断补位问题
在程序员面试宝典中看到这样一道题,下面程序的输出结果是什么? 1 #include <stdio.h> 2 3 int main(int argc, char const *argv[]) 4 { 5 unsigned int a = 0xfffffff7; 6 unsigned char i = (unsign...原创 2018-09-25 19:11:42 · 2065 阅读 · 0 评论