chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

51驅(qū)動(dòng)ADS1115 AD采集

jf_88434166 ? 來(lái)源:jf_88434166 ? 2026-04-11 16:48 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

一、ADS1115簡(jiǎn)介

ADS1115是高精度模數(shù)轉(zhuǎn)換器(adc),具有16位分辨率。數(shù)據(jù)通過(guò)兼容lIC的串行接口傳輸,可以選擇四個(gè)IIC從地址,ads1115單電源工作范圍為2.0V至5.5V。ADS1115可以以每秒860個(gè)采樣的速率執(zhí)行轉(zhuǎn)換。ADS1115上提供板載PGA,提供從電源到低至±256mV的輸入范圍,允許大小信號(hào)都具有輸入多路復(fù)用器(MUX),提供兩個(gè)差分或四個(gè)單端輸入。

在這里插入圖片描述

二、引腳功能

在這里插入圖片描述

ADDRIIC地址選擇
ALERT/RDY比較器輸出高低或轉(zhuǎn)換就緒
GND電源地
AIN0-AIN3模擬量輸入
VDD電源正
SDAIIC時(shí)鐘線
SCLIIC數(shù)據(jù)線

ADS1115引腳ADDR用于設(shè)置器件的IIC地址, 該引腳可以連接到GND、VDD、SDA、SCL,從而選擇四個(gè)不同的IIC地址。本文使用的模塊ADDR引腳接在GND上,故從機(jī)地址為0x90/0x91。
在這里插入圖片描述

三、功能介紹

1.MULTIPLEXER

ADS1115包含一個(gè)輸入多路復(fù)用器,可以測(cè)量四個(gè)單端或兩個(gè)差分信號(hào)。另外,AIN0和AlN1與AIN3的測(cè)量值可能存在差異。多路復(fù)用器由配置寄存器中的3位配置。當(dāng)測(cè)量單端信號(hào)時(shí),ADC的負(fù)輸入通過(guò)多路復(fù)用器內(nèi)的開關(guān)連接到GND。
在這里插入圖片描述

2.量程

量程由配置寄存器 PGA[2:0]位控制
在這里插入圖片描述

3.數(shù)字比較器

ADS1115和ADS1114具有一個(gè)可編程的數(shù)字比較器,ALERT/RDY引腳可以發(fā)出警報(bào)。Config寄存器中的COMP_MODE位將比較器配置為傳統(tǒng)比較器或窗口比較器。在傳統(tǒng)的比較器模式中,當(dāng)轉(zhuǎn)換數(shù)據(jù)超過(guò)高閾值寄存器(Hi_thresh)中設(shè)置的限制時(shí),ALERT/RDY引腳置為有效(默認(rèn)情況下激活低電平)。然后,只有當(dāng)轉(zhuǎn)換數(shù)據(jù)低于低閾值寄存器(Lo_thresh)中設(shè)置的限制時(shí),比較器才會(huì)解除操作。在窗口比較器模式下,當(dāng)轉(zhuǎn)換數(shù)據(jù)超過(guò)Hi_thresh寄存器值或低于Lo_thresh寄存器值時(shí),ALERT/RDY引腳會(huì)斷言。在窗口模式或傳統(tǒng)比較器模式中,比較器都可以配置為在Config寄存器中的COMP_LAT位斷言之后鎖存。這種設(shè)置使引腳電平保持不變,即使輸入信號(hào)沒(méi)有超出閾值寄存器的界限。這個(gè)鎖存引腳電平只能通過(guò)發(fā)出SMBus警報(bào)響應(yīng)或讀取轉(zhuǎn)換寄存器來(lái)清除。ALERT/RDY引腳可以通過(guò)配置寄存器中的COMP_POL位配置為高電平或低電平。比較器還可以配置為僅在一組連續(xù)讀數(shù)超過(guò)閾值寄存器(Hi_thresh和Lo_thresh)中設(shè)置的閾值后才激活A(yù)LERT/RDY引腳。Config寄存器中的COMP_QUE[1:0]位配置比較器在激活A(yù)LERT/RDY引腳之前等待超過(guò)閾值的一個(gè)、兩個(gè)或四個(gè)讀數(shù)。COMP_QUE[1:0]位也可以禁用比較器功能,并將ALERT/RDY引腳置于高狀態(tài)

提示:本次實(shí)驗(yàn)沒(méi)有使用比較器,比較器的相關(guān)配置參考配置寄存器的低五位

4.寄存器寫入或讀取時(shí)序

