登录社区云,与社区用户共同成长
邀请您加入社区
本文聚焦STM32F103上TinyML模型的静态部署,通过Edge Impulse生成C++模型包,解决Semihosting卡死、DSP Heap不足、TFLite依赖过重及HardFault等问题,实现模型在有限SRAM/Flash下的稳定运行。强调从“模型可跑”到“嵌入式可靠部署”的工程思维转变,完成端侧推理关键一步,为后续实时手势识别奠定基础。
本文记录STM32 TinyML手势识别项目从V1到V2的模型迭代:基于300维三轴加速度数据,通过Edge Impulse进行频域特征提取,优化特征处理时间由11ms降至2ms,显著提升特征聚类效果。尽管当前验证集准确率达100%,但强调其不等于泛化能力,需警惕过拟合。本篇核心在于建立可对比的baseline,明确特征工程对端侧性能的关键影响,为后续模型部署与数据扩充奠定基础。
本文以 TI 为例,介绍了其在桥式传感器领域的解决方案。
然后保存更改后的.cproject 文件,右击工程clean project,编译。用文本查看工具打开工程目录下的.cproject 文件。发现此文件中的路径与实际路径不符合,我们改成对的文件路径。实际上已经添加头文件路径但还是报错。
压力传感器
路径包含中文,改一下就行。这是我改到桌面的效果。
SD卡操作分为SPI模式与SDIO模式,这里选择SPI模式,DSP为SPI主机,SD卡为从机,本文对SD卡SPI通信进行说明,关于SPI双机通信后续有时间也会特别写篇文章进行说明SPI---串行外设接口,优点:通信简单,支持全双工通信,数据传输速率快缺点:没有指定的控制流,完全以时钟携带数据进行通信,没有应答机制,相对来说通信数据的可靠性上有一定缺陷(相对I2C总线协议)特点:高速,同步,全双工,
5. 基本运算符VHDL定义了丰富的运算符,主要有算术运算符、关系运算符、逻辑运算符、赋值运算符、关联运算符和其他运算符。需要注意的是,操作数的数据类型应当与操作符所要求的数据类型一致。到目前为止,VHDL共有3个版本:VHDL87、VHDL93和VHDL2002。不同的版本对操作符的支持程度不同,具体可参见VHDL的参考手册。1)算术运算符(见表2-5)乘方运算的左边可以是整数或实数,右边必须是
我烧录的是boot和app层程序,没有合并,直接烧录,报错:Error on line 1191 : Undefined Record Type。最后发现,公司的烧录文件经过烧录APP会进行加密,加密后的文件仅在烧录APP能正常使用,而当时我为了验证给客户的程序,因为需要给客户加密后的程序,遂将加密后的app和boot在uniflash进行烧录,显示该故障。在一些公司遇到这些加密问题,时常很难有一
本文介绍 LTspice 的 FFT 分析工具中窗函数(Windowing)的使用方法。
本文介绍了一种基于FPGA和STM32的波形解调与重构系统设计方案。系统通过高速ADC采样输入信号C,经FIFO缓冲后由FPGA串口发送至STM32进行FFT分析,识别出A、B两路波形的类型和频率。FPGA接收识别结果后,利用DDS模块重构信号并通过锁相环消除相位漂移。系统还实现了相位差可调功能,可通过按键设置A'和B'的相位差,并在数码管上显示。整个系统采用模块化设计,包含FIFO缓冲、串口通信
解决keil高版本dsp库出错问题
在DSP开发中,经常使用memcpy()函数将代码从FLASH存储区间搬移到RAM存储区间,这样做的目的是为了加速DSP程序的运行(存储在RAM的程序运行比在FLASH的程序运行快),往往需要搬运的程序是对时间敏感或者计算量较大的程序。
全磊压力传感器
此接口允许应用程序使用 QSH 客户端 API,例如 open()、close()、setCallback() 和 sendRequest(),直到使用 close() 和 delete() API 显式删除会话。需要注意的是,open() API 也是在 once_per_session 的基础上调用的。有关协议缓冲区的更多信息,参见 https://developers.google.com/
还有可能是工程路径中含有中文,把路径中的中文删掉即可。
若无头文件搜索路径:配置工程属性Properties——>Build——>C2000 Compiler——>Include Options——>添加头文件的搜索路径——>Apply and Close,重新编译。若头文件搜索路径已正确添加,则检查文件路径中是否含有中文,特备注意。,若有则改为全英文输入,再重新编译,报错就会消失。编译报错:不能打开文件。中文符号(如括号、逗号等)用中文输入法输入的英
出现如上报错, 存在浮动节点, 通常是由于未放置GND符号导致的。
今天编译的时候出现以下错误,每一个之前的版本本来OK的都出这个错误,还听抓狂的,网上搜了原因,但是我头文件路径没问题。后面仔细看了以下报错位置发现,路径里有中文。真的没想到路径里有中文也会报这个错误。2.查看头文件路径是否有问题。1.查看路径里有无中文。
经检查,貌似包含了路径,实际是:CCS直接生成的路径是"E:\DSP8233x_ProjectExample…而我创建的路径"E:\CCS\DSP8233x_ProjectExample…DSP28335入门踩坑-----#1965 cannot open source file “DSP2833x_Device.h”编译直接报错:“不能找到对应的头文件“添加头文件(.h文件)所在位置。解决方法:
此问题在 Vivado 2021.2 中已得到修复,OT 告警默认将通过“Error Management”(错误管理)发出 SRST。在 CIPS GUI 中已对 Versal System Monitor 过热 (OT) 告警进行了说明。在低于 Vivado 2021.2 的版本中,可对此问题采用如下变通方法,即更新 pmc_data.cdo 文件来手动更改错误响应。但在 Vivado 202
本人第一次写csdn,其中如果有写的不正确或者不恰当的地方还请多多批评指正,在下不胜感激。
arm_recip_q31使用方法
dsp
M7000系列(M76H00、M75H00、M76P00、M73P00、M7600、M7300、M76E00、M73E00)专为工业控制(伺服电机、变频器、PLC、机器人)、光伏能源与数字电源等场景设计,采用国产自主高算力RISC-V内核,主频高达552MHz,内置DSP、FPU、HCL、Cordic、FFT、FIR、IIR等单元,搭配大容量内存与丰富外设接口,可高效处理实时数据与实时控制任务,产
使用TI的F28p650双核dsp芯片,想两个核都用上,cpu1核跑控制,cpu2核跑通讯。刚开始以为和F28377双核芯片一样进行调试就可以了,结果发现使用仿真器调试cpu2核怎么都不行。
摘要:本文分析了开关电路中尖峰电压的产生机理,指出MOS管寄生电容、线路寄生电感、大电流和快速开关是尖峰产生的三大主因。针对性地提出了通过延缓开关速度、并联吸收电容来抑制尖峰的方法,并推导了吸收电容的计算公式。进一步解释了实际工程中采用RC吸收电路的必要性,指出电阻能有效抑制电容引起的振铃现象。最后强调实际设计中需综合考虑效率、温升等因素调整RC参数,并提供了参数调整的实用判断方法:当MOS尖峰电
本文介绍如何在Chisel测试框架中生成和查看波形文件。通过分析chisel-examples中的Fifo示例,详细说明了VCD波形文件的生成过程和使用gtkwave工具进行时序分析的方法。重点展示了如何利用gtkwave观察Buffer模块的输入输出信号、内部寄存器状态随时间的变化,以及通过步进功能分析时序特征。文章还强调Chisel语言的生成式特征,即通过参数化实现不同位宽和深度的电路生成。.
FCP32C335以TMS320F28335为标杆,搭载150MHz主频的32位浮点处理单元(FPU),支持单周期32×32位乘法运算,单精度浮点运算效率达300 MFLOPS。与定点DSP相比,其浮点运算能力可简化复杂算法开发,例如快速傅里叶变换(FFT)性能提升一倍,同时保持与定点指令集的兼容性,助力用户无缝迁移原有代码。
LD7512是一款低功耗、12位电压输出DAC,支持轨对轨输出,内置高精度运放与上电复位电路,确保上电后输出为0V。采用3线串行接口,最高时钟达30MHz,兼容SPI及DSP接口,工作电压2.7~5.5V,5V下功耗仅0.6mW(120μA),省电模式下低至1μW,适用于便携式电池设备。具备单调输出、三种省电模式及SYNCB中断功能,广泛用于数字增益/偏移调节、可编程电源等场景。
针对AOC及短距(SR)光模块优化的新型Credo DSP,适用于下一代超大规模数据中心/AI应用
LMD9235是一款高性能12位模数转换器(ADC),采用3V单电源供电,支持20/40/65MSPS采样率。该芯片内置采样保持放大器和基准电压源,采用多级差分流水线架构,确保12位精度且无失码。其特点包括低功耗(165mW)、高信噪比(SNR≥70.5dBc)和出色的动态范围(SFDR>92dBc),适用于通信、医疗影像等场景。支持单端/差分输入,配备占空比稳定器以优化时钟性能。提供28引
本文详细介绍了CCS12和C2000Ware的安装步骤。首先从TI官网下载CCS12离线版,注意安装路径不能包含中文。安装过程中需关闭杀毒软件,并解决可能出现的路径警告问题。建议选择C2000系列组件,按默认选项完成安装。接着下载C2000Ware,该软件包含芯片库文件和例程,是后续开发的基础。安装时同样需注意路径问题,建议与CCS12放在同一目录。最后完成两个软件的安装,为后续DSP开发环境配置
再重启CCS就能导入例程了。首先根据自己电脑上的例程版本来确定要安装哪一个版本的C2000ware,比如说我的例程路径是:C:\ti\c2000\C2000Ware_4_00_00_00\driverlib\f28004x\examples\flash\CCS,那就下载C2000Ware_4_00_00_00进行安装即可。pwd=iiin 提取码: iiin。然后附上C2000Ware_4_00_
CCS 报错 Error connecting to the target...
分别从电机控制和电源产品两个方面,依据相关公式详细推理为何在电机控制中控制 Q 轴电流,而在电源产品中控制 D 轴电流。在交流电机矢量控制中,通常采用 d - q 坐标系(同步旋转坐标系)来分析电机的运行。对于永磁同步电机(PMSM),其定子磁动势可以分解为直轴(d 轴)和交轴(q 轴)分量。定子磁链方程为:其中,ψd 和 ψq 分别是 d 轴和 q 轴磁链,Ld 和 Lq 分别是 d 轴和 q
这个旋转角度θ对于实现电机磁场和转矩的解耦控制起着关键作用。
在矢量控制算法中,将Iq(Q 轴电流)经过 PI(比例 - 积分)控制器处理后得到Uq(Q 轴电压),这一过程有着重要的理论依据和实际应用需求,以下从控制目标、数学模型以及控制策略等方面详细解释其原因。
F11:进入Debug模式,F8在Debug中运行。Ctrl+F11:下载程序到DSP的RAM中运行。Ctrl+B:编译整个工程。
此种情况下,若x为负时,需要向前借位、k+2位的z变为p、k+1位的p变为z、此时前导共有k+1个0,例如A为01000、B为00010时、R为010(-1)0;,此时R序列变为z(k+j) p (p or z) (x)的情况(即上述情况1和情况2),那么序列中首个p出现在k+j+1或者k+j+2的位置,原因与情况2想同;此种情况下,即使x为负时,向前借位会在k+2位的p处结束、k+1必定仍然为p
传统DTC转矩滞环和磁链滞环均采用两位滞环,即只有0和1。这样当控制量处于滞环限制范围内也要保持一个有效电压矢量输出,在一定程度上会增大转矩和磁链波动。零矢量在PMSM中的作用和其在异步电机系统有很大不同,零矢量在永磁电机系统只有微弱降低转矩的作用。利用这一特点,可把零矢量看作保持当前转矩的作用,利用其可以减少逆变器开关次数和转矩的脉动。该特点在电机系统重载时特别明显。在小负载时也只有高速情况下,
CSDN、知乎上有很多介绍了,这里就不再献丑了。
本文将简要介绍空间电压矢量调制的直接转矩控制MATLAB/simulink仿真模型
这在嵌入式系统中是非常有用的,因为你可以根据需要将代码或数据放置在特定的内存区域,以优化性能或满足特定的硬件约束。注意:使用 #pragma CODE_SECTION 需要确保你的链接器脚本(linker script)已经定义了相应的内存段,并且你的系统有足够的RAM资源来存储这些函数。在使用之前,请查阅你的编译器和平台的文档以获取准确的信息。在这个例子中,criticalFunction 的代
补充ADAU1701的几个BasicDSP和RMS算法
在工程中内快捷键:快捷键 功能 使用说明Crtl + B 编译整个工程 写完代码后编译查错Ctrl + 鼠标左键 打开声明 是函数的话跳转到该函数,是变量跳转到变量定义Crtl + / 添加注释快 选定N行代码,操作后该代码块被注释,再按一下取消注释Alt + / 代码提示 帮你输入代码串,比如要写PWM部分,他就会出EPwm1RegsCtrl+F 当前窗口查找 当前C文件内查找Ctrl+H 全局
dsp开发
——dsp开发
联系我们(工作时间:8:30-22:00)
400-660-0108 kefu@csdn.net