最新免费av在线观看,亚洲综合一区成人在线,中文字幕精品无码一区二区三区,中文人妻av高清一区二区,中文字幕乱偷无码av先锋

登錄 免費注冊 首頁 | 行業(yè)黑名單 | 幫助
維庫電子市場網
技術交流 | 電路欣賞 | 工控天地 | 數字廣電 | 通信技術 | 電源技術 | 測控之家 | EMC技術 | ARM技術 | EDA技術 | PCB技術 | 嵌入式系統(tǒng)
驅動編程 | 集成電路 | 器件替換 | 模擬技術 | 新手園地 | 單 片 機 | DSP技術 | MCU技術 | IC 設計 | IC 產業(yè) | CAN-bus/DeviceNe

用OKI錄放芯片ML2308實現的立體聲錄放平臺

作者:chen0321 欄目:數字廣電
用OKI錄放芯片ML2308實現的立體聲錄放平臺
    剛剛搭完了一個錄音/播放芯片的電路,心情久久難以平靜,潛水這么久,決定上來冒個泡,講講這個過程吧。首先聲明,偶是菜鳥,若有什么說的不對的地方,還是要請各位大俠指出滴。
故事是這樣子的……

選擇錄音芯片
    老大說要找塊錄音芯片,用在我們的新款錄音筆上。于是我就開始google了。市面上的錄放芯片看起來不少,音質不錯的品牌有ISD和日本OKI。因為錄音筆對音質要求較高,就決定從這兩家來選。再細細比較,ISD的錄放芯片都是內置存儲器,不適合長時間錄放(誰家的錄音筆不得錄兩三個小時的阿),而且每款芯片采樣頻率都是固定的,作成產品后不能靈活對應不同音質要求的錄音。OKI的是存儲器是外置,可以根據錄音時間長短自己決定合適大小的存儲器,比較靈活。采樣頻率也可以更改,錄音時可以根據實際情況決定選擇高音質還是長時間播放。采樣頻率4k到32k赫茲可選,外加立體聲錄放。一切都聽起來很不錯的樣子,決定就選它了吧。
    要來了樣片,手頭正好有塊集成了FLASH的arm開發(fā)板(雖然只有8M,先湊合著錄錄等調通了再說吧,赫赫),再加上datasheet上現成的ML2308參考電路,所以硬件的工作比較輕松。

硬件搭建
1.ML2308外圍電路
依葫蘆畫瓢,按著datasheet的參考電路搭好,用了立體聲的耳機輸出。嘿嘿,既然是立體聲錄音么輸出當然也要立體聲啦。
2. 與CPU的連接
   考慮到開發(fā)板上現成的FLASH是8bit的數據口,ML2308也采用了并聯的方式進行命令和數據傳輸(當然,ML2308也支持4線的I2S口,如果MCU支持的話也是個不錯的選擇)。和CPU的IO口連接的有:數據線D7-D0; 讀寫操作控制信號Read, Write; 命令數據選擇信號;左右聲道切換信號;片選信號;ML2308狀態(tài)信號CBUSY,buffer的FUL,MID,EMP信號(后來的調試證明,這3個狀態(tài)位并不全部需要送給CPU)。

板子搭好,動手調試
   首先用CPU對用到的IO口賦值,檢查下各個接口的連接情況。一切ok后,開始跑程序。由于缺乏使用FLASH的經驗,所以最先調試的是CPU對FLASH的讀寫。搜了FLASH的datasheet,按著上面的讀寫命令一個個送過去,折騰了n久,總算成功。
   接下來就是ML2308和CPU的通訊了。ML2308和CPU之間的傳輸包含了命令和音頻數據的交換。而命令也分為了8位和16位兩種。按照datasheet給出的波形圖,用CPU的IO模擬各個輸入,注意一下滿足保持建立時間,很容易就實現了8位命令的輸入(用示波器觀察CBUSY口,當命令送進去之后,CBUSY拉低,表明ML2308在執(zhí)行該命令)。送16位命令的話,需要分兩次輸入,一開始由于兩條命令的等待時間不夠,導致第二條命令在ML2308尚未空閑(CBUSY仍為低)的時候被送進去,使得命令不能被正確執(zhí)行。所以如果用CBUSY信號來做等待判定的話,需先等到CBUSY變低,再等待它變高之后,才可以送下一條命令。
仿照送命令的方法,同樣可以實現對ML2308音頻數據的讀寫,只需要注意一下命令/數據,左/右聲道的切換。
    至此,ML2308的基本操作(包括與CPU間的指令、音頻數據的交換)及CPU與FLASH之間的數據通訊均已實現。
