- 博客(195)
- 资源 (10)
- 收藏
- 关注
原创 永磁同步电机 开发日志_ 伺服步进驱动
我觉得我应该写点什么了从去年10月,也就是2019年10月15号开始研究永磁同步驱动,一个漫长的学习过程终于理解了 磁场定向控制的基础理论, 实际操作让电机转起来,还是不太容易的.想要转好,难上加难比如:1.现在的有感,弱磁(反向电动势超过母线电压时,调整相电流超前相电压,达到弱磁的目的),母线电压在变,弱磁多少也在变.不能让电机失控2.在超过2倍基速时(...
2020-05-03 17:42:24
713
原创 开源项目按硬件和软件进行分类整理
开源项目分类整理:硬件类包括RISC-V指令集、Arduino开发平台、树莓派单板机和OpenCompute数据中心项目;软件类涵盖Linux/Android操作系统、Git/VS Code开发工具、MySQL/Redis数据库、Nginx/Apache服务器、Python/Node.js编程语言,以及TensorFlow/PyTorch机器学习框架。这些开源项目构成了现代数字基础设施的核心,从芯片设计到云计算,从移动应用到人工智能,推动了技术创新和行业标准化发展,降低了技术门槛,使全球开发者都能参与共建技
2025-12-12 14:40:30
345
原创 ESP32 CMakeLists.txt 配置实例分析
本文详细分析了ESP32项目中使用CMakeLists.txt的配置实例。主要内容包括:1) 项目目录结构说明,展示典型IoT项目的组件化组织方式;2) 各层级CMakeLists.txt文件配置详解,涵盖根目录、主组件、LED驱动和Wi-Fi管理器组件的具体配置方法;3) Kconfig配置示例说明如何通过menuconfig进行硬件选择;4) 常见编译问题分析及调试技巧,如头文件路径错误、依赖缺失等问题的解决方案。通过具体实例展示了CMake配置如何影响编译过程,包括条件编译、优化选项设置、链接脚本控制
2025-12-12 09:58:29
267
原创 ESP32 S3分区表的理解
摘要:本文解析了ESP32-S3-N16R8芯片(16MB Flash)的典型分区表配置。主要包含6个分区:NVS存储区(24KB)、OTA数据区(8KB)、出厂固件区(4MB)、OTA升级区(4MB)和SPIFFS文件系统区(4MB),剩余约4MB未分配空间。分区表采用双OTA分区设计,支持固件无线升级功能,启动时通过otadata分区确定运行哪个固件。文中详细说明了各分区用途、地址计算及注意事项,如NVS分区大小限制、建议使用LittleFS替代SPIFFS等,为物联网设备开发提供了参考配置方案。(14
2025-12-11 08:47:45
391
原创 ESP32-S3的串口打印信息确实比USB虚拟串口更全面
ESP32-S3的UART0串口相比USB虚拟串口能提供更全面的系统调试信息。UART0会输出完整的启动日志,包括硬件初始化、内存加载、时钟配置等底层信息,而USB虚拟串口主要显示应用层日志。在开发阶段建议同时使用两者:UART0用于系统级调试,USB用于应用交互;生产环境可根据需求选择,需要详细诊断时保留UART0。这种组合使用方式能充分发挥ESP32-S3的调试能力,提高开发效率和系统可靠性。
2025-12-01 16:57:35
457
原创 ESP32-S3-N16R8 (16MB Flash) 修改分区表
本文总结了ESP32-S3-N16R8(16MB Flash)的分区配置经验。起初因16MBit按1000换算导致4M分区失败,正确配置需将partitions.csv置于项目根目录。调试发现需在特定位置启用分区设置,并通过ESP-IDF工具验证:使用esptool.py读取分区表,再用gen_esp32part.py解析验证。最终成功分区显示为nvs(24K)、phy_init(4K)和factory(1M)三个分区。整个过程强调了分区容量计算、文件放置位置和工具验证的重要性。
2025-11-14 13:51:06
369
原创 ESP32 partitions.csv 文件加载机制
ESP32的partitions.csv文件机制解析:CSV文件经编译转换为二进制分区表,固定烧录到Flash的0x8000地址。分区表包含头部信息、条目数据和MD5校验。启动时bootloader验证并加载分区表,运行时通过API访问。特点包括固定位置、启动验证、内存缓存和动态分区发现,实现存储灵活管理。
2025-11-14 10:35:04
332
原创 通过了权威认证的、主打高音质(Hi-Fi)的蓝牙头戴耳机
但请注意,其编码依赖于AAC,在绝对音质细节上可能略逊于支持LDAC或aptX Lossless的机型,但其计算音频技术弥补了很多听感上的不足。编码(索尼自家高清标准,是Hi-Res Audio的核心组成部分),虽然机身可能不贴“小金标”,但其音质表现完全符合Hi-Res要求。则是一个很好的“均衡之选”,在各个方面都没有明显短板,尤其适合看重通话和降噪,但又希望音质比普通消费级耳机好得多的用户。这是高音质的基础门槛。,这是与传统动圈单元不同的技术路径,通常能带来更快的响应速度、更低的失真和更丰富的细节。
2025-11-12 08:15:40
818
原创 ESP32 开发环境和安装
乐鑫开发工具包主要分为两种:集成开发环境(IDE)和纯框架版本。IDE版本(v5.3.1)包含完整工具链,适合初学者开箱即用;四个纯框架版本(v5.2.6至v5.5.1)需搭配其他编辑器使用,适合进阶开发者。建议新项目选择最新v5.5.1版本,老项目则根据兼容性选择对应版本。初学者推荐直接安装IDE全家桶,有经验的开发者可选择纯框架配合VSCode插件。版本差异主要体现在功能更新和芯片支持上,新版本通常包含更多优化。
2025-11-05 17:00:48
825
原创 MCU(微控制器单元)上的语音识别
MCU语音识别的主流方案为专用离线语音识别SoC芯片,其集成度高、成本低、开发简单且功耗低,代表厂商包括启英泰伦、九芯电子等。高性能MCU+轻量化AI模型方案灵活性高但开发难度大,适用于复杂任务设备。MCU+语音模块方案开发门槛低但成本高,适合原型验证。综合来看,专用离线语音SoC是最经济实用的选择,能快速为消费电子产品添加稳定的语音交互功能。
2025-10-31 13:58:17
1116
原创 STM32中死机 Crash dump 打印出函数调用关系
摘要:本文详细介绍了在STM32上实现崩溃调用栈打印的技术方案。通过重定义硬件异常处理函数,基于帧指针的回溯机制获取调用关系,结合符号表解析将地址映射为函数名,并提供了完整的异常信息采集与分析方案。文章还介绍了使用SEGGER RTT输出调用栈、故障原因分析方法以及调试配置建议,最后强调了编译器优化、栈保护等注意事项。该方案能有效辅助STM32应用的故障诊断和调试工作。
2025-10-29 16:22:55
403
原创 NfcrdlibEx4_MIFAREClassic函数,逐段解释
该函数实现了MIFAREClassic卡的基础操作流程,包括射频场控制、设备选择和错误处理。主循环中首先关闭射频场并延时20ms确保稳定,随后等待5.1ms满足协议时序要求。函数配置了卡片检测模式,但实际卡片操作部分(如认证、读写)被注释禁用。每次循环结束都会关闭射频场以降低功耗。该设计支持多设备扩展(当前固定单设备),所有操作均包含状态检查,失败时重置射频场并跳过当前循环。关键函数包括射频控制phhalHw_FieldOff、精确延时phhalHw_Wait和检测配置phacDiscLoop_SetCon
2025-10-23 14:41:50
313
原创 vTaskDelete 的作用
本文详细解析了FreeRTOS中vTaskDelete函数的实现逻辑。该函数用于删除指定任务,主要流程包括:进入临界区保护操作原子性;通过prvGetTCBFromHandle获取任务控制块;从就绪/阻塞列表和事件列表中移除任务;区分自删除任务(放入终止列表由空闲任务回收)和非自删除任务(直接释放资源);最后退出临界区并根据需要触发任务调度。特别强调了自删除任务的内存异步回收机制,以及删除操作中涉及的优先级位图更新、调试支持等细节处理。函数实现考虑了任务状态一致性、资源回收安全性和调度实时性等关键因素。
2025-10-23 14:26:55
429
原创 NFC RC663 InitNfcTask函数,逐段解释
本文详细解析了InitNfcTask函数的实现过程,主要包含以下关键内容:1)通过条件编译实现硬件平台适配,支持前端IC和不同操作系统环境;2)分步骤完成硬件初始化、NFC协议栈启动和模块配置;3)采用do-while(0)结构实现模块化错误处理;4)支持多协议(ISO14443-3A/3B/4A/4)工作模式;5)根据运行环境自动选择线程调度或裸机执行方式。该函数为NFC应用提供了完整的初始化框架,具有良好的可扩展性和跨平台兼容性。
2025-10-23 13:52:26
412
原创 NXP的CLRC663 核心软件层次和关键函数结构
本文介绍了NXP CLRC663 NFC读卡器芯片的开发要点,重点分析了基于NFCReaderLibrary的软件架构和典型操作流程。软件层次分驱动抽象层、操作系统抽象层和NFC协议栈,分别实现硬件接口、系统资源和协议处理功能。典型应用流程包括初始化、寻卡、数据交换等步骤,需注意宏定义配置、通信函数实现和协议选择等关键开发要素。文章还提供了Mifare Classic卡片读取UID的具体函数调用示例,帮助开发者快速上手。
2025-10-23 13:50:12
425
原创 VSCODE 调试C程序时 打印中文
本文介绍了GCC编译器的字符集设置方法:1)使用"-fexec-charset=GBK"设置执行字符集为GBK;2)使用"-finput-charset=UTF-8"设置输入字符集为UTF-8。同时提供了VSCode的任务配置示例,包括GCC编译命令和参数设置。在代码中建议添加SetConsoleOutputCP(6501)以确保控制台正确显示Unicode字符。配置文件中包含两个任务模板,分别用于常规编译和带字符集设置的调试编译,并指定了输出文件路径和问题匹配器。
2025-10-22 08:40:36
249
原创 RENESAS 瑞萨DA14592 必须用7.X 的GCC编译器
DA14592开发中遭遇GCC编译器版本问题,必须使用7.X版本,高版本无法兼容。调试串口时发现P0口部分引脚异常,技术支持最终确认需使用7.2版本(实际安装7.3也可)。开发环境Renesas Studio基于Eclipse,编译速度慢且版本切换困难,需卸载高版本才能正常工作。相比Keil和IAR的版本兼容性,开源GCC工具链的使用体验较差,导致项目移植和调试耗费大量时间。
2025-10-16 09:02:24
291
原创 瑞萨 DA14592 hw_gpio 函数功能
本文介绍了8个GPIO控制函数,主要分为三类功能:1)锁存控制(5个函数),包括全局/指定GPIO的锁存启用/禁用及状态查询;2)时钟输出控制(2个函数),用于启用/禁用特定时钟信号到GPIO的输出;3)功能查询(1个函数),用于查找配置特定功能的GPIO引脚。这些函数通过寄存器操作实现,涉及端口/引脚有效性检查,部分操作通过禁用全局中断确保原子性。适用于底层硬件初始化和动态GPIO配置,提高代码可读性和可维护性。
2025-10-15 09:04:25
548
原创 理解BLE广播数据的结构
BLE广播数据采用LTV(Length-Type-Value)结构,包含多个信息块。以温湿度传感器为例,其广播数据包含设备标志(0x01)、服务UUID列表(0x03)、设备名称(0x09)和厂商自定义数据(0x16)。iBeacon则使用厂商自定义数据(0xFF)传递位置信息,包含UUID、Major/Minor区域标识和发射功率。广播数据通过类型码指示内容含义,支持标准协议和厂商自定义格式,能传递设备能力、传感器读数、位置信息等多种数据。使用专业工具可直观解析这些结构化数据。
2025-10-13 15:38:07
665
原创 配置设备的 BLE 角色和功能
本文解析了Dialog DA14592 SDK中dg_configBLE_*宏定义的功能及配置组合。这些宏用于设置设备的BLE角色(中心/外设/观察者/广播者)和功能,直接影响芯片的通信行为、资源占用和功耗。文章详细介绍了4种典型配置组合(纯外设/纯中心/混合/非连接模式)的应用场景,并特别说明DA14592的资源限制和配置注意事项。配置选择需权衡功能需求与资源消耗,建议单一功能设备禁用非必要角色以优化性能。
2025-10-09 14:27:05
913
原创 DA145xx/DA146xx系列BLE芯片 广播配置说明
本文档介绍了Renesas PXPReporter应用中BLE广播功能的实现细节。该功能基于DA145xx/DA146xx系列芯片,支持标准广播和扩展广播两种模式,并符合PXP规范要求。关键特性包括:两种广播间隔设置(快速连接20-30ms/低功耗1000-1500ms)、SUOTA支持、广播数据及设备名称配置、扩展广播参数设置等。文档详细说明了广播启动/重启逻辑、连接事件处理、状态转换机制以及配置选项,并提供了注意事项,包括广播权限、内存管理、功耗优化和兼容性要求。该实现通过灵活的配置选项可满足不同应用场
2025-09-30 10:38:40
305
原创 PWM死区补尝的意义和方法
PWM死区补偿是电机控制中的重要技术,用于抵消死区时间带来的电压误差和波形畸变。死区时间是防止上下桥臂同时导通而设置的保护间隔,但会导致输出电压偏差和谐波增加。补偿方法主要有三种:时间补偿法(调整PWM导通时间)、电压补偿法(修正参考电压)和基于脉冲调整的补偿(专用芯片实现)。关键点在于准确检测电流方向,合理设置死区时间,并根据实际电路微调补偿量。电压补偿法因易实现成为常用方案。该技术能显著提升系统控制性能,需结合具体应用调试优化。
2025-09-24 08:57:33
916
原创 STM32F407 第一坑 PWM停止输出
摘要:调试中发现当使用HAL_TIM_PWM_Stop_IT关闭PWM定时器时,USART6的TXD信号会异常串扰到PWM通道CH3上。该问题表现为概率性出现,最终解决方案改为不关闭PWM输出,仅将占空比设置为0来避免信号干扰。这表明直接关闭定时器可能存在硬件层面的信号耦合问题,采用软关断方式更为可靠。
2025-09-23 09:48:01
246
原创 参数合成与实时处理 如何合成多次谐波?
MCU/DSP 需要实时计算当前 RPM 对应的 f0,然后根据预设或动态调整的谐波幅度曲线(哪些谐波强,哪些弱,这决定了“音色”)和相位关系,生成各次谐波的数字样本,最后将它们相加,输出最终的声浪信号。任何复杂的周期信号(如理想的发动机声浪)理论上都可以分解为一系列频率为基波频率整数倍的正弦波(谐波)的叠加。可以通过叠加奇次谐波(1, 3, 5, 7, ...次)来合成,每个谐波的幅度是其次数的倒数(如 1, 1/3, 1/5, 1/7, ...)。利用训练好的模型学习声浪参数映射,生成高保真声浪。
2025-09-23 08:53:34
957
原创 国产电机驱动芯片主要厂商及型号-欢迎补充
摘要:纯电机驱动芯片(DriverIC)核心采用H桥或半桥设计,集成MOSFET或驱动外部MOSFET,配备保护电路。主要厂商包括峰岹科技(FD2103/FD6288)、绍兴芯谷(SS8837T/SS6952T)、瑞盟科技(MS3111/MS35775)、士兰微电子(SC0260/SD20M60A)、晶丰明源(BP6298)、圣邦微电子(SGM42507)和华润微电子(CR6888)。这些芯片广泛应用于智能家居、工业控制、机器人、风扇水泵等领域,支持有刷/无刷直流电机和步进电机驱动,具有高电流、低噪声及完善
2025-09-19 09:42:28
764
1
原创 STM32H743偶尔死机复位问题-查找方法
摘要:针对STM32H743应用中随机性看门狗复位问题,提出系统化调试方案。首先通过最简喂狗程序确认是否APP任务阻塞导致;然后建立非易失性日志系统,利用备份寄存器记录复位前关键信息(代码行、任务ID、时间戳),复位后通过串口回放定位问题源;高级调试建议检查堆栈溢出、中断冲突、Cache一致性,推荐使用SEGGER SystemView分析RTOS时序。该方法通过构建"犯罪现场监控"逐步缩小问题范围,尤其备份寄存器日志是解决隐蔽性问题的有效手段。(150字)
2025-09-17 16:56:52
974
转载 Heap堆的理解以及在IAR中如何设置堆的大小
摘要:本文介绍了堆(Heap)内存的动态分配机制及其在嵌入式系统中的重要性。堆区用于程序运行时动态分配内存,通过malloc/free函数管理。文章分析了内存分配时的overhead问题,比较了单次大内存分配与多次小分配的效率差异,指出前者更节省空间。针对嵌入式系统内存有限的特性,作者推荐使用IAR EWARM提供的堆使用量查询函数(如__iar_dlmalloc_stats和__iar_dlmallinfo)来优化内存分配,并详细说明了如何在IAR环境中配置堆大小。最后介绍了通过Linker设置调整堆空间
2025-09-17 15:43:47
146
原创 yolov8 和OPENCV 自带的目标检测模型 对比
摘要: YOLOv8和OpenCV目标检测模型在性能、适用场景和易用性上有显著差异。YOLOv8基于深度学习,支持高精度实时多目标检测(mAP>80%),灵活性强,适用于复杂场景(自动驾驶、安防等)。OpenCV主要集成传统算法(如Haar级联)和轻量级深度学习模型,检测精度较低,但适合简单场景(人脸门禁)和资源受限设备。YOLOv8在精度、速度和扩展性上全面占优,优先推荐;OpenCV传统模型仅适用于轻量级简单任务。
2025-09-16 17:16:10
582
原创 如何使用YOLOv8训练自定义模型
YOLOv8自定义模型训练流程:需准备YOLO格式数据集,包含images和labels文件夹,并配置data.yaml文件。训练时通过命令行或Python代码调用YOLO API,可调整模型版本、epochs、batch size等参数。训练完成后可在指定目录查看评估指标和预测结果,使用best.pt权重进行推理。整个过程涵盖环境配置、数据准备、参数调优和模型应用,适合不同场景的目标检测任务开发。
2025-09-16 17:06:26
352
原创 FOC控制算法中三电阻下桥臂电流采样
FOC控制中电流采样的正负值处理原理:硬件上标注的"正"表示采样点连接方式,而非电流方向。通过同步ADC采样、零电流偏置校准(关键步骤)和单位换算,系统能准确获取包含正负信息的相电流。三电阻采样方案直接测量相电流,优于单电阻方案,是FOC控制的理想选择。软件需实现偏置校正、同步采样和克拉克变换,硬件无需修改即可满足控制需求。
2025-09-15 09:43:46
1129
原创 foc电流采样为什么下桥臂? 直接采集相电流不好吗?
FOC驱动普遍采用下桥臂采样而非直接测量电机绕组电流,主要原因包括:1)电气安全性高,采样电路与MCU共地,无需高压隔离;2)与PWM控制完美同步,可在特定时刻准确获取相电流平均值;3)基于基尔霍夫定律,下桥臂电流即真实相电流;4)相比霍尔传感器方案,具有成本低、精度高、响应快等优势。该设计是FOC控制的最佳实践,能直接满足算法需求,而非妥协方案。
2025-09-15 09:38:32
1150
原创 无感FOC(无传感器磁场定向控制)
高频方波注入(HFSWI)是无感FOC技术在零低速时估算转子位置的核心方法。该方法通过向电机注入数百Hz的高频方波电压,利用电机凸极性(Ld≠Lq)产生的电流响应差异来解调转子位置。关键步骤包括:注入高频电压、分离电流响应、解调位置误差信号、通过PLL闭环校正转子位置。该技术能在零速稳定运行且启动扭矩大,但存在高频噪声和额外损耗问题,适用于伺服系统、电动汽车启动等场景。
2025-09-14 20:54:52
1135
原创 光电磁编码器细分原理
正交信号细分的核心原理是利用两路相位差90°的正弦波(SIN/COS)的幅度比值,通过反正切函数计算信号周期内的精确相位角。该技术通过"整周期计数+细分角度"实现高分辨率定位,将编码器分辨率提升数千倍。现代数字细分方案采用ADC采样和专用处理器(ASIC/FPGA/DSP)进行实时误差补偿(包括直流偏置、幅值不等、相位偏差和谐波失真),再通过arctan2函数计算角度,实现万倍以上高精度细分。该技术的关键在于对非理想信号的动态补偿能力。
2025-09-10 08:45:56
1023
原创 Excel 两个sheet比较差异代码
这篇文章介绍了一个Excel工作表对比工具,主要功能包括:1)单元格级精确对比;2)智能标记差异(黄色标记不同内容,红色/绿色标记独有行);3)自动生成差异说明;4)处理行数不一致情况。使用方法简单,只需安装pandas和openpyxl库后,输入Excel路径即可生成"差异结果"工作表,该工具能有效提高Excel数据对比效率,适用于各种数据核对场景。
2025-09-09 16:02:04
287
原创 如果要改善74HC595的抗干扰能力,应该如何做? 降低时钟速度有用吗?
摘要:提升74HC595抗干扰能力需多管齐下。降低时钟速度是最简单有效的方法,通过增大时序裕量提高稳定性。硬件措施更为关键:1)每片芯片加0.1μF去耦电容;2)信号线串联22-100Ω阻尼电阻;3)优化PCB布线。软件可辅助增加微秒级延时确保信号稳定。优先实施电源去耦和降速,再配合其他措施,能显著提升系统可靠性。
2025-09-08 14:10:55
794
原创 SPI数据经过 SN74LVC8T245D还受到干扰!
摘要:SPI信号在2米长线传输中出现干扰,主要原因是传输线效应导致信号反射和退化。建议优先采用串联阻尼电阻(22-100Ω)进行阻抗匹配,并加强电源去耦(0.1μF电容靠近芯片)。其次优化地线连接,降低地阻抗,必要时使用屏蔽双绞线。通过示波器观察信号波形,重点检查边沿陡峭度和振铃现象。软件层面可增加重试机制或降低SPI速率辅助解决。阻抗匹配和地线优化是性价比最高的初步解决方案。
2025-09-04 10:11:51
664
原创 FreeRTOS中的stack_size
FreeRTOS中stack_size参数决定任务可用内存空间,直接影响系统稳定性。它以字为单位,需考虑函数调用、局部变量和中断上下文。建议通过uxTaskGetStackHighWaterMark()监控栈使用,保留10%-20%余量,并启用溢出检测。简单任务通常需128-256字,复杂任务需1KB以上。关键预防措施包括动态监控、避免递归和启用检测功能,可有效防止数据损坏或系统崩溃。合理设置该参数对系统可靠性至关重要。
2025-09-03 15:32:32
631
原创 AI人才 主要集中在哪些专业?
AI人才专业背景主要分布在计算机科学、数据科学、电子信息和自动化等核心领域。计算机类专业侧重算法开发与系统架构,数据科学类专业培养数据分析与建模能力,电子信息类专业聚焦智能硬件开发。建议选择专业时注重计算机与数学基础,关注交叉学科发展,结合个人兴趣与行业趋势,并重视实践能力培养。AI领域发展迅速,需持续关注大模型、多模态学习等新兴方向,保持终身学习。
2025-09-03 09:12:43
669
原创 GPT在嵌入式代码设计与硬件PCB设计中的具体应用
GPT在嵌入式系统和硬件设计领域发挥智能辅助作用,可显著提升开发效率。在嵌入式代码设计中,GPT能生成外设驱动初始化代码、解释编译错误并提供优化建议,帮助工程师减少重复劳动和低级错误。在PCB设计中,GPT可辅助设计规则检查、分析布局并提供文档自动化生成功能,整合专家经验预防潜在缺陷。需要注意的是,GPT作为增强智能工具,必须由工程师进行严格审查和验证,无法替代专业判断。这种人机协同模式正在推动嵌入式与硬件设计向更高效、更智能的方向发展。
2025-09-03 08:56:43
819
w25n01gv revg 032116.pdf
2018-08-06
ASP网站代码本地调试工具
2010-01-24
二相步进电机细分驱动源码 STM32F103VCT6
2018-08-06
emWin5_V5.42_cn 中文教程
2017-11-18
w25n01g 源代码
2018-08-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