新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > AVR單片機的調頻立體聲收音機設計

AVR單片機的調頻立體聲收音機設計

作者: 時間:2016-10-15 來源:網絡 收藏

摘要:介紹一種以低功耗單片機ATmega8L為控制核心,以RDA5807P芯片作為FM接收器的調頻收音機。該收音機通過單片機ATmcga8L的接口讀寫RDA58O7P收音模塊的數(shù)據(jù),用按鍵及器進行搜臺、音量調節(jié)等操作。用LCD顯示接收頻道的頻率,當前音量大小等信息。設計中給出了實現(xiàn)FM調頻收音機的硬件電路、讀/寫RDA5807P收音模塊及解碼程序的思路。經多次比對測試,該收音機可以清晰、穩(wěn)定地收聽省府及本地發(fā)射的所有調頻電臺。

本文引用地址:http://m.butianyuan.cn/article/201610/307538.htm

引言

早期的數(shù)字FM處理芯片TEA5767由Philips公司開發(fā)并被廣泛地使用,但該芯片需要外加音頻放大電路才能驅動耳機。鑒于此,國內銳迪科微電子公司獨立開發(fā)了一顆具備高接收靈敏度的FM立體聲數(shù)字芯片RDA5807P,具有自動搜臺、重低音、靜音、休眠、直接驅動耳機等優(yōu)異的性能。本文介紹用RDA5807P芯片設計和制作了一款帶遙控功能的收音機。

1 收音機總體設計方案

收音機的總體設計框圖如圖1所示。本收音機采用單節(jié)3.7 V、容量1500 mAh的鋰電池作力電源,在使用壽命期內可以用手機充電器反復對它進行充電,使用非常方便。采用低功耗的ATmega8L作為微控制器,負責處理和協(xié)調各模塊電路的工作,ATmega8L的工作電壓為2.7~5.5 V,片內有512字節(jié)的EEPROM,不用專門外接EEPROM芯片就可以將掉電前接收電臺的頻道和音量信息保存起來,重新開機后又可以恢復原來的信息。調頻收音機模塊采用國產芯片RDA5807P加上少量的外圍元件組成,由微控制器通過接口對芯片內部寄存器進行寫/讀操作。通過鍵盤或發(fā)射器可以進行自動搜臺、手動選臺、音量調節(jié)、靜音操作。LCD用于顯示當前收聽電臺的頻率、音量等級等信息。音頻功率放大器放大當前收聽電臺的音頻信號,驅動揚聲器發(fā)出聲音。

AVR單片機的調頻立體聲收音機設計

2 系統(tǒng)硬件電路設計

2.1 電源管理模塊電路設計

電源管理模塊電路如圖2所示。LM2054是一款單節(jié)鋰電池恒流、恒壓線性充電芯片,最大充電電流可達到800 mA。它只需外接極少的外部元件,預設4.2 V充電電壓,精度達到±1%。充電時,若鋰電池電壓低于4.2V,充電指示燈D101亮,充電達到預設值4.2 V后指示燈D101熄滅。

AVR單片機的調頻立體聲收音機設計

2.2 微控制器及鍵盤、顯示、紅外遙控接收電路設計

微控制器及鍵盤、顯示、紅外遙控接收電路如圖3所示。

AVR單片機的調頻立體聲收音機設計

鍵盤K1~K6用于選頻、音量調節(jié)等。紅外遙控接收頭連接到單片機ATmega8L的PB0,用單片機的輸入捕獲功能進行解碼。為了減少液晶顯示器LCD1602A占用單片機過多的I/O口,數(shù)據(jù)接口只使用高4位,在寫入命令或數(shù)據(jù)時,分兩次寫入,先寫高4位,再寫低4位。為了降低LCD的用電量,LCD的背光燈用單片機的PD3和PC1進行控制,當用戶設置好想收聽的電臺,5 s后LCD背光燈自動熄滅。

2.3 調頻收音模塊電路設計

調頻收音模塊電路如圖4所示。RDA5807P是國產的FM立體聲收音機接收芯片,加上極少的外圍元件且基本不需要校準,通過程序設定即可接收歐洲、美國和日本的調頻波段。單片機通過SCL和SDA將訪問RDA5807P芯片所需的地址、命令、數(shù)據(jù)寫入內部的寄存器中,也可以通過該總線讀出芯片內部寄存器中的數(shù)據(jù),取得接收頻道的數(shù)據(jù)和音量值,供顯示使用。RDA5807P的輸出經磁珠F301、F302及電容器C30 3、C304抑制高頻干擾后,可以直接驅動32 Ω的耳機發(fā)出聲音,也可以接到下級音頻功放進行放大,推動揚聲器發(fā)出聲音。

AVR單片機的調頻立體聲收音機設計

2.4 音頻功率放大電路設計

音頻功率放大電路如圖5所示。PAM8403是一塊D類音頻功率放大器芯片,它具有諧波失真低、噪聲串擾小、可直接驅動喇叭的特點。用它制作的音頻功放,電路簡單,工作可靠。在5 V電源和4 Ω負載條件下,能輸出3 W的功率。效率可達90%以上,非常適合于用電池供電的便攜式電子產品。電路中

AVR單片機的調頻立體聲收音機設計

引腳可通過單片機輸出低電平控制其進行靜音和關閉功放系統(tǒng)。