最后要實現的是ML2308的錄音和播放功能了。先根據datasheet提供的單聲道錄音操作流程,用buffer的MID信號作判定,當MID信號為高,也就是buffer內存儲的數據多于其一半空間時,連續(xù)從buffer中讀取占buffer一半空間的數據,并存入FLASH中。類似的,播放時,當buffer的MID信號為低,連續(xù)送占buffer一半空間的數據給ML2308。單通道錄放的功能很順利就得以實現了,錄音的質量很不錯,真不辜負我花的時間涅!
    于是模仿單聲道的流程,進行雙聲道的錄音。當右聲道的buffer半滿之后,讀取一組左右聲道的數據,連續(xù)寫入FLASH中,并循環(huán)操作16次(將buffer一半的數據存入FLASH中)。但是按照這個流程發(fā)現,右聲道的數據都沒有寫入到FLASH中。沒轍,單步大法!神奇的是,單步進行的時候,發(fā)現有數據從右buffer被獨處,也能被寫進FLASH?駮炓魂囍,仔細查看FLASH的datasheet,發(fā)現這塊年代久遠的FLASH在每個字的寫入至少要16個s,狂汗啊,所以連續(xù)兩次寫入(先左后右)的第二次都不成功,而單步的話這個時間就肯定可以滿足了。只得修改流程,誰叫俺垂涎這塊有現成FLASH的板子咧。找到了問題,這個也是很不難解決滴。流程改成讀左聲道,寫入FLASH,然后再讀右聲道,再寫入FLASH。再試著錄一次,赫赫,就有聲音了。不過涅,這個聲音怎么這么差呢?赫赫,嚴重的丟幀出現了。FLASHFLASH, 又是你老人家惹的禍吧。相比于單聲道,每次寫入FLASH的數據要多出一倍,正是多出的這些個時間內,ML2308的buffer滿了,大量數據沒有被及時的讀出來存入FLASH中,回放的時候就慘不忍聽了。只好再改,唉,偷懶貪便宜,卻被這塊FLASH整得恁慘。既然等到半滿再讀來不及,那就非空就去讀,這樣即使還有丟幀的話,比之前肯定要好不少。就這樣,把流程改為等到右buffer非空(EMP為低), 就去讀并存一組數據,試下來果然效果好了很多。

小結
   哈哈,終于把這個dd給玩通了,接下來就是享受的時間了,于是左右麥克的立體聲錄音,左右line-in的立體聲錄音,左右聲道的混和輸出,左右聲道的立體聲輸出一一玩了個遍?偨Y下來,就我手頭這塊板子,受限于FLASH的讀寫速率,采樣頻率過高的話,音質由于丟幀嚴重也就一般。16bitPCM,16k采樣頻率的立體聲錄音效果最佳;8bit 率PCM 16k的效果次之;而如果對音質要求不高,4bit ADPCM,4k采樣頻率則是最佳選擇。當然,如果FLASH存儲空間足夠,并且讀寫速度跟得上的話(竊以為現在的FLASH的讀寫速度完全可以滿足,畢竟我用的這個寶貝還是上世紀的產物),高采樣率的16bit PCM格式才能把ML2308的能力發(fā)揮到極致吧。
    回顧整個設計流程,一旦實現了FLASH的讀寫操作,ML2308錄音播放功能還是比較容易實現的,畢竟它與CPU的通訊是非常容易滴。而本設計由于受制于FLASH的讀寫速率,最大的力氣花在了優(yōu)化錄音的流程上。如果FLASH讀寫速率得到提升,按照datasheet的流程,立體聲錄放均以MID位作為判定,立體聲的錄放還是很容易實現的。這個片子用作錄音筆里面錄音的質量是可以的了。而且外置FLASH存儲,可以靈活推出多系列不同容量的產品,正適合產品線的優(yōu)化,赫赫。下次公司里其他系列的錄音產品錄音模塊什么的,也都可以拿過來試試了。

2樓: >>參與討論
aile

作者:chen0321:

你好!

請與我(aile)聯系:aaaile@163.com

謝謝1

參與討論
昵稱:
討論內容:
 
 
相關帖子
求U盤讀寫方案!
用T112,有干擾條紋如何調試解決
有哪位大蝦幫忙?急!
huawei
數碼相框解決方案分析報告
免費注冊為維庫電子開發(fā)網會員,參與電子工程師社區(qū)討論,點此進入


Copyright © 1998-2006 udpf.com.cn 浙ICP證030469號