■ 简介


ADS1256是一款 24bit ADC转换模块。 ADS1256可以通过SPI进行访问 的高精度的转换器。它的 ADS1256 数据手册 可以从 TI网站 查询到。

▲ ADS1256 24bitADC模块

下面给出了ADS1256的接口。根据ADS1256的数据手册介绍,其中:

  • 用于MCU接口的SPI接口可以包含有/CS, SCLK, DIN, DOUT
  • D0 ~ D3 可以用于对外控制的数据接口。
  • SYNC可以用于数据同步作用。

▲ ADS1256 的接口定义

为了便于后期的MCU制作,制作一个6PIN的外部接口,包括有:

序号 符号 功能描述
1 +5V 工作电源
2 GND 电源地
3 CS ADS1256片选端
4 SCK ADS1256时钟
5 DIN ADS1256SPI数据入
6 DOUT ADS1256SPI数据出

01接口电路板1


1. 设计接口电路

使用基于STC8G1K08(SOP8)作为控制ADS1256的与PC之间的SPI-UART的接口芯片。

▲ 实验电路的原理图

▲ 实验接口电路的PCB

2.单片机软件2

将AD1256连接到单片机STC8G1k。

▲ 将AD1256连接到单片机

  • 缺省情况下D0输出AD1256的时钟信号
    时钟的频率为: 7.68MHz。

▲ AD1256输出CLK波形

02软件命令


UART串口命令可以参见SerialTXT的解释子程序:

if(strcmp("hello",                (char *)STD_ARG[0]) == 0)printf("%s is ready !\r\n", VERSION_STRING);
else IFARG0("rra") {AD1256ReadReg(0x0, 11, ucDim);for(i = 0; i < 11; i ++) {printf("%02bx ", ucDim[i]);}printf("\r\n");
} else IFARG0("setc") {sscanf(SDA(1), "%d", &nNumber);AD1256SetChannel((unsigned char)nNumber);
} else IFARG0("sets") {sscanf(SDA(1), "%x", &nNumber);AD1256SetSPS((unsigned char)nNumber);
} else IFARG0("writer") {sscanf(SDA(1), "%x", &nNumber);i = (unsigned char)nNumber;sscanf(SDA(2), "%x", &nNumber);ucByte = (unsigned char)nNumber;AD1256WriteRegByte(i, ucByte);
} else IFARG0("rdata") {SendChar(0);nWaitTime = 100;if(STD_NUM == 1) {printf("%ld\r\n", AD1256ReadData());} else {sscanf(SDA(1), "%d", &nNumber);if(STD_NUM > 2) {sscanf(SDA(2), "%d", &nWaitTime);}for(j = 0; j < nNumber; j ++) {printf("%ld ", AD1256ReadData());if(nNumber > 1)WaitTime(nWaitTime);}printf("\r\n");}
} else IFARG0("setb") {sscanf(SDA(1), "%x", &nNumber);AD1256SetDIO((unsigned char)nNumber);
} else IFARG0("reset") {AD1256Reset();
} else IFARG0("init") {AD1256Init();
} else IFARG0("scrd") {sscanf(SDA(1), "%x", &nNumber);AD1256SetChannel(nNumber);AD1256ReadData();for(nNumber = 0; nNumber < 1000; nNumber ++) {WaitTime(2);if((AD1256ReadRegByte(0) & 0x1) == 0) break;}SendChar(0);printf("%ld\r\n", AD1256ReadData());
}

scrd : Change Channel and read new data
rdata: Read the current channel data

03测试结果


▲ 设置电压与AD1256输出结果

▲ 设置电压与AD1256输出结果

#!/usr/local/bin/python
# -*- coding: gbk -*-
#============================================================
# TEST1.PY                     -- by Dr. ZhuoQing 2020-06-30
#
# Note:
#============================================================from headm import *
from tsmodule.tsvisa        import *
from tsmodule.tsstm32       import *dp1308open()
#------------------------------------------------------------dp1308p25v(0)
dp1308n25v(0)stm32cmd('reset')
time.sleep(.1)
stm32cmd('init')setv = linspace(-5, 0, 5)setdim = []
outdim = []for v in setv:if v >= 0:dp1308p25v(v)dp1308n25v(0)else:dp1308p25v(0)dp1308n25v(-v)time.sleep(1)meter = meterval()stm32cmd('rdata')time.sleep(.05)data = stm32memo(1)val = data[0]printf(val, meter)outdim.append(val)setdim.append(meter[0])plt.plot(setdim, outdim)
plt.xlabel("Set(V)")
plt.ylabel("Data")
plt.grid(True)
plt.show()#------------------------------------------------------------
#        END OF FILE : TEST1.PY
#============================================================

※ 结论


AD1256模块现在配置下,只能测量0~5V的电压。其内部有2.5V参考电压。

输出的电压计算公式如下:
假设读出的数值为:NNN,那么实际的电压值为:

V=5.0×N0x7FFFFFV = {{5.0 \times N} \over {0x7FFFFF}}V=0x7FFFFF5.0×N​

▲ 设置电压与测量电压之间的关系

▲ 设置电压与测量电压之间的差别


  1. AD工程文件:AD\Test\2020\AD1256\TestAS1256STC8G.SchDoc * ↩︎

  2. C51工程文件:C51\STC\Test\2020\AD1256\TestAD1259\TestAD1256STC8G.uvproj ↩︎

