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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于MS320C6678的多路同步時鐘信號設計

          基于MS320C6678的多路同步時鐘信號設計

          作者: 時間:2014-07-10 來源:網(wǎng)絡 收藏

            

          本文引用地址:http://www.ex-cimer.com/article/249530.htm

           

            由于C6678的核時鐘由CDCM6208提供,所以對CDCM6208的設置只能由另外一個處理器完成,只要該處理器具有SPI或者I2S接口即可。本文使用低功耗的芯片C6747來實現(xiàn)多CDCM6208的設置。C6747和CDCM6208的接口如圖4所示,采用標準4線制SPI接口控制,為了避免干擾提高傳輸可靠性,在SPI的片選信號的寫信號分別上拉和下拉,這樣在空閑下其引腳狀態(tài)不會被干擾。在控制CDCM6208之前,需要對其進行復位,圖中使用一個通用GPIO引腳控制,當CDCM6208配置成功后,會提供一個狀態(tài)檢測信號,該信號連接到C6747的GPIO引腳,用來判斷是否正確配置。圖中C6747還使用一個引腳控制CDCM6208的低功耗設置,當該引腳為高時,CDCM6208進入低功耗模式。

            4 軟件設計

            由于系統(tǒng)采用C6747控制CDCM6208時鐘信號,所以C6747的軟件是系統(tǒng)整個初始化的關鍵,C6747的初始化軟件主要包括對CDCM6208的復位、配置和檢測以及對C6678的復位、C6678外掛Flash的復位等工作。整個系統(tǒng)的軟件流程如圖5所示。

            

           

            上電啟動后,C6747軟件加載成功后,復位CDCM6208,為確保復位成功,C6747要等待10 ms才能通過SPI接口配置CDCM6208。配置完成后,C6747可以查詢CDCM6208的狀態(tài)輸出引腳,檢測是否配置成功。如果配置失敗,重復復位、配置、檢測這幾個步驟。配置成功后,表明CDCM6208已經(jīng)輸出準備時鐘到C6678,但在此之前,C6678仍然處于復位狀態(tài)。由于C6678的程序保存在片外Flash中。所以,C6747要首先復位Flash,等待其復位后,再復位C6678,查詢C6678的輸出狀態(tài),確定C6678是否正常下作。如果輸出不正常,仍然重復復位Flash、復位C6678和檢測這幾個步驟,直到初始化成功。

            結語

            多核處理器由于其接口豐富,運行頻率較高,對時鐘設計要求較高,一般要求一個高精度的時鐘通過分頻/倍頻方式產(chǎn)生多路時鐘到相應的接口。本文以多核數(shù)字信號處理器C6678為應用對象,通過CDCM6208產(chǎn)生多路時鐘,提供到多核的核時鐘、DDR3、RapidIO等時鐘信號。通過單核低功耗小成本處理器C6747實現(xiàn)對整個時鐘電路的復位、設置和檢測。本文介紹的時鐘配置方法具有通用性,對同類產(chǎn)品的時鐘設計方案具有一定的參考價值。

          模擬信號相關文章:什么是模擬信號


          分頻器相關文章:分頻器原理

          上一頁 1 2 下一頁

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁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); })();