《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 基于MSP430F449的數(shù)字頻率計設(shè)計
基于MSP430F449的數(shù)字頻率計設(shè)計
摘要: 本文利用前置分頻器SAB6456A和高速數(shù)字分頻器74HC390的分頻功能,結(jié)合新型的MSP430F449單片機(jī),給出了一種新穎的、全自動的數(shù)顯測量射頻頻率的設(shè)計方案。
Abstract:
Key words :

  本文利用前置分頻器SAB6456A和高速數(shù)字分頻器74HC390的分頻功能,結(jié)合新型的MSP430F449單片機(jī),給出了一種新穎的、全自動的數(shù)顯測量射頻頻率的設(shè)計方案。
                    信號的前端處理及分頻電路

                          圖1 信號的前端處理及分頻電路


  主要器件介紹

  MSP430F449單片機(jī)

  MSP430F449 采用16位RISC結(jié)構(gòu),具有豐富的片內(nèi)外設(shè)和大容量的片內(nèi)工作寄存器和存儲器,性能價格比很高。它的特點包括:

  · 超低的功耗:能夠在1.8V~ 3.6V的電壓下工作;具有工

作模式(AM)和5種低功耗模式(LPM)。在低功耗模式下,CPU可以被中斷喚醒,響應(yīng)時間小于6ps。

 

  · 較強(qiáng)的運算能力:16位的RISC結(jié)構(gòu),豐富的尋址方式;具有16個中斷源,可以任意嵌套;在8MHz時鐘驅(qū)動下指令周期可達(dá)125ns; 內(nèi)部包含硬件乘法器和大量寄存器,以及多達(dá)64KB的Flash程序空間和2KB的RAM,為存儲數(shù)據(jù)和運算提供了保證。

  · 豐富的片上外設(shè):包括看門狗定時器,基本定時器,比較器,16位定時器(TA、TB),串口0、1,液晶顯示驅(qū)動器,6個8位的I/O端口,12位ADC (最高采樣率200kHz)等。豐富的片上外設(shè)可以很方便地構(gòu)建一個較為完整的系統(tǒng)。另外,充分利用計數(shù)器的多路任意波形產(chǎn)生功能和中斷控制功能,保證了一些復(fù)雜的時序控制任務(wù)的完成。

  ·方便高效的開發(fā)環(huán)境:MSP430F449是Flash型器件,片內(nèi)有調(diào)試接口和電可擦寫的Flash存儲器,可以先下載程序到Flash內(nèi),再在器件內(nèi)通過軟件控制程序的運行,由JTAG接口讀取片內(nèi)信息供設(shè)計師調(diào)試。這種方式不需要仿真器和編程器,調(diào)試十分方便。

  前置分頻器SAB6456A

  SAB6456A是專為UHF/VHF設(shè)計的前置分頻器。內(nèi)部的MCpin為分頻控制端,可對頻率范圍為70MHz-1GHz的信號進(jìn)行64/256分頻,當(dāng)MC pin開路時為64分頻;當(dāng)MC pin接地時為256分頻。有較高的靈敏度和較強(qiáng)的諧波抑制能力。

              單片機(jī)外圍電路
                                  圖2 單片機(jī)外圍電路


  工作原理

  該設(shè)計主要分兩部分:分頻和計數(shù)。首先,輸入信號限幅后經(jīng)SAB6456A分頻,256分頻后的信號再經(jīng)兩片74HC390高速分頻器進(jìn)行1000分頻,此時模擬信號變?yōu)榈皖l數(shù)字信號,頻率在10kHz以下;其次,分頻后的信號直接接入MSP430F449單片機(jī),利用內(nèi)部的16位定時器A來定時和計數(shù)。該定時器可分為幾個部分:計數(shù)器部分,捕獲/比較寄存器及輸出單元。其中,計數(shù)器有4種工作模式,3個捕獲/比較寄存器。利用計數(shù)器的連續(xù)計數(shù)模式和上升沿捕獲模式,在定時器中斷中計數(shù)N個脈沖信號時間,再除N得到頻率。

  硬件設(shè)計

  圖1為信號的前端處理及分頻設(shè)計。輸出后的信號再經(jīng)兩片SN74HC390分頻,SN74HC390是高速分頻器件,最高分頻頻率為50MHz。每片SN74HC390可實現(xiàn)100分頻,采用兩片串聯(lián),可實現(xiàn)對信號的1000分頻,經(jīng)分頻后的數(shù)字信號頻率較低,約4kHz以下,可由單片機(jī)直接計數(shù)。

  圖2為單片機(jī)外圍電路,包括復(fù)位電路,電源電路和單片機(jī)工作必須的晶振。晶振有8MHz和32.768kHz兩種,8MHz 作為定時器A的計數(shù)器輸入時鐘源;32.768kHz 作為數(shù)碼管的顯示頻率。74LS373為D型鎖存器,5V單電源供電,因輸出電流足夠大,也可以直接驅(qū)動共陰極LG3631AH型數(shù)碼管。

  軟件設(shè)計

  將分頻的輸出端OUT接至單片機(jī)的頻率輸入端,程序開始先延時一段時間,待信號穩(wěn)定。開捕獲中斷和定時器A,在定時器A 中斷中計數(shù)N個脈沖,測量結(jié)束后得到N個脈沖的時間,然后除N得到脈沖的頻率,乘以分頻系數(shù)得到實際頻率并顯示,經(jīng)過短暫延時后重新測量,如此循環(huán)測量并顯示。  

  在測量頻率時,為保證精度要關(guān)掉LED顯示,所以,對于頻率較低的信號會發(fā)生LED閃爍的情況,解決辦法是測量較少個脈沖以減少平均測量時間或減少延時。

  采用動態(tài)掃描顯示,動態(tài)掃描顯示的原理是:由P4向各個位輪流輸出掃描信號,使每一位瞬間只有一個數(shù)碼管被選通,然后由P3向該位輸入顯示的字型碼,驅(qū)動該位字形段顯示字形。這樣,在P3送出的碼段和P4送出的位段的配合下,使各個數(shù)碼管輪流顯示各自的字形,每位的顯示時間要超過1ms,這樣人眼就感覺不到閃爍了。

  測量主程序如下:
void frequency_measure(void)
{float tmp,tmp1;
key_flag=0;//按鍵標(biāo)志清0
P1OUT|=BIT0;
Delay(1000); //延時一段時間等待信號穩(wěn)定
while(1)
{ IE2&=~0X80; //關(guān)BT,關(guān)LE

D
firstflag=1;//開始測量第一個脈沖
TACTL|=TAIE; //開捕獲
CCTL1|=CCIE;//開timer a
while (f_ok_flag==0);//等待測量結(jié)束
f_ok_flag=0;
if (aa1>aa2)
overflow=overflow-1;
tmp=aa2-aa1;
tmp1=40.0/(overflow*0.008191875+(tmp/8000000.0));
result=tmp1*0.256;
IE2|=0X80;//開BT,開LED
yanshi(2,2);//可以修改這里的參數(shù),越大表示延時越長,太小的話LED就會變暗
CCTL1&=~CCIE;//關(guān)捕獲
TACTL&=~TAIE;//關(guān)timer a
return;
}
}

 

流程圖如圖3所示。

                                            主程序流程

                                          圖3 主程序流程

  結(jié)語

  本文給出的硬件和軟件均經(jīng)過實踐檢驗,使用該測量儀器所測結(jié)果精度較高。該測量儀器價格較低,結(jié)構(gòu)簡單,是一種經(jīng)濟(jì)型的頻率測試儀。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。