ADS1256 24位ADC模块相关推荐

  1. 开源:ADS1255+STM32G0,24位adc,五位半电压表

    1.项目背景 2015年5月份评估完十几种24位ADC后就从第一份工作岗位上离职了,做的24位AD都没有达到实际的效果,一直耽搁困扰了好久.是硬件设计的问题?还是软件开发的问题?还是24位ADC真的不 ...

  2. ADS1248/1247(TI) 24位ADC详细配置说明

    ADS1248/1247介绍: ADS1248是TI的一款 24位delta-sigma(ΔΣ) .2KSPS.8通道(4通道差分)ADC芯片,通讯协议为SPI.可编程数据速率高达2ksps.低噪声P ...

  3. 称重传感器及HX711 24位ADC的重量参数检测

    一.HX711 24位ADC HX711采用了海芯科技集成电路专利技术,是一款专为高精度电子秤而设计的24位A/D转换器芯片.与同类型其它芯片相比,该芯片集成了包括稳压电源.片内时钟振荡器等其它同类型 ...

  4. 蓝牙芯片|伦茨科技全新24位ADC蓝牙芯片-ST17H69

    不同类型的医疗产品,血氧仪.血压计.红外体温计.呼吸机.核磁共振仪.超声仪.CT扫描仪等,每个产品内都有ADC芯片.ADC芯片好比人脑,能将各类传感器(好比手眼口鼻)感知和采集的电气信号转化成数字信号 ...

  5. ES8218E低功耗24位ADC芯片 可直接接麦克风

    苏州顺芯ES8218 24位8-96KHZ采样率,单通道,I2s / pcm 主 / 从串行数据端口,低功耗,立体声,音频ADC模拟转数字芯片!总谐波失真加噪声为-85dB,信噪比为95dB! 1.8 ...

  6. 24位ADC数据转换,保存为hex文件,并利用python解析hex文件画图

     目前有许多ADC芯片都是24位精度的,这个位数稍显尴尬,因为在常用的变量类型中,有8bit.16bit.32bit,唯独没有24bit,这就导致我们在很多情况下,需要自己敲代码去处理这个24bit的 ...

  7. TI的ADS1299国产替换方案 - ADSD1299(24位ADC芯片)

    各位网友人们好,这两年席卷全球的"缺芯潮"相信大家都记忆尤新,虽说目前情况略微有些好转,但整体市场呈现出的现状是芯片还是非常紧缺,尤其是对于一些高端的和特殊行业的模拟芯片,像用在医 ...

  8. 基于24位Δ-ΣADC和FPGA的高精度数据采集系统开发

    欢迎订阅<FPGA学习入门100例教程>.<MATLAB学习入门100例教程> 目录 一.理论基础 二.核心程序 三.测试结果 一.理论基础

  9. DIY仪表24位ADC,锂电池供电可充电,变态级精度、线性度和...

    先来说下板子功能,所有参数精度绝对实打实的和DMM7510仪表对照过,有图有真相的 主控STM32L,显示OLED 0.96英寸,电压都是用三点校准的方法用STM32L自带EEPROM保存参数,电流是 ...

  10. STM32 MCO+SPI获取24位模数转换(24bit ADC)高速芯片ADS1271采样数据

    STM32 MCO+SPI获取24位模数转换(24bit ADC)高速芯片ADS1271采样数据 STM32大部分芯片只有12位的ADC采样性能,如果要实现更高精度的模数转换如24位ADC采样,则需要 ...

最新文章

  1. inline内联的用法与作用
  2. SAP Spartacus键盘按下tab键之后,出现的focus state border是如何实现的
  3. jmeter5.1.1启动提示not able to find java executable or version的解决办法
  4. shell脚本拼接中间带空格的两个变量成一个变量
  5. JAVA比较文件是否相同
  6. python编程(关于cocos2d)
  7. 软件需求规格说明书(网络助手)
  8. tkinter的可视化拖拽工具_微信小游戏内测可视化工具!“人人都是小程序开发者”的时代到了...
  9. uni-app url 传参有长度限制么?
  10. 下载站源码 php,thinkphp开发素材资源源码下载站整站源代码
  11. css 单行文本溢出显示省略号 1
  12. 3250灵魂附体?诺基亚PureView概念机809
  13. android微信支付插件,Android通过Apk插件调起微信支付
  14. w ndows10隐藏桌面设置,据说,这是80%的人都不知道的win10隐藏功能
  15. excel设定备选值
  16. 16款测序平台性能大PK!基于人类和细菌基因组DNA水平的多平台测序数据研究成果发布
  17. 为何Adobe国际认证证书被那么多人吐槽,看完你就明白了
  18. HTML5触摸事件(多点、单点触控)
  19. MEGAHIT:多快好省的宏基因组装工具
  20. 做好项目成本核算需要注意哪些事项

热门文章

  1. 转--关于引擎优化的相关资料
  2. 台式计算机那里可以录音,录音机怎么录音?电脑录音介绍
  3. [解题报告]Ural 1011 Conductors
  4. Windows系统中的睡眠时间和关闭屏幕时间的设置
  5. ShopTalk第19集
  6. HTML为标题栏添加图片
  7. 上载人生(数字天堂)
  8. 英语语法基础02(句子成分)
  9. 高中数学一轮复习逆袭必要学习方法
  10. Python字符串杂谈