自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(93)
  • 资源 (23)
  • 收藏
  • 关注

原创 【无刷电机】无感方波驱动方案

根据前述方法,用过零信号计算对应的霍尔信号,并更新扇区,然后在main函数中延时30度相角之后再将霍尔触发标志置位,根据扇区进行霍尔换相。需要注意的是,反电势为梯形波,但反电势过零检测电路的输出只有高低电平,这里为了便于观察,绘制的是梯形波信号。霍尔传感信号接单片机外部IO中断,设置为双边沿触发,触发后读取霍尔传感信号,更新扇区,状态标志设置为霍尔触发,并关闭外部中断。但是,我们观察其他相,其中就有超前本相30度相位的过零信号,所以我们仍然可以通过延迟反电势信号取反来获得霍尔信号,只不过相序要调整。

2024-02-04 17:46:50 1100

原创 【LVGL】不同类型输入设备驱动接口的实现

文件,用以实现触摸屏、鼠标、键盘、编码器、按钮五种输入设备的接口程序。使用相应的设备,就需要去掉接口部分的注释,填充相应的初始化函数和读取函数。需要注意的是,键盘和编码器需要绑定到对应的group,才能对group里的控件进行响应。编码器由于既有旋钮又有按钮,故相比键盘输入设备多了。,只要能得到不同的键值就行。键盘输入设备的初始化。函数中通过iic完成对触摸芯片的初始化,在。比如,这里注册了三个输入设备,分别对应。函数中注册多个输入设备结构体即可。LVGL支持多设备输入,只需要在。对于触摸屏来说,需要在。

2024-01-07 22:50:30 628 3

原创 【PCB设计】嘉立创EDA器件3D模型导入AD的方法

3D Model Type属性栏中,在Generic - Embed Model处为3D体设置嵌入模型,点击Choose选择模型路径。在嘉立创EDA中找到对应的元器件,并生成PCB,选择导出3D文件。进入AD的PCB library界面,放置3D元件体。3d体会出现在较远的地方,把它拖动到元件处即可。选中模型PCBmodel,导出为step文件。3D元件体区域的大小会在加载模型后自适应。AP214标准的step格式。删除Board,只留下元件。用FreeCAD打开模型。导出元件step模型。

2023-12-07 19:22:55 3076

原创 【LVGL】显示驱动移植,控件显示错乱的解决办法

我们移植LVGL显示驱动的主要工作就是将上述两个函数用自己的屏幕驱动实现,比如我这里采用的是SPI接口的ST7735驱动。,即在写入之前先指定起始和结束地址,然后一次性写入。本来以为到这里就万事大吉了,没想到跑起来后按钮控件直接裂开(字面意义上的)。(注:如果没有正确初始化分辨率,采用打点填充的方式,控件可能显示正常,但坐标会异常),这种方法每次写入输入都需要指定对应的地址,效率比较低。有5个参数,分别为起点xy坐标、终点xy坐标以及对应的颜色数组。有它三个参数,分别为显示驱动对象、坐标数据以及颜色数据。

2023-11-18 16:48:23 1085 1

原创 【STM32】STM32G系列使用CORDIC模块加速计算

STM32G系列内置CORDIC模块可以加速三角函数等数学运算,且拥有较高的计算精度。CORDIC模块单次转换速度可能与查表法没有太大差距,但其优势在于,可以同时对大量数据进行相同的运算操作,同时节省CPU资源。使用时,需要按照手册对数据进行浮定点转换以及标幺处理。另外,使用过程中发现,DMA模式下更改CORDIC模块配置进行不同的数学运算,得到的计算结果会出错,因此DMA模式只适用于相同数学运算的应用场景。参考资料:1.2.ST官方CORDIC例程。

2023-07-04 19:24:52 3618 4

原创 【嵌入式linux】spi驱动加载后probe函数未执行的问题

进入linux源码根目录,通过make menuconfig配置内核源码,果不其然,在Device drivers->SPI support下找到了未被剔除的RC522 Module Driver support选项。为了快速上手嵌入式linux平台spi接口,我打算先编写一个简单的spi driver直接与官方提供的设备树中的rc522属性相匹配。然后用脚本./create.sh编译内核以及设备树,通过tftp启动更新后的linux内核,insmod装载spi驱动。做一些初步的spi读写操作。

