日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

單片機創(chuàng)意小制作,ARM7音樂播放器

 嶺南書館1 2019-03-27

在校學習期間,教我單片機的王老師時常提起ARM處理器。她提醒我說,我們是計算機專業(yè)的,應該研究嵌入式系統(tǒng)。起因是,我喜歡單片機,而單片機偏偏在我們學校是電子系的專業(yè)。把單片機玩轉(zhuǎn)了,對于計算機專業(yè)的我,就顯得偏離專業(yè)了。那時,我還是頭腦一熱,在網(wǎng)上買了一個AT91SAM7S64最小系統(tǒng)。但是,一直沒有像樣地玩它。只是斷斷續(xù)續(xù)地寫了幾個簡單的程序,像學習51單片機一樣學它。隨著時間的推移,它被遺忘在一邊了。不過這幾天在整理零碎時,我又開始注意到它了。

這次制作的主題是——做一款能夠媲美山寨CD機的音樂播放器。隨著MP3、MP4、手機、PMP等便攜播放器的出現(xiàn),在市場上很少看到專門賣CD機的柜臺了。想想也是,現(xiàn)在馬路上很少看到有人拿個碩大的CD機聽音樂。最主要的原因,估計是CD光盤尺寸偏大,攜帶不便,所以現(xiàn)在聽MP3的人越來越多了。但是,不管怎樣,CD的音質(zhì)還是相當好的。還記得去年,我制作了一款M8音樂播放器,朋友聽了后,直接評價那音質(zhì)不行。我解釋說,那是8位的播放器,還是被他鄙視了。太傷我心了。于是,我又琢磨著做一款新的播放器,希望它超過普通MP3的音質(zhì)。這回做好后,又特意給那位朋友試聽了一下,這次他評價說,這音質(zhì)的確超過普通MP3了。下面我會和大家分享制作它的過程。

主要芯片介紹

這次制作的音樂播放器使用了TI公司的PCM1770,它是24位低功耗立體聲音頻DAC。由于它能夠直接驅(qū)動耳機,所以選擇它作為音頻解碼器。當耳機的阻抗為16Ω時,它的輸出功率為13mW。PCM1770使用的電源范圍為1.6~3.6V,支持標準的I2S音頻接口。對DAC的操作是通過SPI接口實現(xiàn)的。它的音量也由軟件控制,音量控制一共分為64個等級。

電路的處理器使用Atmel公司的AT91SAM7S64。它有64KB的FLASH程序存儲器,16KB的內(nèi)部SRAM,是高性能的32位RISC架構(gòu)的ARM7處理器,最高工作頻率可達55MHz。它一共有64個引腳,PIO控制的I/O驅(qū)動電流可以達到8mA,PA0~PA3可以達到16mA,但所有I/O電流之和不能超過150mA。這款處理器具有SSC同步串行控制器,支持I2S標準,也有SPI接口,可以設定8到16位的數(shù)據(jù)長度,每個SPI接口有4個片選線。這樣,處理器與DAC解碼器的數(shù)據(jù)傳輸、控制命令的發(fā)送都可以在硬件上連接實現(xiàn)。

可實現(xiàn)功能

這個制作完成后,將CD音質(zhì)的WAV文件復制到SD卡內(nèi),文件必須存放在根目錄下。程序通過AT91SAM7S64的SSC串行控制器,把音頻的數(shù)據(jù)流通過SSC接口傳輸?shù)絋I的音頻DAC上。這樣,耳機就播放出動聽的音樂了。播放器使用普通的微動按鈕控制,一共用了5個按鈕,分別實現(xiàn)音量、選曲、播放、暫停等控制。

工作原理

整個制作,由圖11.1所示的AT91SAM7 S64 最小系統(tǒng)(左邊)、洞洞板(中間)和轉(zhuǎn)接成DIP封裝的PCM1770 DAC(右邊)組成。

單片機創(chuàng)意小制作,ARM7音樂播放器

圖11.1 制作所需的各部分實物

這款音樂播放器的工作原理并不復雜。主要由5大部分組成:

(1)AT91SAM7S64最小系統(tǒng),比51單片機最小系統(tǒng)稍微復雜些。

(2)PCM1770 I2S音頻解碼器,用于驅(qū)動耳機或音響,播放音樂。

(3)SD卡存儲卡,存放44.1kHz/16位的WAV格式的音樂文件。

(4)5個普通的微動按鈕,功能分別為:控制音量、前后選擇音樂和播放/暫停音樂。

(5)簡單的用穩(wěn)壓芯片將5V的USB電源轉(zhuǎn)換成3.3V的電路工作電源。

