版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
畢業(yè)設(shè)計(jì)說明書2023屆基于STM32的FM收發(fā)器的設(shè)計(jì)學(xué)生姓名xxxxxx學(xué)號(hào)xxxxxx院系數(shù)理信息學(xué)院專業(yè)電子信息工程指導(dǎo)教師xxxxxx完成日期201基于STM32的FM收發(fā)器的設(shè)計(jì)摘要現(xiàn)今多媒體技術(shù)和通信技術(shù)高速開展,無線收發(fā)技術(shù)在現(xiàn)代的通信技術(shù)占據(jù)了越來越重要的位置,而無線通信技術(shù)依賴的是有效可靠的調(diào)制解調(diào)方式和穩(wěn)定的收發(fā)系統(tǒng)。FM調(diào)制方式本錢不高,技術(shù)成熟,可靠性強(qiáng),因此FM收發(fā)器在通訊技術(shù)中得到了廣泛的使用。本文提出了一種基于STM32微控制器的FM收發(fā)系統(tǒng),其中包括STM32F103C8T6單片機(jī)控制、NOKIA5110液晶顯示、4*4矩陣鍵盤、FM收發(fā)模塊、音頻輸入模塊、音頻濾波器、音頻功率放大器。本文對(duì)設(shè)計(jì)開發(fā)全數(shù)字式控制的FM收發(fā)器的各個(gè)模塊作了詳細(xì)的硬件原理分析,軟件控制以及調(diào)試分析,實(shí)現(xiàn)了全數(shù)字式控制FM接收和發(fā)射的頻道選擇、音量控制、信號(hào)強(qiáng)度檢測(cè)的功能。本文實(shí)現(xiàn)的基于STM32的FM收發(fā)器為簡(jiǎn)易的音頻收發(fā)器,可實(shí)現(xiàn)收音機(jī)、小功率電臺(tái)以及半雙工對(duì)講機(jī)的功能。本系統(tǒng)實(shí)現(xiàn)的硬件功耗小,體積小,攜帶方便,穩(wěn)定性強(qiáng),操作方便,是一個(gè)實(shí)用的多功能FM收發(fā)器。關(guān)鍵詞通信技術(shù);FM收發(fā)器;STM32微控制器;音頻THEDESIGNOFFMTRANSCEIVERBASEDONSTM32ABSTRACTWiththerapidgrowthofmodernmultimediaandcommunicationtechnology,wirelesstransceivertechnologyplaysarisingsignificantroleinthemoderncommunicationtechnology,wirelesscommunicationstransceiversystemisdependentonamodulation,demodulationmeasureefficacious,credibleandstable.FMmodulationtechnologyismature,withlowcostandstrongreliability,thustheFMtransceiverhasbeenproverbiallyappliedinradiocommunicationtechnology.ThispaperpresentsaFMtransceiversystembasedonSTM32MCU,includingSTM32F103C8T6MCUcontrolmodule,NOKIA5110LCD,4*4matrixkeyboard,FMtransceivermodule,audioinputmodule,audiofilterandpoweramplifier.Inthispaper,designanddevelopmentofeachmoduleofthedigitalcontrolFMtransceiverisanalyzedwiththeprincipleofhardware,programdominationanddebug,actualizesthechannelselection,volumecontrolandsignalstrengthdetectionfunctionofdigitalcontrolFMreceivingandtransmitting.TheimplementationofFMtransceiverbasedonSTM32isasimpleaudiotransceiver,whichcanrealizeradiogram,smallpowerradiosetandhalfduplexintercomfunction.Thehardwareimplementationofthesystemisoflowpowerconsumption,tinybulk,handy,highsteadinessandeasymanipulation,whichKEYWORDSCommunicationTechnology;FMTransceiver;STM32MCU;Audio目錄TOC\t"摘要,1,一級(jí)標(biāo)題,1,二級(jí)標(biāo)題,2,三級(jí)標(biāo)題,3,參考文獻(xiàn),1,ABSTRACT,1,目錄,1,引言,1,結(jié)論,1,附錄,1,致謝,1"摘要IABSTRACT II目錄III引言11.基于STM32的FM收發(fā)器系統(tǒng)總體設(shè)計(jì)方案及論證21.1FM收發(fā)器的工作原理21.2基于STM32的FM收發(fā)器的總體結(jié)構(gòu)圖21.2.1基于STM32的FM收發(fā)器硬件模塊劃分22.基于STM32的FM收發(fā)器硬件電路設(shè)計(jì)22.1電源模塊42.2STM32F103C8T6單片機(jī)控制模塊42.3液晶顯示模塊52.4矩陣鍵盤模塊62.5音頻輸入模塊72.6音頻功放、輸出模塊72.7FM收發(fā)模塊82.8音頻濾波模塊93.基于STM32的FM收發(fā)器軟件設(shè)計(jì)113.1LCD液晶顯示屏的軟件開發(fā)113.1.1FM接收模式下LCD的顯示模式113.1.2FM發(fā)射模式下LCD的顯示模式113.2矩陣薄膜鍵盤的軟件開發(fā)113.3FM收發(fā)模塊的軟件開發(fā)133.3.1I2C總線控制133.3.2RDA5820收發(fā)芯片的驅(qū)動(dòng)143.4信號(hào)指示燈的軟件開發(fā)154.基于STM32的FM收發(fā)器系統(tǒng)調(diào)試及結(jié)果分析164.1FM收發(fā)器的接收模式調(diào)試及結(jié)果分析164.2FM收發(fā)器的發(fā)射模式調(diào)試及結(jié)果分析16結(jié)論17參考文獻(xiàn)18附錄1實(shí)物圖19附錄2系統(tǒng)原理圖20附錄3各模塊程序21致謝31引言隨著電子技術(shù)和通信技術(shù)的高速開展,無線電技術(shù)在如今的社會(huì)和工作中處于不可或缺的地位。FM調(diào)頻技術(shù)具有其他調(diào)幅播送所不能及的優(yōu)點(diǎn):調(diào)頻播送方式的頻帶較寬,可做高保真播送,且抗干擾能力較強(qiáng),系統(tǒng)的信噪比擬高[1]。調(diào)頻技術(shù)的投資和運(yùn)行維護(hù)的本錢較低且容易實(shí)現(xiàn)立體聲的調(diào)頻播送,因此很多興旺國(guó)家很早就開始了調(diào)頻播送的效勞。目前調(diào)頻播送技術(shù)已開展到調(diào)頻多工播送,即除了傳輸立體聲節(jié)目外,還傳輸?shù)缆方煌ㄐ畔?、氣象信息、新聞等。FM播送技術(shù)為生活信息的傳輸和交換提供了極大便利。FM收發(fā)一體機(jī)縮小了FM系統(tǒng)的體積,提高了FM系統(tǒng)的便攜性,降低了FM系統(tǒng)的維護(hù)本錢,故需要利用電子技術(shù)設(shè)計(jì)一套功耗較低、穩(wěn)定性較強(qiáng)、功能較為完善的FM收發(fā)器系統(tǒng)。我國(guó)的FM播送起步于五十年代,當(dāng)時(shí)調(diào)頻播送只作為節(jié)目傳輸手段使用。八十年代中期,播送電影電視部根據(jù)我國(guó)四化建設(shè)的需要,確定將調(diào)頻播送作為播送高質(zhì)量節(jié)目的主要方式。這一決定立即有力推動(dòng)了我國(guó)調(diào)頻技術(shù)的飛速進(jìn)展。到1985年底許多廠家從國(guó)外引進(jìn)了高端調(diào)頻技術(shù)和高效率生產(chǎn)線。這些發(fā)射機(jī)采用直接調(diào)頻數(shù)字頻率合成調(diào)制、動(dòng)態(tài)瞬時(shí)響應(yīng)濾波、自動(dòng)導(dǎo)頻相位控制技術(shù)和頻率合成技術(shù)等。除了引進(jìn)技術(shù)和生產(chǎn)線進(jìn)行調(diào)頻播送發(fā)射機(jī)的研制生產(chǎn)外,國(guó)內(nèi)還有些廠家采用大量國(guó)產(chǎn)化元器件,生產(chǎn)出具有國(guó)際水平的立體聲調(diào)頻技術(shù)產(chǎn)品。現(xiàn)今國(guó)內(nèi)外FM調(diào)頻技術(shù)已經(jīng)非常成熟穩(wěn)定[2]。本系統(tǒng)就是圍繞穩(wěn)定可靠的FM收發(fā)系統(tǒng)進(jìn)行研究的,通過將音頻處理技術(shù)和FM收發(fā)技術(shù)結(jié)合,開發(fā)出一套低功耗、穩(wěn)定性強(qiáng)、人機(jī)接口友好的FM收發(fā)器系統(tǒng)。該FM收發(fā)器通過人機(jī)接口控制FM收發(fā)功能,完成對(duì)FM收發(fā)頻道、音量等的控制以及信號(hào)強(qiáng)度的檢測(cè)。FM音頻信號(hào)的發(fā)射通過麥克風(fēng)輸入語音信號(hào)或通過3.5mm耳機(jī)接口輸入音頻信號(hào),然后由帶通濾波器濾去多余頻段的信號(hào),最后經(jīng)FM調(diào)制芯片調(diào)制,由天線將調(diào)制完成的信號(hào)發(fā)射。由天線接收到的FM音頻信號(hào)同樣通過帶通濾波器濾去雜波,由音頻功率放大器放大音頻信號(hào)的功率,通過喇叭播放音頻信號(hào)。本設(shè)計(jì)最終實(shí)現(xiàn)了FM信號(hào)的接收,即收音機(jī)和FM信號(hào)的發(fā)射功能,假設(shè)利用未被占用的頻道那么可實(shí)現(xiàn)半雙工對(duì)講機(jī)的功能。本系統(tǒng)功耗低、實(shí)時(shí)性強(qiáng),對(duì)于FM收發(fā)系統(tǒng)設(shè)計(jì)的多樣化和數(shù)字化具有重要意義。1.基于STM32的FM收發(fā)器系統(tǒng)總體設(shè)計(jì)方案及論證1.1FM收發(fā)器的工作原理FM收發(fā)器完成對(duì)輸入信號(hào)的發(fā)射和對(duì)接收到的FM信號(hào)的輸出功能。通過音頻輸入引腳輸入立體聲,通過帶通濾波器濾去多余頻帶的干擾,經(jīng)過可調(diào)增益放大器放大,由AD轉(zhuǎn)換器將音頻模擬量轉(zhuǎn)換成數(shù)字量,F(xiàn)M合成器將AD轉(zhuǎn)換器輸出的數(shù)字量加到壓控振蕩器產(chǎn)生的載波上,完成對(duì)音頻信號(hào)的數(shù)字調(diào)制,最后經(jīng)過可編程音頻功放放大功率,經(jīng)由天線發(fā)射,完成對(duì)FM音頻信號(hào)的發(fā)射功能。從天線接收的FM信號(hào),經(jīng)LNA將其線性放大,正交混頻器將不同頻率下的高頻FM信號(hào)下變頻到固定頻率的低中頻FM信號(hào),AD轉(zhuǎn)換器將可調(diào)增益放大器放大的信號(hào)轉(zhuǎn)換為數(shù)字量,然后DSP處理器將得到的數(shù)字量解調(diào),最后經(jīng)過DA轉(zhuǎn)換器將其轉(zhuǎn)換為可用的音頻模擬信號(hào),完成了FM音頻信號(hào)的接收并輸出的功能。STM32單片機(jī)通過I2C總線讀寫FM收發(fā)芯片的存放器,可修改音頻輸出的音量大小、FM收發(fā)的頻道,讀取信號(hào)接收的信號(hào)1.2基于STM32的FM收發(fā)器的總體結(jié)構(gòu)圖基于STM32的FM收發(fā)器硬件模塊劃分FM收發(fā)器的硬件局部分為假設(shè)干個(gè)模塊,主要包括電源模塊、LCD顯示模塊、矩陣鍵盤模塊、單片機(jī)控制模塊、音頻輸入模塊、音頻輸出模塊、音頻濾波模塊、FM收發(fā)模塊、音頻功放模塊。圖1-1是FM收發(fā)器的硬件系統(tǒng)總體框圖。圖1-1FM收發(fā)器的硬件總體框圖2.基于STM32的FM收發(fā)器硬件電路設(shè)計(jì)FM收發(fā)器的總原理圖如圖2-1所示。FM收發(fā)器的硬件電路主要包括:LCD顯示模塊、矩陣鍵盤模塊、STM32主控模塊、音頻輸入輸出模塊、音頻濾波模塊、FM收發(fā)模塊等。圖2-1FM收發(fā)器的總電路原理圖2.1電源模塊電源模塊原理圖如圖2-2所示。電源模塊可以以220V市電作為輸入,經(jīng)過220V-9V/50Hz變壓器、全波整流橋、濾波電容、7805穩(wěn)壓片、LM1117穩(wěn)壓片得到+5V、+3.3V供電電源。+5V電源也可以通過USB接口輸入或者3節(jié)干電池得到+4.5V,然后經(jīng)過LM1117穩(wěn)壓芯片得到+3.3V。圖2-2電源模塊原理圖其中+5V作為L(zhǎng)CD液晶顯示屏、麥克風(fēng)、FM收發(fā)芯片、運(yùn)算放大器、音頻功率放大器的供電電源,+3.3V作為主控芯片STM32的供電電源。7805是一種三端穩(wěn)壓集成電路,78/79系列的三端穩(wěn)壓IC所需的外圍元件極少,使用方便可靠,本錢較低,電子制作中經(jīng)常采用。其電路內(nèi)部具有過流、過熱的保護(hù)電路,可以輸出1.5A的電流,驅(qū)動(dòng)能力較強(qiáng)。LM1117是一種低壓差電壓調(diào)節(jié)器,可以輸出800mA的負(fù)載電流,且有不同可調(diào)電壓的版本。LM1117內(nèi)置過流和過熱限制功能,芯片內(nèi)置由齊納二極管穩(wěn)定的基準(zhǔn)源使得輸出電壓誤差在±1%以內(nèi)。STM32為低功耗單片機(jī),800mA的輸出電流足以驅(qū)動(dòng)多片STM32。2.2STM32F103C8T6單片機(jī)控制模塊STM32F103C8T6微控制器及其所需的外圍元件如圖2-3所示。STM32F103C8T6是一款性價(jià)比擬高的ARM系列低功耗單片機(jī),內(nèi)含F(xiàn)LASH、USB接口、定時(shí)器、ADC等外設(shè)。STM32F103C圖2-3STM32主控模塊原理圖單片機(jī)控制模塊的功能是驅(qū)動(dòng)各局部硬件能夠穩(wěn)定運(yùn)行。STM32F103C8T6單片機(jī)需要驅(qū)動(dòng)液晶顯示屏顯示FM收發(fā)模塊的收發(fā)狀態(tài)、所在的工作頻道、音量大小、檢測(cè)到的信號(hào)強(qiáng)度等信息,同時(shí)對(duì)4*4矩陣鍵盤模塊進(jìn)行掃描,檢測(cè)用戶的按鍵鍵入,完成人機(jī)接口的驅(qū)動(dòng)。其核心工作為通過I2C總線驅(qū)動(dòng)FM收發(fā)模塊RDA5820,完成FM音頻信號(hào)的接收功能和發(fā)射功能。對(duì)于FM收發(fā)芯片的工作頻道,STM32F103C8T6利用FLASH外設(shè)將頻道數(shù)值保存,使本系統(tǒng)再次2.3液晶顯示模塊液晶顯示模塊原理圖如圖2-4所示。本系統(tǒng)采用NOKIA5110作為液晶顯示模塊。NOKIA5110液晶顯示模塊的主要功能是為STM32F103C8T6的GPIO口所驅(qū)動(dòng)并作為人機(jī)接口顯示FM收發(fā)器的相關(guān)信息:FM收發(fā)器所在的工作頻道、音量大小、信號(hào)強(qiáng)度和圖2-4液晶顯示模塊原理圖NOKIA5110液晶顯示模塊使用了串行方式與MCU通信,因此所需的信號(hào)線較少,且支持多種串行方式通信協(xié)議〔例如SPI總線〕,數(shù)據(jù)傳送速度到達(dá)了4Mb/s,微控制器可無需等待時(shí)間寫入數(shù)據(jù)。其驅(qū)動(dòng)芯片已與LCD晶片綁定,具有體積小的特點(diǎn)。NOKIA5110供電電壓較低,一般工作電流小于200uA,且分辨率較高,顯示清晰,驅(qū)動(dòng)簡(jiǎn)單。這些優(yōu)點(diǎn)使其適合于小型、功耗較低的便攜式測(cè)試設(shè)備和通信設(shè)備中[4]。2.4矩陣鍵盤模塊矩陣鍵盤模塊原理圖如圖2-5所示。矩陣鍵盤模塊使用4*4薄膜矩陣鍵盤,主要作為人機(jī)接口供用戶鍵入相關(guān)控制信息,例如調(diào)整音量大小、設(shè)置FM收發(fā)器工作頻道、設(shè)置接收或發(fā)射模式等。4*4薄膜矩陣鍵盤集成度高、重量輕,其上清晰標(biāo)注“0~9〞數(shù)字鍵以及“A~D〞字母鍵,界面美觀清晰,使用方便,其接口為8引腳驅(qū)動(dòng)模式,利用單片機(jī)GPIO口驅(qū)動(dòng)方便。圖2-5矩陣鍵盤模塊原理圖矩陣鍵盤的驅(qū)動(dòng)方式比獨(dú)立按鍵的驅(qū)動(dòng)方式稍為復(fù)雜。矩陣鍵盤的驅(qū)動(dòng)方式:首先將四根行線全部置低,此時(shí)假設(shè)有按鍵鍵入,那么四根列線其中一根會(huì)出現(xiàn)低電平,根據(jù)低電平出現(xiàn)的列數(shù)可確定鍵入按鍵的列數(shù)。同理,在按鍵鍵入的時(shí)間段內(nèi)再將四根列線全部置低,此時(shí)假設(shè)有按鍵鍵入,那么四根行線的其中一根會(huì)出現(xiàn)低電平,然后根據(jù)低電平出現(xiàn)時(shí)的行數(shù)可以確定鍵入按鍵的行數(shù)。做一定軟件去抖工作之后,根據(jù)掃描程序得到的行數(shù)和列數(shù)即可完全確定被按下的按鍵。STM32時(shí)鐘頻率較高,因此做矩陣鍵盤掃描不會(huì)占用過多資源。2.5音頻輸入模塊音頻輸入模塊原理圖如圖2-6所示。音頻信號(hào)由兩個(gè)通道輸入:通過麥克風(fēng)輸入語音或3.5mm耳機(jī)接口輸入立體聲。當(dāng)由麥克風(fēng)輸入語音信號(hào)時(shí),麥克風(fēng)通過一個(gè)上拉電阻產(chǎn)生波形,波形同時(shí)輸入左聲道和右聲道。當(dāng)由3.5mm耳機(jī)接口輸入立體聲信號(hào)時(shí),左聲道波形和右聲道波形分別輸入。其中麥克風(fēng)使用的是結(jié)構(gòu)簡(jiǎn)單、電聲性能好的9*7mm電容式駐極體式麥克風(fēng),靈敏度高達(dá)52dB。圖2-6音頻輸入模塊原理圖2.6音頻功放、輸出模塊音頻功放、輸出模塊如圖2-7所示。FM收發(fā)模塊將接收到的FM信號(hào)解調(diào)后輸出,但其輸出功率無法驅(qū)動(dòng)一個(gè)25W/8Ω的喇叭,因此使用該專用音頻功放對(duì)音頻信號(hào)進(jìn)行一定放大使其能夠驅(qū)動(dòng)喇叭播放聲音。圖2-7音頻功率放大器原理圖LM386是一款音頻專用功放,具有功率消耗較低、供電電壓范圍較寬、可調(diào)內(nèi)鏈增益、諧波失真小、本錢較低和所需外圍器件較少等諸多優(yōu)點(diǎn),較多使用于例如MP3、收音機(jī)等播放設(shè)備之中[5]。如圖2-7為L(zhǎng)M386芯片的典型驅(qū)動(dòng)電路之一,其預(yù)設(shè)內(nèi)置功放增益為20??紤]到系統(tǒng)的功耗問題和噪音問題,此處增益選擇為20即可。喇叭選擇25W/8Ω擴(kuò)音器。同時(shí)功率放大器的輸入端將音頻信號(hào)通過一個(gè)可調(diào)電阻器接入,可通過調(diào)節(jié)電位器改變音量大小,增加音量的可控性。2.7FM收發(fā)模塊FM收發(fā)模塊原理圖如圖2-8所示。STM32單片機(jī)使用I2C總線串行方式寫入并修改RDA5820內(nèi)部存放器值,從而修改FM收發(fā)器所在的工作頻道、播放音量大小圖2-8FM收發(fā)模塊原理圖FM收發(fā)系統(tǒng)的核心電路為RDA5820調(diào)頻收發(fā)集成電路。RDA5820收發(fā)芯片是一款所需外接器件少、信噪比極小的FM收發(fā)芯片。該集成電路具有體積小、低功耗、低本錢、應(yīng)用簡(jiǎn)單、使用范圍廣的優(yōu)點(diǎn),是一款使用簡(jiǎn)單且具有較高性價(jià)比的單片音頻收發(fā)集成電路。其應(yīng)用范圍主要有:便攜式MP4、MP3等無線調(diào)頻接收器,校園、企業(yè)等公共場(chǎng)所立體聲調(diào)頻播送系統(tǒng),高檔游戲機(jī)及無線音頻電子玩具等[6]。FM收發(fā)集成電路RDA5820的電路模塊劃分如圖2-9。其中主要包括低噪聲放大器、正交混頻器、可編程增益放大器、AD轉(zhuǎn)換器、DSP內(nèi)核、DA轉(zhuǎn)換器、壓控振蕩器、功率放大器等模塊。圖2-9RDA5820內(nèi)部結(jié)構(gòu)圖FM音頻信號(hào)的發(fā)射過程如下:語音信號(hào)或立體聲信號(hào)從LIN、RIN引腳輸入,經(jīng)過可編程增益放大器放大〔通過寫入相關(guān)存放器控制增益值〕,AD轉(zhuǎn)換器將音頻信號(hào)數(shù)字化,然后合成器將音頻數(shù)字信號(hào)加載到壓控振蕩器產(chǎn)生的高頻載波上〔通過寫入相關(guān)存放器控制高頻載波的頻率〕,完成了音頻信號(hào)的FM調(diào)制,最后經(jīng)過功率放大器將信號(hào)功率放大〔通過寫入相關(guān)存放器控制功率放大倍數(shù)〕,由天線發(fā)射出去,在一定距離范圍內(nèi)的收音機(jī)便可以接收到該FM信號(hào)并播放。FM音頻的發(fā)送功能分為以下幾個(gè)步驟,其過程劃分如圖2-10所示。圖2-10FM音頻信號(hào)的發(fā)射過程示意圖FM信號(hào)的接收過程如下所述:通過天線接收FM信號(hào),經(jīng)過低噪聲放大器放大,正交混頻器將多種頻率的高頻FM信號(hào)變頻到一定頻率的低中頻,降低了對(duì)ADC的信號(hào)帶寬的要求。然后經(jīng)可編程增益放大器放大,AD模數(shù)轉(zhuǎn)換器將該信號(hào)數(shù)字化,DSP核心將該數(shù)字量解調(diào),然后經(jīng)過DA數(shù)模轉(zhuǎn)換器將其轉(zhuǎn)換為可用的立體聲信號(hào),最后功率放大器將信號(hào)放大并輸出。FM音頻信號(hào)的接收過程如圖2-11所示。圖2-11FM信號(hào)的接收過程示意圖2.8音頻濾波模塊音頻濾波模塊原理圖如圖2-12所示。音頻信號(hào)的頻帶一般為50Hz~10kHz,本設(shè)計(jì)根據(jù)此原那么設(shè)計(jì)帶通濾波器。由于本系統(tǒng)無負(fù)電源供電,音頻信號(hào)中的負(fù)值信號(hào)無法通過運(yùn)放,因此先利用一個(gè)同相加法器將音頻信號(hào)和+2.5V的基準(zhǔn)源信號(hào)相加,由此得到含有+2.5V直流分量的音頻信號(hào),可通過由正電源供電的濾波器。低通濾波器和高通濾波器以+2.5V基準(zhǔn)源作為“虛地〞,以通過以+2.5V基準(zhǔn)源作為直流分量的音頻信號(hào)。經(jīng)過帶通濾波器濾除多余頻帶的信號(hào)之后,經(jīng)過一個(gè)RC高通濾波網(wǎng)絡(luò)濾除直流分量,得到音頻信號(hào)的交流分量。圖2-12音頻濾波模塊原理圖本設(shè)計(jì)的帶通濾波電路使用MCP6002型號(hào)作為運(yùn)放。MCP6002是一種低功耗、高帶寬、穩(wěn)定性高、本錢較低的通用運(yùn)放,它的供電電壓范圍是1.8V~5.5V,對(duì)電源的要求比擬低。MCP6002的低功耗、高帶寬等優(yōu)點(diǎn)使其非常適合于FM收發(fā)器系統(tǒng)的設(shè)計(jì)。如圖2-13所示為典型的二階有源低通濾波電路[7]。圖2-13二階有源低通濾波電路考慮到集成運(yùn)放的同相端輸入電壓為(2-1)而與的關(guān)系為(2-2)對(duì)于節(jié)點(diǎn)a,應(yīng)用KCL方程可得(2-3)假設(shè)將公式(2-1)~公式(2-3)聯(lián)立,可以較容易得到該運(yùn)放網(wǎng)絡(luò)的傳遞函數(shù)是(2-4)令(2-5)(2-6)那么有(2-7)式(2-7)為二階有源低通濾波器傳遞函數(shù)的典型表達(dá)式。其中(2-8)為該低通濾波器的特征頻率,即Q為0.707時(shí)的3dB截止頻率。根據(jù)以上結(jié)果同理推導(dǎo)可以得到二階有源高通濾波器的截止頻率為。根據(jù)式(2-8)可得本系統(tǒng)設(shè)計(jì)的二階有源帶通濾波器的截止頻率分別為30Hz和16kHz,該通頻段可有效地保存音頻信號(hào)并濾除其他頻段的雜波。3.基于STM32的FM收發(fā)器軟件設(shè)計(jì)本設(shè)計(jì)的軟件環(huán)境為RealviewMDK。MDK-ARM是一款為Cortex-M、ARM7、ARM9等CPU提供的一個(gè)功能強(qiáng)大的開發(fā)環(huán)境,是一款微控制器使用的開發(fā)環(huán)境,可以滿足大多數(shù)嵌入式應(yīng)用的根本需要?;赟TM32的FM收發(fā)器的軟件局部大致有矩陣鍵盤、LCD、FM收發(fā)器的驅(qū)動(dòng)和信號(hào)指示燈的控制。3.1LCD液晶顯示屏的軟件開發(fā)本設(shè)計(jì)使用的LCD液晶型號(hào)為NOKIA5110。單片機(jī)與NOKIA5110使用串行方式進(jìn)行通信,只需占用5個(gè)GPIO口即可完成驅(qū)動(dòng)。NOKIA5110的分辨率為84*48,可完成4行字符串的顯示。本設(shè)計(jì)使用STM32F103CFM接收模式下LCD的顯示模式當(dāng)FM收發(fā)器在接收狀態(tài),LCD的顯示內(nèi)容為:第1行:顯示“Receiver〞模式。第2行:顯示FM接收器正在接收的頻道,例如“94.1MHz〞。第3行:顯示FM接收模式播放的音量。第4行:顯示所在FM頻道的信號(hào)強(qiáng)度。FM發(fā)射模式下LCD的顯示模式在FM收發(fā)器在發(fā)射狀態(tài),LCD的顯示內(nèi)容為:第1行:顯示“Sender〞模式。第2行:顯示FM發(fā)射器所在的頻道。3.2矩陣薄膜鍵盤的軟件開發(fā)矩陣鍵盤的驅(qū)動(dòng)方式:首先將四根行線全部置低,此時(shí)假設(shè)有按鍵鍵入,那么四根列線其中一根會(huì)出現(xiàn)低電平,根據(jù)低電平出現(xiàn)的列數(shù)可確定鍵入按鍵的列數(shù)。同理,在按鍵鍵入的時(shí)間段內(nèi)再將四根列線全部置低,此時(shí)假設(shè)有按鍵鍵入,那么四根行線的其中一根會(huì)出現(xiàn)低電平,然后根據(jù)低電平出現(xiàn)時(shí)的行數(shù)可以確定鍵入按鍵的行數(shù)。由于矩陣薄膜鍵盤沒有硬件去抖電路,因此采用軟件去抖方式,最后根據(jù)掃描程序得到的行數(shù)和列數(shù)即可確定按鍵的位置[8]。矩陣鍵盤的掃描流程圖如圖3-1所示。圖3-1矩陣鍵盤掃描軟件流程圖根據(jù)按鍵位置-功能映射表可確定按鍵鍵入且矩陣鍵盤掃描完成后需要執(zhí)行的具體功能。按鍵位置-功能映射表如表3-1所示。表3-1鍵盤按鍵位置-功能映射表按鍵位置按鍵功能1數(shù)字“1〞2數(shù)字“2〞3數(shù)字“3〞4字母“A〞5數(shù)字“4〞6數(shù)字“5〞7數(shù)字“6〞8字母“B〞9數(shù)字“7〞10數(shù)字“8〞11數(shù)字“9〞12字母“C〞13“-〞鍵14數(shù)字“0〞15“+〞鍵16模式切換鍵3.3FM收發(fā)模塊的軟件開發(fā)FM收發(fā)模塊采用了功能豐富且驅(qū)動(dòng)方式簡(jiǎn)單的RDA5820集成電路,單片機(jī)與其交換數(shù)據(jù)使用串行方式且采用了I2C總線。由于STM32F103C8T6沒有硬件I2C總線,且I2C總線的時(shí)序控制較為嚴(yán)格,因此采用GPIO口驅(qū)動(dòng)I2I2C總線控制I2C總線的協(xié)議格式如圖3-2所示。I2C是PHILIPS公司設(shè)計(jì)的雙線式串行總線,具有引腳少、元件封裝方式較小、協(xié)議簡(jiǎn)單和數(shù)據(jù)傳送速度快等特點(diǎn)。I2C總線下的每個(gè)器件都有唯一的識(shí)別地址。當(dāng)I2C總線處于閑置狀態(tài)時(shí),SDA和SCL都為高電平。因?yàn)槁?lián)接到I2C接口上的器件接口必須是開漏或者開集,因此任一器件接口電平假設(shè)置低,都會(huì)拉低引腳,也就是總線上各個(gè)設(shè)備的引腳之間都是“與〞的邏輯。因?yàn)楦鱾€(gè)器件的輸出均為OC門或OD門,所以各個(gè)引腳必須上拉,從而使SDA和SCL在該總線閑置時(shí)被置為高電平狀態(tài)。該總線的開始、停止和數(shù)據(jù)傳遞圖3-2I2C(1)起始信號(hào)。SCL保持高電平,假設(shè)SDA線產(chǎn)生一個(gè)由高到低的電平變化,那么代表起始信號(hào)。其它I2C指令在起始信號(hào)發(fā)生之后且能有效地運(yùn)行(2)終止信號(hào)。SCL保持高電平,假設(shè)SDA線產(chǎn)生一個(gè)由低到高的電平變化,那么代表終止信號(hào)。終止信號(hào)出現(xiàn)后,所有其它指令操作都無效。(3)數(shù)據(jù)傳送。利用I2C總線傳輸數(shù)據(jù)的數(shù)據(jù)量沒有限制,并且必須以8位作為每個(gè)字節(jié)的長(zhǎng)度。數(shù)據(jù)傳遞時(shí),從MSB位開始發(fā),并且需要有一位應(yīng)答位跟隨在每個(gè)字節(jié)后面??偩€的應(yīng)答在SCL的第九個(gè)時(shí)鐘上產(chǎn)生,且該時(shí)鐘是由總線的主機(jī)方來控制。此時(shí)發(fā)送方必須將SDA置高,使接收方可以產(chǎn)生應(yīng)答信號(hào)[9]RDA5820收發(fā)芯片的驅(qū)動(dòng)(1)接收模式??刂芌DA5820的工作方式為FM接收模式,可以通過寫入40H內(nèi)部存放器的CHIP_FUNC[3:0]=0。設(shè)置FM接收器所在的工作頻道那么可以通過改變地址為03H的內(nèi)部存放器的值。通過修改SPACE存放器來設(shè)置自動(dòng)搜臺(tái)的步進(jìn)值(50kHz,100kHz,200kHz),頻道由存放器CHAN[9:0]來選擇,頻率范圍(87MHz~108MHz,76MHz~108MHz,76MHz~91MHz)通過存放器BAND[1:0]設(shè)置。當(dāng)用戶修改03H的調(diào)諧位1時(shí),RDA5820會(huì)啟動(dòng)調(diào)諧。在調(diào)諧完成時(shí),STC位會(huì)自動(dòng)置為1,用戶可以讀取存放器0AH和存放器0BH來獲取該頻道的狀態(tài)值(FM_READY,RSSI等)。設(shè)置為接收模式時(shí)調(diào)諧過程要持續(xù)10ms。(2)發(fā)射模式。控制RDA5820的工作方式為FM發(fā)射模式,可以通過寫入40H內(nèi)部存放器的CHIP_FUNC[3:0]=1。設(shè)置FM發(fā)射器所在的工作頻道那么可以通過改變地址為03H的內(nèi)部存放器的值。通過修改SPACE存放器來設(shè)置自動(dòng)搜臺(tái)的步進(jìn)值(50kHz,100kHz,200kHz),頻道由存放器CHAN[9:0]來選擇,頻率范圍(87MHz~108MHz,76MHz~108MHz,76MHz~91MHz)通過存放器BAND[1:0]設(shè)置。當(dāng)用戶修改03H的調(diào)諧位1時(shí),RDA5820會(huì)啟動(dòng)調(diào)諧。在調(diào)諧完成時(shí),STC位會(huì)自動(dòng)置為1,用戶可以讀取存放器0AH和存放器0BH來獲取該頻道的狀態(tài)值(FM_READY,RSSI等)。設(shè)置為發(fā)射模式時(shí)調(diào)諧過程要持續(xù)100ms[10]。其中每次修改FM收發(fā)器的發(fā)射/接收模式、頻道、音量大小時(shí),STM32會(huì)將上述數(shù)據(jù)保存在STM32自帶的FLASH中,使每次開機(jī)時(shí)FM收發(fā)器為上次關(guān)機(jī)前的狀態(tài)和模式,用戶無需重新設(shè)置。STM32控制其穩(wěn)定工作的流程如圖3-3所示。圖3-3RDA5820控制流程圖3.4信號(hào)指示燈的軟件開發(fā)本系統(tǒng)使用一個(gè)綠色貼片LED指示接收信號(hào)強(qiáng)度。根據(jù)實(shí)踐,當(dāng)FM接收模塊可以接收到FM音頻信號(hào)并播放時(shí),從RDA5820存放器中讀取的信號(hào)強(qiáng)度值(RSSI)一般為20以上,當(dāng)FM接收模塊在該頻道無法接收信號(hào)時(shí),信號(hào)強(qiáng)度值一般小于5。由此可以根據(jù)RSSI的值判斷FM接收模塊所在的工作頻道是否有可用的FM信號(hào)覆蓋,假設(shè)有可用的FM信號(hào)覆蓋,那么使LED亮,否那么LED滅。本設(shè)計(jì)以1s為周期檢測(cè)本地該頻道的FM信號(hào)強(qiáng)度。其中1s的周期更新中斷采用STM32外設(shè)中的16位定時(shí)器(TIM2)。STM32F103C8T6的TIM2使用的是PCLK1,即TIM2的最高時(shí)鐘頻率為72MHz。TIM2的外設(shè)時(shí)鐘使用TIM2預(yù)分頻器分頻為相應(yīng)的計(jì)數(shù)時(shí)鐘后使用。通過賦值語句設(shè)置定時(shí)器的預(yù)分頻存放器為7199,然后得到10kHz的計(jì)數(shù)頻率。設(shè)置TIM的周期存放器(TIM_Period)值為9999,得到1s的更新中斷。指定TIM2的周期中斷優(yōu)先級(jí)為高,在TIM2的更新中斷效勞程序4.基于STM32的FM收發(fā)器系統(tǒng)調(diào)試及結(jié)果分析4.1FM收發(fā)器的接收模式調(diào)試及結(jié)果分析FM收發(fā)器的接收模式調(diào)試過程如下:(1)利用USB的+5V電源或三節(jié)干電池為FM收發(fā)系統(tǒng)電路板供電。LCD顯示“Receiver〞接收模式。假設(shè)液晶顯示屏顯示“Sender〞發(fā)送模式,那么按下“切換〞鍵,將FM收發(fā)器切換到FM接收模式。(2)使用數(shù)字鍵鍵入頻道。例如“94.10MHz(紹興交通播送)〞,依次鍵入“9”、“4”、“1”、“0”,液晶顯示屏顯示“FM:94.10MHz〞,此時(shí)喇叭將播放該電臺(tái)的節(jié)目。同時(shí)液晶顯示屏顯示信號(hào)強(qiáng)度值,(3)使用“+〞、“-〞鍵調(diào)節(jié)播放音量的大小,或者通過調(diào)節(jié)電位器調(diào)節(jié)音量。結(jié)果分析:經(jīng)過一系列簡(jiǎn)單調(diào)試,F(xiàn)M收發(fā)系統(tǒng)的接收模式功能已經(jīng)根本實(shí)現(xiàn)。利用信號(hào)指示燈LED的亮滅指示是否有FM信號(hào)覆蓋,使用戶體驗(yàn)更加直觀。4.2FM收發(fā)器的發(fā)射模式調(diào)試及結(jié)果分析FM收發(fā)器的發(fā)射模式調(diào)試過程如下:(1)利用USB的+5V電源或三節(jié)干電池為FM收發(fā)系統(tǒng)電路板供電。LCD顯示“Receiver〞接收模式。假設(shè)液晶顯示屏顯示“Sender〞發(fā)送模式,那么按下“切換〞鍵,將FM收發(fā)器切換到FM接收模式。(2)使用數(shù)字鍵鍵入頻道。例如“95.90MHz〞,依次鍵入“9”、“5”、“9”、“0”,液晶顯示屏顯示“(3)查找到?jīng)]有可用FM信號(hào)覆蓋的頻道后,按下“切換〞鍵,將FM收發(fā)器從接收模式切換到發(fā)射模式,液晶顯示屏顯示“Sender〞發(fā)射模式。(4)使用數(shù)字鍵鍵入沒有FM信號(hào)覆蓋的頻道,例如“95.90MHz〞,依次鍵入“9”、“5”、“9”、“0(5)靠近并使用麥克風(fēng)錄入語音或使用3.5mm耳機(jī)接口輸入音頻。輸入信號(hào)的通道通過一個(gè)雙刀雙擲開關(guān)切換。(6)在一定距離范圍使用另一臺(tái)收音機(jī)或“基于STM32的FM收發(fā)器〞,如果使用FM收發(fā)器那么需要按“切換〞鍵將其切換到FM接收模式。將收音機(jī)或處于接收模式的FM收發(fā)器的工作頻道調(diào)整到FM發(fā)射器所在的頻道,此時(shí)收音機(jī)可播放從FM發(fā)射器輸入的語音信號(hào)或音頻信號(hào)。結(jié)果分析:經(jīng)過一系列簡(jiǎn)單調(diào)試,F(xiàn)M收發(fā)系統(tǒng)的發(fā)射模式功能已經(jīng)根本實(shí)現(xiàn)。FM收發(fā)器的發(fā)射功能可以將從麥克風(fēng)輸入的語音信號(hào)或從3.5mm耳機(jī)接口輸入的音頻信號(hào)通過未被占用的FM頻道較好地發(fā)射出去,且噪音和失真很小。結(jié)論本文詳細(xì)介紹并闡述了基于STM32的FM收發(fā)器的硬件設(shè)計(jì)和軟件開發(fā)過程。其中主要包括單片機(jī)控制模塊、液晶顯示模塊、矩陣鍵盤輸入模塊、音頻輸入模塊、音頻功放模塊、FM收發(fā)模塊和音頻濾波模塊。單片機(jī)控制模塊使用STM32F103C8T6單片機(jī)執(zhí)行每個(gè)硬件模塊的驅(qū)動(dòng)和協(xié)調(diào)工作。LCD顯示模塊使用NOKIA5110液晶顯示屏,完成FM頻道、信號(hào)強(qiáng)度、收發(fā)模式和音量大小的顯示功能。鍵盤輸入模塊采用4*4矩陣薄膜鍵盤,通過鍵盤按鍵輸入修改FM收發(fā)器的收發(fā)模式、音量大小、FM工作頻道等。音頻輸入模塊通過麥克風(fēng)錄入語音或者使用3.5mm耳機(jī)接口輸入音頻。音頻濾波模塊使用一個(gè)二階有源帶通濾波器濾除多余頻帶的信號(hào),在信號(hào)輸入FM發(fā)射模塊或FM接收模塊輸出音頻信號(hào)時(shí)均采用該帶通濾波器濾波。FM收發(fā)器繼而完成音頻的低噪放大、調(diào)制、解調(diào)等處理功能。應(yīng)用RealviewMDK軟件開發(fā)環(huán)境生成的代碼控制STM32的運(yùn)行,使硬件局部的各個(gè)模塊協(xié)調(diào)運(yùn)行。根據(jù)實(shí)測(cè)結(jié)果,基于STM32的FM收發(fā)器調(diào)試較為成功,實(shí)現(xiàn)了根本功能,人機(jī)接口友好,將FM調(diào)頻的發(fā)射和接收功能相參考文獻(xiàn)[1]姜?jiǎng)贊?FM播送天線原理、測(cè)試與維護(hù)[J].遼寧播送電視技術(shù),2007,1:39~40[2]吳瓊瑤.FM播送發(fā)射技術(shù)的現(xiàn)狀及展望[J].電視設(shè)備通訊,1993,1:24~26[3]張旭,李世光等.基于STM32電力數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)[J].電子測(cè)量技術(shù),2023,33(11):90~93[4]successzsj.Nokia5110LCD應(yīng)用資料[EB/OL].sOFCUn3lsrJ_fEcn-ve8UUoLRPf4Lv76kbYZ5tzL4BVaO2PdS4jNZnlPhL2BUh1ODUwqrw0tbWAP1yPPu3EhFDDO,2015-05-05/2015-05-08[5]杜蕓強(qiáng),畢淑娥.LM386在小功率主動(dòng)聲吶發(fā)射及接收電路中的應(yīng)用[J].電聲技術(shù),2023,34(07):37~40[6]王曉峰,王素香,武曉威等.基于STC12LE5A16S2和RDA5820的校園調(diào)頻無線播送系統(tǒng)的設(shè)計(jì)[J].電力學(xué)報(bào),2023,28(05):434~435[7]康華光.電子技術(shù)根底[M].北京:高等教育出版社,2006:417~419[8]黃忠良.線反轉(zhuǎn)法矩陣鍵盤程序設(shè)計(jì)[J].電腦學(xué)習(xí),2023,1:61~62[9]張毅剛,彭喜元,彭宇.單片機(jī)原理及應(yīng)用[M].北京:高等教育出版社,2023:274~279[10]lh569965.RDA5820系列編程指南V3.0[EB/OL].MIOhjUHeSQtZpwrUMcD-cYsk8wj_lC5GyJkcQ3zU8NNkTd8Ahoql7mMCHbL5L6q51h0AuBUh_PfBqeQ2euJKBEIvdrMTu,2015-05-05/2015-05-08附錄1實(shí)物圖附錄2系統(tǒng)原理圖附錄3各模塊程序(1)主程序main.c代碼如下:#include"stm32f10x.h"#include"nokia5110.h"#include"kbd.h"#include"i2c.h"#include"rda5820.h"#include"interface.h"#include"indicator.h"/*dec*/voidRCC_Config(void);voidFLASH_Save(void);u32FLASH_Read(u8addr);intmain(){ RCC_Config(); /*DisableJTAGDebugEnbaleSWD*/ GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE); /*flashinit*/FLASH_ClearFlag(FLASH_FLAG_BSY|FLASH_FLAG_EOP|FLASH_FLAG_PGERR|FLASH_FLAG_WRPRTERR); vol=FLASH_Read(0); freq=FLASH_Read(1); freq2=FLASH_Read(2); state=FLASH_Read(3); if(!(vol<16&&vol))vol=5;//修正音量 if(!(freq>7000&&freq<10000))freq=9410;//修正接收頻率 if(!(freq2>7000&&freq2<10000))freq2=9590;//修正發(fā)送頻率 if(state!=1&&state!=0)state=0;//修正狀態(tài) /*液晶屏*/ LCD5110_Init(); LCD_clear(); /*initrda5820*/ Rda5820Init();//initialization Rda5820VolSet(vol);//volume5默認(rèn)音量:5 Rda5820SpaceSet(2);//step50KHz(0.05MHz) Rda5820BandSet(2);//band76~108MHz Rda5820TxPgaSet(5);//輸入增益:6 Rda5820TxPagSet(63);//最大發(fā)射功率 if(state) { Rda5820TxMode(); Rda5820FreqSet(freq2); TxShow(); } else { Rda5820RxMode(); Rda5820FreqSet(freq); RxShow(); } Indicator_Init();//信號(hào)指示燈 while(1) { kbdHandler(kbdScan()); /*checkoneSecondFlag*/ if(OneSec) { OneSec=0; rssi=Rda5820RssiGet(); if(rssi>15)LED_ON; elseLED_OFF; if(state)TxShow(); elseRxShow(); } }}/*ClockInitialization*/voidRCC_Config(){ RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA| RCC_APB2Periph_GPIOB|RCC_APB2Periph_AFIO,ENABLE);//EnableGPIOA,GPIOBClock RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,ENABLE);}#defineStartAddr((u32)0x08008000)voidFLASH_Save(){ u8i; u32dat[4]; dat[0]=vol;dat[1]=freq;dat[2]=freq2;dat[3]=state; FLASH_Unlock(); FLASH_ClearFlag(FLASH_FLAG_BSY|FLASH_FLAG_EOP|FLASH_FLAG_PGERR|FLASH_FLAG_WRPRTERR); for(i=0;i<4;i++) FLASH_ErasePage(StartAddr+i*4); for(i=0;i<4;i++) FLASH_ProgramWord(StartAddr+i*4,dat[i]); FLASH_Lock();}u32FLASH_Read(u8addr){ return(u32)(*((vu32*)(StartAddr+4*addr)));}(2)FM收發(fā)模塊驅(qū)動(dòng)程序RDA5820.c代碼如下:#include"stm32f10x.h"http://#include"ioremap.h"http://#include"delay.h"#include"i2c.h"#include"rda5820.h"voidDelayMs(u16tCount){unsignedchara,b,c; for(;tCount;tCount--)for(c=1;c>0;c--)for(b=56;b>0;b--)for(a=137;a>0;a--);}//初始化//0,初始化成功;//其他,初始化失敗.u8Rda5820Init(void){u16id;IIcInit();//初始化IIC口id=Rda5820ReadReg(RDA5820_R00);//讀取ID=0X5805if(id==0X5805)//讀取ID正確{Rda5820WriteReg(RDA5820_R02,0x0002);//芯片軟復(fù)位DelayMs(400);//等待復(fù)位結(jié)束 Rda5820WriteReg(RDA5820_R02,0x0001); //芯片上電 DelayMs(600);Rda5820WriteReg(RDA5820_R02,0xD201);//芯片上電,不復(fù)位正常天線32.768時(shí)鐘循環(huán)搜索不開始搜索想上搜索低音增強(qiáng)立體聲非靜音非高阻抗 Rda5820WriteReg(RDA5820_R03,0x0000); //100kapace87-108baud不開啟調(diào)諧 Rda5820WriteReg(RDA5820_R04,0x0000); //關(guān)閉中斷0.75us去加重不使能iisio口全部浮空 Rda5820WriteReg(RDA5820_R05,0X8548); //搜索強(qiáng)度8,LNAN,1.8mA,VOL最大無輸入低噪聲 //Rda5820WriteReg(RDA5820_R0A,0X7800); //0A不用設(shè)置 //Rda5820WriteReg(RDA5820_R0B,0X7800); //0b不用設(shè)置 Rda5820WriteReg(RDA5820_R40,0X0000); //半自動(dòng)搜臺(tái)RX工作模式 Rda5820WriteReg(RDA5820_R41,0X0000); //RDS應(yīng)答為0不復(fù)位fifofifo深度為0 //Rda5820WriteReg(RDA5820_R42,0X0000); //42不用設(shè)置 Rda5820WriteReg(RDA5820_R4A,0X0010); //fifo滿中斷 Rda5820FreqSet(8100);//設(shè)置初始化頻率81.00M}elsereturn1;//初始化失敗return0;}//寫RDA5820存放器voidRda5820WriteReg(u8addr,u16val){IIcStart();IIcSendByte(RDA5820_WRITE);//發(fā)送寫命令I(lǐng)IcWaitAck();IIcSendByte(addr);//發(fā)送地址IIcWaitAck();DelayMs(2);IIcSendByte(val>>8);//發(fā)送高字節(jié)IIcWaitAck();IIcSendByte(val&0XFF);//發(fā)送低字節(jié)IIcWaitAck();IIcStop();//產(chǎn)生一個(gè)停止條件}//讀RDA5820存放器u16Rda5820ReadReg(u8addr){u16res;IIcStart();IIcSendByte(RDA5820_WRITE);//發(fā)送寫命令I(lǐng)IcWaitAck();IIcSendByte(addr);//發(fā)送地址IIcWaitAck();DelayMs(2);IIcStart();IIcSendByte(RDA5820_READ);//發(fā)送讀命令I(lǐng)IcWaitAck();res=IIcReadByte(1);//讀高字節(jié),發(fā)送ACKres<<=8;res|=IIcReadByte(0);//讀低字節(jié),發(fā)送NACKIIcStop();//產(chǎn)生一個(gè)停止條件returnres;//返回讀到的數(shù)據(jù)}//設(shè)置RDA5820為RX模式voidRda5820RxMode(void){u16temp;temp=Rda5820ReadReg(0X40);//讀取0X40的內(nèi)容temp&=0xfff0;//RX模式Rda5820WriteReg(0X40,temp);//FMRX模式}//設(shè)置RDA5820為TX模式voidRda5820TxMode(void){u16temp;temp=Rda5820ReadReg(0X40);//讀取0X40的內(nèi)容temp&=0xfff0;temp|=0x0001;//TX模式Rda5820WriteReg(0X40,temp);//FMTM模式}//得到信號(hào)強(qiáng)度//返回值范圍:0~127u8Rda5820RssiGet(void){u16temp;temp=Rda5820ReadReg(0X0B);//讀取0X0B的內(nèi)容returntemp>>9;//返回信號(hào)強(qiáng)度}//設(shè)置音量ok//vol:0~15;voidRda5820VolSet(u8vol){u16temp;temp=Rda5820ReadReg(0X05);//讀取0X05的內(nèi)容temp&=0XFFF0;temp|=vol&0X0F;Rda5820WriteReg(0X05,temp);//設(shè)置音量}//靜音設(shè)置//mute:0,不靜音;1,靜音voidRda5820MuteSet(u8mute){u16temp;temp=Rda5820ReadReg(0X02);//讀取0X02的內(nèi)容if(mute)temp|=1<<14;elsetemp&=~(1<<14);Rda5820WriteReg(0X02,temp);//設(shè)置MUTE}//設(shè)置靈敏度//rssi:0~127;voidRda5820RssiSet(u8rssi){u16temp;temp=Rda5820ReadReg(0X05);//讀取0X05的內(nèi)容temp&=0X80FF;temp|=(u16)rssi<<8;Rda5820WriteReg(0X05,temp);//設(shè)置RSSI}//設(shè)置TX發(fā)送功率//gain:0~63voidRda5820TxPagSet(u8gain){u16temp;temp=Rda5820ReadReg(0X42);//讀取0X42的內(nèi)容temp&=0XFFC0;temp|=gain;//GAINRda5820WriteReg(0X42,temp);//設(shè)置PA的功率}//設(shè)置TX輸入信號(hào)增益//gain:0~7voidRda5820TxPgaSet(u8gain){u16temp;temp=Rda5820ReadReg(0X42);//讀取0X42的內(nèi)容temp&=0XF8FF;temp|=gain<<8;//GAINRda5820WriteReg(0X42,temp);//設(shè)置PGA}//設(shè)置RDA5820的工作頻段//band:0,87~108Mhz;1,76~91Mhz;2,76~108Mhz;3,用戶自定義(53H~54H)voidRda5820BandSet(u8band){u16temp;temp=Rda5820ReadReg(0X03);//讀取0X03的內(nèi)容temp&=0XFFF3;temp|=band<<2;Rda5820WriteReg(0X03,temp);//設(shè)置BAND}//設(shè)置RDA5820的步進(jìn)頻率//band:0,100Khz;1,200Khz;3,50Khz;3,保存voidRda5820SpaceSet(u8spc){u16temp;temp=Rda5820ReadReg(0X03);//讀取0X03的內(nèi)容temp&=0XFFFC;temp|=spc;Rda5820WriteReg(0X03,temp);//設(shè)置BAND}//設(shè)置RDA5820的頻率//freq:頻率值(單位為10Khz),比方10805,表示108.05MhzvoidRda5820FreqSet(u16freq){u16temp;u8spc=0,band=0;u16fbtm,chan;temp=Rda5820ReadReg(0X03);//讀取0X03的內(nèi)容temp&=0X001F;band=(temp>>2)&0x03;//得到頻帶spc=temp&0x03;//得到分辨率if(spc==0)spc=10;elseif(spc==1)spc=20;elsespc=5;if(band==0)fbtm=8700;elseif(band==1||band==2)fbtm=7600;else{fbtm=Rda5820ReadReg(0X53);//得到bottom頻率fbtm*=10;}if(freq<fbtm)return;chan=(freq-fbtm)/spc;//得到CHAN應(yīng)該寫入的值chan&=0X3FF;//取低10位temp|=chan<<6;temp|=1<<4;//TONEENABLERda5820WriteReg(0X03,temp);//設(shè)置頻率DelayMs(20);//等待20mswhile((Rda5820ReadReg(0X0B)&(1<<7))==0);//等待FM_READY}//得到當(dāng)前頻率//返回值:頻率值(單位10Khz)u16Rda5820FreqGet(void){u16temp;u8spc=0,band=0;u16fbtm,chan;temp=Rda5820ReadReg(0X03);//讀取0X03的內(nèi)容chan=temp>>6;band=(temp>>2)&0x03;//得到頻帶spc=temp&0x03;//得到分辨率if(spc==0)spc=10;elseif(spc==1)spc=20;elsespc=5;if(band==0)fbtm=8700;
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2031年中國(guó)淋浴節(jié)水裝置行業(yè)投資前景及策略咨詢研究報(bào)告
- 2025至2030年中國(guó)紗線測(cè)濕儀數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025至2030年中國(guó)玉山薄雪草數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 二零二五年度個(gè)人租賃車輛保險(xiǎn)合同2篇
- 2025版?zhèn)€人合伙退伙協(xié)議書糾紛處理指南4篇
- 房東房屋出租合同模板
- 重慶市農(nóng)村住房租賃合同
- 2025-2030全球低矮型叉車行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025-2030全球油漆攪拌器行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025年全球及中國(guó)家電外觀復(fù)合材料行業(yè)頭部企業(yè)市場(chǎng)占有率及排名調(diào)研報(bào)告
- 《openEuler操作系統(tǒng)》考試復(fù)習(xí)題庫(kù)(含答案)
- 《天潤(rùn)乳業(yè)營(yíng)運(yùn)能力及風(fēng)險(xiǎn)管理問題及完善對(duì)策(7900字論文)》
- 醫(yī)院醫(yī)學(xué)倫理委員會(huì)章程
- xx單位政務(wù)云商用密碼應(yīng)用方案V2.0
- 北師大版五年級(jí)上冊(cè)數(shù)學(xué)期末測(cè)試卷及答案共5套
- 2024-2025學(xué)年人教版生物八年級(jí)上冊(cè)期末綜合測(cè)試卷
- 2025年九省聯(lián)考新高考 語文試卷(含答案解析)
- 全過程工程咨詢投標(biāo)方案(技術(shù)方案)
- 心理健康教育學(xué)情分析報(bào)告
- 農(nóng)民專業(yè)合作社財(cái)務(wù)報(bào)表(三張報(bào)表)
- 安宮牛黃丸的培訓(xùn)
評(píng)論
0/150
提交評(píng)論