2023-06-15 22:27:06 903

原创 【STM32】STM32G4系列片内模拟器件-比较器的使用

STM32G4系列内置了片内模拟比较器,为电机控制、电源监测等方面的应用提供了很大的便利。要使用片内比较器,只需使用STM32CubeMX进行简单配置即可。

2023-06-08 11:55:32 4279 3

原创 【STM32】stm32f030软件触发多通道ADC扫描采样

测试过程中发现采集到的数据总是不正确,于是将ADC的Discontinuous Conversion Mode选项配置为Enabled,问题解决。

2023-05-26 15:58:33 1206

原创 【STM32】定时器PWM模式详解

由于中心对齐模式先向上计数再向下计数,在极性为高的情况下,采用PWM模式1会得到中间低电平、两边高电平的调制波形,如图所示。将RCR设为1,这样我们能够在每个PWM周期结束时(即计数器向下溢出时)触发一次更新中断,执行相应的任务。当然也可以不设置RCR,而是在中断中读取计数器的count值的大小来判断此次更新中断为上溢还是下溢。SVPWM驱动无刷电机时,采用中心对齐的PWM模式能够取得好的驱动效果。PWM模式1,向上计数时,PWM信号从。PWM模式2,向上计数时,PWM信号从。

2023-05-06 17:15:05 5432

原创 【STM32】STM32G431 BOOT0与I2C引脚冲突的解决办法

由于STM32G431的PB8既是BOOT0引脚又是I2C的SCL引脚,要使STM32从内部flash启动,则BOOT0需要下拉至地,但I2C设备又存在上拉电阻,二者冲突。设置成功后,通过debug窗口查看FLASH->OPTR寄存器,可以看到设置成功,之后STM32启动则会不会通过BOOT0引脚电平来决定启动方式,避免了与i2c接口冲突。我们可以通过官方软件STM32 ST-LINK Utility来擦除nSWBOOT0位,连接上目标板,然后设置Option Byte,如下图所示。

2023-03-23 19:56:04 2024 2

原创 【STM32】IAP下载程序分析

1.要实现IAP功能,需要建立bootloader和app两个工程,bootloader地址从0x8000000开始,而app地址由用户指定(不能与bootloader冲突),编译好工程后分别下载到STM32;2.在bootloader中设置MSP和PC以跳转至app执行,进入app后首先要重映射中断向量表,使得中断执行app空间的中断函数。

2023-03-21 17:17:26 866

原创 【STM32】ADC+DMA方式采样调试笔记

STM32 ADC+DMA方式采样调试笔记

2023-03-17 11:41:50 800

原创 uA741运算放大器电路基本原理

在Q7的作用下,Q5和Q6组成电流镜,Q6的集电极电流被复制到Q5集电极,完成差分信号到单端的转换。如果采用普通的电流镜接法(即将Q6的集电极与基极相连),则Q5和Q6的基极将会从Q3集电极分走一部分电流,使得Q6集电极电流不严格等于Q3集电极电流,从而使复制的Q5集电极电流(也即Q4的集电极电流)不严格等于Q3的集电极电流。当输入电流增大至Q20导通后,Q20的基射压降Vbe基本维持稳定,则经Q19放大后流过R10的电流基本恒定,这说明输入端多余的电流由Q20直接释放到输出端,从而限制的输出电流的大小。

2023-02-03 14:46:45 5206

原创 【嵌入式linux】imx6ul中断学习笔记

对于开发者来说,实现中断需要知道所用外设对应的中断号,编写自己的中断执行函数,然后根据中断号将执行函数注册到数组中。当中断发生后能够根据中断号去调用数组中相应的执行函数。

2022-11-23 11:09:54 393 1

原创 自己搭建的IC618开发环境

说明:ic618用户下的SHELL是csh不是bash,修改环境变量在其home目录下的.cshrc文件中进行。工作目录为IC_Project,输入命令virtuoso&启动软件。链接:https://pan.baidu.com/s/1MFXjAEPzCad1stRRKugvvg。复制这段内容后打开百度网盘手机App,操作更方便哦。按照EETOP上的教程装的,分享给大家。虚拟机环境IC618。