為了從ADS111x訪問(wèn)一個(gè)特定的寄存器,主機(jī)必須首先寫一個(gè)合適的值到地址指針寄存器中的地址指針位P[1:0]。地址指針寄存器被直接寫入到從地址字節(jié)、低R / W位和成功的從機(jī)確認(rèn)之后。寫入地址指針寄存器后,從機(jī)應(yīng)答,而主機(jī)發(fā)出STOP或重復(fù)的START條件。當(dāng)從ADS111x讀取時(shí),先前寫入位P[1:0]的值決定了要讀取的寄存器。要改變讀哪個(gè)寄存器,必須向P[1:0]寫入一個(gè)新值。為了寫一個(gè)新值到P[1:0],主機(jī)發(fā)出一個(gè)低R/W位的從地址字節(jié),后面跟著地址指針寄存器字節(jié)。不需要傳輸額外的數(shù)據(jù),主機(jī)可以發(fā)出STOP條件。主服務(wù)器現(xiàn)在可以發(fā)出START條件,并發(fā)送R/W位高的從服務(wù)器地址字節(jié)開始讀取。
在這里插入圖片描述
在這里插入圖片描述

5.數(shù)據(jù)格式

ADS111x提供16位二進(jìn)制補(bǔ)碼格式的數(shù)據(jù)。正滿量程(+FS)輸入產(chǎn)生7FFFh的輸出代碼,負(fù)滿量程(-FS)輸入產(chǎn)生8000h的輸出代碼。對(duì)于超過(guò)滿量程的信號(hào),輸出在這些代碼處進(jìn)行處理。下圖總結(jié)了不同輸入信號(hào)的理想輸出碼與顯示了代碼轉(zhuǎn)換與輸入電壓的關(guān)系。
在這里插入圖片描述

四、寄存器介紹

1.地址指針寄存器

ADS1115所有四個(gè)寄存器都是通過(guò)寫入地址指針寄存器來(lái)訪問(wèn)的
在這里插入圖片描述
在這里插入圖片描述

2.轉(zhuǎn)化數(shù)據(jù)存放寄存器

16位轉(zhuǎn)換寄存器以二進(jìn)制二進(jìn)制的補(bǔ)碼格式包含最后一次轉(zhuǎn)換的結(jié)果。上電后,轉(zhuǎn)換寄存器被清除為0,并保持0,直到第一次轉(zhuǎn)換完成
在這里插入圖片描述

3.配置寄存器

16位配置寄存器用于控制操作模式、輸入選擇、數(shù)據(jù)速率、滿量程范圍和比較器模式。
在這里插入圖片描述

Bit字段類型復(fù)位值描述
15OSR/W1h運(yùn)行狀態(tài)或單次轉(zhuǎn)換啟動(dòng)該位決定設(shè)備的運(yùn)行狀態(tài)。 操作系統(tǒng)只能在下電狀態(tài)下寫入,在轉(zhuǎn)換過(guò)程中沒(méi)有作用。寫入:0:沒(méi)有效果1:啟動(dòng)單次轉(zhuǎn)換(在斷電狀態(tài)下)讀時(shí):0:設(shè)備當(dāng)前正在執(zhí)行轉(zhuǎn)換1:設(shè)備當(dāng)前未執(zhí)行轉(zhuǎn)換
14:12MUX[2:0]R/W0h輸入多路復(fù)用配置000 : AINP = AIN0 and AINN = AIN1 (default) 001 : AINP = AIN0 and AINN = AIN3010 : AINP = AIN1 and AINN = AIN3 011 : AINP = AIN2 and AINN = AIN3100 : AINP = AIN0 and AINN = GND 101 : AINP = AIN1 and AINN = GND110 : AINP = AIN2 and AINN = GND 111 : AINP = AIN3 and AINN = GND
11:9PGA[2:0]R/W2h可編程增益放大器配置 這些位設(shè)置可編程增益放大器的FSR 000 : FSR = ±6.144 V001 : FSR = ±4.096 V010 : FSR = ±2.048 V (default)011 : FSR = ±1.024 V100 : FSR = ±0.512 V101 : FSR = ±0.256 V110 : FSR = ±0.256 V111 : FSR = ±0.256 V
8MODER/W1h設(shè)備運(yùn)行方式這個(gè)位控制操作模式。0:連續(xù)轉(zhuǎn)換模式1:?jiǎn)未文J交虻綦姞顟B(tài)(默認(rèn))
7:5DR[2:0]R/W4h數(shù)據(jù)速率這些位控制數(shù)據(jù)速率設(shè)置。000 : 8 SPS 001 : 16 SPS 010 : 32 SPS011 : 64 SPS 100 : 128 SPS (default) 101 : 250 SPS 110 : 475 SPS 111 : 860 SPS
4COMP_MODER/W0h比較器模式該位控制比較器工作0:傳統(tǒng)比較器(默認(rèn))1:窗口比較器
3COMP_POLR/W0h比較器極性該位控制ALERT / RDY引腳的極性0:低電平有效(默認(rèn))1:高電平有效
2COMP_LATR/W0h鎖存比較器該位控制ALERT / RDY引腳在被置為有效后鎖存,還是在轉(zhuǎn)換后處于上限和下限閾值范圍之內(nèi)清零。0:非鎖存比較器。 置位后ALERT / RDY引腳不鎖存(默認(rèn))1:鎖存比較器。 置為有效的ALERT / RDY引腳保持鎖存狀態(tài),直到轉(zhuǎn)換數(shù)據(jù)由主服務(wù)器或適當(dāng)?shù)腟MBus警報(bào)響應(yīng)讀取由主機(jī)發(fā)送。 設(shè)備以其地址響應(yīng),它是最低的當(dāng)前聲明ALERT / RDY總線的地址。
1:0COMP_QUE[1:0]R/W3h比較器置位和禁用這些位執(zhí)行兩個(gè)功能。 設(shè)置為11時(shí),比較器被禁用,ALERT / RDY引腳被設(shè)置為高阻抗?fàn)顟B(tài)。 當(dāng)設(shè)置為任何其他值時(shí),將啟用ALERT / RDY引腳和比較器功能,并且該設(shè)置值確定連續(xù)的轉(zhuǎn)換次數(shù)超過(guò)在聲明ALERT / RDY引腳之前所需的上限或下限閾值00:一次轉(zhuǎn)換后斷言01:兩次轉(zhuǎn)換后置位10:四次轉(zhuǎn)換后置位11:禁用比較器并將ALERT / RDY引腳設(shè)置為高阻抗(默認(rèn))