AVR單片機的調頻立體聲收音機設計

2.5 紅外發(fā)射模塊電路設計

紅外遙控發(fā)射器電路如圖6所示。BA5104是一塊紅外遙控編碼芯片,內接有上拉電阻,無鍵按下時,電路中無電流流通,振蕩電路不起

振,無遙控編碼信號輸出。當有某一鍵按下時,電路產生455 kHz的振蕩信號,由BA5104內部電路進行12分頻,獲得38 kHz的載波信號。此時按鍵的編碼信息和C1、C2引腳的狀態(tài)信息對38 kHz載波進行編碼調制,經15引腳串行輸出,由三極管Q501、Q502構成的達靈頓驅動電路放大,經外發(fā)射管向空間發(fā)射,同時14引腳輸出高電平,發(fā)射狀態(tài)指示燈D501點亮。

AVR單片機的調頻立體聲收音機設計

3 系統(tǒng)軟件程序設計

軟件程序設計主要包括讀寫RDA5807P芯片相關的模塊程序、頻率及音量顯示模塊程序、按鍵檢測與功能設定模塊程序、遙控解碼及功能設定模塊程序等。本設計選用CodeVisionAVR作為開發(fā)軟件,軟件中集成有LCD1602、I2C總線驅動程序,不用再編寫相應的底層函數(shù),使用非常方便。故在此僅介紹RDA5807P芯片工作在RDA5807P模式及采用I2C總線接口進行搜臺的程序設計和紅外遙控解碼程序的設計。

3.1 搜臺程序設計

搜臺程序可用硬件模式進行搜臺,也可以采用軟件模式進行搜臺。本文著重介紹硬件模式搜臺,軟件模式搜臺可參照硬件搜臺模式進行編程。

I2C總線接口是由START、命令字節(jié)、數(shù)據(jù)字節(jié)及每個字節(jié)后的ACK及NACK比特、STOP組成。RDA58027P芯片寫器件地址為0x20,讀器件地址為0x21。RDA5807P芯片內部的I2C總線接口有4個寫數(shù)據(jù)寄存器,其地址分別是0x02、0x03、0x04、0x05。2個讀數(shù)據(jù)寄存器,其地址分別為0x0A、0x0B,每個數(shù)據(jù)寄存器又分為高字節(jié)和低字節(jié)。這些數(shù)據(jù)寄存器的地址是不可見的,不能通過單片機直接對指定地址的數(shù)據(jù)寄存器進行讀/寫操作。因此,單片機在發(fā)出讀/寫命令字節(jié)后,接下來必須對數(shù)據(jù)寄存器進行連續(xù)地讀/寫操作。其子程序如下:

AVR單片機的調頻立體聲收音機設計

硬件模式搜臺程序設計主要是通過調用連續(xù)寫和連續(xù)讀操作子程序來對收音模塊寄存器進行讀/寫,其程序流程圖如圖7所示。

AVR單片機的調頻立體聲收音機設計

根據(jù)該流程圖編寫的子程序如下:

AVR單片機的調頻立體聲收音機設計
AVR單片機的調頻立體聲收音機設計

3.2 紅外遙控解碼程序設計

由BA5104的編碼格式可知;遙控碼的一幀長度為12位,其中包括3位起始碼、2位用戶碼、7位指令碼。遙控碼的每一幀時間間隔為4T,T=1.6879 ms為一位遙控碼的周期。一幀完整的遙控碼如圖8所示。

AVR單片機的調頻立體聲收音機設計

遙控碼中“1”用3T/4的高電平與T/4的低電平表示,“0”用T/4的高電平與3T/4的低電平表示,一位遙控碼的波形如圖9所示。

AVR單片機的調頻立體聲收音機設計

由圖9可見,要用單片機來判斷遙控發(fā)射器發(fā)出的是“0”還是“1”,關鍵是要判斷接收脈沖下降沿至上升沿之間的時間??梢圆捎猛獠恐袛喾?,也可以采用輸入捕獲功能法,本文采用后一種方法。解碼的思路是:初始化時,將ATmcga8L的ICP1引腳設置為輸入狀態(tài),下降沿觸發(fā),當紅外接收頭接收到紅外遙控信號時,產生下降沿,單片機自動將TCNT1寄存器中的值保存至ICR1寄存器中,在捕獲中斷服務程序中將ICR1中的值保存至T1中;然后將ICP1設置為上升沿觸發(fā),當再次產生捕獲中斷時,將ICR1中的值保存至T2中,將ICP1設置為下降沿觸發(fā),并將TCNT1置0。之后計算出T2-T1的時間并保存至事先開辟的數(shù)組中,要注意的是,T2-T1有可能出現(xiàn)負值,此時要將(T2-T1+0xffff)再保存,直到接收完12位數(shù)據(jù)。

保存在數(shù)組中的數(shù)據(jù),當其值為3/4×1.687 9ms≈1266μs時,被認為接收到“1”,當其值為1/4×1.687 9 ms≈422 μs時,被認為接收到“0”。由于遙控發(fā)射器和單片機所使用的晶振頻率與標稱值會有一定的偏差,所以在程序中要留有一定的余量。

結語

經過多次比對測試,該收音機可以清晰、穩(wěn)定地收聽省府及本地所發(fā)射的調頻電臺信號。



評論


相關推薦

技術專區(qū)

關閉