TI中文支持网
TI专业的中文技术问题搜集分享网站

ADS131A02: DRDY信号一直没有输出

Part Number:ADS131A02

采用异步中断模式(M0=VDD,M1=VDD,M2=GND),外部晶振8MHz,依次写入如下寄存器:

RESET:    //h00 11 00 00
UNLOCK: //h06 55 00 00
A_SYS_CFG: //h4B 68 00 00
WREG|CLK1: //h4D 08 00 00
WREG|CLK2: //h4E 21 00 00
WREG|ADC_ENA: //h4F 03 00 00
WAKEUP:      //h00 33 00 00
LOCK:  //h05 55 00 00

每次写入的指令后,均用null指令可以查看指令写入正确,如发送h27000000(读地址7寄存器数据):

但是,多次测试,DRDY持续为高电平,无法捕获到DRDY下降沿,请问是哪里出了问题?

Amy Luo:

您好,

您是按照 datasheet 中 Figure 106. ADS131A0x Configuration Sequence 初始化的设备吗?

每次写入命令后是否都有正确的响应?

不明白您附的时序图,采用异步中断模式的话是下面接线,发送读取命令的话,应该是Master  输出,返回寄存器值的话,应该是Slave 输出。

,

yaojinan yao:

是的,电路按figute 60进行设计,初始化时序按figure 106进行,每次指令后用null指令可以看到ACK数据正确。我附图时序,表示我下发读寄存器地址7数据,用null后能看到ACK回发指令为05h,可以看出我M0和M1状态均为高,与硬件状态一致!

,

yaojinan yao:

我再次检查了一下,发现figure中写ADC_ENA指令数据为0fh,我写入的是03h,因为我用的ADS131A02

,

yaojinan yao:

不知道是否会是这里影响

,

Amy Luo:

应该是0fh,其他无效:

您将 ADC_ENA写入 0fh 后看是否有DRDY 信号?

,

yaojinan yao:

ADS_ENA写入0F,仍未解决问题。我的设计如下:

外部时钟为8MHz,ADS_DOUT已上拉。通过软件配置M0=1(异步中断),M1=1(32bit),M2=0,ADS_RSET=1。

上电指令测试过程如下:

一直检测不到DRDY的低电平状态。测试过程发现,多次向ADC_ENA寄存器写入0F,但读出ADC_ENA寄存器的值一直为03h。

我设计了多张DEMO板,每张板测试均是这样的现象。WHY?

,

Amy Luo:

晶振是否起振?测量频率对吗?

NULL 命令的响应不对,发送NULL命令,接收到的应该是0x22dd0000,ddh是寄存器STAT_1 的值:

因为是32bits 后面的补0s。

yaojinan yao 说:测试过程发现,多次向ADC_ENA寄存器写入0F,但读出ADC_ENA寄存器的值一直为03h。

返回03h应该是对的,因为 ADS131A02只有2通道ADC。

D_SYS_CFG 寄存器您采用的默认值是吗?那默认帧长是动态帧长,那么使能 ADC 后,SPI 帧长将改变,后面的命令帧长是否按使能通道数增加了?

,

yaojinan yao:

1)晶振是否起振?测量频率对吗?

回复:用示波器测试,发现晶振不起针振,无源晶振的2个引脚均无频率输出。将晶振的匹配电容由30pF调整为晶振所需的12pF,依然无ready输出。

2)D_SYS_CFG 寄存器您采用的默认值是吗?那默认帧长是动态帧长,那么使能 ADC 后,SPI 帧长将改变,后面的命令帧长是否按使能通道数增加了?

回复:将D_SYS_CFG 寄存器由原来默认的3Ch配置为3Eh,即调整为固定字节长度,依然无ready输出。

3)NULL 命令的响应不对,发送NULL命令,接收到的应该是0x22dd0000,ddh是寄存器STAT_1 的值。

回复:经过多次测试发现,NULL 命令的响应不对是由于未发送UNLOCK命令,发送UNLOCK命令后,NULL 命令的回复为“22000000h”。同时,通过读取指令,读出地址00h到14h的寄存器值,均检查无异常。主要几个寄存器值如下:reg0=02h,reg1=05h,reg2=00h,reg5=00h,reg7=05h,reg11=68h(也设置过E8h),reg12=3Eh,reg13=08h,reg14=86h,reg15=03h。从而说明,SPI通信不存在问题。

总结:通过以上测试,目前认为可能主要原因为晶振不起振所致。当前选用晶振型号为1C208000CE0R,标称频率为8MHz,精度30ppm,匹配电容为12pF,电路连接关系已检查过,连接正确。因此,提出以下几个问题:

1)M2\M1\M0是通过加电后由MCU程序控制,而不是直接通过硬件进行上下拉,是否存在上电配置顺序问题,即上电后M2\M1\M0还未来得及配置,ADS131先判断为内部时钟模式导致晶振不起振,待MCU配置M2\M1\M0,也不能重新起振?

2)晶振起振,还需要ADS131进行某些特殊配置?

3)选用的晶振1C208000CE0R,是否存在不满足使用要求?

,

Amy Luo:

查看数据手册 这3个管脚是要在上电前设置好的:

如果这3个管脚是接MCU程序控制,则需要reset 管脚复位一下ADS131:

M2\M1\M0的配置不影响ADS131 时钟的工作。ADS131 没有内部时钟,需要外部提供时钟才能工作。

使用晶振需要IOVDD>3V,但是datasheet 没有给出最小晶振频率,你可以尝试使用16.384 MHz吗?datasheet 给出的推荐都是16.384 MHz的。

赞(0)
未经允许不得转载:TI中文支持网 » ADS131A02: DRDY信号一直没有输出
分享到: 更多 (0)