电赛一等奖!基于TMS320F2812的简易数字频率计

2024-05-26 18:12

本文主要是介绍电赛一等奖!基于TMS320F2812的简易数字频率计,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

电赛一等奖!简易数字频率计设计(原理图、PCB、源码、分析报告)

        这份文件是关于合肥工业大学电气与自动化工程学院的一个项目报告,题目为“基于TMS320F2812的简易数字频率计”。项目由方敏、侯其立、李苗、张巧云四位本科生完成,指导教师为徐科军教授。以下是该项目报告的核心内容概述:

项目背景与目的:

  • 频率测量在多个领域非常重要,因此高精度、宽量程的数字频率计成为了关键的测量工具。
  • 项目设计采用了多周期测量原理,通过标准频率信号填充被测信号的整数个周期,以消除计数误差,提高测量精度。

系统设计与实现:

  • 选用了TMS320F2812型号的DSP芯片作为核心处理单元,利用其高精度时钟和快速运算能力。
  • 结合DSP芯片的事件管理器,如捕获单元、定时/计数单元、比较单元和脉宽调制电路PWM,实现了高精度的频率测量及脉宽和占空比的测量。

系统指标与性能:

  • 系统设计满足了高精度测量的要求,具体性能指标包括幅度范围、频率范围、最大相对误差等。
  • 系统在保证最大相对误差的前提下,尽可能扩大了测量范围。

测量方法及理论误差分析:

  • 详细介绍了频率测量、脉宽和占空比测量以及幅值测量的方法和理论误差分析。
  • 讨论了量化误差、测量原理误差和标准频率误差对测量结果的影响。

摘要

        频率测量用途非常广泛,高精度、宽量程的数字频率计因而成为重要的测量仪器。本设
