当前位置:首页 >> 信息与通信 >>

ADS1258 24BitAD用法详解使用心得和程序


鉴于 ADS1258 的资料很少,只有个 CPLD 控制 ADS1258 的例子,而且有些地方也不 太详细,初次接触这款芯片的还是有些问题。ADS1258 又没有中文资料,有些读者阅读也 会有些障碍。之前在用 ADS1258 的时候,我也有很多疑问,发到网上也没有得到回复,总 的来说用的人不多,资料也很少。后来也有很多朋友加我 QQ,询问相关的问题。所以打算 把我的调试经验和程序

拿出来与大家分享,如果能帮到大家也就不枉码这么多字了。 总的来说,英文资料上写的还是很详细的,但是我觉得还是有些问题没有重点说明。还 有就是新手不要老是指望有中文资料让你舒舒服服的看。 有些资料只有英文的, 那就需要你 得具有一定的英语阅读能力了。 ADS1258 的参数这些我就不说了,自己查资料。我主要说明这几个部分,这几个部分 也有些重叠的地方: 一、资料上值得注意的几个地方。 二、我的调试过程中遇到的问题。 三、已经通过了调试的程序代码。 四、总结。 一、资料上值得注意的几个地方 1、AD1258 上电后到底正常状态是怎样的? 因为是调试,所以首先要确定你 AD 是否在正常工作。 AD1258 上电后,不需要你配置,也能工作,因为它有一个默认的配置,所以根据这个 默认配置所表现的状态就能判断是否是正常的。 正常的状态是这样的:一、上电后,AD_DRDY 是有波形的,是自动扫描模式,并且是 最大采样率(23K) 。你用示波器测 AD_DRDY 就能看出来。二、时钟输出口也是有波形的。 如果不是这样,看你 AD_RESET 连上并且控制好了没有,电源接对没有,时钟信号正 常没有等等,排查,直到正常。 数据手册上的参考电路 AD_RESET 是没有连接的, 因为它是用的软件复位, 但是作为 调试来说这样很不好!强烈建议一定要接上,控制它复位。 下面这图的英文要仔细读懂。

2、资料上 AD1258 的内部结构图,这个图最好看明白。对于你理解他的差分,单端连接有 帮助。我这截图可能不太清楚,你们可以找数据手册上的图看。

3、时钟电路部分容易接错的地方! 看见下图没有,注意!一般晶振旁的电容都是共地的,而这里却是共 AVSS,也就是模 拟电源负端。有时候容易按习惯画法,看也不看参考电路,就画错了,调试通不过,耽误时 间。

4、关于单端输入和差分输入,自动扫描模式,固定扫描模式,配置等。 自动扫描模式:可以采用 16 个单端输入,或者 8 对差分输入,当然,你也可以只设置 一个通道,不过速度无变化。最大速度 23K。 固定扫描模式:速度可以达到很高,125K。只能设置一个差分或者单端通道。你想如 果可以设置多个通道了,那不是成了自动扫描模式了? 单端输入:就是所有通道有个公共端 COM,见内部结构图。最大可以用 16 个通道。 差分输入:就是把 2 路 AIN,作为一路差分信号。 固定扫描模式的配置寄存器中,如下图,只有 AINP 0~3 AINN 0~3,这里大家理解可 能会有点偏差。后面的 P 是差分信号的正极的意思,N 就是负极的意思。这个图是什么意 思呢?我们知道这个是配置哪路输入作为固定扫描通道的, 你可以配置差分, 也可以配置单 端输入。那为什么只有 4 位呢?是不是只能配置 AIN0~4 这几个输入通道?不是的。这里 配置采用的是 2 进制码来确定你想要配置的通道的。 如你要配置 AIN3 作为差分正,AIN4 作为差分负。你要这样配置: 3 的二进制码是 0011, 4 的二进制码是 0100 3 是正也就是 P 4 是负也就是 N 整个 配置字节就是: 00110100 也就是 0x34 单端如何配置的我就不说了。

二、我的调试过程中遇到的问题 1、一开始看手册,参考图上没有接 RESET,我们也没有接,结果后面调试的时候,根本不 知道 SPI 通信没有,因为你 SPI 没通信,就没法发送指令,没法控制,没法复位,连正不正 常都不知道。只有先确保 AD 复位工作了之后,再去找 SPI 通信的原因,这样就明确了方 向。 2、另一个同事设计这个板子的时候,晶振电容共地了,没仔细看参考图。还有 2.5V 电源, 和参考电源不要搞混了。不要把参考 2.5V,用在电源上,也不要把电源给参考 2.5V。 3、AD 采样最好采用我这样的方法,因为其他方法我没调正常。还有注意读取速度的问题, 也就是你单片机读取 AD 的速度, 要大于你 AD 采样的速度, 不然就会数据丢失。 调试后期, 加上一个信号,看测出来是不是这么多,有点偏差算正常,因为电源精度可能不够,高精度 的 AD 是能反应这个变化的。