4.比較器高低閾值寄存器

Lo_thresh (P[1:0] = 2h) [reset = 8000h]
Hi_thresh (P[1:0] = 3h) [reset = 7FFFh]
比較器使用的上限和下限閾值以二進(jìn)制補(bǔ)碼格式存儲(chǔ)在兩個(gè)16位寄存器中。所述比較器實(shí)現(xiàn)為數(shù)字比較器;因此,無(wú)論P(yáng)GA設(shè)置何時(shí)更改,這些寄存器中的值都必須更新。通過(guò)將Hi_thresh寄存器MSB設(shè)置為1和Lo_thresh寄存器MSB設(shè)置為0,可以啟用ALERT/RDY引腳的轉(zhuǎn)換準(zhǔn)備功能。要使用ALERT/RDY引腳的比較器函數(shù),Hi_thresh寄存器值必須始終大于Lo_thresh寄存器值。當(dāng)設(shè)置為RDY模式時(shí),ALERT/RDY引腳在單鏡頭模式下輸出OS位,并在連續(xù)轉(zhuǎn)換模式下提供連續(xù)轉(zhuǎn)換準(zhǔn)備脈沖。
在這里插入圖片描述

五、程序

ADS1115.C

#include < STC89C5xRC.H >
#include < IIC.H >
/*****************寄存器位置*************/
#define REG_Conversion 0x00
#define REG_config		 0x01
#define REG_L_thresh 	 0x02
#define REG_H_thresh 	 0x03
 
 
/*****************寄存器EG_Conversion**********/
//存放著16位結(jié)果


/*****************寄存器REG_config的位**********/
#define OS 				1 		//操作狀態(tài)或單發(fā)轉(zhuǎn)換啟動(dòng)  (1位)
#define MUX 			0x04 	//輸入多路配置  通道0  (3位)
#define PGA 			0x00	//可編程增益放大器配置  量程 ±6.144  V  (3位)
#define MODE		  0x00	//設(shè)備運(yùn)行方式  連續(xù)轉(zhuǎn)換模式  (1位)
#define DR				0x03  //轉(zhuǎn)換速率64SPS  (3位)
#define	COMP_MODE	0 		//比較器模式  傳統(tǒng)比較器  (默認(rèn))(1位)
#define COMP_POL 	0			//比較器極性  低電平有效  (默認(rèn))(1位)
#define COMP_LAT	0 		//鎖存比較器  非鎖存比較器, 置位后ALERT / RDY引腳不鎖存  (默認(rèn))(1位)
#define COMP_QUE	0x03 	//比較器置位和禁用  禁用 (默認(rèn))(2位)
 