2022-11-11 11:55:16 1445

原创 【无刷电机】三相霍尔信号,六步方波驱动

以101状态为例,驱动电压为B+ C-时,磁场方向如图所示,对转子起排斥作用,使得转子从101扇区变化到100扇区,对应电机顺时针旋转。当驱动电压为C+ B-时,磁场方向相反,对转子起吸引作用,使得转子从101扇区变化到001扇区,对应电机逆时针旋转。反电动势过零点30度,则当霍尔信号为101时,C相处在过零状态,电机由AB相驱动,当霍尔信号为100时,B相处在过零状态,电机由AC相驱动。同理,当霍尔信号为100时,此时C相反电动势过零,电机由AB相驱动。要使电机反转,只需将驱动相正负对调即可,则电机。

2022-09-26 12:46:39 5355

原创 卡尔曼滤波学习笔记

这样我们就得到了卡尔曼滤波的迭代表达式(1)(3)(4),在初始化时,给定初值x(0)和D(0),通过传感器不断采集数据z(n),按最小方差进行估计,便可使得数据值向逐渐向真实值靠拢。假设已有估计值x(n-1),其对真实值的方差为D(n-1),此时传感器实测数据值为z(n),对真实值方差为R,且估计值和实测值都不够准确。这里K取什么值才能使x(n)对真实值的方差D(n)最小呢?由于x(n-1)与z(n)相互独立,可以计算方差。不难看出这是个关于K的一元二次的函数,故当。时,估计值x(n)有最小方差,为。

2022-09-14 11:10:23 164

原创 QT设计UI时,把label嵌入左上方边框横线的方法

先调出一个label控件,拉伸到合适大小,设置QFrame中的frameShape格式为Box,设置frameShadow为Sunken,然后删除label文字,这样就得到了一个空方框。然后,再调出另一个label控件,勾选其autoFillBackground选项,并将此标签拖动到前一控件的左上角,即完成嵌入的效果。

2022-09-08 14:32:52 1606

原创 【射频ic设计】EMX常用设置

1.设置要屏蔽的器件2.查看版图3.设置仿真精度,粗略1,中等0.5,较高0.24.设置信号端口5.设置频率范围6.选择仿真器件,除了N-Port外,其他器件(如变压器)对引脚有顺序要求具体仿真过程:选择仿真器件,设置仿真精度、信号端口、频率范围,点击Simulation-Start开始仿真,等待仿真结束。点击Plot可以查看仿真结果曲线,点击Create model-Start生成等效电路模型,点击Create view-Model生成模型视图,点击Create view-Symbol创建符号

2022-06-30 18:59:44 6984 9

原创 【变压器版图设计】利用ADS生成变压器版图

注:ADS的CoilSys工具只能生成两线圈大小相等的变压器。设置好相应的变量值,可以点击Preview进行预览。设置EM仿真用的衬底文件,我这里导入的是工艺厂提供的ltd衬底文件。EM设置,扫频范围设置进行EM仿真并生成模型,等待EM仿真完成最后,在自己的原理图中调用生成的模型即可。导出设计好的变压器gds版图,需要在More Options里面添加layer映射文件(由工艺厂提供)。EM参数化仿真可参考教程https://youtu.be/HsZXTfB8SWg。......

2022-06-14 16:28:52 2894 2

原创 【SimpleFOC】例程find_sensor_offset_and_direction阅读笔记

SimpleFOC的find_sensor_offset_and_direction例程,包含了电机初始化时角度的校准操作

2022-06-12 01:11:09 918

原创 【阻抗匹配】利用ADS完成匹配电路的设计

1.先利用Smith Chart调出大致的宽带性能,确定采用的匹配电路结构2.搭建电路,设置VAR变量,添加OPTIM优化控件,设置MeasEqn测量表达式,设置GOAL优化目标3、启用仿真变量在优化选项卡中勾选需要优化的变量,并设置优化区间4、启动优化器,开始仿真当自动优化得不到想要的结果时,可以点击Start Tuning进行手动调节。...

2022-06-08 10:11:01 2513

原创 【Virtuoso Layout】版图编辑常用快捷键

