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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 8776|回復: 4
打印 上一主題 下一主題
收起左側(cè)

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

  [復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:227470 發(fā)表于 2017-8-13 23:30 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
數(shù)字頻率計電路功能概述:   
       本設計采用TMS320F2812 DSP 芯片,制作了一臺簡易數(shù)字頻率計。本設計綜合了傳統(tǒng)的多周期測量和等精度測量方法,實現(xiàn)了對被測信號頻率、周期、脈寬和占空比寬范圍、高精度的測量。提出了一種在無需任何外部硬件控制情況下,利用DSP 2812豐富的軟件資源實現(xiàn)等精度測量的一種方法。它根據(jù)每個門閘時間內(nèi)高頻標準脈沖的個數(shù)與已知被測信號的個數(shù),求得被測信號頻率,最后再通過多次測量取平均值的方法得到最終結(jié)果。系統(tǒng)測試結(jié)果表明我們的設計是可行的。
硬件設計:
數(shù)字頻率計系統(tǒng)硬件設計由四部分組成:整形電路、DSP選擇與F2812最小系、通訊模塊和電池管理模塊。具體介紹說明,詳見附件內(nèi)容。

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



程序打包:


TMS320F2812 DSP源程序如下:

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

  3.     EvaRegs.GPTCONA.all= 0x6052;//將定時器1,2配置成遞增計數(shù)模式
  4.    //沒有事件啟動ADC,定時器1,2的比較輸出由各定時器比較邏輯獨立驅(qū)動
  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;//禁止功率驅(qū)動保護中斷
  11.     EvaRegs.EVAIMRA.bit.T1CINT= 0;//禁止定時器1的比較中斷使能
  12.     EvaRegs.EVAIMRC.bit.CAP1INT = 0;//禁止捕獲單元1的中斷使能
  13.     EvaRegs.T1CNT= 0x0000;//定時器1的計數(shù)值初始化為0
  14.     EvaRegs.T1CON.all = 0x1012;//將定時器1配置為仿真掛起時立即停止,
  15.     //連續(xù)增計數(shù)模式,禁止定時器1操作,用外部時鐘,比較寄存器設為計數(shù)器值為0或等于周期寄存器的值時重載  
  16.     //使能定時器的比較操作
  17. }
  18. void init_eva_timer2(void)//定時器2的初始化
  19. {
  20.     EvaRegs.GPTCONA.all=0x6052;
  21.     EvaRegs.T2PR= 0xFFFF;       // 周期值
  22.     EvaRegs.T2CNT = 0x0000; //初始化計數(shù)值
  23.     EvaRegs.EVAIFRB.bit.T2OFINT= 1; //復位定時器2的上溢中斷標志
  24.     EvaRegs.EVAIMRB.bit.T2OFINT = 1;//使能定時器2的上溢中斷使能
  25.     EvaRegs.T2CON.all= 0x1502;//將定時器2配置為仿真掛起時立即停止,
  26.     //連續(xù)增計數(shù)模式,預分頻設為32分頻,使用自身使能位,禁止定時器2操作
  27.     //使用內(nèi)部時鐘,比較寄存器設為計數(shù)器值為0或等于周期寄存器的值時重載
  28.     //使用自身的周期寄存器
  29. }
  30. void frequence(void)//計算頻率
  31. {    //計算捕獲1捕獲的定時器2的脈沖數(shù)
  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個值,即數(shù)組已滿,則禁止定時器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, 下載次數(shù): 139)
源程序: Flash program.zip (505.09 KB, 下載次數(shù): 110)
頻率計設計論文: 簡易數(shù)字頻率計.pdf (1.28 MB, 下載次數(shù): 168)
頻率計資料(贈送設計方案).zip (1.62 MB, 下載次數(shù): 111)



評分

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

查看全部評分

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

使用道具 舉報

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

使用道具 舉報

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

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

使用道具 舉報

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

使用道具 舉報

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

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美一区 | 国产欧美日韩精品一区二区三区 | 色综合99| 午夜视频在线 | 国产电影一区二区在线观看 | 在线播放中文字幕 | 涩涩鲁亚洲精品一区二区 | 中文字幕日韩欧美一区二区三区 | 精品久久久久久国产 | 亚洲444kkkk在线观看最新 | 亚洲欧美一区二区三区在线 | 中文字幕国产一区 | 精品麻豆剧传媒av国产九九九 | 欧美亚洲国产成人 | 国产精品178页 | 91色视频在线观看 | 免费成人高清 | 亚洲一二三区在线观看 | 激情av在线 | 一区二区不卡 | 国产精品国产精品国产专区不卡 | 亚洲成人一区二区 | 国产精品久久久久久久一区二区 | 国产精品高潮呻吟久久aⅴ码 | 欧美国产视频 | 久草网在线视频 | 国产午夜精品一区二区三区嫩草 | 中文字幕一区二区三区精彩视频 | 成av在线| 久久成人一区 | 日韩欧美不卡 | 一区二区三区四区五区在线视频 | 久久久久国产成人精品亚洲午夜 | 日韩一区二区三区视频在线观看 | 国产精品欧美一区喷水 | 色视频成人在线观看免 | 成人妇女免费播放久久久 | 日韩国产中文字幕 | 免费人成在线观看网站 | 久久久久久免费精品一区二区三区 | 91精品国产91久久久久久最新 |