#define config_MSB (OS < < 7)|(MUX < < 4)|(PGA < < 1)|(MODE)//OS移動(dòng)到高8位 MUX移動(dòng)到高7位 PGA移動(dòng)到高四位 MODE高一位
#define config_LSB (DR < < 5)|(COMP_MODE < < 4)|(COMP_POL < < 3)|(COMP_LAT < < 2)|(COMP_QUE)//DR移動(dòng)到低8位,COMP_MODE移動(dòng)到低5位,COMP_POL移動(dòng)到低4位,COMP_LAT移動(dòng)到低3位,COMP_QUE最后兩位
 
 
/*****************寄存器REG_L_thresh REG_H_thresh值**********/
#define Lo_thresh	0x8000  // 比較器低閾值
#define Hi_thresh 0x7FFF  // 比較器高閾值


void ADS1115_Write()
{
	IIC_Start();
	IIC_SendByte(0x90);
	IIC_ReceiveAck();//沒(méi)有對(duì)返回的 ACK 做處理
	IIC_SendByte(REG_config);
	IIC_ReceiveAck();
	IIC_SendByte(config_MSB);
	IIC_ReceiveAck();
	IIC_SendByte(config_LSB);
	IIC_ReceiveAck();
  IIC_Stop();
}

float ADS1115_Read()
{
	float ret=0;
	unsigned int ad=0;
	
	IIC_Start();
	IIC_SendByte(0x90);
	IIC_ReceiveAck();//沒(méi)有對(duì)返回的 ACK 做處理
	IIC_SendByte(REG_Conversion);
	IIC_ReceiveAck();

	IIC_Start();
	IIC_SendByte(0x90+1);
	IIC_ReceiveAck();
	ad = IIC_ReceiveByte();
	ad = (ad< 8)|IIC_ReceiveByte();
	IIC_SendAck(1);
	IIC_Stop();
	
	if(ad >0x8000)//如果是負(fù)壓
	{
		ret =(float)(((0xFFFF-ad)*6.144)/32768);//分辨率:6.144÷2^15  電壓=分辨率*AD值
	}else
	{
		ret =(float)ad*(6.144/32768);
	}
	
	return ret;
}

main.C

#include < STC89C5xRC.H >
#include < IIC.H >
#include < uart.H >
#include < ADS1115.H >
#include < delay.H >

//整形數(shù)據(jù)轉(zhuǎn)字符數(shù)組
void IntToString(unsigned char *str,unsigned int dat)//str 存放字符的數(shù)組,dat 整形數(shù)據(jù)
{
	unsigned char i = 0;
	unsigned int buf[8];
	do { //先轉(zhuǎn)換成 低位在前的十進(jìn)制數(shù)組 將低位高位互換
		buf[i++] = dat % 10;
		dat /= 10;
	} while (dat > 0);
	while (i-- > 0) //將數(shù)組值轉(zhuǎn)換為 ASCII 碼反向拷貝到接收指針上
	{
			*str++ = buf[i] + '0';
	}
	*str = '?';
}	

void main()
{
	unsigned int voltage=0;
	unsigned char arr[8];
	char * P = arr;
	
	uart_init();//2400
	ADS1115_Write();
	Delay_x_ms(1000);
	while(1)
	{
		voltage = (unsigned int)(ADS1115_Read()*1000);
		IntToString(P,voltage);
		UART_Send(P);
		UART_Send("mV");
		Delay_x_ms(1000);
	}
}

六、實(shí)驗(yàn)現(xiàn)象

