<strike id="0k9r3"><p id="0k9r3"></p></strike>
  • <form id="0k9r3"></form>
    <nav id="0k9r3"></nav>
    <em id="0k9r3"><p id="0k9r3"></p></em>
  • <tr id="0k9r3"><source id="0k9r3"></source></tr>
    <form id="0k9r3"></form>
    <sub id="0k9r3"></sub>

      <sub id="0k9r3"><address id="0k9r3"></address></sub>
      1. <form id="0k9r3"></form>

        24小時聯系電話:18217114652、13661815404

        中文

        您當前的位置:
        首頁>
        電子資訊>
        技術專題>
        使用ADS1115

        技術專題

        使用ADS1115


        使用ADS1115

        ADS1115是一款精密的16ADC,具有四個多路復用輸入-您可以單獨使用每個輸入,也可以成對使用每個輸入進行差分測量。它具有內部校準的基準,可實現高精度。

        這個ads1115教程向您展示如何設置庫來驅動芯片,以及如何使用不同的PGA增益設置獲取讀數。它還介紹了即使僅使用單電源供電的設備也能夠測量負電壓的方法。這使其可用作電流吸收器或電流源測量設備。

        有關芯片的重要信息:

        具有16位分辨率。

        可以根據PGA設置檢測到0.187mV7.8uV。

        可以采樣8860 SPS

        具有內部參考電壓。

        具有內部PGA(可編程增益放大器)。

        該設備的典型精度為0.01%(但最大精度為0.15%)。該精度包括所有誤差源(參考電壓,增益誤差,失調和噪聲)。

        ADS1115接線板

        ADS1115詳細信息

        ADS1115規格

          范圍

        價值

          電源電壓(V DD

        2V0?5V5

          絕對最大V DD

        -0.3V?7V0

          測量范圍

        -300mV?Vdd + 300mV

          界面

        I2C

          I2C

        100kHz,400kHz,3.4MHz

          解析度

        16位(±15位)

          數據速率

        8?860 SPS

          多路輸入的數量

        4

          有功電流

        ?150uA(最大200uA

          掉電電流

        0.5uA(最大2uA

          偏移誤差[1]

        ±3 LSB

          積分非線性(INL[1]

        1 LSB

          增益誤差[1][2],@ 25°C

        0.01%(典型值)0.15%(最大)

          I2C地址(可選)

        0x48、0x490x4a,0x4b

          工作溫度

        -40°C?125°C

        [1] FSR±2.048V
        [2]
        包括來自參考電壓和PGA的所有誤差。

        ADS1115框圖

        數據表中的圖片

        ADS1115引腳排列

        ADS1115精度

        有趣的圖顯示了設備的真正功能,數據表中的圖19所示:

        總誤差與輸入信號

        注意系統的準確性如何包括所有錯誤源:

        獲得錯誤,

        差分輸入誤差

        偏移誤差

        和噪音。

        ADS1115 I2C尋址

        您可以使用四個地址之一來設置ADS1115,因此可以在單個I2C總線上放置4ADS1115芯片:

            0x48、0x49、0x4a,0x4b

        尋址控制是不常見的,因為您只需要使用一個輸入引腳作為地址控制引腳即可。

        通常,您需要兩個輸入才能在4個地址之間切換,但是ADS1115 16ADC使用的是巧妙的方案。對單個地址輸入進行連續采樣,如果將其連接到GND,VDD,SDASCL,則可以分別從0x48、0x490x4a0x4b設置地址。

        ADS1115省電

        連續模式

        在連續轉換模式下,ADS1115的靜態電流高達150uA。在這種模式下,您可以讓ADS11158Hz860Hz之間采樣。

        單發模式

        ADS1115的默認模式是單次模式,該模式下器件喚醒,進行測量然后返回睡眠狀態。睡眠時,該芯片僅消耗0.5uA的典型電流。由于設備在上電時進入此模式,因此不會產生啟動電流的激增。

        注意:命令界面在掉電模式下仍處于活動狀態,因此您仍然可以從芯片中獲取數據!

        該芯片和模式非常適合需要精確度的電池供電設備。由于超小型封裝(X2QFN)的尺寸僅為2 mm x 1.5 mm x0.4毫米

        性能與噪聲之間的權衡

        低速平均

        如果以低速運行ADS1115,則內部采樣率不會降低,因為這是delta sigma轉換器通過過采樣操作的方式。內部振蕩器設置為1MHz,并降低至ADC時鐘的250kHz

        在活動模式下,將連續收集樣本。這些樣本在內部進行平均,從而改善了噪聲性能。這也節省了您的處理時間,即您不必在微控制器中執行平均。

        因此,如果要獲得最佳的噪聲性能,請以8Hz(最低采樣率)運行采樣率。

        低采樣率的唯一缺點是設備必須連續開啟,因此必須始終使用電源。如果您更關心節省功率,而又不太擔心噪聲性能,則可以實施突發模式操作。

        高速Speed Burst模式

        在微控制器的控制下,您可以實現突發模式以節省功耗。數據表建議您使用連續模式下使用功率的1/100。這樣您就可以平均使用1.5uA的電流。

        這類似于焦耳小偷電路,在該電路中,存儲在電感器中的能量突發會在短時間內使LED產生脈沖。您可以獲得足夠的可用光,但平均功率降低了。

        為了如上所述模擬8SPS速率,您將使ADS1115125ms1 / 125e-3 = 88 Hz拍攝一次單次信號(您可以通過微控制器代碼中的計時器設置此重復率)。

        您還可以將ADS1115SPS速率設置為860Hz,以獲得高速捕獲。當然,您可以將兩次捕獲之間的時間間隔更改為每秒或每小時,以進一步節省電量。

        ADS1115處于低電流模式時,單次讀數僅需花費1.2ms的時間,剩下的時間就不存在了。這是ad1115轉換延遲,并在數據表中進行了說明。

        注意: ADS1115大約需要25us上電-很好!

        使用ALERT / READY引腳

        ALERT / Ready引腳有兩種用途。第一個是比較器閾值警報(默認模式)。第二個是“ ADC讀取準備就緒警報。您必須設置一些寄存器以操作ADC就緒ALERT模式。

        閾值檢測

        ADS1115有一個內部比較器,可將信號輸出到ALERT引腳(默認模式)。您可以使用此功能自動檢測超出范圍的條件(由閾值寄存器設置)。COMP_QUE寄存器允許您指定斷言警報之前有多少轉換超出上限或下限。

        ALERT引腳為開漏引腳,因此需要上拉電阻。

        比較器有兩個閾值(高和低)。當輸入信號在閾值之間時,ALERT信號設置為高電平(窗口比較器模式)。您可以使用COMP_POL反轉Alert輸出信號。

        ADC就緒中斷信號

        該引腳的另一種用途是用作ADC就緒信號。如果將引腳設置為ADC就緒信號,則可以將其饋入微控制器上的外部中斷引腳,以便獲取ADC讀數。

        檢測ADC是否已完成的另一種方法是讀取寄存器值(配置寄存器位15),但是由于要進行I2C事務,因此這當然會花費更多的時間。

        注意:轉換就緒信號是一個8us寬(高)脈沖,表示轉換在下降沿可用。

        要將芯片設置為轉換就緒模式,請設置以下寄存器:

        將高閾值寄存器的MSB設置為1
            [
        例如,Hi_thresh = 0x8000]。
        將低閾值寄存器的MSB設置為0
            [
        例如,Lo_thresh = 0x0000]。
        將比較器隊列控制位設置為000x11以外的任何值)
            [
        例如COMP_QUE [10] = 0]。
           
        配置寄存器&=配置寄存器0x0003; //清除b0,b1。

        輸入多路復用器

        您可以使用輸入多路復用器在4個單端輸入0?FSR或兩個差分輸入±FSR之間選擇。但是,還有另一種MUX模式,該模式使用AIN3作為AIN0,AIN1AIN2的參考作為該參考的差分輸入。

        您可以在下圖的左側看到MUX

        從圖中還不清楚,但是MUX具有3種模式:
        輸入信號參考地(所有4個輸入都是可選的)
            AIN0
        +)?GND-),
            AIN1
        +)?GND-),
            AIN2
        +) ?GND-)。
            AIN3
        +)?GND-)。
        兩個差分輸入:
            AIN0
        +)?AIN1-),
            AIN2
        +)?AIN3-)。
        三個參考輸入:
            AIN0
        +)?AIN3-),
            AIN1
        +)?AIN3-),
            AIN2
        +)?AIN3-)。
        請參見數據表配置寄存器以控制此操作。

        PGA增益設定

        ADS1115中的增益設置寄存器確實具有標準值,例如x2 x4等(除了最大的2/3值),更容易想到滿量程讀數的分辨率和量程功能。數據表的排列方式是這樣的-因為該器件使用內部固定的基準電壓源。

        您只需要選擇接近所測信號的最佳范圍即可(或在前面添加一個放大器來設置范圍)。

        您不能像其他ADC一樣通過添加外部基準電壓來更改FSR值。范圍和分辨率如下表所示。

        滿量程FSR

        重塑(1 LSB

          ±6411毫伏

        187.5uV

          ±4096毫伏

        125uV

          ±2048毫伏

        62.5微伏

          ±1024毫伏

        31.25uV

          ±512毫伏

        15.625uV

          ±256毫伏

        7.8125微伏

        滿量程分辨率

        盡管ADS1115具有16位分辨率,但它使用二進制補碼來表示一個值(MSB表示符號位)。這實際上是一個15位分辨率的ADC,能夠進行負電壓和正電壓測量(在GNDV DD的電源范圍內!

        這樣,從GND到正滿量程電壓的輸入信號就具有15位的分辨率,而從GND到負滿量程電壓的分辨率則為15位。但是,ADS1115只能測量低于地面的-300mV。

        當使用差分模式和電平轉換運算放大器將輸入信號移至GDNV DD范圍內時,才真正使用±15bit分辨率。有一個例外:

        要獲得±FSR,您可以使用256mV范圍,或使用輸入運算放大器來對輸入進行電平轉換和縮放,或者使用差分輸入)?;蛘撸瑢⒁粋€輸入用作其他兩個輸入的參考。

        注意:從上表中可以看到,15位分辨率仍然是非常準確的分辨率。

        如上所述,可測量的輸入電壓下降到負300mV。

        在最低PGA增益值下,您可以使用器件的滿量程分辨率(±256mV),這也適合ADS1115-300mV測量能力。

        因此,即使僅使用單個電源芯片,您也可以制造一種能夠測量灌電流和灌電流的電流測量設備。為此,您將使用合適的測量電阻器并對其進行差分測量。負電壓能力測試結果在這里。

        選擇較高的PGA增益仍然可以讓您以較低的分辨率測量負值。

        關于PGA設置的注意事項

        可編程增益設置寄存器(PGA)允許8個值,但最后3個值均提供相同的增益,因此對于PGA值為5、67FSR256mV。

        因此,共有6種可用設置,允許FSR分別為±6.144V,±4.096V±2.048V,±1.024V,±0.512V,±0.256V。

        輸入電壓范圍

        絕對最大電壓輸入為:

             -0.3V?7V

        測量電壓范圍是:

            GND-0.3V?VDD + 0.3V

        請記住,測量范圍是固定的,因此最大可測量輸入電壓為±6.144V。

        測試負電壓輸入

        我曾是 不確定是否可以測量負電壓,尤其是使用ADS1115的單電源供電時。數據表確實表明它能夠在-256mV的范圍內進行測量,并且在-300mV以上的電壓下不會爆炸。

        事實證明這是對的,因為我通過將-5V電源小心地連接到10k電位計并調整抽頭(確保其不低于-300mV)來測試輸入,其值是-100mV,-260mV 

        這是-260mV輸入的結果:

        A1-260.437mV PGA6144 mv acc187.5uV

        A1-260.375mV PGA4096 mv acc125uV

        A1-260.375mV PGA2048 mv acc62.5uV

        A1-259.969mV PGA1024 mv acc31.25uV

        A1-259.234mV PGA512 mv acc15.625uV

        A1-256.016mV PGA256 mv acc7.8125uV

        警報/ RDY 0

        這是-100mV(大約)輸入的結果:

        A1-104.625mV PGA6144 mv acc187.5uV

        A1-104.500mV PGA4096 mv acc125uV

        A1-104.500mV PGA2048 mv acc62.5uV

        A1-104.531mV PGA1024 mv acc31.25uV

        A1-104.484mV PGA512 mv acc15.625uV

        A1-104.499mV PGA256 mv acc7.8125uV

        警報/ RDY 0

        對于-260mV測量,您可以看到256mVFSR達到了滿量程,這是您所期望的-這是針對256mVPGA增益設置(因為260mV高于256mV的量程能力)。

        您還可以看到,對于所有PGA增益,都正確測量了-100mV讀數。

        因此,這證實了ADS1115無需單獨的電源即可讀取低至-256mV最小測量能力的負電壓。

        注意:此輸出的ADS1115 arduino代碼可在頁面的下方找到。

        ADS1115 ADC FSR

        正輸出的滿量程值為:

                0x7FFF

        負輸出的滿量程值為:

                0x8000

        ADC的正值是0x0001,負值是0xFFFF(負20xFFFE)。

        警告:對于單端測量,在測量0V時,由于器件失調,您仍然會獲得負ADC值。

        差速器怎么處理?

        一種 差分測量使用兩個輸入,一個用于低端,一個用于高端電壓,因此您可以測量電路中任何一點的電壓差。正常的單端測量(Ardiuno ADC)只能測量參考到地的電壓。

        您可以具有一組差分輸入或一組差分輸入(如下所示):

        兩個差分輸入:
            AIN0
        +)?AIN1-),
            AIN2
        +)?AIN3-)。

        其他配置在這里。

        通常,您需要跨小而準確的電阻進行測量以確定電流。ADS1115可以測量正負電壓。

        差分測量是通過使用設備內的差分放大器(運算放大器)實現的瞬時測量。此測量的最大優勢在于,由于跨被測元件的噪聲信號相同,因此消除了共模噪聲誤差。因此,噪聲被減去。

        使用差分測量的另一個原因是,您可能希望測量未參考到地的電壓,例如,電流檢測電阻器未在一側接地,而是在電路中的其他位置。這就是所謂的高端測量,即兩個測量電壓都遠不接近零。

        軟件

        Arduino IDE:版本1.8.9+

        I2Cdev

        I2Cdevlib具有ADS1115庫代碼以及許多其他設備的代碼。

        該庫具有很多功能,受支持的芯片,并且可以在多個處理器上運行,但是安裝涉及更多一點,因此您不能使用自動Arduino zip文件安裝程序。

        ADS1115 Arduino

        解壓縮文件(ic2devlib-master),然后導航到ic2devlib-master中的Arduino目錄。將目錄ADS1115I2Cdev復制到Arduino庫目錄(通常在Windows上):

            C\ Users \ <用戶名> \ Documents \ Arduino \ libraries

        庫代碼警告

        256mV范圍的常數已設置為四舍五入的值。

        導航至ADC1115.h并更改以下行:

            #define ADS1115_MV_0P256 0.007813
            #define ADS1115_MV_0P256B 0.007813
            #define ADS1115_MV_0P256C 0.007813

           

            #define ADS1115_MV_0P256 0.0078125
            #define ADS1115_MV_0P256B 0.0078125
            #define ADS1115_MV_0P256C 0.0078125

        硬件

        組件

        Arduino Uno R3。

        ADS1115轉接板。

        連接線。

        100nF電容器。

        1萬鍋。

        連接數

        為了進行測試,請使用Arduino Uno并按如下所示進行連接:

        Arduino

        ADS1115

          5

        VDD

          地線

        地線

          A5

        SCL

          A4

        SDA

          地線

        地址

          2

        警報

          10k鍋的雨刷器。

        A1

        注意:將10k電位器的兩端連接到5VGND。
        5VGND之間連接100nF電容器。 

        ADS1115面包板布局

        使用ADS1115Arduino示例

        草圖示例1

        您可以使用以下程序通過輪詢來測試ADS1115

        要查看注冊狀態信息,請對ads1115.h進行編輯,以通過取消注釋以下行來允許調試輸出:

            //define ADS1115_SERIAL_DEBUG

        在串行監視器中鍵入字母s以查看寄存器狀態。

        注意:我更改了pollAlertReadyPin()代碼,以便在失敗時重新初始化ads1115。打開和關閉PC時,將重置寄存器,并將隊列寄存器設置為11:禁用警報就緒引腳?,F在,如果發生此錯誤,則芯片將正確重啟。

        復制草圖

        // I2C設備類(I2Cdev)演示ADS1115類的Arduino草圖

        //讀取

        ADS1115的兩個差分輸入并以mV表示值的示例// // Eadf2016-03-22

        //

        //變更日志:

        // 初始版本

        //

        //修改了JFM,以重新初始化和輸出多個PGA分辨率,以便

        //比較讀數。同樣,當調試處于活動狀態時,串行接收's'

        //輸出寄存器值。

        請輸入搜索關鍵字

        確定
        国产在线视频在线