三、已经通过了调试的程序代码: 原程序有些部分如 DMA 蓝牙什么的,不便于大家阅读,删除了。这个程序也不是拿给 大家直接就编译 OK 的,只能是作为参考,我想是足够了。看过资料的人,点拨一下就明白 的,没看过的,还需仔细看看。

这是一个 ADS1258 初始化的程序,采用一个一个配置寄存器,当然你也可以连续配置。 这个程序的硬件连接说明: 1、单片机 IO 口控制 AD_RESET 复位(强烈建议接上,便于调试,投产的时候可以不接, 用命令来复位,IO 口不紧张的话一定要接上) 。 2、采用 AD_DRDY 接入单片机外部中断口(需配置单片机) ,AD_DRDY 来的时候,下降 沿在单片机上产生中断信号,在中断处理程序中读取数据。

void ADS1258_INIT(void) { AD_CS = 0; AD_CS = 1; // RESET SPI halWait(30); // 不是必须 AD_CS = 0; // RESET SPI AD_START = 0; // STOP converter halWait(20); AD_RESET = 1; halWait(2);

AD_RESET = 0; halWait(2); AD_RESET = 1; halWait(2); // 70 02 00 00 00 FF FF 00 FF FF 8B //配置信息,具体作用 参照手册,我这人很懒,就不写了。 Uart0Send(0x60); Uart0Send(0x00);//BIT3:CLKENB BIT1:STAT BYPAS FIX-CHANNEL Uart0Send(0x61); Uart0Send(0x02);//0x00:1.9K SPS standby 0x02:31.2K Uart0Send(0x62); Uart0Send(0x00); Uart0Send(0x63); Uart0Send(0x00); Uart0Send(0x64); Uart0Send(0x01); Uart0Send(0x65); Uart0Send(0x00); Uart0Send(0x66); Uart0Send(0x00); Uart0Send(0x67); Uart0Send(0x00);//GPIO output test Uart0Send(0x68); Uart0Send(0xFF); Uart0Send(0x69); Uart0Send(0x8B); AD_START = 1; }

//单片机中断处理程序 /////////////////////////////外部中断///////////////////////////////////////// //P1_2 外部中断 读取 AD 数据

#pragma vector=P1INT_VECTOR __interrupt void P1INT_IRQ(void) { //AD_DRDY P1_2 下降沿触发中断 P1_0 = 0; EA = 0; Uart0Send(0x00); Uart0Send(0x00); temp = U0DBUF;//buffer[k++] = U0DBUF; //丢弃状态字节 需要的可以不丢 Uart0Send(0x00); buffer[k++] = U0DBUF;//读取有效数据 Uart0Send(0x00); buffer[k++] = U0DBUF; //读取有效数据 Uart0Send(0x00); buffer[k++] = U0DBUF; //读取有效数据

//注意 清标志一定要按下面顺序,否则,会采一个点多次进入中断! P1IFG &= ~0x04; // 清 P1 口中断标志 // 清 P1 口中断标志 IRCON2 &= 0X17; //P1IF = 0x00; //清中断标志

EA = 1; P1_0 = 1; } 四、总结。 1、总之,手册上的图出错的可能性极小极小,之所以不正确,是因为手册上的图是在一定 条件下的,你们可能条件不一样。 2、AD1258 的资料太少,调试一定要注意步骤,有别人指点一下会节约很多时间。 3、是在没辙了,去请教 TI 的技术支持,TI 的服务真是没话说的,不过也不要太指望别人 给你解决问题。 4、我的邮箱:yhcdxx@163.com。时间有限不可能一一回复,发信的时候,尽量详细阐述问 题,配上截图,还有你做了哪些工作,测试结果是什么。如果文中有错误,欢迎发信指正, 免得误导别人。


相关文章:
ADS1258 24BitAD用法详解使用心得和程序
ADS1258 24BitAD用法详解使用心得和程序_信息与通信_工程科技_专业资料。ADS1258 24BitAD用法详解使用心得和程序鉴于ADS1258 的资料很少,只有个 CPLD 控制 ADS1258 ...
基于Δ-Σ系列AD转换器的心电图前端模拟电路设计
这篇报告同时涵盖 了基于 ADS1258ADS1278 的...用运算放大器实现的有源滤波器以及 AD 转化器件等。...使用低增益(大约 5) 高分辨率(大约 24bit)的 ADC...
更多相关标签:
ads1258 | ads1258驱动程序 | ads1258中文资料 | ads1258程序 | ads1258 采集通道 | ads1258参考例程 | ads应用详解 | ads1220用法 |