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

ADS131A04: ADS131A04

Part Number:ADS131A04

   对于ads131A04这款芯片,我发送LOCK(0655)命令之后发现芯片的spi输出全为1,正确应该是0655才对,这是什么原因啊?

  我M2和M1接的地,M0悬空的。用fpga控制的该款ADC,发送0655并无回馈,下图为我仿真截图

LXK L:

,

Amy Luo:

您好,

您是在什么情况下发送的LOCK命令?如果是上电之后,那ADC不会响应,如下截图说明,在接收到 FFDDh后,需要发送UNLOCK命令才能SPI通信。在datasheet Figure 106.有 ADS131A0x Configuration Sequence,您是按照这个顺序配置的设备吗?

,

LXK L:

我是按照10.4 Initialization Set Up这个图进行操作的,

具体操做步骤是,等待5ms power up,发送reset命令,等待回复,回复确认,发送null命令,等待回复,回复确认,发送unlock命令,等待回复,回复确认,分别写3个寄存器,CLK1,CLK2和ADCEN这三个寄存器,等待回复后确认,然后发送weak up命令,等待回复,回复确认,然后再发送lock命令,回复确认,之后就是NULL命令了,他一直回复我2220,好像是F_SPI这个寄存器置位了。我并不知道发了锁命令之后再发什么命令,所以就发0,表示null命令

还有一个问题想请教,关于这个dready信号,它何时为输入,何时为输出,是主机为输出,从机为输入对吗,那么他可以和片选直接连接在一起吗

,

LXK L:

关于那个全为1的原因是因为ADC芯片有些线路虚焊,已经解决掉了,目前就是发送LOCK之后再发NULL就会回2200,表示F_SPI置1,不知道为啥,我lock之后重新发lock回复0555,是正确的

,

Amy Luo:

LXK L said:关于那个全为1的原因是因为ADC芯片有些线路虚焊,已经解决掉了,

很高兴这个问题已经解决掉了,感谢您的反馈!

LXK L said:目前就是发送LOCK之后再发NULL就会回2200,表示F_SPI置1,不知道为啥,

F_SPI置1说明STAT_S 寄存器有位置1了,您读下STAT_S寄存器看下哪个或哪些位置1了?

,

Amy Luo:

LXK L said:还有一个问题想请教,关于这个dready信号,它何时为输入,何时为输出,是主机为输出,从机为输入对吗,那么他可以和片选直接连接在一起吗

具体取决于SPI接口配置的模式,SPI接口通过M0管脚可以配置其工作在三种模式下,如下截图:

在 Synchronous Slave Mode DRDY是输入管脚,可以和CS管脚连接在一起,另外两种模式是输出管脚,具体应用信息见 datasheet 9.5.2 SPI Interface章节。

,

LXK L:

我发了锁命令之后就再解锁去读STAT_S寄存器读不了,我一直从上边我写的复位到锁寄存器,接下来解锁,读STAT_S,然后重新复位,在到锁,解锁,读STAT_S,这样一直重复操作,好像发的命令回复都是FF

,

Amy Luo:

很抱歉,今天我休假了,明天我会具体看下你的问题

,

LXK L:

好的,谢谢,目前看到的是P脚和N脚都超过了设定阈值,那个A_SYS_CFG我都是按默认的,我都没有写东西,但是它报警超阈值了

,

Amy Luo:

LXK L said:我发了锁命令之后就再解锁去读STAT_S寄存器读不了

发了lock命令和unlock命令都有正确的ACK吗?

LXK L said:我一直从上边我写的复位到锁寄存器,接下来解锁

您的意思是按照10.4 Initialization Set Up 这个步骤操作的是吗?这个过程中所有的命令都有正确的ACK 吗?或者说从哪里异常的?

,

Amy Luo:

LXK L said:目前看到的是P脚和N脚都超过了设定阈值,那个A_SYS_CFG我都是按默认的,我都没有写东西,但是它报警超阈值了

您现在可以正确读回STAT_S寄存器值了是吗?或者说现在所有的命令都有了正确的ACK?

VNCPEN默认是设置为0,VNCPEN的设置与供电电压范围和模拟输入信号范围有关。您的供电电压分别是多少?输入信号范围是什么?

,

LXK L:

回复2210,和STAT_S无关,发送lock之后就一直发0000,相当于null,但是它一直回复我222000在response这个数据帧段,我模拟供电AVDD是5v,IOVDD是3.3V,输入的信号是2.5v目前

,

LXK L:

回复221000上边写错了

,

LXK L:

发送完lock命令之后,在发送NULL,因为要一直为0,然后就报221000,我查看STAT_P和STAT_N都是0f回复数据,这个会对采样有影响吗

,

Amy Luo:

LXK L said:我模拟供电AVDD是5v,IOVDD是3.3V,输入的信号是2.5v目前

我很奇怪您在这个输入在规格范围内,为什么还报错,您的输入电路是怎样的?单端输入还是差分输入?可以附上电路图吗?

,

LXK L:

,

LXK L:

我将MO悬空,将M1和M2接地

,

Amy Luo:

LXK L said:我模拟供电AVDD是5v,IOVDD是3.3V,输入的信号是2.5v目前

您输入的是直流2.5V还是交流信号?若交流幅值变化范围是多少?

如果是DC2.5V,那真的很奇怪,因为在单电源5V供电时,输入范围是0~5V,2.5V完全在这个范围内,而STAT_P  正极输入报错很不应该。不知道与您加的二极管是否有关,您可以尝试去掉1N5819二极管再做测试吗?

STAT_N  负极输入报错,很可能是地平面存在干扰,若有很小的负的干扰信号在地平面上,那么负输入端也相当于超出阈值进而报错。

,

LXK L:

好的,谢谢,目前已经可以正常工作,但是这两个仍然报错,这个报错会对该芯片产生什么影响吗?

,

LXK L:

我们试一下,非常感谢

,

Amy Luo:

只要不超过绝对最大额定值就不会损坏芯片,但是超过了推荐的工作条件,可能会影响设备的可靠性。

如果不是二极管的原因,您可以实测ADC输入电压具体是不是2.5V吗?

您尝试修改寄存器 COMP_TH[2:0]阈值大一些,看STAT_N 是否还报错?

,

LXK L:

实测是2.5V,这个COMPH_TH初始值就是000,是最大的,我并未对该寄存器进行修改,我只修改了两个CLK寄存器和ADC_EN这三个寄存器,现在搞好了,STAT_P不报错了,但是STAT_N仍然报错,数据采集回来都是正确的,这个会对芯片造成影响吗?比如说对芯片工作时间会不会造成影响

,

Amy Luo:

LXK L said:现在搞好了,STAT_P不报错了

可以分享是什么原因导致的报错吗?

 COMP_TH[2:0]阈值默认阈值是5%,您可以修改寄存器使其10%、15%……再看是否报错吗?

,

LXK L:

STAT_P报错是因为没有输入,P脚有几个悬空导致报错,P脚不可悬空,n脚我是直接和地连接的,是不是需要加一个下拉才可以,目前已经可以正常采集,但是数据比较跳,怀疑是不是由于N脚这个报错引起的,我们测了输入的PN脚之间的电压是非常稳定的,REFXT这个基准也很稳,但是它数据跳的比较厉害。

赞(0)
未经允许不得转载:TI中文支持网 » ADS131A04: ADS131A04
分享到: 更多 (0)