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

ADS131A04: ADS131A04级联,主片未输出从片片选信号。

Part Number:ADS131A04

使用两片ADS131A04级联,FPGA作为主控,采用以下连接方式,时钟第一片接晶振,第二片时钟输入直接接第一片的CLKIN。抓取波形入下图,为什么发送ADCEN信号时,从片的片选信号没有生成。

Amy Luo:

您好,

M1和M2管脚是什么电平?您是否已对寄存器配置还是说采样的默认寄存器配置?您是按 Figure 106. ADS131A0x Configuration Sequence配置的设备吗?

,

nick chen:

,

nick chen:

芯片采用级联方式,修改寄存器按照代码顺序修改,修改完成后,进行ADC_ENA 操作时,主片DONE没有发出从片的CS芯片。SPI时钟频率为5M。
1,尝试修改写入时间间隔,和修改SPI频率故障依旧。
2,通过FPGA提供16.384时钟故障依旧。
最后一张图可以看出,忽略错误继续配置,从片在FPGA发送240个0字节读取ADC值后,成功回复2F0F00.

,

nick chen:

,

Amy Luo:

很抱歉没看懂您附的时序图,MISO和MOSI是标反了是吗?2F0F00前面的输出是什么?

配置SYS_CFG和CLK寄存器的时候,两个ADC都可以配置的是吗?到ADC_ENA 寄存器就不可以了?

,

Amy Luo:

在ADS131A04  产品主页如下路径提供了example code,我直接附在这里:ADS131A04 Example C Code

ADS131A04  产品主页链接:https://www.ti.com.cn/product/cn/ADS131A04

,

nick chen:

MOSI是反的,现在的问题是级联,按照 Figure 106. ADS131A0x Configuration Sequence配置流程,到ADCEN这一步,主片DONE无法输出从片的CS信号,麻烦首先看清楚问题描述,此信号在ADCEN之前的指令都是可以正确生成。

,

nick chen:

我的主控是FPGA,已经参考此代码编写FPGA程序,现在的问题不是因为这个造成的,换个问法,级联的时候主片DONE输出从片CS的条件是什么,规格书未能详细描述。从开始波形看配置为24bit时,发送48bit数据会自动在发送到24bit后产生一个从片的片选,但是在ADCEN的时候为什么不能正确产生。此代码可以配置完成让主片正确工作,所以我的配置流程是没有问题的。从片没有正确工作就是因为到ADCEN这一步他没有正确输出从片的片选,这让我很困惑,我目前所有的板子都是这种情况,并非个例

,

nick chen:

描述中,主片表示device1,从片表示device2.(数据手册Figure 96),目前FPGA两个SPI,SPI分别级联了2片ADS131A04

,

nick chen:

2f0f00前面输出是200000,回复的位状态寄存器,表示ADC芯片状态正常,在前面的回复是2f2700,是写入4f2700的回复,这个都是 Figure 106的配置步骤

,

Amy Luo:

拉低/CS信号后可写入第一个设备。只要在DIN上传输了完整的帧,来自第一ADC的DONE信号变低,从而使能第二ADC,因此进一步写入的任何内容都将进入第二ADC中:

写入寄存器操作,配置SYS_CFG、CLK寄存器和ADC_ENA寄存器的时候,命令应该是4x开头,但是看到您下面截图都是2x开头,您是在进行读寄存器操作吗?

下面红色框中的波形与图中上部数值不对应吗?我怎么没看到您描述的2f2700和200000?

,

nick chen:

但是看到您下面截图都是2x开头,您是在进行读寄存器操作吗?

答复:这个是因为逻辑分析仪设置反了MOSI和MISO,因此,2fXX是设备的回复,我发送的是按照截图的程序发送值,按照以下代码顺序发送