最常用Esc:取消操作i:插入元件版图c:复制m:移动u:撤销上一步操作q:查看属性f:全局视图e:显示设置(图层、栅格、走线模式等)r:矩形填充o:放置通孔p:放置走线l:放置标签s:拉伸形状a:对齐(边缘、顶点、中心等)鼠标右键:放大局部视图点击鼠标滚轮:旋转版图(在移动时)较常用Shift+f:显示全部图层x:进入元件版图内部Shift+b:返回上层版图...

2022-05-30 10:54:52 16223 3

原创 【Virtuoso ADE】编辑原理图常用的快捷键

最常用Esc:取消操作i:插入元件r:旋转元件w:连线m:移动元件(保持连线)Shift+m:移动元件(断开连线)单击鼠标滚轮:旋转元件c:复制元件u:撤销上一步操作q:查看元件属性l:放置连线标签p:放置引脚滚动鼠标滚轮:缩放视图鼠标右键:放大局部视图f:原理图全局显示较常用e:进入元件内部(只读)Shift+e:进入元件内部(编辑)Ctrl+e:从元件内部返回上层n:放置注释图形Shift+n:放置注释文本t:编辑文本...

2022-05-30 10:42:44 2620

原创 方波、三角波、正弦波信号发生器

积蓄翻转型方波发生器由迟滞比较器和RC充放电电路组成。电容充电,越过比较点时,输出电平发生翻转,比较点也发生翻转,然后电容开始放电,等待再次越过比较点,以此循环往复,从而在输出端产生一个方波。产生方波的频率与电容充放电速度(RC电路的时间常数)以及比较点的高低有关。方波积分可以得到三角波,然后将反向积分后的三角波信号再次反向后接回比较器负端,以维持方波的产生。或者将三角波信号接回比较器正端利用正反馈构成自激振荡正弦波发生器。正端是选频网络,负端是比例放大电路。RC谐振电路选出特定的频率,在该

2022-01-06 11:23:13 11033 3

原创 单门限比较器和迟滞比较器

单门限比较器只有一个固定的阈值电压,而迟滞比较器的阈值电压会随着输出的翻转而变化。电路的输出波形如下:从图中可以看到,迟滞比较器有一个正阈值电压和一个负阈值电压,而单门限比较器只有一个固定的阈值电压。相比单门限比较器,采用迟滞比较器能够消除阈值附近信号剧烈抖动带来的影响,如下图所示。参考:杨建国《新概念模拟电路》系列视频...

2022-01-05 20:11:40 5131

原创 精密整流电路

如果直接采用二极管进行整流,由于二极管本身存在压降的影响,当输入信号很小时,得到的整流信号幅值非常小。根据运放的虚短特性,设计了如下精密整流电路,使得整流后的波形幅值与源信号相等。运放U1构成反向比例器。随着输入信号的变化,在二极管的作用下两个反馈环路在周期内交替工作,得到两组半波整流波形,然后将其中一组波形通过比例加法器与源信号进行叠加运算,最后得到全波整流波形。当开关拨到不同路时,得到的输出波形关于x轴对称。输入信号与半波整流波形如下:开关拨到上方时,整流波形如下:当开关拨到下方时,整流

2022-01-05 13:51:40 2617

原创 基本稳压电路

经过整流后的电源具有较大的电压纹波,单靠调节滤波电容不能明显改善输出电源纹波特性,因此需要采用稳压电路来减小输出电源的纹波。若直将稳压管接至负载输出,则稳压管的工作特性受负载影响较大,甚至会出现不能正常工作的情况。采用下图所示的稳压电路则能保证稳压管始终能够正常工作。其核心思想仍然是负反馈。运放正输入端采用稳压管提供一个相对稳定的基准电压,并通过同相放大在输出端得到一个稳定的输出电压。而由于运放具有一定的电源抑制比,所以在供电电压在一定范围波动时,其仍可正常工作。同向比例运放的输出电流有限,故采用了

2022-01-04 17:25:52 1673

原创 桥式整流、滤波电路

