ADS1110用了一下午的时间终于搞定了
今天把在TI申请的样片ADS1110焊接上,开始从头开始写测试程序,一边看数据手册一边写,写完了在对照逻辑分析仪,验证自己的时序,今天太幸运了,一步到位搞定了。我用的芯片是000地址的。这个一定要注意哦。
测试了芯片数据稳定性,觉得这个芯片很完美,1倍放大15sps速度16bit数据很稳定。
写这篇文章的目的是回报阿莫论坛的无私精神。希望更多的莫友发表自己的成果,给正在挣扎的朋友一点帮助,
下面我用的是STM32F205芯片读取的,废话少说,上代码
/**
******************************************************************************
* @File :ADS1110.c
* @Author :Flame
* @Email :zhcj66@163.com
* @Version :V1.0.0
* @FileNewDate :2013-04-20
* @FileChangeDate :2013-04-20
* @Brief :16Bit_AD,自带2.048V ±.05%的电压基准,采样率:15/30/60/240sps;放大倍数:1/2/4/8
:2013-04-20程序测试成功
******************************************************************************
*/
#include "includes.h"
#define ADS1110_SCL_CLR() GPIO_ResetBits(GPIOC,GPIO_Pin_7);
#define ADS1110_SCL_SET() GPIO_SetBits(GPIOC,GPIO_Pin_7);
#define ADS1110_SDA_CLR() GPIO_ResetBits(GPIOC,GPIO_Pin_8);
#define ADS1110_SDA_SET() GPIO_SetBits(GPIOC,GPIO_Pin_8);
#define ADS1110_SDA_Get() GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_8)
#define ADS1110Addr 0x90 //ADS1110地址
#define ADS1110ReadAddr ADS1110Addr+1 //ADS1110读地址
#define ADS1110WriteAddr ADS1110Addr+0 //ADS1110写地址
#define ADS1110Reg 0x0C //连续,15sps,1倍
void ADS1110_GPIO_In(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
GPIO_Init(GPIOC, &GPIO_InitStructure);
}
void ADS1110_GPIO_Out(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOC, &GPIO_InitStructure);
}
void ADS1110_GPIO_Configuration(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOC, ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOC, &GPIO_InitStructure);
ADS1110_GPIO_Out();
}
void ADS1110_Delays(unsigned int count)//6us
{
uint16_t i,j;
for(i=count;i>0;i--)
for(j=12;j>0;j--);
}
void ADS_delay(void)
{
unsigned char i;
for(i=0;i<5;i++);
}
void ADS1110_Start(void)
{
ADS1110_GPIO_Out();
ADS1110_SDA_SET();
ADS1110_SCL_SET();
ADS1110_Delays(1);
ADS1110_SDA_CLR();
ADS1110_Delays(1);
ADS1110_SCL_CLR();
}
void ADS1110_Stop(void)
{
ADS1110_GPIO_Out();
ADS1110_SDA_CLR();
ADS1110_SCL_CLR();
ADS1110_Delays(1);
ADS1110_SCL_SET();
ADS1110_Delays(1);
ADS1110_SDA_SET();
ADS1110_Delays(1);
}
//等待应答信号到来 返回值:1,接收应答失败 ;0,接收应答成功
unsigned char ADS1110_Wait_Ack(void)
{
u8 ucErrTime=0;
ADS1110_GPIO_In(); //SDA设置为输入
ADS1110_SDA_SET();
ADS1110_Delays(1);
ADS1110_SCL_SET();
ADS1110_Delays(1);
while(ADS1110_SDA_Get())
{
ucErrTime++;
if(ucErrTime>250)
{
ADS1110_Stop();
return 1;
}
}
ADS1110_SCL_CLR();//时钟输出0
return 0;
}
//产生ACK应答
void ADS1110_Ack(void)
{
ADS1110_SCL_CLR();
ADS1110_GPIO_Out();
ADS1110_SDA_CLR();
ADS1110_Delays(2);
ADS1110_SCL_SET();
ADS1110_Delays(2);
ADS1110_SCL_CLR();
}
//不产生ACK应答
void ADS1110_NAck(void)
{
ADS1110_SCL_CLR();
ADS1110_GPIO_Out();
ADS1110_SDA_SET();
ADS1110_Delays(2);
ADS1110_SCL_SET();
ADS1110_Delays(2);
ADS1110_SCL_CLR();
}
//IIC发送一个字节
void ADS1110_Send_Byte(u8 txd)
{
u8 t;
ADS1110_GPIO_Out();
ADS1110_SCL_CLR();//拉低时钟开始数据传输
for(t=0;t<8;t++)
{
//IIC_SDA=(txd&0x80)>>7;
if (txd&0x80){ADS1110_SDA_SET();}
else {ADS1110_SDA_CLR();}
txd<<=1;
ADS1110_Delays(2);
ADS1110_SCL_SET();
ADS1110_Delays(2);
ADS1110_SCL_CLR();
ADS1110_Delays(2);
}
}
//读1个字节,ack=1时,发送ACK,ack=0,发送nACK
unsigned char ADS1110_Read_Byte(unsigned char ack)
{
unsigned char i,receive=0;
ADS1110_GPIO_In();//SDA设置为输入
ADS1110_SDA_SET();
for(i=0;i<8;i++ )
{
ADS1110_SCL_CLR();
ADS1110_Delays(2);
ADS1110_SCL_SET();
receive<<=1;
if(ADS1110_SDA_Get())receive++;
ADS1110_Delays(1);
}
if (!ack)
ADS1110_NAck();//发送nACK
else
ADS1110_Ack(); //发送ACK
return receive;
}
void ADS_WriteCfgReg(unsigned char CfgData) //Write ADS1110 Congiguration Register
{
ADS1110_Start();
ADS1110_Send_Byte(ADS1110WriteAddr);
ADS1110_Wait_Ack();
ADS1110_Send_Byte(CfgData);
ADS1110_Wait_Ack();
ADS1110_Stop();
}
unsigned int ReadDataCfgReg(unsigned int ReadType)//Read data from ADS1110 Data registerReadType=0x01返回AD值,ReadType=0x00返回寄存器值
{
unsigned int temp,temp1;
ADS1110_Start();
ADS1110_Send_Byte(ADS1110ReadAddr);
ADS1110_Wait_Ack();
temp=ADS1110_Read_Byte(1)<<8;
ADS1110_Ack();
temp+=(ADS1110_Read_Byte(1));
ADS1110_Ack();
temp1 = ADS1110_Read_Byte(1);
ADS1110_Ack();
ADS1110_Stop();
if(ReadType == 0x01)//返回AD值
{
return(temp);
}
else return(temp1);//返回寄存器值
}
void ADS1110_Configuration(void)
{
ADS1110_GPIO_Configuration();
ADS_WriteCfgReg(ADS1110Reg);
}
void GetADS1110Data(void)
{
unsigned char Temp;
unsigned int Temp24;
Temp24 = ReadDataCfgReg(1);
Temp = Temp24/10000%10+0x30;
Temp = Temp24/1000%10+0x30;
Temp = Temp24/100%10+0x30;
Temp = Temp24/10%10+0x30;
Temp = Temp24%10+0x30;
Temp = 0x0D;
Temp = 0x0A;
Temp = 0;
USART1_Puts(Temp);
}
自己顶一下,{:lol:} 有用过ADS1247的朋友希望给我看看我发的ADS1247文章 http://www.amobbs.com/thread-5530199-1-1.html ads1247 谢谢楼主分享。。。。。。。 谢谢楼主分享。。。。。。。 我替你整理成 code 模式/**
******************************************************************************
* @File :ADS1110.c
* @Author :Flame
* @Email :zhcj66@163.com
* @Version :V1.0.0
* @FileNewDate :2013-04-20
* @FileChangeDate :2013-04-20
* @Brief :16Bit_AD,自带2.048V ±.05%的电压基准,采样率:15/30/60/240sps;放大倍数:1/2/4/8
:2013-04-20程序测试成功
******************************************************************************
*/
#include "includes.h"
#define ADS1110_SCL_CLR() GPIO_ResetBits(GPIOC,GPIO_Pin_7);
#define ADS1110_SCL_SET() GPIO_SetBits(GPIOC,GPIO_Pin_7);
#define ADS1110_SDA_CLR() GPIO_ResetBits(GPIOC,GPIO_Pin_8);
#define ADS1110_SDA_SET() GPIO_SetBits(GPIOC,GPIO_Pin_8);
#define ADS1110_SDA_Get() GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_8)
#define ADS1110Addr 0x90 //ADS1110地址
#define ADS1110ReadAddr ADS1110Addr+1 //ADS1110读地址
#define ADS1110WriteAddr ADS1110Addr+0 //ADS1110写地址
#define ADS1110Reg 0x0C //连续,15sps,1倍
void ADS1110_GPIO_In(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
GPIO_Init(GPIOC, &GPIO_InitStructure);
}
void ADS1110_GPIO_Out(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOC, &GPIO_InitStructure);
}
void ADS1110_GPIO_Configuration(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOC, ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOC, &GPIO_InitStructure);
ADS1110_GPIO_Out();
}
void ADS1110_Delays(unsigned int count)//6us
{
uint16_t i,j;
for(i=count;i>0;i--)
for(j=12;j>0;j--);
}
void ADS_delay(void)
{
unsigned char i;
for(i=0;i<5;i++);
}
void ADS1110_Start(void)
{
ADS1110_GPIO_Out();
ADS1110_SDA_SET();
ADS1110_SCL_SET();
ADS1110_Delays(1);
ADS1110_SDA_CLR();
ADS1110_Delays(1);
ADS1110_SCL_CLR();
}
void ADS1110_Stop(void)
{
ADS1110_GPIO_Out();
ADS1110_SDA_CLR();
ADS1110_SCL_CLR();
ADS1110_Delays(1);
ADS1110_SCL_SET();
ADS1110_Delays(1);
ADS1110_SDA_SET();
ADS1110_Delays(1);
}
//等待应答信号到来 返回值:1,接收应答失败 ;0,接收应答成功
unsigned char ADS1110_Wait_Ack(void)
{
u8 ucErrTime=0;
ADS1110_GPIO_In(); //SDA设置为输入
ADS1110_SDA_SET();
ADS1110_Delays(1);
ADS1110_SCL_SET();
ADS1110_Delays(1);
while(ADS1110_SDA_Get())
{
ucErrTime++;
if(ucErrTime>250)
{
ADS1110_Stop();
return 1;
}
}
ADS1110_SCL_CLR();//时钟输出0
return 0;
}
//产生ACK应答
void ADS1110_Ack(void)
{
ADS1110_SCL_CLR();
ADS1110_GPIO_Out();
ADS1110_SDA_CLR();
ADS1110_Delays(2);
ADS1110_SCL_SET();
ADS1110_Delays(2);
ADS1110_SCL_CLR();
}
//不产生ACK应答
void ADS1110_NAck(void)
{
ADS1110_SCL_CLR();
ADS1110_GPIO_Out();
ADS1110_SDA_SET();
ADS1110_Delays(2);
ADS1110_SCL_SET();
ADS1110_Delays(2);
ADS1110_SCL_CLR();
}
//IIC发送一个字节
void ADS1110_Send_Byte(u8 txd)
{
u8 t;
ADS1110_GPIO_Out();
ADS1110_SCL_CLR();//拉低时钟开始数据传输
for(t=0;t<8;t++)
{
//IIC_SDA=(txd&0x80)>>7;
if (txd&0x80){ADS1110_SDA_SET();}
else {ADS1110_SDA_CLR();}
txd<<=1;
ADS1110_Delays(2);
ADS1110_SCL_SET();
ADS1110_Delays(2);
ADS1110_SCL_CLR();
ADS1110_Delays(2);
}
}
//读1个字节,ack=1时,发送ACK,ack=0,发送nACK
unsigned char ADS1110_Read_Byte(unsigned char ack)
{
unsigned char i,receive=0;
ADS1110_GPIO_In();//SDA设置为输入
ADS1110_SDA_SET();
for(i=0;i<8;i++ )
{
ADS1110_SCL_CLR();
ADS1110_Delays(2);
ADS1110_SCL_SET();
receive<<=1;
if(ADS1110_SDA_Get())receive++;
ADS1110_Delays(1);
}
if (!ack)
ADS1110_NAck();//发送nACK
else
ADS1110_Ack(); //发送ACK
return receive;
}
void ADS_WriteCfgReg(unsigned char CfgData) //Write ADS1110 Congiguration Register
{
ADS1110_Start();
ADS1110_Send_Byte(ADS1110WriteAddr);
ADS1110_Wait_Ack();
ADS1110_Send_Byte(CfgData);
ADS1110_Wait_Ack();
ADS1110_Stop();
}
unsigned int ReadDataCfgReg(unsigned int ReadType)//Read data from ADS1110 Data registerReadType=0x01返回AD值,ReadType=0x00返回寄存器值
{
unsigned int temp,temp1;
ADS1110_Start();
ADS1110_Send_Byte(ADS1110ReadAddr);
ADS1110_Wait_Ack();
temp=ADS1110_Read_Byte(1)<<8;
ADS1110_Ack();
temp+=(ADS1110_Read_Byte(1));
ADS1110_Ack();
temp1 = ADS1110_Read_Byte(1);
ADS1110_Ack();
ADS1110_Stop();
if(ReadType == 0x01)//返回AD值
{
return(temp);
}
else return(temp1);//返回寄存器值
}
void ADS1110_Configuration(void)
{
ADS1110_GPIO_Configuration();
ADS_WriteCfgReg(ADS1110Reg);
}
void GetADS1110Data(void)
{
unsigned char Temp;
unsigned int Temp24;
Temp24 = ReadDataCfgReg(1);
Temp = Temp24/10000%10+0x30;
Temp = Temp24/1000%10+0x30;
Temp = Temp24/100%10+0x30;
Temp = Temp24/10%10+0x30;
Temp = Temp24%10+0x30;
Temp = 0x0D;
Temp = 0x0A;
Temp = 0;
USART1_Puts(Temp);
} 做个记号,以备后用。 嗯 。这个不错。。 aureole 发表于 2013-4-20 23:40 static/image/common/back.gif
我替你整理成 code 模式
这种更容易看了,谢谢。这个怎么弄的? 是多少位的AD? liangjiatian 发表于 2013-4-22 11:15 static/image/common/back.gif
是多少位的AD?
16BIT的AD 可以说基本上稳定在16bit上 zhcj66 发表于 2013-4-22 11:43 static/image/common/back.gif
16BIT的AD 可以说基本上稳定在16bit上
我想做一个数控电源 想找一个AD和DA 比较高精度的 DAC芯片 有什么好推荐 这个好,收藏 liangjiatian 发表于 2013-4-22 11:55 static/image/common/back.gif
我想做一个数控电源 想找一个AD和DA 比较高精度的 DAC芯片 有什么好推荐
还没有研究过数控电源,AD你可以使用ADS1110这个芯片,体积小SOT6封装 zhcj66 发表于 2013-4-22 12:24 static/image/common/back.gif
还没有研究过数控电源,AD你可以使用ADS1110这个芯片,体积小SOT6封装
DA有没有推荐 liangjiatian 发表于 2013-4-22 12:24 static/image/common/back.gif
DA有没有推荐
DAC没有用过,你可以去TI或者ADI网站找一下哦 zhcj66 发表于 2013-4-22 13:02 static/image/common/back.gif
DAC没有用过,你可以去TI或者ADI网站找一下哦
好的 {:smile:} liangjiatian 发表于 2013-4-22 17:02 static/image/common/back.gif
好的
请问你用过ADS1247/6/8片子吗? zhcj66 发表于 2013-4-22 17:05 static/image/common/back.gif
请问你用过ADS1247/6/8片子吗?
没有哦{:smile:} zhcj66 发表于 2013-4-22 11:12 static/image/common/back.gif
这种更容易看了,谢谢。这个怎么弄的?
在发帖子时候, 最右边一栏 里面第一个 添加代码文字 。。。复制到框里 即可。 lyg407 发表于 2013-4-22 18:12 static/image/common/back.gif
在发帖子时候, 最右边一栏 里面第一个 添加代码文字 。。。复制到框里 即可。 ...
哦谢谢 12位的话推荐DAC7512
楼主的程序好用! 谢谢楼主。 这个东东最好改成单极化测量,我就是这么做的 ADS系列的这些都非常好用
用过ADS1100 ADS1115 数据准的一塌糊涂,一次平均不用取都很稳,这就是积分型AD,,,但就是速度慢了,高速的话不行
顺便问下,你现在买多少钱一片,我当年是35买的 感谢楼主无私奉献 {:smile:}{:smile:}{:smile:}{:smile:}{:smile:}{:smile:}{:smile:}{:smile:}{:smile:} Ti 一次能申请几种,每种 几片?{:titter:} zuu0 发表于 2013-5-2 08:49 static/image/common/back.gif
ADS系列的这些都非常好用
用过ADS1100 ADS1115 数据准的一塌糊涂,一次平均不用取都很稳,这就是积分型A ...
我在TI申请的样片,还没有买 wkman 发表于 2013-5-3 08:11 static/image/common/back.gif
Ti 一次能申请几种,每种 几片?
好像一次最多每种申请3pcs 最多5种 shiyingyifan 发表于 2013-5-2 02:30 static/image/common/back.gif
12位的话推荐DAC7512
额。。。。亲,你说的DAC7512应该是 12bit DA 芯片吧。ADS1110 是AD 芯片喔。 备用备用 正在使用这款芯片做产品。。。收藏 这个封装貌似太小了,以前测试过。 ads1110 mark 刚申请了ADS1120,不过有ADS1220程序,稍稍修改就可以用了 wkman 发表于 2013-5-3 08:11
Ti 一次能申请几种,每种 几片?
一次最多5种,每种最多3片 赞一个!厉害! 谢谢楼主!!!{:shy:} 做个记号,以备后用。 我用楼主的程序读回来的数据都是65535?什么原因? zjb879653946 发表于 2014-10-21 18:44
我用楼主的程序读回来的数据都是65535?什么原因?
1.拿逻辑分析仪 分析一下muc的数据,
2.芯片IO损坏 zhcj66 发表于 2014-10-22 08:09
1.拿逻辑分析仪 分析一下muc的数据,
2.芯片IO损坏
我发现问题了,是我用的器件地址和你不一样,改了地址后能读回来,调节外部电压数据也会变化,但是数据不准确,和实际电压不一样,我的verf-接的地 收藏,mark 真好,正考虑这款芯片,看样子可以放心使用了 zdc 发表于 2015-3-22 00:32
真好,正考虑这款芯片,看样子可以放心使用了
ADS1100和ADS1110程序通用 MARK {:tongue:}{:tongue:}{:tongue:}{:tongue:} temp=ADS1110_Read_Byte(1)<<8;
ADS1110_Ack();
temp+=(ADS1110_Read_Byte(1));
ADS1110_Ack();
temp1 = ADS1110_Read_Byte(1);
ADS1110_Ack()
ADS1110_Read_Byte(1);这个函数中有ACK 跳出后再加个ACK正常吗? 备用 谢谢了 LZ你好,没接触过STM
while(ADS1110_SDA_Get())这句是什么意思? sos9616 发表于 2015-8-18 16:33
LZ你好,没接触过STM
while(ADS1110_SDA_Get())这句是什么意思?
while(ADS1110_SDA_Get()) ;这句是等待SDA管脚变为低(表示数据转换完成),跳出获取ADS1110的数据;可以把ADS1110_SDA_Get()认为成51单片机的Px.x管脚 16位都很稳定,确实牛,这个跟布线有很大关系吧。 0123456789 发表于 2015-8-19 09:17
16位都很稳定,确实牛,这个跟布线有很大关系吧。
是这个芯片很牛,24位的我最高可以做到18位不跳动,这也归功于芯片 zhcj66 发表于 2015-8-19 07:56
while(ADS1110_SDA_Get()) ;这句是等待SDA管脚变为低(表示数据转换完成),跳出获取ADS1110的数据;可以 ...
好的,谢谢LZ。
还有个问题看不懂,不能理解,
就是
Temp24 = ReadDataCfgReg(1);
Temp = Temp24/10000%10+0x30;
Temp = Temp24/1000%10+0x30;
Temp = Temp24/100%10+0x30;
Temp = Temp24/10%10+0x30;
Temp = Temp24%10+0x30;
Temp = 0x0D;
Temp = 0x0A;
Temp = 0;
这个是什么意思呢?在下理解能力有限,望LZ说明一下。 sos9616 发表于 2015-8-21 14:19
好的,谢谢LZ。
还有个问题看不懂,不能理解,
就是
这个是把ADC的值 以字符串的方式 放入数组最后回车换行 也可以写成sprintf(Temp,"%u\r\n",Temp24); zhcj66 发表于 2015-8-21 15:17
这个是把ADC的值 以字符串的方式 放入数组最后回车换行 也可以写成sprintf(Temp,"%u\r\n",Temp24); ...
LZ你好,
ADS1110去测负电压接线应该是怎样的?
目前电路是:V+接测量电压,V-接地,测量正电压都正常,
负电压就不正常了。
还有采样的值用什么方法滤波比较好?
目前用平均滤波法处理,最后转换为浮点型,但感觉采样的值还是不稳定。
楼主的接法只能有15位的分辨率?
sos9616 发表于 2015-8-26 08:37
LZ你好,
ADS1110去测负电压接线应该是怎样的?
目前电路是:V+接测量电压,V-接地,测量正电压都正常,
V+接测量电压,V-接地,测量正电压都正常,
-------------
这种接法无法测量负电压 顶一下,之前也玩过,遇到了不少问题 恭喜恭喜,顺带学习 很好的程序!收藏后面研究使用! 0123456789 发表于 2015-9-30 12:27
V+接测量电压,V-接地,测量正电压都正常,
-------------
这种接法无法测量负电压 ...
ads1110不支持负电压。所谓的差分ad指的是 (V+) - (V-) 的值 ,有可能V+ 比V-大 2.048也有可能V+比V-小 2.048。
好贴,谢谢楼主 huarana 发表于 2016-4-20 09:26
ads1110不支持负电压。所谓的差分ad指的是 (V+) - (V-) 的值 ,有可能V+ 比V-大 2.048也有可 ...
可以加2个1MO电阻 一个接5v 另外一个电阻接地, 电阻的另外一端分别接热电偶 谢谢楼主分享 ADS1110ADS1110 感谢楼主分享 不错 参考了你的程序能够成功读取数据 谢谢 我用的GD32F103RCT6 cvi670 发表于 2021-3-15 11:58
不错 参考了你的程序能够成功读取数据 谢谢 我用的GD32F103RCT6
103RC价格也飞上天了 aaaaaaaaaa 谢谢楼主分享
页:
[1]