ADS1113.ADS1114 和ADS1115 是具有16 位分旁粹率的高精度模數(shù)轉(zhuǎn)換器(ADC),采用超小型的無(wú)引線QFN-10 封裝或MSOP-10 封裝。ADS1113/4/5 在設(shè)計(jì)時(shí)考慮到了精度、功耗和實(shí)現(xiàn)的簡(jiǎn)易性。ADS1113 14 /5 具有- -個(gè)板上基準(zhǔn)和振蕩器。數(shù)據(jù)通過(guò)-一個(gè)12C 兼容型串行接[ ]進(jìn)行傳輸; 可以選擇4 個(gè)|2C 從地址。ADS1113 /4 15 采用2.0V 至5.5V 的單工作電源。以下將是ads1115的操作指引:
? ? ? ADS1115 的使用操作是IIC,主要分為三部分:
第一部分: write config register
1 0X90 最后一位是R/VW位,高為讀,低為寫
2 0X01 指向配置寄存器
3 開始設(shè)置配置寄存器的參數(shù),根據(jù)自己的需要
第二部分: write to pointer register
1 0X90 同上
2 OXOO 指向轉(zhuǎn)換寄存器
第三部分: read conversion register
1 0X91 同上
2 應(yīng)答轉(zhuǎn)換寄存器的MSB
3 應(yīng)答轉(zhuǎn)換寄存器的LSB
具體程序如下:
//配置ads1115
void Confige1115 ()
{
unsigned char i;
table[0] = 0x90; //CMD_Write;
table[1] = 0x01; //指向配置寄存器
table[2] = 0xc2; //設(shè)置配置寄存器的高八位1100 0101,即AINp=AIN0,AINn=GND;滿量程FS=+-4.096;連續(xù)轉(zhuǎn)換模式
table[3] = 0xe3; //設(shè)置配置寄存器的低八位1100 0101,即
start(); //發(fā)送起始信號(hào)
for(i=0;i《4;i++)
{
shout(table[i]); //將table里面的數(shù)寫入ads1115
delay(15);
}
stop(); //發(fā)送停止信號(hào)
}
//指向ADS1115指針寄存器用于準(zhǔn)備讀取數(shù)據(jù)
void PointRegister (void)
{
unsigned char i;
table[0] = 0x90;//寫指令
table[1] = 0x00;//指針指向轉(zhuǎn)換寄存器
start();//發(fā)送起始信號(hào)
for(i=0;i《2;i++)
{
shout(table[i]);//將table里面的數(shù)寫入ads1115
delay(15);
}
stop();//發(fā)送停止信號(hào)
}
//讀轉(zhuǎn)換寄存器里面的值
uint read()
{
uint result,resulth,resultl;
start();
delay(10);
shout(0x91); //讀指令
resulth = shin(); //高八位賦給resulth
resultl = shin(); //底八位賦給resultl
stop();
result=(resulth)《《8|resultl;//高八位右移8與上底八位組成16位result
return result;
}
//獲取最終模數(shù)轉(zhuǎn)換之后的結(jié)果
uint getad()
{
uint value;
Confige1115();
delay(20);
PointRegister();
delay(20);
value=read();
return value;
}
最后通過(guò)getad()讀取轉(zhuǎn)換的值即可
評(píng)論