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

          新聞中心

          EEPW首頁 > 模擬技術(shù) > 設(shè)計應用 > ADuCM3027/ADuCM3029中的SensorStrobe、超低功耗、時間同步傳感器數(shù)據(jù)采樣

          ADuCM3027/ADuCM3029中的SensorStrobe、超低功耗、時間同步傳感器數(shù)據(jù)采樣

          作者: 時間:2017-07-08 來源:電子產(chǎn)品世界 收藏

            軟件概述

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

            本部分介紹示例系統(tǒng)的軟件流程。

           

            圖6.初始化和配置步驟

            圖7.通過SPI讀取FIFO(利用讀命令):從ADXL363讀取數(shù)據(jù)

            源代碼片段

            本部分提供關(guān)于配置和數(shù)據(jù)讀取的參考源代碼片段。

            pREG__是板支持包引用寄存器的方法。在集成電源管理的ADuCM302x超低功耗ARM Cortex-M3 MCU硬件參考中,同一寄存器稱為_。

            SensorStrobe的RTC配置

            ADXL363配置

            在初始化階段,ADXL363由/ADuCM3029通過SPI配置。配置期間的每次SPI處理均包括來自/ADuCM3029的2字節(jié)傳輸。第一個字節(jié)給出ADXL363寄存器地址,第二個字節(jié)給出要寫入寄存器的值。

            步驟顯示在下面的adxl_write_reg函數(shù)源代碼片段中。代碼參見adxl_write_reg部分。

            adxl_configure函數(shù)突出說明了配置ADXL363所需的寄存器寫操作,示例應用中使用了這些操作。代碼參見adxl_configure部分。

            關(guān)于寄存器和設(shè)置的信息,參見ADXL363數(shù)據(jù)手冊。

            adxl_write_reg

            ADXL363 FIFO讀取

            當ADXL363達到FIFO水印(960字節(jié))時,會產(chǎn)生一個中斷來喚醒MCU,然后通過SPI清空ADXL363 FIFO。

            系統(tǒng)功耗分析

            /ADuCM3029主機處理器負責以下操作:

            ? 在不同功耗模式(視需要而定,例如活動模式和休眠模式)之間切換。

            ? 配置RTC產(chǎn)生采樣觸發(fā)脈沖并發(fā)送給ADXL363。

            ? 控制與ADXL363的SPI通信。

            ? 存儲來自ADXL363的原始數(shù)據(jù)(本應用筆記所述系統(tǒng)未實現(xiàn)結(jié)果數(shù)據(jù)的處理或發(fā)送)。

            ADXL363傳感器負責以下操作:

            ? 當ADuCM3027 /ADuCM3029觸發(fā)時,采樣并存儲原始傳感器數(shù)據(jù)到FIFO緩沖器中。

            ? 響應主機處理器的SPI通信。

            ? 當FIFO緩沖器填滿時,中斷并喚醒主機處理器。

            功耗測量

            下述步驟說明如何監(jiān)視系統(tǒng)的電流消耗:

            1. 將應用程序代碼載入MCU。

            2. 將信號源的正端連接到萬用表。

            3. 將萬用表的另一端連接到EVAL-ADuCM3029 EZ-KIT的JP6連接器。

            4. 將信號源的GND連接到EVAL-ADuCM3029 EZ-KIT的GND。

            5. 移除所有跳線。

            6. 按電路板上的復位(RESET)按鈕。

            7. 監(jiān)視源表和萬用表上的電流消耗。

            表2顯示了ADuCM3027 /ADuCM3029和ADXL363在本應用筆記所用不同功耗模式下的電流消耗。

            圖8.功耗測量的系統(tǒng)連接圖

            圖9和圖10分別顯示了在傳感器數(shù)據(jù)收集期間,使用和不使用SensorStrobe機制的功耗差異。所有測量都是在ADuCM3027/ADuCM3029 EVAL-ADuCM3029 EZ-KIT上進行的。

            使用SensorStrobe的功耗測量

            圖9顯示了使用SensorStrobe方法的演示系統(tǒng)的電流曲線。SensorStrobe支持主機處理器保持休眠模式,同時產(chǎn)生觸發(fā)脈沖以驅(qū)動傳感器捕捉和存儲數(shù)據(jù)樣本。測得的平均電流約為4.2 μA。

            圖9.使用SensorStrobe的功耗測量

            不使用SensorStrobe的功耗測量

            圖10顯示了不使用SensorStrobe的樣本采集系統(tǒng)的電流曲線。在沒有SensorStrobe機制的情況下,主機處理器在RTC中斷時喚醒并引起GPIO引腳跳變,從而產(chǎn)生觸發(fā)脈沖。測得的平均電流約為75 μA。

            圖10.不使用SensorStrobe的功耗測量

            結(jié)語

            SensorStrobe機制使得傳感器采樣系統(tǒng)的電流消耗大幅降低。在本應用筆記所述的演示系統(tǒng)中,平均電流消耗從75 μA降至4.2 μA。

            ADuCM3027/ADuCM3029的SensorStrobe機制可幫助設(shè)計人員利用ADXL363的低功耗特性,使功耗降低10倍以上。

            ADuCM3027/ADuCM3029的SensorStrobe機制對超低功耗系統(tǒng)很有利,可降低整體電流消耗,延長系統(tǒng)的電池壽命?!敖Y(jié)構(gòu)健康監(jiān)控(SHM)”部分、“醫(yī)療保健監(jiān)護”部分和“環(huán)境檢測”部分提及了一些可以獲益于此的應用。

            結(jié)構(gòu)健康監(jiān)控(SHM)

            SHM中的傳感器節(jié)點常常部署在無電源的結(jié)構(gòu)中,例如橋梁、塔或偏遠場所。定期更換電池是一個麻煩,會提高壽命周期的維護成本。電池壽命很長的傳感器節(jié)點可顯著降低維護成本。

            醫(yī)療保健監(jiān)護

            醫(yī)療保健監(jiān)護應用涉及到身體姿勢、人員位置和病人生命體征的監(jiān)測。此類監(jiān)護設(shè)備通常是可穿戴式或植入式,降低系統(tǒng)電流消耗可提升設(shè)備的電池狀況。

            環(huán)境檢測

            各類環(huán)境檢測應用,例如空氣污染監(jiān)測、森林防火檢測、滑坡檢測等,要求將傳感器節(jié)點部署在偏遠地區(qū)。這些偏遠地區(qū)常常缺少供電線路。延長此類節(jié)點的電池壽命可降低維護成本。


          上一頁 1 2 下一頁

          關(guān)鍵詞: ADI ADuCM3027

          評論


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