百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 热门文章 > 正文

五篇文章帮你开启DSP的学习思路

bigegpt 2024-09-11 01:14 6 浏览

关于DSP话题,很多电源工程师工作中会遇到不同的问题。其实找到问题的根源,才能对症下药。下面给大家分享几篇不错的文章,供大家学习~

FreeRTOS移植详解2-滴答定时器实现(基于Microchip dsPIC33C系列芯片)

在介绍内核裁剪之前,首先介绍一下滴答定时器的实现,为什么把它放在靠前的位置呢,因为这个东西相对于RTOS来说就像我们人类的心脏,是RTOS活着的基础。那么心跳如何实现呢,对于基于ARM架构的芯片(如ATSAMD21或ATSAMD51)通常用24位的SysTick定时器来实现,也就是大家常说的系统滴答定时器,通过该定时器为系统提供一个周期性的定时信号,该定时信号就是RTOS的心跳信号,通常也称为时钟节拍或系统节拍。对于dsPIC33C系列芯片,则可以用通用定时器Timer1(Datasheet中其框图如下图,红色字体为项目工程中的实际配置情况)来实现,每个Timer1时钟节拍中断都会触发OS内核执行一些系统调用,比如进行任务管理和任务切换等。

下面结合上面Timer1的框图一起来看下Timer1的初始化代码实现,该段代码在项目目录“./src/third_party/rtos/FreeRTOS/portable/MPLAB/PIC24_dsPIC”下port.c中实现,详见函数vApplicationSetupTickTimerInterrupt(),具体细节如下:

上图红色字体中前3项配置将在下一节内核裁剪中进行说明,这里需要知道以上TIMER1初始化代码的意思就是Timer1定时器要100us中断一次,且其中断优先级设置为最低优先级。那么Timer1的中断函数里做什么事情呢,代码实现同样在port.c中。

其大概意思就是通过xTaskIncrementTick()函数进行任务管理,如果当前任务的优先级有多个任务(同时configUSE_PREEMPTION和configUSE_TIME_SLICING配置为1,即 使能了时间片调度 ),那么就需要通过portYIELD()函数进行一次任务切换……

原文链接:https://www.dianyuan.com/eestar/article-701.html


DSP的硬件保护功能实现(三)

5. EPWM-TZ子模块

5.1. 内部组成

DC子模块的信号可通过3种方式配置到EPWM-TZ模块内部的故障控制模块,在系统故障时,实现对EPWM输出的控制。当DC子模块的信号触发时,可在TZ模块中产生中断。

5.1.1. 输入信号配置

此方案计划选择选择OSHT信号输入方式。

1、直接输入

DC子模块输出的force信号可直接接入到故障控制模块,故障控制模块直接对force信号做出响应,控制EPWM输出。

需注意,DCAEVT1/2.force信号只可直接触发EPWMA模块,DCBEVT1/2.force信号只可直接触发EPWMB模块。

2、CBC信号输入

可将DC子模块的force信号配置为CBC信号(Cycle-by-Cycle),当force信号触发时,CBC信号被触发,如果force信号撤销,CBC信号会被周期性的脉冲清除。CBC信号触发时,故障响应控制模块控制EPWM的输出,并可配置CBC信号触发中断。如果配置了CBC信号触发中断,则不再需要配置对应的DCxEVT2的中断信号。

需注意,仅DCxEVT2.force信号可触发CBC信号。

3、OSHT信号输入

可将DC子模块的force信号配置为OSHT信号(One-Shot),当force信号触发时,OSHT信号被触发,如果force信号撤销,OSHT信号会持续触发,直到手动清除信号。OSHT信号触发时,故障响应控制模块控制EPWM的输出,并可配置OSHT信号触发中断。如果配置了OSHT信号触发中断,则不再需要配置对应的DCxEVT1的中断信号。

需注意,仅DCxEVT1.force信号可触发CBC信号……

原文链接:https://www.dianyuan.com/eestar/article-339.html


TMS320F280X系列DSP开发——入门

对于TI的C2000系列dsp的新手来说,如何让开发板的LED点亮,是有一定的困难的。笔者就从一个初学者的角度,通过一步一步的具体操作,来让开发板的led闪烁。

开发板:笔者随便找了一个TMS320F2806的电路板,带有3个led灯。其中2个通过dsp的引脚控制,另外一个是3.3V电压指示。