音樂播放器的原理圖如圖11.2所示,可分為5大部分:左上角為穩(wěn)壓電路,左下角為5個微動按鈕,右上角為SD卡,右下角為TI的音樂DAC芯片,中間的就是AT91SAM7S64的最小系統(tǒng)了。

1.穩(wěn)壓電源

單片機創(chuàng)意小制作,ARM7音樂播放器

圖11.2 電路原理圖

它使用1117-3.3V的穩(wěn)壓芯片,把USB接口的5V電源轉(zhuǎn)換成3.3V。4個電容起到濾波作用。穩(wěn)壓芯片可以采用SPX1117-3.3V、LM1117-3.3V或AMS1117-3.3V。如果使用有極性的電解電容,不要粗心地把正負極性弄反。

2. 5個微動按鈕

這5個微動按鈕排列成經(jīng)典的上下、左右、中間的十字結(jié)構(gòu),它的控制功能大家很容易理解,分別是上下為音量控制、左右為切換歌曲控制、中間為暫停/繼續(xù)播放控制。

3. SD 卡

使用了它的SPI接口,直接和ATM7的SPI接口的NPCS0、MOSI、MISO、SPCK連接,在程序中我使用了系統(tǒng)時鐘16.9344MHz作為SPCK時鐘,這樣它的傳輸速率才可以超過CD音樂格式標準的數(shù)據(jù)流速度。

4. TI的DAC

這是這個系統(tǒng)最關鍵的地方,它需要SPI接口控制它,同時又需要I2S接口給它提供數(shù)據(jù)流。它的SPI控制接口與AT91SAM7S64的NPCS1、MOSI、MISO、SPCK引腳相連,程序通過拉低 NPCS0 與 NPCS1 這兩個引腳來片選 SD 卡或 DAC 芯片。在傳輸數(shù)據(jù)時,可以拉低不同的片選信號來指定傳輸?shù)姆较?。DAC的LRCK、DATA、BCK接口分別與RAM7的TF、TD、TK連接。但由于DAC芯片還需要系統(tǒng)時鐘,它可以是128fs、192fs、256fs或384fs(fs為音樂的采樣率,如44.1kHz采樣率)。所以,我通過ARM7的PCK0引腳輸出384fs頻率的時鐘。最后,還可以通過控制DAC的PD引腳為0,讓DAC休眠,減低它的功耗。

5. AT91SAM7S64 最小系統(tǒng)

正確連接好處理器各內(nèi)部控制器的電源,如VDDFALSH、VDDIO、VDDCORE、VDDPLL等,確認USB的D+上拉電阻到3.3V。在播放44.1kHz音樂時,確認使用的是16.9344MHz晶體(在下載程序時使用18.432MHz)。最后,在AT91SAM7S64的PLL RC引腳上連接 PLL濾波用的電容。這樣,ARM7上電后就能運行代碼了。

AT91SAM7S64的電源系統(tǒng)比較復雜,但還好僅僅需要單一的3.3V電壓,即可解決所有供電問題。電源使用USB的5V電壓,經(jīng)過1117-3.3V穩(wěn)壓芯片穩(wěn)壓,然后給DAC、AT91SAM7S64、SD卡供電。AT91SAM7S64還需要1.8V的電源電壓,好在它內(nèi)部集成的電壓調(diào)節(jié)功能,能輸出1.8V電壓。

AT91SAM7S64處理器只要正確連接好需要的2種電源電壓(3.3V、1.8V),焊接上18.432MHz的外部晶體,并且連接上簡單的USB接口電路,在物理上就能夠下載程序了。注意,當使用18.432MHz的外部晶體時,燒錄文件才能通過USB接口下載。但由于音樂播放器需要16.9344MHz的外部晶體,才能以正常的速率播放CD采樣率(44.1kHz)的音樂。因此,下載好程序后,還需要切換晶體。這一步麻煩些。

程序首先初始化AT91SAM7S64的SPI接口和SSC接口,并使能PIOA引腳(連接按鈕的引腳)和SSC接口(I2S接口)的中斷。等初始化接口完畢后,程序才能通過已經(jīng)正確配置的接口,初始化音頻DAC、SD卡設備。等這些操作完成后,程序會通過讀取SD卡的特定扇區(qū),識別文件系統(tǒng)種類,并搜索根目錄下的第1個音樂文件。最后,通過按鈕控制,實現(xiàn)音樂的播放。

使用方法

先要格式化SD卡,使用FAT(FAT12與FAT16的合集)或FAT32都可以。然后,復制44.1kHz、16位的WAV音樂到SD卡上(注意,請復制到根目錄)。插上USB電源后,按中間的播放/暫停按鈕播放音樂(音樂播放器在上電時不能自動播放,還需要按下播放/暫停按鈕才能播放)。

