基于單片機和TEA5767HN的FM收音機系統(tǒng)的設計
摘要:為了在電子產(chǎn)品中嵌入立體聲FM數(shù)字收音機功能。采用單片機AT89S52和TEA5767HN為硬件核心,運用I2C總線通信方式進行軟件設計,給出了實現(xiàn)手動搜臺、自動搜臺等功能的FM數(shù)字調頻收音機的設計方法。該方法采用PT2257對音頻進行處理,以實現(xiàn)立體聲輸出,因而具有輕巧、方便、頻帶范圍寬、低功耗、高靈敏度等特點,并可以嵌入MP3、手機、便攜式播放器等小型電子產(chǎn)品中。
關鍵詞:單片機;AT89S52;TEA5767HN;PT2257
0 引言
在當前數(shù)字信息技術和網(wǎng)絡技術高速發(fā)展的PC時代。嵌入式技術越來越同人們的生活緊密相關。其中掌上嵌入式電子產(chǎn)品更是給人們的生活帶來了很大方便和很多快樂。盡管生活方式不斷發(fā)生變化,但無線電仍然很流行。因此,本文針對TEA5767HN數(shù)字收音機芯片的控制機理,闡述了通過該芯片和C51單片機來將FM數(shù)字收音機嵌入智能電子產(chǎn)品的設計方法。
1 系統(tǒng)整體設計思路
本立體聲FM數(shù)字收音機的設計目標是通過單片機AT89S52來控制FM接收芯片TEA5767HN,從而實現(xiàn)可自動搜索并存儲10多個電臺節(jié)目(也可手動搜索并存儲電臺節(jié)目)。所收聽電臺的頻率和臺號及時鐘可在顯示模塊中的LCD上顯示,音量則可通過音量加、減按鍵自主控制,并能存儲關機時設定的數(shù)據(jù)以及鬧鐘功能。具體系統(tǒng)設計框圖如圖1所示。
本系統(tǒng)主要由單片機AT89S52控制模塊、TEA5767HN收音模塊、音量控制模塊、ROM存儲模塊、顯示模塊、按鍵模塊和電源模塊七部分組成。本系統(tǒng)硬件設計的關鍵則在于FM接收、音頻處理等模擬部分;軟件設計的關鍵在于控制模塊與收音模塊之間的通信。
從圖1中可以看出,控制模塊僅僅通過I2C總線與收音模塊連接并控制收音機工作。本設計使用單片機P3口的兩個I/O腳來模擬I2C總線的SDA和SCL時序并與TEA5767HN通信;TEA5767HN輸出的左右聲道音頻信號可通過音量控制模塊進行前級放大及音量控制,然后輸入到TDA7057進行后級功率放大,最后輸出到揚聲器。單片機可通過I2C總線進行音量調節(jié);ROM存儲模塊主要用于存儲電臺數(shù)據(jù)、音量數(shù)據(jù)和時鐘數(shù)據(jù),為存儲和讀取數(shù)據(jù)帶來方便。系統(tǒng)可通過按鍵進行操作,通過MCU檢測按鍵信號并經(jīng)單片機實現(xiàn)手動搜臺、自動搜臺、音量控制、時鐘調整等功能,各項操作提示和操作結果均可通過LCD顯示出來。穩(wěn)壓電源模塊產(chǎn)生的5 V和3.3 V電壓可分別為各個模塊器件供電。
2 硬件系統(tǒng)電路設計
由于本系統(tǒng)硬件設計的關鍵在于FM接收、音頻處理等模擬電路部分,其余電路均為常規(guī)電路,因而其硬件系統(tǒng)的設計著重分析收音模塊、音量控制模塊這兩部分電路。
2.1 收音模塊電路分析
FM接收電路是系統(tǒng)硬件電路中的核心部分之一,本硬件系統(tǒng)采用單芯片TEA5767HN作為FM接收電路的核心元器件。Philips公司提供的TE-A5767HN芯片為低電壓、低功耗和低價位的全集成單芯片立體聲無線電產(chǎn)品,它只需要極少的外圍元件,并且基本上不需要外部對高頻信號的手動調準。另外,其頻帶范圍較寬,可以完全免費調到歐洲、美國和日本的調頻波段。
圖2所示為TEA5767HN的FM應用電路連接圖。圖中,VCC接穩(wěn)壓電源模塊中的3.3 V電源,并通過磁珠FB及電容器進行干擾抑制。22μF的電容選用鉭電容,兩個0.1μF的電容可以選用介電常數(shù)高、高頻性能好的陶瓷電容,以保證整個收音模塊的電源系統(tǒng)更加穩(wěn)定。R_OUT、L_OUT為FM的音頻信號輸出。DATA和CLK為I2C通信的數(shù)據(jù)線和時鐘線,系統(tǒng)的MCU通過I2C接口來對FM Module進行控制。芯片上的W/READ引腳在本系統(tǒng)中沒有使用,故空接。CLK、DATA用于與系統(tǒng)的MCU實現(xiàn)串行通信。BUS-ENABLE為總線使能信號,當BUS-ENABLE為低時,芯片上的FM-Mod-ule引腳進入省電模式,所以采取空接方式。RF為FM收音模塊的天線接口,即射頻信號輸入腳。
2.2 音量控制模塊
音量控制電路使用的單芯片PT2257是由CMOS技術制造而成的2聲道音量控制IC,可采用I2C控制,具有0~79 dB的衰減范圍,而且噪音低、立體聲分離度高、使用外圍元件少,是較為流行的AV視頻產(chǎn)品音量控制元件。
音量控制電路采用I2C控制方式,其音量大小由MCU控制,因而省去了電位器,避免了電位器產(chǎn)生的雜音干擾音頻信號。但其不足之處是該IC過載能力較差,不能帶動功率稍大的喇叭,所以,本設計把音量控制電路放置在前置信號輸入端,然后再接入TDA7057進行后級放大。
3 系統(tǒng)軟件設計
基于AT89S52單片機控制平臺的TEA5767HN數(shù)字收音機的軟件設計主要包括六個部分:I2C總線通信協(xié)議、TEA5767HN收音模塊控制、PT22 57音量控制、時鐘鬧鐘模塊的中斷服務、AT24C02存儲模塊控制、鍵盤掃描及狀態(tài)顯示。本文的軟件系統(tǒng)設計應當著重分析TEA5767HN收音模塊控制、PT2257音量模塊這兩部分的工作原理以及編程思路。
本系統(tǒng)程序使用C語言編寫,主程序由啟動、初始化、鍵盤掃描、按鍵處理、液晶顯示等5大模塊組成。其中系統(tǒng)初始化包括AT89S52的初始化、TEA5767HN的初始化和LCD的初始化;按鍵處理通過調用函數(shù)的方法實現(xiàn)按鍵復用功能,可實現(xiàn)手動搜臺、自動搜臺、音量控制、時間調整、鬧鐘調整等操作;顯示模塊可顯示系統(tǒng)的各個工作狀態(tài)。
3.1 TEA5767HN模塊的軟件設計
3.1.1 TEA5767HN讀寫寄存器
TEA5767HN有5個寫寄存器和5個讀寄存器,每個寄存器可存儲8位數(shù)據(jù)。
寫寄存器可以存儲控制信息,包括軟件靜音、模式選擇、PLL可編程計數(shù)器的設置、向上向下搜索模式選擇、靜左/右音頻、可編程端口的設置、待機節(jié)能模式、歐洲/日本頻段選擇、晶振頻率選擇、ADC門限設置、去加重設置等。
讀寄存器可檢測接收電路狀態(tài),反饋控制信息,包括搜索到有效電臺標志位、搜索到有效電臺后PLL可編程計數(shù)器的狀態(tài)、4 b ADC的輸出、以及7 b IF中頻輸出等。
3.1.2 TEA5767HN的數(shù)據(jù)傳輸
TEA5767HN的數(shù)據(jù)順序是:地址、字節(jié)1、字節(jié)2、字節(jié)3、字節(jié)4、字節(jié)5,數(shù)據(jù)傳送必須按照這個順序。每個字節(jié)將控制不同的功能。
每個字節(jié)的第七位為最高位,并作為字節(jié)的第一位傳送。在時鐘的下降沿,數(shù)據(jù)變?yōu)橛行盘?。在每一字?jié)后面加停止信號可以縮短傳送時間。在整個傳輸完成之前,發(fā)送一個停止條件,其保留的字節(jié)將包含以前的信息。如果一個字節(jié)沒有傳送完,新的字節(jié)將被使用,但新的調諧周期不會開始。
3.1.3 TEA5767HN的讀寫流程
根據(jù)TEA5767HN的讀寫協(xié)議,調用公用I2C驅動即可編寫出TEA5767HN的讀寫函數(shù):radio_write(),radio_read()。它們可為手動搜臺、自動搜臺等FM功能調用,以實現(xiàn)程序的模塊化,優(yōu)化程序結構。TEA5767HN的讀寫流程如圖3所示。其中I2C_Start(FM)和I2C_Stop(FM)分別表示啟動和停止I2C總線,Check_(FM)為應答信號。
3.1.4 收音模塊的初始化
TEA5767HN在上電復位時,靜音位設置為“1”,其他所有位設置為“0”。為了初始化集成塊,所有位都必須重新設定。所以,上電后必須重新給TEA5767HN寫入數(shù)據(jù),以初始化收音模塊。
TEA5767HN的初始化流程圖如圖4所示。圖中的radio_write_data[]分別為要寫入TEA5767HN的5個字節(jié)數(shù)據(jù)。本系統(tǒng)寫入數(shù)據(jù)讓TEA5767HN接收的頻率為88100 kHz,選擇歐洲制式和32.768 MHz晶振,同時采用立體聲輸出。函數(shù)get_pll()是根據(jù)當前頻率計算出PLL值的函數(shù)。調用get_pll()函數(shù)計算出PLL值后,應再把PLL高6位送給字節(jié)1的低6位,接著把PLL的低8位送給字節(jié)2。頻率顯示則可直接調用fm_disp()函數(shù)來完成。
3.1.5 手動搜臺
手動搜臺主要由按鍵掃描和調用radio_write()等函數(shù)來完成。操作兩個按鍵(down,up)可完成向下向上調臺。當按下up鍵時,當前的頻率將增加100 kHz,然后調用函數(shù)get_pll()將十進制的頻率值轉化為14位的PLL值,然后再將PLL值進一步轉化為兩個二進制分別寫入TEA57 67HN的寫寄存器的第一和第二個字節(jié)。頻率顯示可直接調用fm_disp()函數(shù)來完成。
3.1.6 自動搜臺與讀臺
自動搜臺主要使系統(tǒng)從最低頻率87.5 MHz開始全頻率搜索,每次步進100 kHz,如此不斷地寫入和讀出,同時調用頻率顯示函數(shù)不斷地刷新頻率。當搜索到最高頻率108MHz時,自動退出搜臺模式。在自動搜臺過程中,可通過讀寄存器中的ADC與中頻IF來辨別是否搜到有效電臺。若ADC>3,同時中頻IF在0x30~0x3E范圍內,則說明搜到有效電臺,此時讀出TEA5767讀寄存器中的字節(jié)1和字節(jié)2,然后將這兩個字節(jié)的數(shù)據(jù)轉化為PLL,最后通過寫ROM把搜到的電臺信息即PLL值存儲到AT24C02的片地址中,以方便讀臺使用。
讀臺是一個讀ROM和寫TEA5767的操作。將ROM中的電臺信息讀取出來,然后將信息再一次寫入TEA5767即可。在自動搜臺中,由于存儲的信息是14位的PPL值,所以還必須調用函數(shù)將PLL轉化為十進制的頻率frequency,然后再送進LCD顯示。
3.2 PT2257的音量控制設計
本系統(tǒng)使用PT2257來控制收音機輸出的音量,以實現(xiàn)數(shù)字化音量控制。PT2257的地址為88H。單片機可與PT2257通過I2C進行通信。PT2 257的寫操作先由單片機發(fā)出啟動信號寫入PT2257的片地址0x88,然后,由PT2257送回應答信號,單片機收到應答信號后,即向PT2257發(fā)送音量衰減量數(shù)據(jù),單片機再次收到應答信號后,即發(fā)出停止信號,如此即可完成一次控制過程。
PT2257衰減量數(shù)據(jù)Vol由十位和個位兩部分組成。數(shù)據(jù)的傳輸順序是先發(fā)送十位數(shù)據(jù),再發(fā)送個位數(shù)據(jù)。寫入的十位數(shù)據(jù)為(Vol/10)|TenDB,個位數(shù)據(jù)為(Vol%10)|OneDB。其中TenDB=0xe0,OneDB=0xd0。衰減量的大小為十位和個位值的合并,圖5給出了PT2257的寫流程和音量控制流程。
4 電路設計說明
本設計在硬件方面以經(jīng)典電路為主,所以在常規(guī)電路設計方面不難。但是,由于本設計涉及到高頻與低頻信號的處理,所以要特別注重抗干擾電路的設計。在設計樣品的調試過程中,為提高抗干擾能力,作者得出以下經(jīng)驗:
(1)I2C總線的布線技巧
在TEA5767HN收音模塊設計時,由于I2C總線與32.768 kHz的布線靠得太近,信噪比和靈敏度都可能很差。因此,筆者在做PCB板時,把I2C總線通過跳線的方式走到下層。
(2)磁珠的應用
磁珠一般專門用于抑制信號線、電源線上的高頻噪聲和尖峰干擾,同時還具有吸收靜電脈沖的能力。本設計中的磁珠用來吸收超高頻信號(如一些RF電路、PLL、振蕩電路、含超高頻存儲器電路等)。為了盡量減少電源對收音模塊的干擾,本設計使用了特征頻率為100 MHz的磁珠串接入3.3 V電路中。
(3)電路中“電流聲”的處理
電路中經(jīng)常會有“電流聲”。這是因為電路產(chǎn)生了一定的振蕩,電流只要有變化,就會有噪音,這樣,根據(jù)電流聲的頻率就可以有針對性的進行處理。具體抑制措施有兩個:一是用電感或電阻把干擾隔離在敏感區(qū)域外;另一方面,也可以用電容把噪音泄放到地。
因此,筆者根據(jù)設計實踐和相關資料,歸納出提高電路抗干擾能力的三字訣,那就是“避”、“堵”、“疏”。其中的避,就是指合理布局,躲開敏感區(qū),如設跳線或屏蔽敏感區(qū)等方式;堵,就是用電感/電阻把干擾隔離在敏感區(qū)域之外;疏,就是用電容把噪音釋放到地。另外,還要遵循兩大原則,分別是:“高頻信號點觸接地;低頻信號處處接地。”
5 結語
以TEA5767HN和單片機為硬件核心的立體聲FM數(shù)字收音機與傳統(tǒng)收音機相比,其PCB板布局小,硬件調試較為簡單,在音效處理和性能方面都更加可靠。通過軟硬件的結合,本系統(tǒng)可實現(xiàn)手動搜臺、自動搜臺、數(shù)控音量和鬧鐘等功能。在軟件設計上也可通過公用I2C使單片機與多個IC進行通信,并可通過軟件實現(xiàn)按鍵復用功能,因而大大降低了產(chǎn)品體積。