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

          新聞中心

          EEPW首頁 > 模擬技術(shù) > 設(shè)計應(yīng)用 > 基于SoC發(fā)射器的簡化RF遙控器設(shè)計

          基于SoC發(fā)射器的簡化RF遙控器設(shè)計

          作者: 時間:2012-03-03 來源:網(wǎng)絡(luò) 收藏
          一個可選的LED燈用于按鍵操作時的指示。總的BOM(不包括可選的LED燈)包括一顆Si4010 IC、一顆旁路電容、帶板載天線和電容的PCB。Si4010不僅總BOM數(shù)量少于基于SAW的(3比24),而且Si4010也無需任何元件,因為所有元件都集成在了芯片內(nèi)部。此外,Si4010器件的自動天線調(diào)諧功能保證了穩(wěn)定可靠的輸出功率,并且通過放寬制造工藝中的公差范圍(因為高精確的天線匹配不再需要),降低了系統(tǒng)成本。

          使用Si4010的遙控器簡圖


          圖6:使用Si4010的簡圖

            使用Si4010設(shè)計的克服了傳統(tǒng)所面臨的許多問題。Si4010利用天線調(diào)諧特性消除了困難且繁瑣的匹配問題,同時也降低了高成本的RF設(shè)計費用,縮短了上市時間。硬件設(shè)計的任務(wù)降低到:為給定遙控器幾何形狀選擇最佳的PCB天線,為Si4010、PCB板載天線、旁路電容、按鍵和電池進行合理布局和布線。圖7是434MHz Si4010遙控器PCB板。

          基于SoC發(fā)射器的簡化RF遙控器設(shè)計

          圖7:434MHz Si4010遙控器PCB板

            使用集成在12kB ROM中的Si4010函數(shù)庫進行遙控器軟件開發(fā)是非常容易的。該庫包括按鍵服務(wù)、AES加密、編碼模塊、電池電壓檢測和其他有用的遙控功能,從而降低代碼大小,加速上市。

          基于SoC發(fā)射器的簡化RF遙控器設(shè)計


          圖8:Si4010遙控器控制流程圖

            圖8是遙控器應(yīng)用中Si4010控制流程圖。安裝電池或通過按鍵從待機模式喚醒后,Si4010自動啟動引導過程,它從非易失性存儲器中復(fù)制用戶代碼到RAM中,然后運行用戶代碼。引導完成后,設(shè)備的數(shù)字部分,首先初始化(MCU、中斷、定時器、外設(shè)等),然后模擬部分使用ROM庫中的函數(shù)進行初始化。例如調(diào)制類型(OOK或FSK)、數(shù)據(jù)率、PA發(fā)射等級、載波頻率等都在這個階段設(shè)定。

            當初始化完成后,程序進入主循環(huán)并監(jiān)視按鍵操作,進行事件處理。依賴于哪一個按鍵被按下,程序決定做什么,并根據(jù)按鍵構(gòu)建適合的數(shù)據(jù)包。然后,Si4010微調(diào)頻率并發(fā)射數(shù)據(jù)包。一旦信息發(fā)射完成,Si4010完全關(guān)閉并轉(zhuǎn)入超低功耗待機狀態(tài)。在待機模式,芯片耗電少于10nA(25°C溫度下),并能夠從任意GPIO按鍵按下中喚醒,重新開始處理。


          上一頁 1 2 3 下一頁

          關(guān)鍵詞: SoC 發(fā)射器 RF 遙控器

          評論


          相關(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); })();