久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 8862|回復: 4
打印 上一主題 下一主題
收起左側

TMS320F2812 DSP高精度數字頻率計設計資料 含源碼 原理圖PCB 論文

  [復制鏈接]
跳轉到指定樓層
樓主
數字頻率計電路功能概述:   
       本設計采用TMS320F2812 DSP 芯片,制作了一臺簡易數字頻率計。本設計綜合了傳統的多周期測量和等精度測量方法,實現了對被測信號頻率、周期、脈寬和占空比寬范圍、高精度的測量。提出了一種在無需任何外部硬件控制情況下,利用DSP 2812豐富的軟件資源實現等精度測量的一種方法。它根據每個門閘時間內高頻標準脈沖的個數與已知被測信號的個數,求得被測信號頻率,最后再通過多次測量取平均值的方法得到最終結果。系統測試結果表明我們的設計是可行的。
硬件設計:
數字頻率計系統硬件設計由四部分組成:整形電路、DSP選擇與F2812最小系、通訊模塊和電池管理模塊。具體介紹說明,詳見附件內容。

Altium Designer畫的原理圖和PCB圖如下:(51hei附件中可下載工程文件)



程序打包:


TMS320F2812 DSP源程序如下:

  1. void init_eva_timer1(void)//定時器1初始化
  2. {       

  3.     EvaRegs.GPTCONA.all= 0x6052;//將定時器1,2配置成遞增計數模式
  4.    //沒有事件啟動ADC,定時器1,2的比較輸出由各定時器比較邏輯獨立驅動
  5.    //定時器1比較輸出設為高有效
  6.     EvaRegs.T1PR = 2;       // 周期值
  7.     EvaRegs.T1CMPR = 1;     // 比較值
  8.     EvaRegs.EVAIFRA.bit.T1CINT= 1;//復位定時器1的比較中斷標志
  9.     EvaRegs.EVAIFRC.bit.CAP1INT = 1;//復位捕獲單元1的中斷標志
  10.     EvaRegs.EVAIMRA.bit.PDPINTA= 0;//禁止功率驅動保護中斷
  11.     EvaRegs.EVAIMRA.bit.T1CINT= 0;//禁止定時器1的比較中斷使能
  12.     EvaRegs.EVAIMRC.bit.CAP1INT = 0;//禁止捕獲單元1的中斷使能
  13.     EvaRegs.T1CNT= 0x0000;//定時器1的計數值初始化為0
  14.     EvaRegs.T1CON.all = 0x1012;//將定時器1配置為仿真掛起時立即停止,
  15.     //連續增計數模式,禁止定時器1操作,用外部時鐘,比較寄存器設為計數器值為0或等于周期寄存器的值時重載  
  16.     //使能定時器的比較操作
  17. }
  18. void init_eva_timer2(void)//定時器2的初始化
  19. {
  20.     EvaRegs.GPTCONA.all=0x6052;
  21.     EvaRegs.T2PR= 0xFFFF;       // 周期值
  22.     EvaRegs.T2CNT = 0x0000; //初始化計數值
  23.     EvaRegs.EVAIFRB.bit.T2OFINT= 1; //復位定時器2的上溢中斷標志
  24.     EvaRegs.EVAIMRB.bit.T2OFINT = 1;//使能定時器2的上溢中斷使能
  25.     EvaRegs.T2CON.all= 0x1502;//將定時器2配置為仿真掛起時立即停止,
  26.     //連續增計數模式,預分頻設為32分頻,使用自身使能位,禁止定時器2操作
  27.     //使用內部時鐘,比較寄存器設為計數器值為0或等于周期寄存器的值時重載
  28.     //使用自身的周期寄存器
  29. }
  30. void frequence(void)//計算頻率
  31. {    //計算捕獲1捕獲的定時器2的脈沖數
  32.     if(Ny2>Ny3)
  33.             Ny1=(65535-Ny2)+Ny3+65536*(EvaTimer2InterruptCount-1);
  34.             else
  35.             Ny1=Ny3-Ny2+65536*EvaTimer2InterruptCount;
  36.           if(flag3 == 0)   //判斷被測信號頻率范圍   
  37.          {
  38.            if(Ny1>781250)
  39.             {
  40.             FR=7031250.0/Ny1;
  41.             TR=1000000.0/FR;
  42.             }
  43.            if(Ny1>=150000&&Ny1<=781250) //頻率小于46.875Hz,直接計算
  44.             {     
  45.                FR1=7031250.0/Ny1;//FR1=1000000.0/Ny1/64*150*3;
  46.                FR0[FRCount++]=FR1;
  47.                    if(FRCount==7)//如果已計算了5個值,即數組已滿,則禁止定時器1的比較操作
  48.                    {
  49.                     flag6=1;
  50.                   //  EvaRegs.EVAIFRA.bit.T1CINT=0;
  51.                    }
  52.                    else
  53.                      flag6=0;
  54.                   }            
  55.                   else if( Ny1>=3&&Ny1<150000)//被測頻率小于150/64MH,大于150M/64/50000=46。875Hz
  56.                  {
  57.                                 if(flag1 == 0)//大于46.875H小于150M/64頻率
  58.                                 {
  59.                                     flag3 = 1;
  60.                                         flag1 = 1;                                  
  61.                            N=150000.0/ Ny1;
  62.                    if(N<16383)         //重新配置定時器1
  63.                    {   EvaRegs.T1PR=4*N+3;// N=15384.6,T1PR最大為61542
  64.                                       EvaRegs.T1CMPR=2*N+1;
  65.                                       EvaRegs.T2CON.bit.TPS=3;//定時器2輸入時鐘預定標設為8分頻
  66.                             }
  67.                    else if(flag5==0) //大于767953.125H(150M/64/200000*65532)小于150M/64 頻率
  68.                    {
  69.                        flag5=1;
  70.                        EvaRegs.T1PR=65529;
  71.                        EvaRegs.T1CMPR=32764;
  72.                            EvaRegs.T2CON.bit.TPS=0;
  73.                                  }
  74.                 }
  75.            }
  76.              else
  77.              {
  78.                                    if(flag2==0)//大于150M/64 頻率
  79.                                  {   
  80.                                        flag3 = 1;
  81.                                            flag2 = 1;         
  82.                               EvaRegs.T1PR=65529;
  83.                        EvaRegs.T1CMPR=32764;
  84.                            EvaRegs.T2CON.bit.TPS=0;
  85.                  }
  86.              }
  87.        }   
  88.     else            
  89.            if(flag3==1) //重新配置中頻和高頻之后重新計算
  90.              {
  91.                 if(flag1 == 1)
  92.               {
  93.                  if(flag5==1)
  94.                       {
  95.                         FR1=4914750.0/Ny1*1000000;//FR1=150.0/2*65530/Ny1*1000000;
  96.                         FR0[FRCount++]=FR1;
  97.                         if(FRCount==7)
  98.                         {
  99.                          flag6=1;
  100.                    //      EvaRegs.EVAIFRA.bit.T1CINT=0;
  101.                         }
  102.                         else
  103.                         flag6=0;
  104.                      }            
  105.                  else
  106.                  {
  107.                   FR1=9375000.0/Ny1*(EvaRegs.T1PR+1);//FR1=1000000.0/Ny1/16*150*4*(N+1);
  108.                   FR0[FRCount++]=FR1;
  109.                       if(FRCount==7)
  110.                        {
  111.                         flag6=1;
  112.                   //      EvaRegs.EVAIFRA.bit.T1CINT=0;
  113.                        }
  114.                       else
  115.                         flag6=0;
  116.                  }
  117.              }   
  118.          else
  119.             if(flag2 == 1)  
  120.              {   
  121.                     FR1=4914750.0/Ny1*1000000;//FR1=150.0/2*65530/Ny1*1000000;
  122.                         FR0[FRCount++]=FR1;
  123.                         if(FRCount==7)
  124.                         {
  125.                         flag6=1;
  126.                //         EvaRegs.EVAIFRA.bit.T1CINT=0;
  127.                         }
  128.                         else
  129.                         flag6=0;
  130.                  }
  131.              }
  132. }
  133. interrupt void eva_timer2_isr(void)//定時器2溢出中斷程序
  134.    {
  135.      if((EvaTimer2InterruptCount>98)&&(flag3 ==1)&&((flag2 ==1)|(flag5==1)))
  136.        {
  137.           EvaRegs.T1PR = 2; //   75M*65530/65536/767953.125H,由767953.125H以上變低頻處理,復位EV模塊
  138.           flag3 = 0;
  139.           flag2 = 0;
  140.           flag1 = 0;
  141.           flag4 = 0;
  142.           flag5 = 0;
  143.           EvaRegs.T1CNT = 65525;
  144.           EvaRegs.T1CMPR = 1;
  145.           EvaRegs.T1CON.bit.TCLD10=2;
  146.           EvaRegs.T1CON.bit.TCLD10=0;
  147.           EvaRegs.T2CON.bit.TPS=5;
  148.           EvaTimer2InterruptCount=0;
  149.        }
  150. else
  151.    if((EvaTimer2InterruptCount>=25)&&(flag3 ==1)&&(flag1 ==1)&&(flag5==0))
  152.     {
  153.       EvaRegs.T1PR = 2; // 150M/16*8/65536/46.875,由中頻變低頻處理
  154.       flag3 = 0;
  155.       flag1 = 0;
  156.       flag4 = 0;
  157.       EvaRegs.T1CNT = 4*N;
  158.       EvaRegs.T1CMPR = 1;
  159.       EvaRegs.T1CON.bit.TCLD10=2;
  160.       EvaRegs.T1CON.bit.TCLD10=0;
  161.       EvaRegs.T2CON.bit.TPS=5;
  162.       EvaTimer2InterruptCount=0;
  163.     }
  164.   else   
  165.    {
  166.    EvaTimer2InterruptCount++;
  167.    }
  168.    EvaRegs.EVAIFRB.bit.T2OFINT= 1;//復位定時器2的上溢中斷標志
  169.    PieCtrlRegs.PIEACK.all= PIEACK_GROUP3;//清除PIE分組3械牡鬧卸舷煊ξ?
  170. }
