- 博客(110)
- 资源 (2)
- 收藏
- 关注
原创 【SPI通信】dma中断和spi中断的区别
在使用spi通信的时候,为了减少cpu的负担,从机采用dma的方式传递。1)仅dma:可以提高传递效率,但是需要防止数据被覆盖;如果每次传递的信息不一样,处理起来就会很麻烦,会产生数据错误;2)dma中断:每次dma传输完成、传输一半,都会产生中断,可以避免数据覆盖。3)spi传输:占用cpu时间4)spi中断:可以获取传输过程的特殊事件。dma中断和spi中断相比,在占用cpu时间上,dma会占用的更少,因为他的传输过程并不占用cpu时间。
2025-02-06 10:50:36
89
原创 【电机控制】电机堵转检测、处理
在某项目中,乙方要求在电机遇到堵转时,停止运动。主要目的是:1)为了减少堵转时,电机产生的噪音;2)担心长时间堵转,会产生损坏电机、编码器;
2025-02-06 09:44:00
368
原创 【概念】阻抗匹配
传输线末端的信号反射,导致负载输入端上的电压升高超过VCC和二极管D1的正向偏值电压,使得该二极管正向导通连接到VCC上,从而将信号的过冲嵌位在VCC和二极管的阈值电压的和上,同样,连接到地的二极管D2也可以将信号的下冲限制在二极管的正向偏置电压上;戴维南终端匹配技术也叫做双终端匹配技术也就是双电阻形式的并联匹配,它采用两个电阻R₁和R₂来实现终端匹配,要求的电流驱动能力比单电阻形式小,这是由于R₁和R₂的并联值与传输线的特性阻抗相匹配,每个电阻都比传输线的特性阻抗大。2)与电源VCC连接的电阻不能太小。
2025-01-23 17:03:37
116
原创 【电机控制】为什么采用电流环
直流电机的控制:电流环、速度环、位置环。在原来的控制中一直没有采用电流环,觉得电流环是一个很鸡肋的事情。省去电流环之后,直流电机的控制变成了:速度环、位置环。通过位置传感器,获得速度和位置,然后计算速度偏差,直接得到电压设定值。当负载变大的时候,速度下降,偏差变大,提高电压设定值;当负载变小的时候,速度上升,偏差减少,减少电压设定值。如果只是单纯地这么分析,好像不采用电流环也可以。
2025-01-16 09:33:38
252
原创 【算法】一阶低通滤波
在电机的闭环过程中,无法避开的一点就是电流环,电流环需要采集电流数据,然后闭环输出。在电流环采集的过程中,数据会有很多高频噪声,这个时候如果直接闭环,那么输出的数据就是不稳定的。这个时候就需要低通滤波(即低频率信号通过)。如上图所示,实测数据是黑线,波动较大。
2025-01-09 09:56:09
540
原创 【嵌入式】状态机思想
状态机,也被称为有限状态机(Finite State Machine, FSM),是一种用于模拟和表示系统行为的抽象计算模型。状态机是一个抽象概念,主要用来描述对象或系统的行为。在任何给定的时刻,状态机只能处于有限个状态中的一个。当某些条件满足或者某些事件发生时,状态机会从一个状态变为另一个状态,这种变化被称为状态转移。
2024-12-24 15:47:47
47
原创 【ubuntu】如何升级g++
用户可以轻松地向系统添加新的 PPA,并从中安装软件包。该命令还会自动更新系统的软件包索引以便访问新添加的 PPA 中的软件包。Toolchain Test Builds PPA(Personal Package Archive),PPA是个人软件包档案。命令,用于向APT(Advanced Package Tool)系统添加新的软件源列表,使得用户能够扩展系统的可用软件范围。冒号后面 是这个工具链的名称。4)安装g++ -7。
2024-10-04 22:23:39
649
原创 【ubuntu】APT、apt、apt-get介绍
apt的全称是advanced package tool,简称APT,是一个用于管理软件包的命令行工具。 APT提供了统一的接口来安装、更新、升级、删除和搜索软件包,简化了在linux上管理软件包的过程12。APT的主要功能包括:安装软件包:使用命令可以安装新的软件包。更新软件包:通过apt update命令刷新软件包索引,命令升级所有可升级的软件包。删除软件包:使用apt remove命令移除软件包,apt purge命令移除软件包及其配置文件。搜索软件包:通过。
2024-10-04 20:58:38
1901
1
原创 【ubuntu】修改用户名、主机名、主文件夹名、登录名、密码
(3)/home/sunpeng 主文件名(一般来说,用户名和主文件夹名一致)用户名: 密码 : uid : gid :用户描述:主目录:登陆shell。如果里面有 用户名,那就改;1)passwd 自己要设置的密码。这个里面 很多用户名 需要全部修改掉。(2)ubuntu16 主机名。(1)sunpeng 用户名。2)user 自己的用户名。将第二行的名称 改为新名称。将里面的名称改为新名称。
2024-10-04 18:39:42
2284
原创 【嵌入式硬件】续流二极管
续流二极管(flybk),有时也称为飞轮二极管或是snubber二极管,是一种配合电感性负载使用的二极管,当电感性负载的有突然的变化或减少时,电感二端会产生突变电压,可能会破坏其他元件。配合续流二极管时,其电流可以较平缓地变化,避免突波电压的发生。
2024-09-18 11:38:11
633
原创 【嵌入式软件】stm32内部flash读写
控制系统采用STM32F429IGT6,STM32F429IGT6 的 FALSH 容量为 1024K 字节。STM32F429 的闪存模块组织如下表所示。STM32F429xx 的闪存模块由:主存储器、系统存储器、OTP区域和选项字节等4部分组成。1)主存储器,该部分用来存放代码和数据常数(如 const 类型的数据)。分为两个Bank,每个Bank分为12个扇区,前4个扇区为16KB大小,第五个扇区是64KB大小,剩下的7个扇 区都是128K大小,总共1M。
2024-08-22 11:10:28
377
原创 【SPI通信】SPI通信问题(通信数据错位)
前8作为数据字节,后1位最为控制字节。这样的话,只要是控制字节能满足条件,那么就一定能获取到数据。现象: 接收到数据之后,程序进入了if语句,但是并没有获取到SPI相应的数据;传输两次之后,程序再次进入if语句,拿到了SPI相应的数据。分析原因:之所以会导致该现象,是因为DMA虽然不占用CPU,但是从SPI接收器搬运到内存,也是需要花时间的。这种情况应该怎么避免呢》使用传输数据的第1位作为控制位,剩余的8位作为数据位。在程序中加printf;只要进入if语句,就能获取到SPI相应的数据。
2024-08-21 11:27:10
577
转载 【硬件】单模光纤、多模光纤
多模光纤(Multi Mode Fiber)支持多种模式传输,纤芯为50μm/62.5μm,典型速率为100M/s,传输距离可达2km,1 G/s可达1000m,10 G/s可达550m,光源为LED光源。此外,像多模光纤一样,单模光纤也表现出由多个空间模式引起的模态色散,但单模光纤的模态色散小于多模光纤。OM5光纤,也称为WBMMF(宽带多模光纤),是最新的多模光纤,向下兼容OM4,它的核心尺寸与 OM2、OM3 和 OM4 相同,OM5纤维外套的颜色选择为。选单模或多模光纤,需权衡传输距离与成本。
2024-07-25 17:26:10
1250
原创 【嵌入式硬件】快衰减和慢衰减
在使用直流有刷电机驱动芯片A4950时,这款芯片采用的是PWM控制方式,我发现他的正转、反转有两种控制方式,分别是快衰减和慢衰减。
2024-07-23 10:27:38
7640
原创 【SPI通信】SPI一主多从 + 稳定性设计
最近一个项目中用到了SPI,用到了他的一主多从的特性,一个主机和几十个从机数据交互。SPI通信的优点:1)全双工通信;2)速度块,一般的STM32能得到18Mbit/s。3)支持一主多从通信,只需要片选就可以。SPI通信的缺点:1)没有应答信号,主机和从机只有数据交换。2)通信距离比较近,而且非常容易受到干扰。3)片选信号需要占用较多的引脚。综上所述,使用SPI时必须要综合考虑,量力而行。
2024-07-17 19:50:55
433
原创 【嵌入式硬件】上拉电阻、下拉电阻
上拉电阻是指将一个不确定的信号通过一个电阻连接到电源上,使得信号初始值为高电平。如果当信号线没有被驱动时,要让它的默认状态是高电平。这种情况下,就需要一个上拉电阻来确保信号线的稳定状态。如果没有上拉电阻,无法判断A点的电平为高或低;如果加了上拉电阻,当开关处于断开状态时,A为高;当开关处于闭合状态是,A为低。
2024-07-01 11:20:03
221
原创 【嵌入式硬件】DRV8874电机驱动
1)N沟道H桥电机驱动;2)驱动1个双向有刷直流电机;3)2个单向有刷直流电机;4)4.5V-37V工作电压范围;5)集成电流感测和调节;6)成比例电流输出(IPROPI);7)可选电流调节(IMODE):逐周期或固定关断时间;8)支持1.8、3V、5V逻辑输入;9)集成保护:欠压、电荷泵欠压、过流保护、输出关闭、热关断、自动故障恢复。
2024-05-30 15:50:43
2298
原创 【嵌入式】RS485通信+硬件
对比 CAN通讯网络,可发现它们的网络结构组成是类似的,每个节点都是由一个通讯控制器和 一个收发器组成,在 RS-485通讯网络中,节点中的串口控制器使用RX与TX信号线连接到收 发器上,而收发器通过差分线连接到网络总线,串口控制器与收发器之间一般使用 TTL信号传 输,收发器与总线则使用差分信号来传输。发送数据时,串口控制器的 TX信号经过收发器转换成差分信号传输到总线上,而接收数据时,收发器把总线上的差分信号转化成 TTL信号通过RX引脚传输到串口控制器中。
2024-05-29 10:14:23
261
原创 【嵌入式软件】LWIP 以太网通信
1)应用层:为上层用户提供应用的接口。常用的应用层的网络协议有:HTTP、FTP、TFTP、SMTP、SNMP、DNS、TELNET、HTTPS、POP3、DHCP2)表示层:提供各种用于应用层数据的编码和转换功能,确保一个系统的应用层发送的数据能被另一个系统的应用层识别。如果必要,该层可提供一种标准表示形式,用于将计算机内部的多种数据格式转换成通信中采用的标准表示形式。数据压缩/解压缩和加密/解密(提供网络的安全性)也是表示层可提供的功能之一。
2024-04-28 11:22:45
306
原创 【嵌入式硬件】三极管伏安特性曲线-饱和区
三极管工作电路如下图所示。三极管伏安特性曲线书本上的描述:截止区:三极管工作在截止状态,当发射结的电压Ube导通电压(0.6V-0.7V),发射结没有导通;集电结处于反向偏置,没有放大作用。放大区:三极管的发射极加正向电压(锗管约为0.3V,硅管约为0.7V),集电极加反向电压导通后,Ib控制Ic,Ic与Ib近似于线性关系。饱和区:当三极管的集电结电流Ic增大到一定程度时,再增大Ib,Ic也不会增大,超出了放大区,进入了饱和区。
2024-04-02 14:45:47
924
原创 【嵌入式硬件】步进电机
1)通电方式单极性,同相绕组两个引脚分别供电,改变磁场;双极性,同相绕组两个引脚改变通电方向,改变磁场;2)绕组结构实现相同的功能,单极性比双极性多需要1倍绕组;1)特点反应式:结构简单,生产成本低,步距角小。但因反应式步进电机不使用永久磁铁,其定转子磁场强度与激磁电流成正比,要想增大磁场强度,就需要很大的激磁电流,因此温升很高,散热片也很大,并且动态性能差,效率低,可靠性差。永磁式:永磁式步进电机输出力矩大,动态性能好,但步距角大。混合式:步距角小、输出力矩大、动态性能好。但结构复杂,成本较高。
2024-03-21 16:22:09
2797
原创 【嵌入式】CAN总线
CAN 是控制器局域网络 (Controller Area Network) 的简称,它是由研发和生产汽车电子产品著称的德国 BOSCH 公司开发的,并最终成为国际标准(ISO11519),是国际上应用最广泛的现场总线之一。CAN 总线协议已经成为汽车计算机控制系统和嵌入式工业控制局域网的标准总线,并且拥有以CAN 为底层协议专为大型货车和重工机械车辆设计的 J1939 协议。
2024-02-20 23:02:55
266
原创 【嵌入式】ADC(模数转换器)
模数转换器:A/D 转换的作用是将时间连续、幅值连续的模拟信号转换成时间离散、幅值离散的数字信号。A/D 转换一般要经过取样、保持、量化、编码 4 个过程。在实际电路中,取样和保持、量化和编码往往同步实现。其原理框图如下图所示。输入模拟电压信号VI经采样电路、保持电路输入到模数转换器,模数转换器将输入信号经过量化和编码过程输出为n位数字信号D(Dn-1 Dn-2 ...D2 D1 D0)。Vi:输入;Vref:参考电压;K:比例系数;每个ADC都不一样,根据硬件不同。
2024-02-17 18:02:18
531
原创 【概念】IIC/UART/SPI/RS232/RS485/CAN/
1)串行、半双工通信;2)IIC 由SDA(串行数据线)和SCL(串行时钟线)及上拉电阻组成。3)通过对SCL和SDA线高低电平时序的控制,来产生I2C总线协议所需要的信号进行数据的传递。4)在总线空闲状态时,这两根线一般被上面所接的上拉电阻拉高,保持着高电平。I2C通信方式为半双工,只有一根SDA线,同一时间只可以单向通信,485也为半双工,SPI和uart为双工。起始条件:当SCL为高电平的时候,SDA线上由高到低的跳变被定义为起始条件。
2024-02-14 21:23:13
656
原创 【图像处理】音视频色彩:RGB/YUV
RGB是一种颜色标准,指的是R(red)红色、G(green)绿色、B(blue)蓝色这三种颜色,所有的颜色是通过对这三种颜色通道的变化以及相互之间的叠加来得到的,是目前运用最广的颜色系统之一。1)YUV是指亮度参量和色度参量分开表示的像素格式.其中“Y”表示明亮度(Luminance或Luma),也就是灰度值;而“U”和“V”表示的则是色度(Chrominance或Chroma),作用是描述影像色彩及饱和度,用于指定像素的颜色。
2024-02-07 14:24:05
1754
原创 zlib交叉编译(rv1126)
1)解压到某个文件夹,新建 install-rv1126文件夹。这篇文章的3.1小节 5)作了介绍。如何找到交叉编译器位置。1)导出交叉编译器环境变量。2)下载tar.gz版本。
2024-02-04 16:18:52
318
原创 【底层编译】Cmake1:语法
1)介绍命令中多个参数之间使用空格进行分隔,而 cmake会将双引号引起来的内容作为一个整体,当它当成一个参数,假如你的参数中有空格(空格是参数的一部分),那么就可以使用双引号。2)例子第一个 message 命令传入了两个参数,而第二个message命令只传入一个参数;在第一个 message 命令中,打印信息时,会将两个独立的字符串Hello和 World 都打印出来,而且World 会紧跟在Hello 之后。而第二个 message命令只有一个参数。
2024-02-02 14:01:28
1268
原创 【底层编译】Cmake3:常用变量
1)介绍PROJECT_SOURCE_DIR变量表示工程的顶级目录,也就是顶层文件所在目录;PROJECT_BINARY_DIR变量表示工程的BINARY_DIR,也 就是顶层源码对应的BINARY_DIR(输出文件目录),camke命令所在文件夹。2)例子目录结构执行结果。
2024-02-02 10:35:49
923
原创 linux指令:mv(移动文件)
在Linux中,可以使用。表示要移动的文件或者目录的原始位置,而。举个例子,我们想将名为。则表示将文件或目录移动到的新位置。的文件从当前工作目录移动到。
2024-01-30 11:33:01
635
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人