<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 消費電子 > 設(shè)計應用 > 一種基于DAB接收機的MP3播放器設(shè)計方案

          一種基于DAB接收機的MP3播放器設(shè)計方案

          作者: 時間:2011-03-11 來源:網(wǎng)絡(luò) 收藏

          2 原理與思路
          2.1 原理
          中融合解碼功能的如圖2所示。這里主要介紹與解碼相關(guān)的部分。AT91SAM7S64微處理器利用SPI接口的片選線,最多能與4個從屬設(shè)備進行通信。該系統(tǒng)中MCU的4根SPI片選線分別選中ID200、MicroSD卡、STA013以及液晶顯示模塊。RF芯片和ADC分別選用Maxim公司的MAX2170和MAXll91。MCU通過SPI總線將存在SD卡中的音頻數(shù)據(jù)讀取到MCU內(nèi)的緩沖器中,然后再通過SPI總線將數(shù)據(jù)發(fā)送到STA013中進行音頻解碼,解碼后的音頻數(shù)據(jù)流能通過PCM輸出接口送入MAX9850,經(jīng)過D/A轉(zhuǎn)換和耳機功放,最終由耳機輸出。

          b.JPG
          STA013主要是靠I2C總線來傳輸控制信息,串行數(shù)據(jù)線接收音頻數(shù)據(jù)??梢詫⒂蒘DI、SCKR、DATA_REQ三個引腳組成的串行數(shù)據(jù)線,看成是一個只有SIMO(從機輸入主機輸出)沒有SOMI(從機輸出主機輸入)的SPI總線。當DATA_REQ置高時,將MCU緩沖器中的數(shù)據(jù)以盡可能快的速度通過SDI引腳輸入STA013,利用SCKR為解碼芯片提供串行時鐘。當STA013的緩沖區(qū)快溢出時將DATA_REQ置低,數(shù)據(jù)停止傳輸。MCU的I2C總線與STA013的I2C接口相連,利用其傳輸命令、初始化解碼芯片及控制解碼進程。
          2.2 思路
          解碼系統(tǒng)中各模塊的連接如圖3所示。SD存儲卡系統(tǒng)定義了SD和SPI兩種通信協(xié)議,應用時可以選擇其中一種模式。由于本方案中采用的AT91SAM7S64沒有提供硬件的SD總線接口,但提供了SPI總線接口,為了避免用軟件方式將I/O口模擬為SD總線接口,這里選用SPI總線模式進行Micro SD卡與MCU之間的命令和數(shù)據(jù)通信。SD卡上電時總是處于SD模式下,如果系統(tǒng)想使用SPI模式進行通信,可以在SD卡發(fā)送復位命令CMD0期間,將主控片選(SD_CSN)信號置低,從而進入SPI模式。通過掉電再上電,能夠使SD卡系統(tǒng)重新回到SD模式。MicroSD卡是按簇存儲的,一簇中又有32個扇區(qū),每個扇區(qū)可存放512個字節(jié)的數(shù)據(jù)。由于SD卡、STA013和液晶都是通過SPI總線與MCU進行通信,所以要處理好總線通信的時序問題。在SD卡初始化時打開的SPI總線,需要在獲取卡信息后關(guān)閉,然后打開LCD的SPI接口;在MP3節(jié)目播放時,需要關(guān)閉LCD的SPI,打開STA013的SPI總線。

          d.JPG



          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();