燒錄文件的下載與使用

1. 引導代碼簡介

AT91SAM7S64內(nèi)部含有一段叫SAM-BA BOOT的程序,它在出廠時已被固化,不會被擦除,也不會被改變。在特定的條件下,它會被復制到內(nèi)部Flash中,這個復制的過程叫系統(tǒng)程序恢復。系統(tǒng)程序恢復后,下一次上電或手動復位時,SAM-BA BOOT代碼就會運行了,它使用片上集成的USB或DEBUG串口與上位機通信,實現(xiàn)自編程。

2. 恢復啟動代碼

在PA0、PA1、PA2、TST這4個引腳保持高電平的狀態(tài)下,上電并等待10s。由于上電時PA0、PA1、PA2默認上拉電阻使能了,所以這3個引腳可以懸空。而TST引腳內(nèi)部下拉電阻使能,因此需要通過外部電路將TST引腳拉高。

10秒后當芯片再次上電時(記得恢復TST引腳為低電平),就會運行SAM-BA BOOT程序了。這時,把芯片的USB接口連接上電腦,電腦上就會發(fā)現(xiàn)新硬件,并自動安裝驅(qū)動。當然,前提是你在電腦上已經(jīng)安裝了SAM-BA ISP下載軟件。

3. 關于 ERASE 引腳

上電時ERASE引腳的上拉可以用來擦除內(nèi)部Flash的安全位,并且會在50ms的時間內(nèi)完成。它的作用是使整個內(nèi)部Flash存儲器的內(nèi)容被清除掉。當完成這些操作后,安全位才會清除。

當你使用SAM-BA對器件編程后,執(zhí)行了Enable Security Bit操作,即編程了Flash安全位,那么下一次恢復系統(tǒng)程序前必須拉高ERASE引腳。

4. SAM-BA 軟件使用

首先,安裝SAM-BA ISP軟件,它會連同驅(qū)動一起安裝的。這樣,當把已經(jīng)恢復啟動代碼的ARM7插入USB接口時,驅(qū)動即可自動安裝,并在設備管理器里多出如圖11.3所示的設備。

然后,雙擊軟件運行,出現(xiàn)圖11.4所示的運行畫面。選擇圖11.4所示的連接方式“\usbARM0”和開發(fā)環(huán)境“AT91SAM7S64-EK”后,按“Connect”后連接。接著,燒錄軟件的主界面就會跳出,如圖11.5所示。

單片機創(chuàng)意小制作,ARM7音樂播放器

圖11.3

單片機創(chuàng)意小制作,ARM7音樂播放器

圖11.4

單片機創(chuàng)意小制作,ARM7音樂播放器

圖11.5

然后,點擊“Send File”按鈕,選擇燒錄用的BIN文件。最后,點擊“Send”發(fā)送即可。期間會彈出扇區(qū)解鎖確認和扇區(qū)鎖定確認對話框,點擊“Yes”即可。

幾秒后,程序就燒錄完畢了。重新上電后,音樂播放器的代碼就能成功運行了。

制作簡介

其實,整個制作對剛學習ARM7處理器的人也不難。買一個AT91SAM7S64的最小系統(tǒng),它的32個PIO口一般都會引出來的,并用插針連接。只需要自己做底板,焊接好插座,就能方便地合并了。

我做的這個底板是用萬用板制作的,尺寸大約是10cm×10cm。仔細觀察的朋友,還會發(fā)現(xiàn),這個底板的功能不僅僅是特意用來做音樂播放器的,還可以做許多關于ARM7的小實驗。

底板的反面我用絕緣導線連接線路,這也是我目前喜歡的做法(見圖11.6)。如果覺得難看,大家還可以自制PCB的底板,這樣也能輕松焊接。

為了使自己的制作更美觀,我又在網(wǎng)上買了片1.8mm厚的有機玻璃板。用小鋸切割成10cm×10cm大小后,用砂紙仔細打磨。打磨好后在合適的位置上鉆孔,最后用2mm的螺絲和對應的銅座固定,這個制作的外觀就完成了(見圖11.7)。

大家會發(fā)現(xiàn)制作的正面還有一根飛線,這是由于我買的最小系統(tǒng),3.3V的電源插針沒有向下引出,只好拿了條杜邦線連接到底板了。

單片機創(chuàng)意小制作,ARM7音樂播放器

圖11.6 用絕緣導線連接底板背面的線路

單片機創(chuàng)意小制作,ARM7音樂播放器

圖11.7 用有機玻璃制作播放器的外殼

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多