仿真器:XDS100V3

集成开发环境:ccs11。

编译器版本:v21.6.0.LTS

1)打开CCS11。新建一个CCS工程

2)配置工程文件,工程名自己取。

按照上面的方法进行配置。在第5步时,要选择不带main.c的空工程,单击Finish。会出现如下图的工程目录结构:

3)继续配置工程属性:

在(1)处,单击右键,出现弹出菜单,单击(2)处。

在Products选项卡中,添加仿真器型号。

单击OK,将仿真器添加到工程文件中。

4)在工程目录中新建两个文件夹:include和source……

原文链接:https://www.dianyuan.com/eestar/article-4655.html


stm32F103使用ARM的DSP库

一、主要是如何移植

1.拷贝 CMSIS下文件到工程目录

在待移植的工程目录下新建DSPlib文件夹,用以存放DSB相关文件

2.在keil安装目录下找到CMSIS文件夹,进入内部,找到CMSIS\DSP下的include文件夹,将其拷贝到上一步DSPlib文件夹

3.同时,进入CMSIS\DSP\LIB\ARM文件夹下找到arm_cortexM3l_math.lib文件,拷贝到DSPlib文件夹

二. Keil软件的options for target中添加文件路径和关键字ARM_MATH_CM3

3. 包含头文件:#include "math.h"和#include "arm_math.h"编译一下

工程,根据报错添加头文件

添加#include "math.h"和```#include “arm_math.h”``到工程

编译一下工程,会报错缺少XXX.h,缺失的头文件可在keil安装目录下的CMSIS\Core\Include文件夹下找到,将其复制到之前创建的DSPlib\include文件夹下,完善DSPlib。其中,core_cm3.h文件要加入到DSPlib,如果之前工程有,则替换掉旧的……

原文链接:https://www.dianyuan.com/eestar/article-5336.html


数字控制芯片dsPIC33C的PWM运行模式简析

dsPIC33C系列芯片的PWM功能较以往更复杂,功能更加灵活,PWM的工作模式上和以往芯片也有一些不同之处,由于篇幅所限,本文侧重分析一下PWM模块在运行模式的种类及特性。

一.PWM运行模式概述

从图1上看,PWM的工作模式主要有几种,如独立边沿PWM模式,这也是默认设置的工作模式,变相位PWM模式,独立边沿PWM双输出模式,中心对齐模式,双更新中心对齐模式,双边沿中心对其模式等六种,其中后三种都是和中心对齐模式有关的模式。在这些PWM工作模式中,值得注意的是,有些模式采用多个PWM的时基周期去产生单个PWM周期。

在配置PWM的工作模式中,首先通过图2,3所示的寄存器配置PWM运行模式。

二.独立边沿PWM模式

独立边沿的PWM模式,用于产生边沿对齐的PWM信号,或者产生任意相位偏移的PWM信号,需要两个独立的寄存器去定义PWM波形的上升沿和下降沿位置。具体来说,通过PGxPHASE去定义PWM信号的上升沿位置相对于PWM周期计数器的起点的位置,而PGxDC用于定义相对于PWM周期计数器起点,到PWM波形下降沿的位置。PGxPER用于确定PWM计数器的周期。

另外,除了可以设定单个的PWM波形为独立边沿模式,还可以通过PGxPHASE寄存器来设定多个PWM信号之间同步,只要将PGxPHASE值设为相同值即可。

另外,还有一些特殊情况,比如当PGxPHASE=PGxDC时,则PWM脉冲占空比为0,而当设为PGxDC>PGxPER时,则PWM脉冲的占空比为100%。

通过图4所示的独立边沿PWM模式波形示例,可以看出PGxPHASE和PGxDC都是基于同一个起点开始计算,就是PWM周期计数器的起点,所以PHASE设置会占用脉宽大小的部分……

原文链接:https://www.dianyuan.com/eestar/article-5417.html


