本文为大家带来ads1256中文资料汇总。
ads1256模块说明
1、 ads1256芯片的模拟电压是5v,数字电压3.3v,所以模块需在左上角供电5v,供电电源需纹波较小。3.3v数字电压是模块上ams1117-3.3芯片产生的,无需再接3.3v电压。
2、 芯片是数字io口d0-d3全部引出,如需要自行连接调试。 3、 3.3v电压输出为模块ams1117-3.3芯片产生,可为外部单片机供电。
4、 芯片需要连接单片机的控制口全部引出,测试时按照测试程序配置连接。这个地方说明下:单片机需是3.3v电平的。
5、 左上角5v电压输出是5v外部供电经过模块滤波电路产生的,可为外部传感器供电。
6、 基准电压芯片为ref3125,固定输出2.5v电压,电流约为50ua只能用过模块的参考电压测试点,不能用于外部供电。
7、8路模拟输入是所要测量的电压输入点,可通过程序设置为单独输入模式或是差分输入模式。模拟信号输入后经过模块上的rc滤波器再送入到芯片,rc滤波器为低通滤波,通过频率约为300hz,如果想增加通过频率,可修改rc值。
8、模块的默认模拟输入电压为-5v---+5v,如果想测试更高的电压,可以在输入端焊接分压电阻,详细焊点参考电路图。
ads1256功能原理图及说明
电源部分
说明:该电路为3.3v及1.8v产生电路,采用ams1117的控制芯片,j1为+5v输入端子,这里请提供较干净的输入电源。
说明:该处为电源滤波。
说明:该处为dvcc供电选择电压。j13对应拨码开关,拨码开关打到左方,dvcc链接到1.8v,拨码开关打到右方,dvcc链接到3.3v。
说明:模拟地与数字地隔离,实现单点接地。确保地线不干扰,不产生压差。
采集输入部分
说明:j2-j9为采集输入点,您测试的电压经过该点进入adc芯片。偶数电阻r0 r2 r4 r6 r8 r10 r12 r14为输入电阻,与后面的电容组成rc滤波电路,与奇数电阻(默认不焊接)r1 r3 r5 r7 r9 r11 r13 r15组成输入衰减电路,对大于5v的输入信号进行衰减。
晶振部分
2.5v参考电压产生电路
说明:采用ref1004-2.5产生基准电压,经过r17 c22组成的rc滤波,进入u4op350运放。运放在这里做跟随器,放大倍数为1,作用有两个,a :提高基准电压的输出能力(原因:ref1004-2.5经过r17之后,电流的输出能力非常低)b:降低基准电压的噪声。
主控ads1256
说明:acom可灵活配置。可以接地,也可以接外部型号,作为参考端,jp10跳帽连接,acom接地;jp10跳帽断开,acom悬空。
d0 d1 d2 d3引出到j11,方便客户调试读取数据用。
ads1256模块程序源代码设计
#include 《avr/io.h》
#include 《avr/signal.h》
#include 《avr/interrupt.h》
#include 《avr/delay.h》
#include “ads1256.h”
#include “main.h”
/***************************************************************
*名称: void spi_init(void)
*功能: spi初始化
*入口参数: none
*出口参数: none
*日期:
****************************************************************/
void spi_init(void)
{
spi_in; //输入端口使能内部上拉
spi_ddr; //ads1256的spi端口方向设置
spcr=(1《《spe)|(1《《mstr)|(1《《spr0)|(1《《cpha); // 使能spi接口,主机模式,msb高位在先,模式0, 16分频,spi时钟约460khz
}
*名称: unsigned char read_register(unsigned char reg)
*功能: 读ads1256寄存器
*入口参数: reg--要读的寄存器
*出口参数: 寄存器的值
*日期:
{
unsigned char x;
while(pin_rdy); //drdy信号低时才能读寄存器
spi_tranbyte(rreg|reg); //选择写入寄存器
spi_tranbyte(0x00); //写入1个寄存器
x=spi_tranbyte(0xff);
return (x);
}
/***************************************************************
*名称: long read_data()
*功能: 读ads1256的数据
*入口参数: none
*出口参数: none
*日期:
****************************************************************/
long read_data()
int main(void)
{
unsigned long x;
lcd_init();
spi_init();
ads1256_init();
while(1)
{
while(pin_rdy); //drdy信号低时才能读寄存器
write_register(mux,0x01);
spi_tranbyte(wakeup);
spi_tranbyte(rdata); //选择写入寄存器
x=(unsigned long)(2*vref*read_data())/0x007fffff;
lcd_num(x,0,0);
delayms(1000);
}
}
{
unsigned char rx_dat[4];
long x;
rx_dat[0]=spi_tranbyte(0xff);
rx_dat[1]=spi_tranbyte(0xff);
rx_dat[2]=spi_tranbyte(0xff);
x= (long)rx_dat[0]*65536+(long)rx_dat[1]*256 +(long)rx_dat[2];
return (x);
}
/***************************************************************
*名称: void ads1256_init(void)
*功能: 初始化ads1256
*入口参数: none
*出口参数: none
*日期:
****************************************************************/
void ads1256_init(void)
{
write_register(mux,0x01); //mux寄存器为默认值
write_register(adcon,0x20); //adcon寄存器为默认值
write_register(io,0x00);
}
直流无刷电机通交流电
如何使用DMA加速低功耗可穿戴设备中的外设监控
算法模型发展的燃料,AI基础数据服务市场规模快速增长!
人工智能技术加快远程手术升级
区外链将如何改变国际救济工作?
ads1256中文资料汇总_功能原理图及说明_ads1256驱动程序源代码
Compose在社区中的反响
VR硬件公司 Jaunt 的创始人遭挖角,苹果不搞手机搞起 VR来啦?
富士康投2.1亿美元在江苏淮安建苹果生产线
高通芯片跑分反超华为?芯片之争再升级,它的布局才是关键!
无刷直流微电机有哪些特点?
什么是单相电机_单相电机如何调速
NVIDIA推出全球首款商用L2+自动驾驶系统DRIVE AutoPilot
锂电池组过热的原因与解决-「安的电子」
曹明:投资4.5G就是投资5G 产业发展正当时
苹果将通过系统更新来升级HomeKit智能家居功能
物联网机器人市场预计2020年将超过200亿美元
电动汽车交流充电唤醒全剖析
新日本无线的高音质音频品牌(MUSES)原装正品正式进入中国市场
傅里叶变换有多伟大?傅里叶变换告诉我们如何解决问题