计采用多周期测量原理,即用标准频率信号填充整数个周期的被测信号,从而消除了被测信
号+1 的计数误差,其测量精度仅与门控时间和标准频率有关,克服传统的直接测频或者直
接测周法均不能全面满足高精度要求的缺陷。选用 TMS320F2812 型号的 DSP 芯片作为核心处
理单元,结合其高精时钟和快速运算的优点,充分利用其内部的事件管理器:捕获单元,定
时/计数单元,比较单元,脉宽调制电路 PWM,实现高精度的频率测量,并且实现了脉宽和
占空比的测量。
关键词:
高精度频率测量;脉宽和占空比测量;多周期测量原理;DSP ;
系统组成
系统主要是由电源管理模块,输入调理模块,信号处理模块,通讯模块和 D 触发器组
成,如图 所示
信号处理部分
本设计中采用的 DSP 芯片型号为 TMS320F2812,它是到目前为止 C2000 系列中性能最强
大的一代产品。系统中,F2812 协调整个系统各模块的有序工作,并且承担着信号处理的任
务。
系统软件设计
系统软件设计采取模块化设计方案,将完成特定功能或者类似功能的子程序组合成功能
模块,主要功能模块有:初始化模块、中断模块、频率测量模块、脉宽测量模块、SCI 通信
模块以及看门狗模块等,由主监控程序统一调用,协调各个部分正常有序工作。软件系统功
能框图如图所示。
关键程序:
EV 配置程序:
void InitEv(void)
{
EvaRegs.GPTCONA.all = 0;
EvbRegs.GPTCONB.all = 0;
EvaRegs.EXTCONA.bit.INDCOE=1;//
EvaRegs.GPTCONA.bit.T1CTRIPE = 1;//使能定时器 1 输出切断功能
EvaRegs.GPTCONA.bit.T1CMPOE = 1;//使能 T1 比较输出,允许独立使能禁止
//将通用定时器 1 的比较输出设置成低电平有效
EvaRegs.GPTCONA.bit.T1PIN = 1;
// 将定时器 1 设置成连续增计数模式外部时钟,使能 T1 比较
EvaRegs.T1CON.all = 0x101a;
EvaRegs.T1PR=0xffff;
EvaRegs.T1CMPR=1;
// 将定时器 2 设置成连续增计数模式 4 分频,内部时钟
EvaRegs.T2CON.all = 0x1288;
EvaRegs.T2PR = 0xffff;
EvbRegs.T3PR = 0xffff;
EvbRegs.T3CMPR =30000;//T3CMPR 设置为 10000 预置时间
EvbRegs.T4PR=0xffff;
EvbRegs.T4CON.all=0x1000; //T4 使用内部时钟
EvaRegs.CAPCONA.all= 0x04E4; //CAP3 时基为 T1,检测上边沿, CAP1 时基为 T2 ,检
测两个边沿
EvbRegs.CAPCONB.all=0x0064; //CAP4 上升沿 cap5 下降沿,时基 T4
}
主循环程序:
while(1)
{
//***开始测量频率
EvaRegs.CAPCONA.bit.CAP12EN = 1;//使能捕获 1
//实验发现,使能捕获 1 后 CAP1FIFO 会变成 2,故重新复位
EvaRegs.CAPFIFOA.bit.CAP1FIFO=0;
EvaRegs.CAPFIFOA.bit.CAP3FIFO=0;
EvaRegs.T1CON.bit.TENABLE=1;//使能 T1、T2
while(EvaRegs.EVAIFRA.bit.T1CINT!=1)KickDog();//等待 T1 发生比较匹配
t1cint_isr();
while(EvbRegs.EVBIFRA.bit.T3CINT!=1);//等待 T3 发生比较匹配
t3cint_isr();
while(EvaRegs.EVAIFRA.bit.PDPINTA != 1 )KickDog();//等待 PDPINTA 置位
pdpinta_isr();
//***频率测量结束,禁止定时器和捕获
EvaRegs.T1CON.bit.TENABLE=0;//禁止 T1、T2
EvaRegs.CAPCONA.bit.CAP12EN=0;//禁止捕获 1
EvaRegs.CAPCONA.bit.CAP3EN=0;//禁止捕获 3
//***计算频率周期
Freaa[n_celiang]=150000000.0*(65536.0*t1ofcount+t1_2-1)/((4.0*2)*(t2_2+t2ofcoun
t*65536.0-t2_1));
Taa[n_celiang]=1.0/Freaa[n_celiang];
GpioDataRegs.GPASET.bit.GPIOA0 = 1;//写 1 给 GPIOA0 口
//***开始测量脉宽
EvbRegs.CAPFIFOB.bit.CAP4FIFO=1;//置 CAP4FIFO 为 1
EvbRegs.T4CON.bit.TENABLE=1;// 使能 T4
EvbRegs.CAPCONB.bit.CAP45EN = 1;//使能 CAP45
while(EvbRegs.EVBIFRC.bit.CAP4INT!=1)KickDog();//等待 CAP4 中断标志位职
capint4_isr();
//***脉宽测量结束,禁止定时器和捕获,复位中断标志位
资源下载
电赛一等奖!简易数字频率计设计(原理图、PCB、源码、分析报告)icon-default.png?t=N7T8https://download.csdn.net/download/xcltapestry/89356209?spm=1001.2014.3001.5503

这篇关于电赛一等奖!基于TMS320F2812的简易数字频率计的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1005213

相关文章

如何用Python绘制简易动态圣诞树

《如何用Python绘制简易动态圣诞树》这篇文章主要给大家介绍了关于如何用Python绘制简易动态圣诞树,文中讲解了如何通过编写代码来实现特定的效果,包括代码的编写技巧和效果的展示,需要的朋友可以参考... 目录代码:效果:总结 代码:import randomimport timefrom math

通过C#和RTSPClient实现简易音视频解码功能

《通过C#和RTSPClient实现简易音视频解码功能》在多媒体应用中,实时传输协议(RTSP)用于流媒体服务,特别是音视频监控系统,通过C#和RTSPClient库,可以轻松实现简易的音视... 目录前言正文关键特性解决方案实现步骤示例代码总结最后前言在多媒体应用中,实时传输协议(RTSP)用于流媒体服

从去中心化到智能化:Web3如何与AI共同塑造数字生态

在数字时代的演进中,Web3和人工智能(AI)正成为塑造未来互联网的两大核心力量。Web3的去中心化理念与AI的智能化技术,正相互交织,共同推动数字生态的变革。本文将探讨Web3与AI的融合如何改变数字世界,并展望这一新兴组合如何重塑我们的在线体验。 Web3的去中心化愿景 Web3代表了互联网的第三代发展,它基于去中心化的区块链技术,旨在创建一个开放、透明且用户主导的数字生态。不同于传统

usaco 1.2 Name That Number(数字字母转化)

巧妙的利用code[b[0]-'A'] 将字符ABC...Z转换为数字 需要注意的是重新开一个数组 c [ ] 存储字符串 应人为的在末尾附上 ‘ \ 0 ’ 详见代码: /*ID: who jayLANG: C++TASK: namenum*/#include<stdio.h>#include<string.h>int main(){FILE *fin = fopen (

AIGC6: 走进腾讯数字盛会

图中是一个程序员,去参加一个技术盛会。AI大潮下,五颜六色,各种不确定。 背景 AI对各行各业的冲击越来越大,身处职场的我也能清晰的感受到。 我所在的行业为全球客服外包行业。 业务模式为: 为国际跨境公司提供不同地区不同语言的客服外包解决方案,除了人力,还有软件系统。 软件系统主要是提供了客服跟客人的渠道沟通和工单管理,内部管理跟甲方的合同对接,绩效评估,BI数据透视。 客服跟客人

NC 把数字翻译成字符串

系列文章目录 文章目录 系列文章目录前言 前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。 描述 有一种将字母编码成数字的方式:‘a’->1, ‘b->2’, … , ‘z->26’。 现在给一串数字,返回有多少种可能的译码结果 import java.u

34465A-61/2 数字万用表(六位半)

34465A-61/2 数字万用表(六位半) 文章目录 34465A-61/2 数字万用表(六位半)前言一、测DC/AC电压二、测DC/AC电流四、测电阻五、测电容六、测二极管七、保存截图流程 前言 1、6位半数字万用表通常具有200,000个计数器,可以显示最大为199999的数值。相比普通数字万用表,6位半万用表具有更高的测量分辨率和更高的测量准确度,适用于精度比较高的测

海龟绘图简易教程|Turtle for Python

turtle 是 python 内置的一个比较有趣味的模块,俗称 海龟绘图,它是基于 tkinter 模块打造,提供一些简单的绘图工具,海龟作图最初源自 20 世纪 60 年代的 Logo 编程语言,之后一些很酷的 Python 程序员构建了 turtle 库,让其他程序员只需要 import turtle,就可以在 Python 中使用海龟作图。 原文链接|海龟绘图简易教程 1. 基本

超级 密码加密 解密 源码,支持表情,符号,数字,字母,加密

超级 密码加密 解密 源码,支持表情,符号,数字,字母,加密 可以将表情,动物,水果,表情,手势,猫语,兽语,狗语,爱语,符号,数字,字母,加密和解密 可以将文字、字母、数字、代码、标点符号等内容转换成新的文字形式,通过简单的文字以不同的排列顺序来表达不同的内容 源码截图: https://www.httple.net/152649.html

使用jetty和mongodb做个简易文件系统

使用jetty和mongodb做个简易文件系统 - ciaos 时间 2014-03-09 21:21:00   博客园-所有随笔区 原文   http://www.cnblogs.com/ciaos/p/3590662.html 主题  MongoDB  Jetty  文件系统 依赖库: 1,jetty(提供http方式接口) 2,mongodb的java驱动(访问mo