
DSP
文章平均质量分 91
江湖上都叫我秋博
这个作者很懒,什么都没留下…
展开
-
DSP_cmd学习2_一个令人窒息、误人子弟、然并卵的操作
闲来无事的最强摸鱼王可以继续往下看,当个趣闻看就行。以前我们的操作是在。原创 2024-01-26 10:45:34 · 1081 阅读 · 1 评论 -
DSP_TMS320F28335_优秀的串口通信框架
在文章这篇文章中,我提到了用“”的方式去处理与上位机的通信程序,最小的队列,就是一个节点只存储一个字节。用串口和上位机通信的方式是非常普遍的,本文讲描述一种串口通信的“”框架。本框架其实核心的思想就是将串口的接收中断配置成1个字节就触发一次,中断处理程序只做一件事,就是把接收到的1个字节push到当中,然后在主程序 while(1)中去处理接收到的数据,对数据进行帧解析,为了让这个框架更普适,我们通过帧头和帧尾来截取一帧完整的数据,这样就能普适不定长的通信协议。原创 2023-11-07 16:38:11 · 1513 阅读 · 1 评论 -
DSP_TMS320F28335_用数组的方式来实现队列和栈
说起队列和栈,链表+动态内存分配的方式,是比较常见的方式,最近项目下需要在dsp上面使用队列和栈两种数据结构,所有就使用链表+动态内存分配的方式实现了一下,但是调试的过程中发现运行的时候总是在动态内存分配的位置出bug,动态内存分配malloc总是分配失败,返回空指针,尝试修改cmd的配置后,也仍然没有解决问题。思来想去还是用数组的方式来实现队列和栈,结果性能出奇的稳定,所以本博客记录一下用数组实现队列和栈的代码。原创 2023-11-07 10:32:37 · 397 阅读 · 3 评论 -
DSP_控制程序框架与优化
控制程序框架分为两个部分:对实时性要求高的程序,建议采用中断处理程序实现。对实时性要求低的程序,建议写在主程序的while(1),用队列的方式实现。对于程序的优化建议有三条:1、中断程序的优化加速是必要的;2、避免CPU资源浪费也很关键;3、上位机通信小技巧 - “高频小队列”原创 2023-10-26 18:15:07 · 1111 阅读 · 0 评论 -
DSP_TMS320F28377D_算法加速方法4_代码本身的优化
前面3篇的优化思路是从硬件本身和函数库这些方向去加速, 本文则仅从去考虑加速的方法,下面提供7种代码本身的优化思路,并验证其是否有效。原创 2023-09-04 11:50:13 · 1824 阅读 · 0 评论 -
DSP_TMS320F28377D_算法加速方法3_使用TMU库加速
继上两篇方法之后,本文继续讨论第三种DSP算法加速的方法——。该方法的加速能力比方法2还强。但是也有一个范围:我们简称为FPU,本文的方法(方法3)我们简称为TMU速。FPU加速和TMU加速是两种的方法,就是你用了某一种,就不能用另一种了。所以。原创 2023-09-01 11:23:00 · 2693 阅读 · 7 评论 -
DSP_TMS320F28377D_算法加速方法2_添加浮点运算快速补充库rts2800_fpu32_fast_supplement.lib
1 工程师的关注点下面稍微解释一下一些可能有疑问的点1 电机控制中经常对同一个角度求sin和cos,我的测试程序结果是:1、sin和cos分开算,加速前(不添加这个库) 695.25us;2、加速后590us;3、sincos一起算410us。2 atan2是什么意思返回浮点参数X/Y的四象限反正切3 isqrt是什么意思返回 1.0L/sqrt(X).4 关于division(除法),我实测试了,“/”,以后还是直接用“/”符号。另外,这个库是没有的。5 亲测了。原创 2023-08-30 21:05:42 · 1984 阅读 · 1 评论 -
DSP_TMS320F28377D_算法加速方法1_拷贝程序到RAM运行
TI C2000系列的DSP芯片算力有限,用于来控制有时候常会出现控制程序无法实现实时运行的情况,因此从本文开始,将陆续推出几篇DSP算法加速的方法此方法只需要添加一行代码和一个预定义,即可达到算法整体加速的目的。先声明本文是讲的是TMS320F28377D,其他C2000系列芯片应该差不多,去看看CMD文件就知道了。原创 2023-08-29 18:51:43 · 1965 阅读 · 1 评论 -
DSP_TMS320F28377D_一键烧写多核程序
以前在开发和调试TMS320F28377D的双核程序的时候,总是在烧写CPU1程序时,自动把CPU2的程序也烧写了,但往CPU2里面烧写的是CPU1的程序,烧写完进入在线仿真模式的时候,还需要手动重新选择CPU2要烧写的程序,重新烧写一遍,这个过程其实是的。两个核还好,要是8个核呢?一个一个烧,那不得把人气死!因此本文主要记录如何配置正确。原创 2023-05-18 17:20:43 · 3950 阅读 · 10 评论 -
DSP_TMS320F28335_PIE学习笔记
本文重点探讨DSP PIE模块的学习笔记,由于学这部内容的时候,是在用28335学的,所以标题是用的28335,但其实28377D和28335的PIE使用基本上是一样的,也是可以借鉴的。原创 2023-03-02 17:17:12 · 2832 阅读 · 12 评论 -
DSP_TMS320F28377D_CPU Timer学习笔记
本文主要讲一下DSP CPU Timer的学习笔记,主要内容是用CPU Timer实现软分频功能。本文主要的作用是对于一个知识点的备份,另外呢,也是作为文章基于DSP的三相开关霍尔永磁同步电机控制_江湖上都叫我秋博的博客-CSDN博客知识框架中的一部分。原创 2023-03-02 14:25:20 · 1752 阅读 · 0 评论 -
基于DSP的三相开关霍尔永磁同步电机控制
本文本应该是一篇 记录我使用DSP28377D控制一个基于三相开关霍尔传感器的高速永磁同步电机全过程的长文,但大部分零散的知识点我都已经写成单独的博客了,所以本文更像是一个知识框架的梳理。本文最终目的实现高速PMSM的电流-速度双闭环,将电机速度控制在80r/s作用,精度越高越好。原创 2023-03-02 11:49:13 · 6646 阅读 · 11 评论 -
DSP_TMS320F28377D_ePWM学习笔记
本人需要使用ePWM来控制一个永磁同步电机(PMSM), 本文记录了对于TMS320F28377D ePWM模块的学习笔记。主要内容是FOC PMSM控制的ePWM配置,同时包含ADC触发源的配置,关于ADC的学习笔记,请参考DSP_TMS320F28377D_ADC学习笔记_江湖上都叫我秋博的博客-CSDN博客。那么何谓PWM 呢?原创 2023-03-01 18:38:29 · 10568 阅读 · 7 评论 -
DSP_TMS320F28377D_ADC学习笔记
DSP各种模块的使用,基本上就是 GPIO复用配置、相关控制寄存器的配置、中断的配置。本文主要记录本人对ADC模块的学习笔记。TMS320F28377D上面有24路ADC专用IO,这意味着不需要进行GPIO复用配置。只需要考虑相关控制寄存器和中断的配置。看代码请直接跳到最后。原创 2023-02-28 16:12:45 · 10633 阅读 · 16 评论 -
DSP_无通信接口系统辨识
由于本人接触的项目,DSP板没有留通信接口给PC端,因此要对系统做辨识,获取数据的唯一渠道就是直接把DSP内存里的数据通过CCS拷贝出来。本文重点讨论在DSP内存有限的情况下,高效地完成系统辨识的方法。在做这部分工作前,需要学习两个前置知识,即这两部分内容是必须要懂的,不然后续的内容,容易卡壳。原创 2023-02-06 17:45:55 · 678 阅读 · 0 评论 -
DSP_cmd学习1_定义一个大的全局数组
最近在做基于dsp平台的无通信接口系统辨识,辨识的时候会有很大的数据需要存到一个数组当中,而dsp如果定义一个很大的全局数组,编译会报错。本文将探索如何解决这个报错以及全局数组的大小极限。原创 2023-02-03 18:01:38 · 1972 阅读 · 0 评论 -
DSP_CCS7实现变量的导出与MatLAB读取
最近在做基于dsp平台的无通信接口系统辨识,因此需要直接利用CCS将数据导出,然后再利用MatLAB解析读取后的数据。高版本的CCS,比如7.4, 是没有File -> Data -> Save这个保存流程的。所以我自己找了一个保存DSP数据的流程,并且结合MatLAB代码将DSP内存中的数据解析出来了。原创 2023-02-03 11:41:09 · 4473 阅读 · 0 评论 -
DSP_TMS320F28377D_使用定时器实现<获取代码块运算时间>的功能
给大家拜个晚年,此博客是2023年的第一篇博客,希望在2023年我与各位大佬共同进步。本次的实现类似,只不过平台换成了DSP TMS320F28377D。话不多说,直接上代码。原创 2023-01-31 15:30:01 · 1977 阅读 · 7 评论 -
DSP_CCS实现变量的实时曲线显示
我们的曲线画的是y。原创 2022-12-29 18:20:30 · 3190 阅读 · 0 评论 -
DSP_TMS320F28377D_eCAP学习笔记
脉冲量的输入是在数字控制系统中最常见的一类输入量,控制器专门设置了脉冲捕获模块(eCAP)来处理脉冲量,通过脉冲捕获模块捕获脉冲量的上升沿与下降沿,进而可以计算脉冲的宽度和占空比,可以采用脉冲信号进行相关控制。捕获单元模块能够捕获外部输入引脚的逻辑状态(电平的高或低、电平翻转时的上升沿或下降沿),并利用内部定时器对外部事件或者引脚状态变化进行处理。典型应用如下:1.电机测速2.测量脉冲电平宽度3.测量一系列脉冲占空比和周期4.电流/电压传感器的PWM编码信号的解码谈一点自己的理解。原创 2022-12-23 11:43:13 · 5674 阅读 · 0 评论 -
DSP_TMS320F28377D_最简洁最高效的IPC核间通信代码
既然是多核编程,核间的数据交互是避免不了的,因此常常会使用到IPC通信技术。掌握TMS320F28377D芯片的IPC通信技术是在2021年年底,距今已半年了。只怪当初没有好好做个记录,现在想单独捡起来写成blog还需要好好回忆回忆。首先给一个参考代码路径:C:\ti\controlSUITE\device_support\F2837xD\v210\F2837xD_examples_Dual\cpu02_to_cpu01_ipcdrivers在之前讲到的28335和28377D的编程入门都有提到要安装ti提原创 2022-06-10 16:04:54 · 6499 阅读 · 10 评论 -
DSP_基于TMS320F28377D双核芯片和CCS7.40的编程入门
开始之前明确一个东西裸机程序和RTOS程序的差别:参考下面三个连接瞅瞅理解实时操作系统与裸机的区别-----Free RTOS 简介_书中倦客的博客-CSDN博客_裸机操作系统裸机与RTOS的理解和并发带来的问题-电子发烧友网 (elecfans.com)类似于STM32之类的单片机,RTOS比裸机真有那么大优势? (baidu.com)总得来说呢,就是RTOS会损失部分DSP的运算效率,建议还是开发裸机程序吧。DSP_基于TMS320F28335和CCS7.2的编程入门_heqiu原创 2022-06-09 17:30:56 · 10391 阅读 · 11 评论 -
DSP_基于TMS320F28335和CCS7.2的编程入门
1.准备工作1.1. 软件 CCS DSP芯片的编程环境 controlSUITE 初学者建议都装上 TI官方提供的通用:头文件、源文件、cmd文件、gel文件、lib文件及实例程序 如:C:\ti\controlSUITE\device_support\f2833x\v142 1.2硬件1..仿真器 + 开发板 | 公司设计的DSP板(就是所谓的“目标板”)2.创建CCS项目...原创 2022-04-22 17:36:04 · 6662 阅读 · 3 评论