復制代碼

所有資料51hei提供下載:

pcb和原理圖: 硬件設計.zip (230.99 KB, 下載次數: 139)
源程序: Flash program.zip (505.09 KB, 下載次數: 110)
頻率計設計論文: 簡易數字頻率計.pdf (1.28 MB, 下載次數: 168)
頻率計資料(贈送設計方案).zip (1.62 MB, 下載次數: 111)



評分

參與人數 1黑幣 +100 收起 理由
admin + 100 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏12 分享淘帖 頂3 踩
回復

使用道具 舉報

沙發
ID:854348 發表于 2020-12-13 20:22 來自手機 | 只看該作者
有沒有文檔
回復

使用道具 舉報

板凳
ID:796531 發表于 2024-9-18 13:56 | 只看該作者

PDF文檔里寫的很清楚,你沒下載沒看不要隨便提問題
回復

使用道具 舉報

地板
ID:247571 發表于 2024-9-20 08:57 | 只看該作者
是用DSP的高速特性來提高頻率精度的嗎?有沒有考慮用DSP數字方法來測量頻率,比如FFT算法。
回復

使用道具 舉報

5#
ID:1136884 發表于 2024-11-19 09:46 | 只看該作者
真不錯,謝謝博主
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美电影在线观看网站 | 精品久久久久久亚洲综合网 | 黄网免费看 | 男女羞羞视频免费看 | 91在线视频网址 | 一级片在线观看 | 国产精品日韩 | 久草新视频 | 伊人久久在线 | 国产日韩一区二区三区 | 亚洲看片网站 | 欧美一级黄色片免费观看 | 精品免费视频 | 日韩欧美精品一区 | 亚州成人 | 国产乱码精品一区二区三区五月婷 | 日韩国产中文字幕 | 伊人久操 | 在线视频中文字幕 | 国产一级黄色网 | 97视频人人澡人人爽 | 在线免费亚洲视频 | 精品欧美乱码久久久久久 | 中文字幕亚洲精品 | 中文字幕电影在线观看 | 337p日本欧洲亚洲大胆鲁鲁 | 色橹橹欧美在线观看视频高清 | 日韩精品不卡 | 午夜无码国产理论在线 | 狠狠综合久久av一区二区老牛 | 日本h片在线观看 | 亚洲成人午夜电影 | 91不卡| 精精精精xxxx免费视频 | 91麻豆精品国产91久久久资源速度 | 网站黄色在线免费观看 | 欧美一二三区 | 欧美11一13sex性hd | 久草精品视频 | 国产一区二区三区四区 | 欧美一区免费 |