ADC這個東西好神奇,作為模擬到數字的樞紐,值得研究。我昨天寫了MCP,今天是TI的,其實手頭還有別的,但是沒有必要了,再寫一個SPI的就全了。
Ti.ADS1115-15Bit差分ADC
MCP3421-18bit ADC 調試
之前水平不高,寫的東西不太行,這篇其實是對之前的一個補充,其實15bit也沒有錯,因為有些條件會丟失一位。
后面有一段計算,詳細的去看數據手冊。
以ADS1115的框圖開始
增加增益還可以降低輸入參考噪聲,這在測量低電平信號時特別有用。調節PGA。
配置的時候需要三個字節,在編程的時候需要注意
在從機發送模式下,主機發送的第一個字節是 7 位從機地址,后跟高 R/ W位。
該字節將從設備置于發送模式并指示正在讀取 ADS111x。
從機發送的下一個字節是寄存器的最高有效字節,由寄存器地址指針位 P[1:0] 指示。
該字節后面是來自主機的確認。然后,從機發送剩余的最低有效字節,隨后是主機的確認。主設備可以在任何字節之后通過不確認或發出 START 或 STOP 條件來終止傳輸。
A0 和 A1 的值由 ADDR 引腳決定
看我標紅的地方,以前一直不理解為什么有高有低,現在我理解了,是因為這個地方兩個狀態都有可能,要看外部的設置。
后面的兩位就是不確定的數據位
這些都是
中間是范圍,周圍兩個是溢出的
看換算
后面兩個位是要配置的
前面的位都不管,后面的位是兩位,是寫明要操作的寄存器
這個讀取的時候是很簡單的,就是16個位
這個寄存器有點復雜
這個是第一個OS,可寫可讀,上面已經說明作用了
這個是1115才有的多功能MUX
就是個多功能的開關
一個極接地,另外一個接輸入,也就是構成了單端的輸入,因為一段已經是確定的。
這個是PGA的功能,他的粒度是比MCP的小的
在這里
還是得TI,16位干到了和MCP18位一樣的效果
這個是一個轉換速率,通過這個合理的選擇可以抑制不少噪音
后面的我覺得沒有什么作用,好像我沒有想到有什么應用。
其實也不是完全沒有用,就是這里可以作為一個中斷的引腳來節省資源
真實的連接可能是這樣的
ADS111x 的全差分電壓輸入非常適合連接具有較低源阻抗的差分源,例如熱電偶和熱敏電阻。盡管 ADS111x 可以讀取雙極性差分信號,但這些器件不能接受任一輸入上的負電壓。 這句話有點拗口,意思可能是不可以直接接負電壓。單端口的情況下不可以直接接負電壓。
在MCP里面也是
單端輸入不準是負數
ADS111x 在轉換期間消耗瞬態電流。0.1μF 電源旁路電容器可提供電源所需的瞬時額外電流。 SDA 和 SCL 線上都需要上拉電阻,因為 I 2 C 總線驅動器是漏極開路的。這些電阻器的大小取決于總線運行速度和總線線路的電容。電阻值越高,功耗越低,但會增加總線上的轉換時間,從而限制總線速度。較低阻值的電阻可實現更高的速度,但代價是功耗更高。長總線具有更高的電容,并且需要更小的上拉電阻來補償。不要使用太小的電阻,因為總線驅動器可能無法將總線拉低。 單端信號范圍從 0 V 到正電源或 +FS,以較低者為準。 負電壓不能施加到這些器件,因為 ADS111x 只能接受相對于地的正電壓。 ADS111x 在輸入范圍內不會失去線性度。 比較好玩的是這個:通過適當設置 MUX[2:0] 位,ADS1115 還允許 AIN3 作為測量的公共點。
那就是這個,注意,不是直接接地
AIN0、AIN1 和 AIN2 都可以相對于 AIN3 進行測量。在此配置中,ADS1115 通過輸入運行,其中 AIN3 作為公共點。此功能提高了單端配置的可用范圍,因為當GND < V (AIN3) < VDD 時允許負差分電壓;然而,不提供共模噪聲衰減。
這個地我也說不明白
二極管的電流處理能力有限,并且長時間超出電源軌約 300 mV 的模擬輸入電壓可能會永久損壞 ADS111x。防止過壓的一種方法是在輸入線上放置限流電阻。ADS111x 模擬輸入可承受高達 10 mA 的連續電流。
噪音什么的,我就不細說了。
噪聲分量的幅度通常小于實際傳感器信號。使用截止頻率設置為輸出數據速率或高 10 倍的一階 RC 濾波器作為系統設計的一般良好起點。
高端的型號有引腳沒有全部使用,怎么辦?
浮動未使用的模擬輸入,或將未使用的模擬輸入連接到中間電源或 VDD。可以將未使用的模擬輸入連接到 GND,但可能會產生比以前的選項更高的泄漏電流。可以直接連到VDD浮動 NC(未連接)引腳,或將 NC 引腳連接到 GND。如果未使用ALERT/RDY 輸出引腳,請將該引腳懸空或使用弱上拉電阻將該引腳連接至 VDD。
寫入配置寄存器以將 ADS111x 設置為連續轉換模式,然后讀取轉換結果,請按以下順序發送以下字節。
基于電阻分流的電流測量解決方案廣泛用于監測負載電流。低側電流分流測量與總線電壓無關,因為分流共模電壓接近地。
負載電流通過測量分流電阻兩端的電壓來確定
計算
對接地參考信號進行電平轉換,以允許在使用單極電源時進行雙向電流測量。
分流電阻器 V SHUNT兩端的電壓由共模電壓 V CM進行電平轉換
也就是這樣的
也就是前面是控制OP在正常的工作范圍里面,后面是一個放大的同相
最后面加入ADC之前是一個RC濾波,要求在ADC 差分輸入電壓,定義成Vcm-Vout。
分流電阻器 (R SHUNT ) 是與負載串聯插入的精確電阻。
如果分流器兩端的絕對壓降 |V SHUNT | 占總線電壓的百分比較大,則壓降可能會降低整體效率和系統性能。
如果 |V分流| 太低,測量小電壓降需要仔細設計并正確選擇 ADC、運算放大器和精密電阻。
確保分流端子處的絕對電壓不會導致違反運算放大器的輸入共模電壓范圍要求。
由于電流流過分流電阻,分流電阻上的功耗會增加溫度。為了最大限度地減少溫度變化引起的測量誤差,選擇低漂移分流電阻。
為了最大限度地減少測量增益誤差,選擇具有低容差值的分流電阻。
要消除雜散接地電阻引起的誤差,使用四線開爾文連接的分流電阻。
R 12 3 4來調節運放的共模電壓
如果 Vout連接到 ADC 正輸入 (AINP),且 Vcm連接到 ADC 負輸入 (AINN),則 Vcm將作為 ADC 的共模電壓出現。
如果 Vcm設置為中間電源 (Vdd / 2),則此配置允許偽差分測量并使用 ADC 的最大動態范圍。
可以使用連接 VDD 和 GND 的電阻分壓器(后接緩沖放大器)來生成 V CM。經典玩法
后面的濾波
還添加了兩個共模濾波電容器(Ccm1和 Ccm2),以提供高頻共模噪聲分量的衰減。選擇比這些共模電容器至少大一個數量級 (10 倍) 的差分電容器 Cdiff ,因為這些共模電容器的不匹配會將共模噪聲轉換為差分噪聲。
看個RC就好了
自帶的數字濾波器也是差不多
完美
地址最方便就是接地了,也就是0x48的地址
我們對最重要的配置寄存器來一些封裝吧
最后的寄存器的樣子就是這樣
使用的時候可以這樣寫
函數定義,函數名為ADS1115_init。這個函數接收三個參數:
I2C_HandleTypeDef *hi2c:這是一個指向I2C句柄類型的指針,用于操作I2C設備。 uint16_t Addr:這是一個無符號16位整數,表示ADS1115設備的地址。 ADS1115_Config_t config:這是一個ADS1115配置結構體,包含了初始化ADS1115所需的配置信息。函數返回一個指向ADS1115_Handle_t類型的指針,這個指針指向一個ADS1115設備實例。通常來說,這個函數會創建一個新的ADS1115_Handle_t實例,然后使用傳入的配置信息對其進行初始化,最后返回這個實例的指針。
驅動一個ADC,重要的事情是,IIC硬件的驅動,地址的確認,相關寄存器的操作,這個就是句柄了。
需要的配置的和讀取的都這樣設計好
分配內存空間,創建一個ADS1115_Handle_t類型的指針pConfig
注意最后的config,因為指針是需要傳出去的。其次就是結構體是倒著看,hi2c給了等號左邊的元素。
釋放一塊內存
接下來我們組裝一個函數
channel:通道選擇,通過左移6位后與config.channel進行按位或操作; pgaConfig:增益配置,通過左移3位后與config.pgaConfig進行按位或操作; operatingMode:工作模式,通過左移0位后與config.operatingMode進行按位或操作。
這個是更新配置
我寫程序的時候使用了中斷
上面的封裝可以讓人很方便進行配置
中斷的時候需要在it文件的里面打開
審核編輯:湯梓紅
-
寄存器
+關注
關注
31文章
5372瀏覽量
121291 -
ti
+關注
關注
112文章
7989瀏覽量
213016 -
adc
+關注
關注
99文章
6537瀏覽量
545885 -
調試
+關注
關注
7文章
589瀏覽量
34082 -
SPI
+關注
關注
17文章
1724瀏覽量
92192
原文標題:ADS1115-16Bit ADC 調試.上
文章出處:【微信號:TT1827652464,微信公眾號:云深之無跡】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
ADS1115是什么意思呢
【ROC-RK3568-PC開發板試用體驗】使用ADS1115擴展ROC-RK3568-PC開發板ADC功能
ADS8323,pdf (16-Bit, 500kSPS,
ADS1113/ADS1114/ADS1115,pdf (U
TI公司IIC接口16位AD模塊ADS1115
ADS1115用戶手冊
ads1115電壓測量范圍
基于51的ads1115詳細程序介紹
ads1115使用方法
基于MSP430F5529單片機的ADS1115
![基于MSP430F5529單片機的<b class='flag-5'>ADS1115</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
評論