更多精彩内容,尽在电子星球 APP(https://www.eestar.com/)

宝藏半导体技术文章合集,送你!

来囤超超超多的技术仿真实例啦!

PWM搞不定,读完此文得心应手

快速入门PWM的技术难点,从此开始!

相关推荐

得物可观测平台架构升级:基于GreptimeDB的全新监控体系实践

一、摘要在前端可观测分析场景中,需要实时观测并处理多地、多环境的运行情况,以保障Web应用和移动端的可用性与性能。传统方案往往依赖代理Agent→消息队列→流计算引擎→OLAP存储...

warm-flow新春版:网关直连和流程图重构

本期主要解决了网关直连和流程图重构,可以自此之后可支持各种复杂的网关混合、多网关直连使用。-新增Ruoyi-Vue-Plus优秀开源集成案例更新日志[feat]导入、导出和保存等新增json格式支持...

扣子空间体验报告

在数字化时代,智能工具的应用正不断拓展到我们工作和生活的各个角落。从任务规划到项目执行,再到任务管理,作者深入探讨了这款工具在不同场景下的表现和潜力。通过具体的应用实例,文章展示了扣子空间如何帮助用户...

spider-flow:开源的可视化方式定义爬虫方案

spider-flow简介spider-flow是一个爬虫平台,以可视化推拽方式定义爬取流程,无需代码即可实现一个爬虫服务。spider-flow特性支持css选择器、正则提取支持JSON/XML格式...

solon-flow 你好世界!

solon-flow是一个基础级的流处理引擎(可用于业务规则、决策处理、计算编排、流程审批等......)。提供有“开放式”驱动定制支持,像jdbc有mysql或pgsql等驱动,可...

新一代开源爬虫平台:SpiderFlow

SpiderFlow:新一代爬虫平台,以图形化方式定义爬虫流程,不写代码即可完成爬虫。-精选真开源,释放新价值。概览Spider-Flow是一个开源的、面向所有用户的Web端爬虫构建平台,它使用Ja...

通过 SQL 训练机器学习模型的引擎

关注薪资待遇的同学应该知道,机器学习相关的岗位工资普遍偏高啊。同时随着各种通用机器学习框架的出现,机器学习的门槛也在逐渐降低,训练一个简单的机器学习模型变得不那么难。但是不得不承认对于一些数据相关的工...

鼠须管输入法rime for Mac

鼠须管输入法forMac是一款十分新颖的跨平台输入法软件,全名是中州韵输入法引擎,鼠须管输入法mac版不仅仅是一个输入法,而是一个输入法算法框架。Rime的基础架构十分精良,一套算法支持了拼音、...

Go语言 1.20 版本正式发布:新版详细介绍

Go1.20简介最新的Go版本1.20在Go1.19发布六个月后发布。它的大部分更改都在工具链、运行时和库的实现中。一如既往,该版本保持了Go1的兼容性承诺。我们期望几乎所...

iOS 10平台SpriteKit新特性之Tile Maps(上)

简介苹果公司在WWDC2016大会上向人们展示了一大批新的好东西。其中之一就是SpriteKitTileEditor。这款工具易于上手,而且看起来速度特别快。在本教程中,你将了解关于TileE...

程序员简历例句—范例Java、Python、C++模板

个人简介通用简介:有良好的代码风格,通过添加注释提高代码可读性,注重代码质量,研读过XXX,XXX等多个开源项目源码从而学习增强代码的健壮性与扩展性。具备良好的代码编程习惯及文档编写能力,参与多个高...

Telerik UI for iOS Q3 2015正式发布

近日,TelerikUIforiOS正式发布了Q32015。新版本新增对XCode7、Swift2.0和iOS9的支持,同时还新增了对数轴、不连续的日期时间轴等;改进TKDataPoin...

ios使用ijkplayer+nginx进行视频直播

上两节,我们讲到使用nginx和ngixn的rtmp模块搭建直播的服务器,接着我们讲解了在Android使用ijkplayer来作为我们的视频直播播放器,整个过程中,需要注意的就是ijlplayer编...

IOS技术分享|iOS快速生成开发文档(一)

前言对于开发人员而言,文档的作用不言而喻。文档不仅可以提高软件开发效率,还能便于以后的软件开发、使用和维护。本文主要讲述Objective-C快速生成开发文档工具appledoc。简介apple...

macOS下配置VS Code C++开发环境

本文介绍在苹果macOS操作系统下,配置VisualStudioCode的C/C++开发环境的过程,本环境使用Clang/LLVM编译器和调试器。一、前置条件本文默认前置条件是,您的开发设备已...