- 博客(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
原创 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
原创 嵌入式常用的通信外设接口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的有感/无感方波控制程序(无感速度闭环)
2024-02-05
stm32f030定点计算12kHz电流环FOC驱动程序
2023-06-02
开环电压FOC驱动模型PMSM-FOC.slx
2023-05-19
基于stm32f030的4kHz电流环FOC控制程序
2023-05-17
qt串口模板程序,数据帧处理放在单独的线程
2022-12-02
as5600驱动程序,stm32f103硬件iic程序
2022-08-24
STM32f103c8t6工程模板,带DMA串口收发和shell程序
2022-07-20
STM32f103c8t6工程模板,带DMA串口收发和shell程序
2022-07-20
电磁仿真工具EMX参考资料.rar
2022-06-30
利用ADS建立电感以及变压器模型
2022-06-08
oled12864音乐频谱(成功).rar
2020-12-05
Hspice仿真台积电180nm库tsmc018.m
2020-10-19
OLED12864驱动程序(SPI).rar
2020-10-17
cadence spectreRF自带的rfworkshop仿真教程rfworkshop.tar
2020-10-06
electrongun.rar
2020-09-23
gcc10.1.0安装,gcc安装包+依赖包.rar
2020-08-18
windows下的USB驱动工具zadig+从sd卡启动fel的fel-sdboot.rar文件
2020-08-16
Qt串口示例程序serial.rar
2020-08-05
MFC数字通信系统程序设计.rar
2020-05-16
spi接口oled12864播放badapple,badapple(stm32).rar
2020-03-25
使用MDK自带的串口调试,dbg-printf工程模板.rar
2020-03-25
包含74*56和128*64两种大小的badapple.bin文件
2020-03-24
用tone函数播放歌曲《十年》-toneMelody.rar
2020-03-23
修改后的arduino库文件Tone.cpp
2020-03-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人