- 博客(27)
- 资源 (1)
- 收藏
- 关注
原创 STM32 ADC 多位同时翻转 问题分析
摘要:STM32H723的ADC采集时出现固定偏移现象(如0x6BA0突变为0x6C00),AI分析指出这是SAR ADC内部DAC电容阵列多位同时翻转引发的电源/地弹噪声,导致参考电压瞬间波动。根本原因为VREF+去耦电容布局不当(未就近放置),瞬态电流引发比较器误判。通过就近增加去耦电容后问题解决,验证了分析的正确性。该案例凸显高速ADC设计中电源去耦布局的关键性。
2026-07-16 15:04:20
180
原创 定时器同步启动
定时器TIM5产生160KHz矩形波,每次中断触发一次DAC(每次输出为sin的16个点之一)输出信号,模拟10KHz的sin波形输出。滤除高频信号,输出10KHz的正弦波。使用旋转变压器,输入10KHz的sin正弦波,输出10KHz的sin正弦波和cos正弦波。对输出10KHz的sin正弦波和cos正弦波的波峰波谷进行采样。用于考虑旋变输入信号与输出信号的延时,让采样能准确采样在波峰波谷。TIM8同步启动TIM5,同时在TIM8的OCxREF改变时,触发ADC3采样sin/cos的波峰和波谷,见下图。
2026-06-17 12:13:45
197
原创 电机直驱与液压马达驱动调试差异
一、现象液压马达无法带动在坡上的满载工程车辆,液压溢流阀溢流,还能听到电机在嗡嗡转。二、分析初步分析:液压溢流,油管中压力已经够了,但是车辆就是无法坡起。怀疑还和其他因素有关!AI查找:表明扭矩与和成正比Tt):最终分析:能否坡起,与液压马达对外输出的扭矩有关;而扭矩与工作压力和排量有关:工作压力与电机输出扭矩相关,排量与电机转速有关。电机扭矩与电机转速相乘就是输出功率,表明液压马达的扭矩是功率相关的。这一点与电机直驱是有很大的差异的。直驱时,转速为零,作用在工程车辆上,也可以驱动车辆。
2026-06-12 17:59:30
272
原创 STM32 TIM1定时器 互补输出分析(MOE=0)
OCIdleState OCNIdleState] = [ SET SET] 实际输出[OCx OCxN] = [高电平 高电平][OCIdleState OCNIdleState] = [RESET SET] 实际输出[OCx OCxN] = [低电平 高电平][OCIdleState OCNIdleState] = [RESET RESET] 实际输出[OCx OCxN] = [高电平 高电平]死区过后空闲时间 OCx=OISx OCNx=OISxN。
2026-05-29 15:16:34
228
原创 efr32 zigbee OTA升级测试
本文介绍了基于EFR32芯片的Zigbee设备OTA升级流程。首先准备了bootloader程序、应用程序和Commander工具,详细说明了GBL文件生成方法及烧录步骤。其次测试了bootloader升级功能,验证了程序切换效果。重点阐述了OTA升级协议实现:包括固件分布结构(逻辑层和物理层)、OTA文件生成命令、升级通知触发机制以及Server端处理流程。最后提出了完整的OTA升级测试方案,涉及设备配置、OTA文件拆解、烧录和升级触发等步骤。整个过程涵盖了从固件准备到远程升级的完整链路,为Zigbee设
2026-03-27 20:28:04
301
原创 EFR32 zigbee通信测试(基于zigbee_gpd_switch 与 zigbee_gp_z3_light_combo)
摘要:本文介绍了基于Zigbee的终端设备(zigbee_gpd_switch)与协调器(zigbee_gp_z3_light_combo)的配置与测试方法。终端设备需配置中断+上拉按键,协调器使用相同配置但需调整LED指示灯。测试过程包括程序烧录、自动入网验证及手动入网操作(终端设备长按退网、短按入网,协调器点按切换模式)。入网成功状态通过Comm.State:6标识,并实现指示灯切换功能。
2026-03-05 15:23:12
61
原创 EFR32单片机开发实例解析
4、生成的工程文件如下图所示(其中blink.c文件及app.c文件中部分代码为仿照 一、LED灯闪烁 添加及编写的)其中app.c blink.c为该模板生成LED闪烁实例程序,下面提到的模板就没有,需要自己手动添加。2、使用自己的开发板,其中PC05为蓝灯,故Pin Tool配置界面如下图所示。3、使用自己的开发板,其中PC04为绿灯,故Pin Tool配置界面如下图所示。该配置只是配置LED驱动,而非直接关联LED闪烁实例程序,这一点很重要!3、生成的工程结构如下图所示。4、打开汇编调试界面。
2026-02-25 17:09:27
209
原创 芯科SiliconLabs efr32mg21无线单片机开发流程——从零到初级(初学者)
本文介绍了使用EFR32MG21单片机控制LED闪烁的开发流程。首先准备J-Link仿真器、开发板和开发环境(Simplicity Studio和VS Code)。在Simplicity Studio中创建Blink示例工程,配置PC04引脚控制LED,通过引脚工具完成引脚映射。然后通过VS Code进行代码编辑、编译和调试,连接硬件后即可实现500ms周期的LED闪烁功能。开发过程中需要注意Simplicity Studio与VS Code的插件集成配置。
2026-02-12 17:12:00
368
原创 软件复位导致复位管脚NRST产生复位脉冲问题分析
在开发某个功能时,需要STM32芯片一直活着,与DSP芯片进行数据交互。DSP芯片在实现功能时,必须进行软件看门狗复位,发现:STM32芯片也跟着一起复位了。在开发二合一产品时,为了共用硬件看门狗,将两个产品的复位管脚连接在一起。两个产品分别使用的STM32芯片和DSP芯片。STM32在进行软件复位时,也有类似问题,会在复位管脚NRST产生29us复位脉冲,如下图所示。DSP芯片在进行软件看门狗复位时,会在复位管脚XRSn产生57us复位脉冲,如下图所示。
2025-11-20 10:35:43
263
原创 STM32CubeMX 无法生成KEIL工程
搜索Fimware Package(STM32Cube_FW_H7_V1.12.1),发现其在如下路径下。后来因为权限原因,电脑新建了Administrator用户,一直在其中处理事情,忘记这件事了。今天新建一个cubeMx工程,发现无法生成keil工程,提示如下错误。印象中,STM32H7相关的cubeMx软件、软件包已经成功安装,并可以正常生成keil工程。注:本来想把该库,直接复制一份放到Administrator用户下,无奈相关的信息占用硬盘控件太大,放弃了。
2025-06-13 15:35:48
1313
原创 STM32 ADC校准调试心得
进行了1)2)操作后,对比UV相采集(使用ADC1),懵了,咋滴,ADC2与ADC1还一样,校准后采集还有误差。开始以为是硬件差异,导致电流为零时,基准时差异,故没有管他,想着后期采用软件直接校准即可。前天在给电机加100A电流时,发现W相差了10A左右电流,10%偏差了(UV相都准确),稍微有点大。a)在UM手册中搜索offset关键词,发现一种偏置校准方法:发现方法太麻烦,也不知道这么做,会不会带来其他后果。想着校准函数,最终也是将校准数据写入相应的寄存器,不如直接修改该寄存器值,这样既快既安全。
2025-06-05 10:53:35
756
原创 STM32H723芯片 ADC1 DMA方式 采集数据注意事项
原因是stm32H723中的DR寄存器为32位(其他类型单片机DR寄存器为32位但是高16位为预留),仍然采用DMA 16位去访问,故有问题。DMA方式进行ADC数据搬用时,初次配置为16bit数据(如下配置),DMA报TEIFx错误,并且DMA自动关闭。
2025-04-16 17:54:13
684
原创 STM32定时器触发ADC采集详细分析——选择ADC_EXTERNALTRIGINJEC_T1_CC4无效果的原因
在查找问题过程中,了解了一下定时器TIM1 43.3.10 Output compare mode / 43.3.11 PWM mode 区别。有人用Output compare mode实现了单个定时器 多通道不同频率设置 也是挺牛的。不过频率设置有一些局限性,不能每个通道任意频率设置。关于这个功能,英飞凌TC1784就比较牛,可以每个通道任意频率设置且思想与STM32单个定时器 多通道不同频率设置有一点像。想了解的同学可以看一下我的博客。
2025-04-16 13:30:00
1307
2
原创 STM32H7 pack包 安装失败解决办法
前一段时间安装STM32G4系列pack包,提示pdsc文件无法拷入.\Download文件下,以为是文件权限的事,各种捣鼓均未安装成功,最后将cubeMx当中的文件拷贝到pack对应位置(pdsc文件手动拷入.\Download文件下),运行成功。今天又有STM32H7 pack包安装,也是同样问题。本来想着按照STM32G4系列步骤一样搞,但是奈何从cubeMx下拷入的文件太大(3几个G)。
2025-02-07 10:03:57
1959
原创 TASKING VX-toolset for TriCore新建工程及miniWiggler在线调试说明
1、电脑安装Infineon Memtool 2021 (为了安装DAS miniWiggler在线调试需要)4、英飞凌芯片型号TC1784。
2025-01-07 18:00:24
1400
原创 infieon TriCore架构 TC1784 CAN使用方法
MO 0 配置DIR为接收 其余根据情况配置 FIFO 选择Receive fifo base object 选择BOT MO0 选择TOP MO3 选择SEL为MO2 MO中断不需要配置。LIst1(node0) MO 000 --- MO003(用于接收fifo) MO 004--- MO007(用于发送fifo)LIst2(node0) MO 032 --- MO035(用于接收fifo) MO 036--- MO039(用于发送fifo)3、CAN接收与发送。
2024-02-28 11:34:38
617
原创 Keil制作库Lib遇到的问题及解决方法
一、问题现象使用常规库制作方式制作出来的库,编译可以通过,但是运行不起来。1)stm32F767项目中,进入hartfault中断【自己编写的HAL_MspInit()函数】2)stm32L431项目中,进入startup_stm32l431xx.s中Default_Handler对应的死循环中。二、问题剖析1)第一种情况是HAL库架构大量使用使用__weak函数形式造成的;2)第二种情况是startup_stm32l431xx.s中中断函数使用[WEAK]造成的。实际测试发现,对应
2021-06-30 20:01:30
2149
4
原创 SouceInsight使用小技巧 实时更新
记录工作中SouceInsight使用小技巧使用小技巧(实时更新 2021-1-28 18:50)一、更改工程文件夹时,SI使用的Project files自动使用相对路径1、Project - Project Settings.. Project Source Directory - the main location of your souce files 中设置相对路径为根目录(点OK后,有可能显示还是绝对路径,没关系)2、Project - Project Settings.. Proj
2021-01-28 19:09:47
2962
原创 Keil output 大小写更改
Keil output 大小写更改一、问题来源二、解决方案写在后面一、问题来源想要修改keil自动生成的OUTput.hex名称为output.hex,发现修改后,保存,仍然会恢复成OUTput.hex。 (KEIL版本v5.26.2.0)二、解决方案1、找到参数修改位置“Name of Executable”[方法:options for Target ‘prjMy’ - Output],发现名称为“OUTput”;2、将该参数修改为与OUTput完全不同的名字,比如AAA,然后点OK,保存;
2021-01-28 10:23:28
1738
原创 STM32 bootloader APP 复位执行流程
STM32 bootloader APP 复位执行流程测试环境1、STM32f105RC flash空间分配 bootloadr [0x800 0000 0x801 8000] app[0x801 8000];2、boot option:flash区复位执行流程1、boot option 选择flash后, flash重映像到0x00 00000【同时 0x800 0000也可以正常...
2019-07-09 09:30:41
3260
5
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