parameter DEVICEID = 24'hff0400;parameter UNLOCKACK = 24'h065500;parameter A_SYS_CFG = 24'h4be200;parameter D_SYS_CFG = 24'h4ca800;parameter CLK1REG = 24'h4d0200;//clksrc=clkin,ficlk=fclkin/2parameter CLK2REG = 24'h4e2700;//fmod=ficlk/2,fdata=fmod/384 //sampling rate=10.67k/sps

parameter ADC_ENA = 24'h4f0f00;parameter WAKEUP = 24'h003300;parameter LOCKREG = 24'h055500;

下面红色框中的波形与图中上部数值不对应吗?我怎么没看到您描述的2f2700和200000?

答复:红色框是device1已经配置成功,程序继续发送读取ADC的指令,两个设备共发送了240个0,这个时候device2才回复了很早之前发送的4F0F的唤醒指令。麻烦可以请教经验丰富或者比较擅长这方面的人员帮忙解答吗?目前代码,波形和原理图都提供了,为什么还没有理解当前的问题是什么。

,

Amy Luo:

很抱歉不能有效的解决您的问题,为更加有效地解决您的问题,建议您将问题发布在E2E英文技术论坛上,将由资深的英文论坛工程师为您提供帮助:

英文论坛对应子论坛链接:https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum

,

nick chen:

已经联系FAE,后天线上会议解决此问题,但是还需要沟通,对此问题你们可以实现下级联两片的方式(按照我这边提供的原理图),配置一下,若配置成功,发送你们配置成功的SPI时序波形,这个可以帮助到我。

,

nick chen:

改变级联方式,采用以下方式:故障表现依旧,重新抓取波形,可以明显看出,发送到4f0f这步时,device2的片选信号消失,直到读取adc数据时device2才正确响应。

,

Amy Luo:

很抱歉,我这边没有实现级联两片的电路板,没法帮助您,您可以问下FAE那边是否可以。

nick chen said:改变级联方式,采用以下方式

您为什么说是改变级联方式?您之前不是也使用的这种方式(First Device Configured in Asynchronous Interrupt Mode)吗?

在device2的片选信号消失的那一帧的device1的SCLK,检查下是否为24个SCLK周期?

,

nick chen:

上面波形使用的是Multiple Device Configuration Using Synchronous Slave Mode,下面一组使用的是Multiple Device Configuration Using Asynchronous Interrupt Mode,

截图部分,无片选的波形48个时钟已经标出序号。

,

nick chen:

芯片在ADCEN之后,完整bit从24变成120,所以ADCEN之后的命令都需要发送120bit(芯片手册居然不说,给的参考还是错的,当然不说的还有很多),从ADCEN的波形没有发够120bit报错,所以也不能正确生成从片片选。

TIdemo程序给的也是错误的(单片也应该写够120bit,防止出现报错,虽然没有影响到正常工作),ADCEN之后的操作未将发送bit调整为120bit,导致demo板和demo程序一直在报错,希望后续兄弟们注意。

,

Amy Luo:

感谢您的反馈,看到您的回复后,我又翻看了下datasheet,如下截图,在动态帧模式下,在ADC_ENA寄存器中启用ADC会更改SPI帧大小,这与使能的ADC通道数有关。在您的应用中设置是24bits,使能4通道ADC的话,5 words*24正好是120bits,如果是使能2通道的话,那么一帧将是3 *24bits =72bits。

,

nick chen:

问题已经知道了,那为什么你们给的demo程序是错误的,没有动态调整,导致ADS131A04 EVM GUI运行全程在报SPI错误。而且看之前回答,你们还不是很清楚这个是个问题。新的问题在提交了,按照帧要求配置是好了但是级联一样不工作。

,

Amy Luo:

很抱歉,我之前没有意识到使能ADC后会更改SPI帧大小,还一直以为是24bit数据。看到您的回复后才意识到这个问题。

赞(0)
未经允许不得转载:TI中文支持网 » ADS131A04: ADS131A04级联,主片未输出从片片选信号。
分享到: 更多 (0)