1. 先看下ADS1120的结构图,ADS1120是个比较奇葩的ADC模数转换器,因为比较适用于热电阻之类的温度采集器。看下图,有个MUX多路复用器,应该是选择两个差分信号去测试,通过输入多路复用器 (MUX) 实现的两个差分输入或四个单端输入,一个低噪声可编程增益放大器 (PGA),PGA,内部 PGA 提供高达128V/V 的增益。此 PGA 使得 ADS1120 非常适用于小型传感器信号测量 应用 ,例如电阻式温度检测器(RTD)、热电偶、热敏电阻和桥式传感器。

2. 看下寄存器,4个寄存器

3. 命令

4. 参考例程

VOID main(VOID)
{
signed long tData;
WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer
Init_StartUp(); // Initialize device
ADS1220Init(); // Initializes the SPI port pins as well as control
ADS1220Config(); // Set base configuration for ADS1x20 device
while()
{
/* Add specifc command for reading and writing ADS1220 here */
/* dFlag is set in the interrupt service routine when DRDY triggers end
of conversion */
if (dflag) /* check if new data is available */
{
tData = ADS1220ReadData(); /* get the data from the ADS1220 */
dFlag=;
}
/* other routines could be added here, such as change the mux setting */
} /* end of while(1) */
} /* end of main() */

其中配置函数比较重要,如下是1增益,也是就不变,然后ADS1220_MUX_0_G=0x80

void ADS1220Config(void)
{
unsigned Temp;
ADS1220ReadRegister(ADS1220_0_REGISTER, 0x01, &Temp);
/* clear prev value; */
Temp &= 0x0f;
Temp |= ADS1220_MUX_0_G;
/* write the register value containing the new value back to the ADS */
ADS1220WriteRegister(ADS1220_0_REGISTER, 0x01, &Temp);
ADS1220ReadRegister(ADS1220_1_REGISTER, 0x01, &Temp);
/* clear prev DataRate code; */
Temp &= 0x1f;
Temp |= (ADS1220_DR_600 + ADS1220_CC); /* Set default start mode to 600sps and continuous conversions */
/* write the register value containing the new value back to the ADS */
ADS1220WriteRegister(ADS1220_1_REGISTER, 0x01, &Temp);
}

ADS1220_MUX_0_G=0x80,那么看下寄存器,什么意思呢?就是测量AIN0引脚的电平,得出一个结论,如果要想测量4个通道,那么需要依次次修改MUX[3:0],一个测量完再测试另外一个

读数据,这个例程比较简单,只测量了AIN0的电压,我们的应用是需要做2线PT100铂电阻温度测量,所以需要继续

long ADS1220ReadData(void)
{
long Data;
/* assert CS to start transfer */
ADS1220AssertCS();
/* send the command byte */
ADS1220SendByte(ADS1220_CMD_RDATA);
/* get the conversion result */ Data = ADS1220ReceiveByte();
Data = (Data << ) | ADS1220ReceiveByte();
/* sign extend data */
if (Data & 0x8000)
Data |= 0xffff0000; /* de-assert CS */
ADS1220AssertCS();
return Data;
}

最新文章

  1. [NHibernate]缓存(NHibernate.Caches)
  2. mysql 连接空闲超8小时自动断开连接问题(linux)
  3. Web API - Video File Streaming
  4. 终端ssh登录mac用shell打包ipa报错:replacing existing signature
  5. orcale 动态执行语句
  6. 结合Apache和Tomcat实现集群和负载均衡 JK 方式
  7. poj 1191 矩形块的划分
  8. sql server 表变量、表类型、临时表
  9. json 包含字段及函数的写法
  10. iOS相关,过年回来电脑上的证书都失效了,解决方法。
  11. Git 1.9.5.msysgit.1
  12. selenium高级用法
  13. E/MediaPlayer: Should have subtitle controller already set
  14. Java模版方法的另一种实现
  15. 2018年天梯赛LV2题目汇总小结
  16. fabric镜像安装脚本分析
  17. C#取整函数Math.Round、Math.Ceiling和Math.Floor 【非原创,用来收藏,分享】
  18. &lt;跟股市谚语学炒股&gt; 读书笔记
  19. python多线程生产消费
  20. 【数组】Find Peak Element

热门文章

  1. PHP 将某一字符串转化为变量
  2. RookeyFrame 模块 线上创建的模块 迁移到 线下来
  3. apt-get 和dpkg命令
  4. luogu 1714
  5. read()和write(),读和写的优化。
  6. Unity 绘制Mesh线条
  7. SpringMVC将通过ajax发送的 json数据封装成JavaBean
  8. Zk单机多实例部署
  9. 使用IDEA创建一个Maven Web工程:无法创建Java Class文件
  10. 利用ssh 删除远程服务器文件