变压器降压,全波整流,电容滤波。电压电流波形如下,放电的时候时间常数是R1C1,充电的时候是R2C1,其中R2=(R1//桥式电路电阻),R2<R1,充电时间常数小,所以放电慢、充电快。滤波电容C1越大,充放电时间常数均增大,但由于R1>R2,故放电时间占周期的比例更大,充电时间更小,则充电时浪涌电流增大,更容易击穿二极管。...

2021-12-31 12:20:55 2635

原创 对PWM、SPWM和SVPWM的理解

PWM:脉冲宽度调制,若x是变量值,则PWM[x]是当前的脉冲宽度。如:x=3对应PWM[x]=30%;x=5对应脉宽值PWM[x]=50%。SPWM:正弦脉冲宽度调制,脉冲宽度PWM[n]对应正弦曲线上的周期性采样值Xn。如:Xi(i=0~n)是正弦曲线随时间的离散采样点,则X0对应脉宽值PWM[0],X1对应脉宽值PWM[1]……SVPWM:空间矢量脉冲宽度调制N个矢量(x1、x2、……、xn)叠加形成一个合矢量来对系统施加影响,在一个周期T内,每个矢量的有效作用时间分别为t1、t2、……、t

2021-12-30 19:05:33 1920

原创 kmp算法笔记

kmp算法:字符串模式匹配算法,找出子串在母串中的位置。首先要计算子串中每个字符首串的模式值(最大首尾相同字符的个数),模式值决定了匹配失败的情况下回溯的位置,这样就不用从头开始逐位比较,而是从模式值指定的位置直接开始比较,从而节省了计算时间,这是后续子串与母串匹配进行移位的依据。如子串字符串“abcabcde”字符a首串模值-1字符b首串a模值0字符c首串ab模值0字符a首串abc模值0字符b首串abca模值1字符c首串abcab模值2字符d首串abcabc模值3字符e首串abcabc

2021-12-29 13:57:22 264

原创 ADS2020 Crack使用教程

解压后,Crack文件夹下有如下内容,Readme中有具体使用步骤。安装好ADS2020后,将Crack文件夹下的ADS2020和EEsof_License_Tools中的内容复制添加到对应的ADS2020安装目录下,将license.lic也复制过去。在我的电脑-属性-高级设置-环境变量中添加新的环境变量ADS_LICENSE_FILE,值为刚才的license.lic的路径。最后运行netapi32,然后重启电脑即可。...

2021-11-17 14:03:29 4202

原创 Virtuoso版图工具栏上没有PDK按钮,Calibre验证DRC时没有Customization选项

解决办法:在home目录的.cdsinit文件中加载工艺库中的.cdsinit文件路径,比如我这里添加了GF工艺库中的.cdsinit文件load(strcat(getShellEnvVar("GF_PDK_HOME") "/DesignEnv/VirtuosoOA/setup/.cdsinit"))注意:GF库这样操作之后会导致virtuoso版图中的一些快捷键发生变化,可以注释掉GF库中的.cdsinit文件中的第496行来解决这个问题。...

2021-11-16 15:21:47 2472 2

原创 射频工程师

慧智微S参数意义,阻抗匹配,smith圆图,LC网络,Q值,匹配设计,噪声系数,级联系统噪声,噪声源分析,调制方式,通信系统PA性能,LNA作用、典型输入匹配,电感模型分析、感值Q值变化情况,介绍无源器件。...

2021-10-07 21:36:56 450 2

原创 模拟ic

思瑞浦电流镜版图布局,电流镜失配分析,米勒电容,等效输入电容,电阻热噪声,等效热噪声,计算输入电阻,电流镜绘图

2021-09-27 22:27:23 440

原创 AE

意瑞数字逻辑,JK触发器,计数器,状态转移,波形,系统函数,深度负反馈,三极管,小信号分析,输入输入输出阻抗

2021-09-27 11:08:58 91

原创 FAE

MPS系统函数,截止频率,品质因数,运放、比较器,反馈,RC电路响应,桥式整流,功率计算,三相电机控制

2021-09-27 11:04:34 126

原创 射频ic

艾为电子噪声系数定义 计算,A B AB类功放区别,功率计算,入射功率,一些基本概念,锁相环系统函数。

2021-09-27 10:38:24 338

原创 嵌入式常用的通信外设接口I2C、SPI、UART

I2C半双工通信时钟线SCL,数据线SDA起始位:SCL为高,SDA下降沿停止位:SCL为高,SDA上升沿数据传输:SCL为高,传输SDA数据,SCL为低时,可以改变SDA数据应答信号:主机发送完8位数据后,下一个时钟从机发送应答信号I2C写时序:(高位MSB先发送)1.开始信号2.主机发送7位从设备地址3.主机发送读写标志,1读,0写4.从机应答5.主机发送数据6.从机应答7.停止信号I2C读时序:1.开始信号2.主机发送7位从设备地址3.主机发送读写标志,1读,0

2021-05-15 11:09:38 1168

原创 向linux编译好的内核模块传递参数

在得到. ko内核模块后,用insmod向linux系统插入内核模块的时候,向该内核模块动态传递参数,需要事先在驱动程序中加入module_param(name,type,perm)函数以确定一个待输入的参数。然后可以使用insmod xxx. ko 变量名=取值的形式来向内核模块传参同样,传递数组需要用module_param_array(…)函数。...

2021-05-13 21:45:32 260

基于stm32f030c8t6的有感/无感方波控制程序(无感速度闭环)

方波驱动是两相驱动,一相悬空。驱动相施加PWM控制电流大小,进而控制转速。悬空相为高阻状态,没有电流流动,因此可以检测到其反电势过零点。采用硬件比较器,构造虚拟中性点,与端电压作比较,得到过零信号。通过三路比较电路来分别检测ABC三相的反电势过零点,每相产生两个过零信号(由负变正、由正变负)。而反电势过零点与换相点一般相差30度相位,从而可以得到六个换相位置。但实际上,悬空相的消磁会使端电压突变,从而造成虚假的过零触发。因此需要在程序中设置blank time用来过滤虚假的过零信息。30度的相位延迟时间可以根据过零触发的时间间隔按比例来近似计算,可以使用MCU的硬件定时器来进行周期计算以及0.1us级的精确延时操作。由于滤波延迟等因素,实际最佳换相点与反电势过零点的相位差小于30度,因此可以设置超前角来优化换相效率。驱动电路采用的是SGM42553集成三相半桥芯片,EN端实现驱动相切换,IN端控制PWM占空比大小。MCU采用stm32f030c8t6,IO口设置为外部中断模式,用来响应霍尔信号或者过零信号的触发输入。先在中断中读取触发信号电平确定扇区,然后在main函数中实现换相操作。

2024-02-05

stm32f030定点计算12kHz电流环FOC驱动程序

将4kHz的浮点计算代码优化成了12kHz的定点计算代码,运行周期在80us以内,能够稳定运行。定点化的基本思路是将浮点数先放大一定的倍乘系数,并转换成32位整型的定点数,进行定点乘除法,再将结果还原回去,从而大大节省计算时间。倍乘系数一般取2的次方数,这样在还原的时候只需使用右移位即可代替除法操作进行倍除,从而节省一定的时间。定点化的难点在于,你不知道哪个变量该放大多少倍,太小会损失计算精度,太大会导致数据溢出,一般需要进行事先合理的评估以及实际上电试验。函数的定点化最好按先后顺序来,每转换完一步就验证一遍,确保万无一失。一般程序无法正常运行基本都是数据溢出导致的,这时需将倍乘系数调小一点。一些常量的计算不必放在循环里浪费计算资源,可以在初始化过程就先计算出来。另外,一些系数可以结合在一起,如ADC采样的电压需要乘以一个电流系数,这个电流系数就可以和PID参数合并(相乘),同样在初始化时就可以计算确定下来,省去多次乘法运算的步骤。定点化后,PID的控制量的目标输入量也需要根据你的设计进行调整,扩大相应的倍数。SVPWM的输出也可以直接设计成PWM比较值的范围,而不是占空比的形式。

2023-06-02

开环电压FOC驱动模型PMSM-FOC.slx

Simulink 搭建的开环电压FOC控制模型,电机采用的是Surface Mount PMSM,逆变器采用Average-Value Inverter模块。基本控制逻辑为,首先读取电机机械角度并转换为电角度,Ud置0,给定一个Uq,然后经过逆park和逆clarke变换得到三相电压Uabc,再将Uabc转换成三相占空送入逆变器,最后成功驱动电机。

2023-05-19

基于stm32f030的4kHz电流环FOC控制程序

参考simpleFOC代码,在stm32G431上实现了20kHz的FOC电流环。为了降低驱动器成本,将主控由G431改为F030,目前所有代码均为浮点计算,实现了4kHz的电流环(FOC单周期时间成本约230us),控制效果一般,可作为初步参考。后续需要改为定点计算,提高电流环频率以优化控制效果。。程序架构采用了ST电机库的方案,在ADC采样完成中断里执行FOC程序。驱动方式为3个EN端加TIM1三通道PWM输出,TIM3采集编码器AB相输入,3通道ADC扫描采样三相电桥低边通道采样电阻电压。TIM1为中心对齐模式1,PWM模式2,RCR设为1(每两次溢出触发一次中断,即在下溢时触发ADC采样)。上电后电机开环运行,校对Z相(外部上升沿中断)信号,确定编码器初始偏移量,调试时将变量start_run修改为1以开始执行闭环程序。电流环程序放在ADC采样完成回调函数里面,首先获取编码器计数值并计算电角度,然后获取电流采样值并经过clarke变换和park变换得到qd电流,再经低通滤波和PID计算后得到qd电压控制量,然后逆park变换并计算SVPWM占空,最后经TIM1输出三相占空。

2023-05-17

用QT写的无刷电机串口调试GUI界面

基于C++,串口收发,上位机通过串口命令向单片机发送指令,通过接收串口帧数据来解析单片机发送的数据,显示在GUI界面。

2023-01-31

qt串口模板程序,数据帧处理放在单独的线程

基于qt的串口模板程序,实现了一个封装好的串口线程类,在一个单独的线程里处理串口接收缓冲帧数据,帧头帧尾检测,数据提取,可以定义自己的数据接收协议。

2022-12-02

as5600驱动程序,stm32f103硬件iic程序

通过硬件iic来驱动as5600,能够对电机进行绝对角度编码,实时读出角度值,分辨率为4096,对应角度范围为0~2PI。

2022-08-24

STM32f103c8t6工程模板,带DMA串口收发和shell程序

利用STM32cubemx生成的stm32f103c8t6工程模板,包含DMA串口空闲中断接收,一个按键和一个外部中断,带shell命令行程序,有串口命令解析功能,能够解析20个字符以内的命令。

2022-07-20

STM32f103c8t6工程模板,带DMA串口收发和shell程序

利用STM32cubemx生成的stm32f103c8t6工程模板,包含DMA串口空闲中断接收,一个按键和一个外部中断,带shell命令行程序,有串口命令解析功能,能够解析20个字符以内的命令。

2022-07-20

电磁仿真工具EMX参考资料.rar

平面电磁仿真工具EMX使用参考手册。EMX是集成在virtuoso中的一款插件,可用于射频无源器件的仿真,自带电感、电容、变压器、传输线等多种等效电路模型,以及S参数提取功能。

2022-06-30

利用ADS建立电感以及变压器模型

利用ADS建立电感以及变压器模型,单端、差分,巴伦结构,方形、正八边形,对称、非对称,抽头,圈数、线宽、间距、内外径可调,生成Pcell,可变参数元件。可以指定采用的金属层以及过孔层。缺点是变压器结构比较固定,无法生成任意的初、次级线圈感值。

2022-06-08

matalb写的用于谐振计算的GUI程序.rar

matlab GUI程序,用来计算谐振电感、谐振电阻、谐振频率、感抗和容抗等。

2021-04-15

oled12864音乐频谱(成功).rar

用stm32f103c8t6实现实时音乐频谱显示,显示模块为spi接口的OLED12864,FFT算法采用官方CMSIS包中提供的FFT库。

2020-12-05

Hspice仿真台积电180nm库tsmc018.m

可用于Hspice仿真的tsmc180nm的库,通过语句.lib "tsmc018.m" TT将库模型导入到.sp仿真电路文件就可以正常使用了。

2020-10-19

OLED12864驱动程序(SPI).rar

这是spi版的oled12864驱动程序,借鉴了arduino库中的方法,采用了128字节的按位显示缓存,分8次将需要显示的数据刷新到oled,所占存储空间少,包括中/英字符显示、画直线、画圆等基本函数。

2020-10-17

cadence spectreRF自带的rfworkshop仿真教程rfworkshop.tar

cadence spectreRF自带的rfworkshop仿真教程(LNA/Mixer/PA/VCO),可以在目录/opt/Cadence/MMSIM15/tools.lnx86/spectre/examples/SpectreRF_workshop下找到压缩包。

2020-10-06

electrongun.rar

皮尔斯电子枪综合迭代法matlab程序,计算结果与论文实验结果有些许差别,但大致吻合。修正了经典迭代法中的几个公式,使得计算步数减少,结果容易收敛。

2020-09-23

gcc10.1.0安装,gcc安装包+依赖包.rar

包含gcc-10.1.0、gmp-6.2.0、mpc-1.1.0、mpfr-4.1.0四个文件。在安装新版gcc之前,先装好三个依赖包,修改好环境变量,然后再编译安装新版gcc。

2020-08-18

windows下的USB驱动工具zadig+从sd卡启动fel的fel-sdboot.rar文件

若usb设备不能正常识别,可以用zadig软件给usb设备安装驱动。在烧录荔枝派flash时,往往需要进入fel模式,将fel-sdboot文件写入sd卡能够使荔枝派上电直接进入fel模式,从而使系统检测出usb fel设备。

2020-08-16

Qt串口示例程序serial.rar

用QT写的串口通信程序,框架很简单、代码极少,可以作为学习参考,串口波特率默认为9600,若需要更改波特率,需要在源程序中修改对应的值,或者给程序添加新控件用来修改波特率。

2020-08-05

snake.rar--贪吃蛇游戏

用easyx图形库开发的贪吃蛇游戏,运行环境为vc++6.0,。采用的数据结构为链表,显示为局部刷新,方向wasd控制。

2020-05-16

badapple.rar--vc++6.0版

运行环境vc++6.0,需要安装easyx图形库(CSDN上有下载资源),主要用到文件的读写操作,显示大小为128*64.

2020-05-16

MFC数字通信系统程序设计.rar

运行环境为vs2010,MFC程序。ASK调制与解调系统,FIR滤波,高斯白噪声生成,功率判别法。要弄懂该程序,可能需要对MFC编程框架有所了解。

2020-05-16

数字通信系统.rar

c语言控制台程序,运行环境vc++6.0,需要安装easyx图形库。ASK调制与解调,FIR滤波,模拟高斯白噪声的方法,功率判别法还原信号。

2020-05-16

用matlab播放,badapple.rar

用matlab读取指定路径下的badapple.bin文件,然后处理读到的字节信息,合成为二值图像,动态显示。

2020-03-25

nrf905发送和接受程序.rar

简单的nrf905发送和接受程序,stm32f1作为主控。数据发送和接收端均经过测试,程序已经调通,可以根据自己的需要增加传输协议。

2020-03-25

spi接口oled12864播放badapple,badapple(stm32).rar

通过fatfs文件系统读取sd卡根目录中的badapple.bin文件,然后将图像数据送到spi接口的oled12864中显示。帧率为30,能够流畅播放。

2020-03-25

使用MDK自带的串口调试,dbg-printf工程模板.rar

不能使用4线的调试下载器,必须使用标准JTAG接口,MDK才能捕获调试口的串口信息。MDK自带的调试工具很不好用,而且有较大的延迟,不过足以应付简单的串口接收任务。

2020-03-25

包含74*56和128*64两种大小的badapple.bin文件

提供了两种不同大小的badapple.bin文件,能够在oled12864上显示,读出的字节数据按行列式的扫描规则提供给oled屏幕显示,一个字节包含纵向八个点的信息。

2020-03-24

用tone函数播放歌曲《十年》-toneMelody.rar

调用tone函数控制引脚8和引脚9输出不同频率的方波,作为双音轨输出:主旋律+和弦,编曲来自随身乐队的范例歌曲。音乐数组共有四组,两组频率值加两组延时值,以const的形式存储在单片机ROM里面。

2020-03-23

修改后的arduino库文件Tone.cpp

未修改的tone文件默认只使用了定时器2,当对不同引脚使用tone函数时,后面调用的tone会覆盖前面的tone操作,时钟只有一个频率输出。修改后的tone库文件,能够同时调用定时器1和定时器2产生方波,让两个引脚能够输出不同频率并且互不干扰。

2020-03-23

空空如也

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

TA关注的人

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