AIN0引腳分別輸入 1.8V 3.3V 5V模擬信號(hào)
在這里插入圖片描述

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 模數(shù)轉(zhuǎn)換器

    關(guān)注

    26

    文章

    4099

    瀏覽量

    130241
  • AD采集
    +關(guān)注

    關(guān)注

    1

    文章

    27

    瀏覽量

    14669
  • ADC
    ADC
    +關(guān)注

    關(guān)注

    0

    文章

    227

    瀏覽量

    16845
  • ads1115
    +關(guān)注

    關(guān)注

    0

    文章

    19

    瀏覽量

    13402
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    ADS1115的采樣時(shí)間要多久?

    最近在用ADS1115這顆芯片,需要反復(fù)交替檢測(cè)2路AD信號(hào),交替方法是改變ADS1115內(nèi)部MUX寄存器來(lái)改變AINx口,發(fā)現(xiàn)如果不改變MUX設(shè)置(只檢測(cè)1路AD信號(hào))的情況下,AD采樣值很穩(wěn)定
    發(fā)表于 01-15 08:29

    ads111551版程序,謝謝各位大神了

    ads111551版程序,謝謝各位大神了
    發(fā)表于 07-18 00:48

    ADS1115驅(qū)動(dòng)的問(wèn)題

    這幾天一直在搞ADS1115,可是不管怎么參考別人的程序,輸出的總是65535,有沒(méi)有大神可以幫幫我的?
    發(fā)表于 05-05 19:30

    ADS1115的使用

    請(qǐng)問(wèn)有誰(shuí)用過(guò)ADS1115做雙通道的AD采集么,我想了解一下讀寫的時(shí)序和寄存器的配置,謝謝!
    發(fā)表于 05-12 09:03

    跪求ads1115驅(qū)動(dòng)?。?/a>

    急需ads1115驅(qū)動(dòng),大神們幫幫忙?。?!
    發(fā)表于 02-23 09:33

    ADS1115采集不準(zhǔn)的原因

    大家好,我現(xiàn)在在用ADS1115采集電壓信號(hào),但是采集到的電壓不穩(wěn)而且還不準(zhǔn),前端用AD623進(jìn)行信號(hào)放大,用萬(wàn)用表測(cè)量信號(hào)電壓應(yīng)為1.145,但是采到的在1.10到1.12之間跳動(dòng),不知為什么,調(diào)了好久,希望各位大神幫幫我
    發(fā)表于 11-22 09:16

    ADS1115是什么意思呢

    基于MSP430F5529單片機(jī)的ADS1115今天給大家?guī)?lái)還是TI公司出品的芯片——ads1115。再看本篇之前最好先備好ads1115的datasheet。(一)、芯片簡(jiǎn)介ADS1115
    發(fā)表于 11-29 08:11

    ADS1115是什么?怎樣去使用ADS1115

    ADS1115是什么?ADS1115有哪些特性?怎樣去使用ADS1115呢?
    發(fā)表于 12-14 08:08

    TI公司IIC接口16位AD模塊ADS1115

    TI公司16位的AD模塊ADS1115,IIC接口,四通道,本程序是基于msp430利用兩個(gè)IO口模擬IIC來(lái)驅(qū)動(dòng)ADS1115
    發(fā)表于 07-20 17:21 ?66次下載

    ads1115電壓測(cè)量范圍

     ADS1115 是具有16 位分辨率的高精度模數(shù)轉(zhuǎn)換器(ADC),采用超小型的無(wú)引線QFN-10 封裝或MSOP-10 封裝。ADS1115 在設(shè)計(jì)時(shí)考慮到了精度、功耗和實(shí)現(xiàn)的簡(jiǎn)易性
    發(fā)表于 10-23 08:42 ?1.8w次閱讀

    基于51ads1115詳細(xì)程序介紹

     ADS1115 是具有16 位分辨率的高精度模數(shù)轉(zhuǎn)換器(ADC),采用超小型的無(wú)引線QFN-10 封裝或MSOP-10 封裝。以下將是基于51ads1115詳細(xì)程序介紹:
    發(fā)表于 10-23 09:25 ?1.7w次閱讀

    ads1115使用方法

    ADS1113.ADS1114 和ADS1115 是具有16 位分旁粹率的高精度模數(shù)轉(zhuǎn)換器(ADC),采用超小型的無(wú)引線QFN-10 封裝或MSOP-10 封裝。ADS1113/4/5 在設(shè)計(jì)時(shí)
    發(fā)表于 10-23 10:15 ?4.5w次閱讀

    基于MSP430F5529單片機(jī)的ADS1115

    基于MSP430F5529單片機(jī)的ADS1115今天給大家?guī)?lái)還是TI公司出品的芯片——ads1115。再看本篇之前最好先備好ads1115的datasheet。(一)、芯片簡(jiǎn)介ADS1115
    發(fā)表于 11-19 18:21 ?20次下載
    基于MSP430F5529單片機(jī)的<b class='flag-5'>ADS1115</b>

    基于STM32的ADS1115使用例程

    基于STM32的ADS1115使用例程
    發(fā)表于 12-02 20:51 ?132次下載
    基于STM32的<b class='flag-5'>ADS1115</b>使用例程

    ADS1115使用及其驅(qū)動(dòng)電路

    ADS1115有QFP封裝和SOC封裝,使用非常方便,而且有4個(gè)通道,大大節(jié)約了電路控件,因此使用非常方便,ADS1115.H文件#ifndef __ADS
    發(fā)表于 12-22 19:01 ?54次下載
    <b class='flag-5'>ADS1115</b>使用及其<b class='flag-5'>驅(qū)動(dòng)</b>電路