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

ADS131E06: ADS131E06跨板菊花链回读数据异常(跨板信号经过SPI-MLVDS转换)

Part Number:ADS131E06Other Parts Discussed in Thread: ADS1278, ADS131E08

相关问题描述.zip

你好:

      因为问题描述较多,所以上传了相关问题描述.zip

     系统概述:本设计应用于铁路沿线的三相电压电流的监测。需要采集的对象多,并且要求实时同步采集。需要MCU一个SPI口管理60个模拟量采集通道,1片ADS131E06提供6个通道,共需要10片。但是由于PCB空间限制,一张板卡上只能放下5片ADC,即30路ADC采样电路,另外30路需要放到不带MCU的板卡上。由于SPI单端信号跨板传输时,速率得不到保证,且传输不稳定、抗干扰性差,所以将板间的SPI单端信号转换成LVDS差分信号进行传输,原理设计参考了TI的https://www.ti.com/tool/TIDA-060017.转换芯片采用了TI的SN65MLVD040RGZT。

    问题概述:在进行ADC数据读取时,板1五片ADC芯片没有异常。采用差分转换后的板2出现ADC采集不正常现象。

     具体如下:

  1. ADC有输入的情况下长时间工作,板2所有ADC均有概率出现异常值,与输入偏差一倍左右。
  2. ADC没有输入的情况下,每隔两秒板2第一片ADC所有通道出现异常值。长时间工作,板2其他ADC有概率出现异常值。

    测试1: 使用板1上MCU的一个SPI通道直接连接板2,即板2的ADC不与板1的ADC 构成菊花链。SPI经过MLVDS芯片转换成差分信号后,与板2的SPI总线进行通信。

    1. 此环境下,MCU SPI读到的ADC 数据仍然会有出错。
    2. 此环境下,测试DAISY_IN_A信号相对于SPI5_SCK_A信号,认为其时延过长,所以将图5的DOUT1信号直接连接到SPI的MISO管脚减小两个信号间的时延,示波器打出SCK,MISO如图8。 MCU SPI读到的ADC 数据仍然会有出错。
    3. 此环境下,降低SPI速率由10M降到5M,MCU SPI读到的ADC 数据仍然会有出错。认为不是SPI通信裕度不够的原因。

      

    疑问:为什么SPI信号单端采集正常,差分转换数据采集不正常。

     

    测试3:板1与板2形成菊花链连接,其他信号按设计初。

    1. ADC的工作时钟CLK不经过单端转差分直接漆包线飞线连接板2。MCU SPI读到的ADC 测量数据正常。长期24小时测试但是有一定几率出现个别ADC通道数据采集异常。出现概率极低,但是会出现。
    2. 但是此单端信号如果经过背板飞线连接板2,每隔40分钟出现一次数据采集异常。异常几率远大于测试a。(注:总飞线长度不大于5M)

    疑问:在保证CLK单端信号质量的前提下此方法能否解决问题。

     

    测试4:该环境MCU一个SPI口带11片ADC芯片,其中板1带MCU上有2片ADC,板2不带MCU上有3片ADC芯片,板3不带MCU上有3片ADC芯片,板4不带MCU上有3片ADC芯片.该11片ADC工作在菊花链模式下,板与板之间的SPI信号经过单端差分转换连接,CLK信号是单端连接。

    1. 该环境下,板4的ADC有概率出现数据采集异常的情况

     

    疑问:如何让这个系统工作稳定。

    这个问题看起来有一些奇怪,甚至前后矛盾。希望尽快得到答复从而获得一些建议。万分感谢

Amy Luo:

您好,

明天我会看上面问题

,

Echo DAN:

好的,麻烦了

,

Amy Luo:

上面问题牵涉到的东西比较多,请让我仔细看下再回复您

,

Echo DAN:

GM7-A_P1与GM7-C_P1_遥测级联测试记录.xls

好的,这是我整理的做过的测试梳理,希望能够方便你解答我的疑惑。感谢

,

Amy Luo:

感谢您的耐心!

对于以上测试,您是否对比了两种测试情况下的SPI信号质量?哪一种更好一些?

除了信号质量,您是否在主控端同时测量了SPI(CS、START、CLK、SCLK、DIN、DOUT)信号,以查看其通信时序是否满足要求?

这里a和b测试的区别是CLK飞线长度不一样吗?

在测试4中,板4是菊花链的最远端吗?也就是说是板4中的ADC的DAISY_IN管脚接地吗?如果是这样的话,降低data rate,板4异常的概率是否会降低?

另外,菊花链中的设备越多,遵守建立和保持时间就越具有挑战性。SCLK与所有设备的星型连接,使DOUT的走线长度最小化,以及其他印刷电路板(PCB)布局技术有助于缓解信号延迟带来的挑战。在DOUT和DAISY_IN之间放置延迟电路(如缓冲器)有助于减少信号延迟。另一种选择是在DOUT和DAISY_IN之间插入一个D触发器,该触发器时钟输入反向的SCLK:

,

Amy Luo:

.xls文件里,提到的“加量”、“未加量”具体什么意思?

.xls文件里测试目的 “主板与扩展板通信稳定性测试”没看懂测试结果与测试目的的关联;

整体来看,SPI信号经过SPI-MLVDS转换后,测试异常概率增加了是吗?那么您是否对比了SPI-MLVDS转换前后的信号波形质量及信号间的时序?对比查看增加SPI-MLVDS转换模块后,是否提高了信号质量?

,

Echo DAN:

感谢您的回复

对于测试1,2回复的回答:

从问题出现的初期,其实就已经对ADC芯片的操作时序进行了检查,检查之后是无误的。也对信号质量进行了查看,其中SCK存在过冲,但是并不影响SPI的通信,而且差分转换过的信号质量更好,毕竟MLVDS芯片具有一部分信号整形的功能。

对于测试3回复的回答:

其中a的漆包线飞线没有经过背板,但是线长其实和经过了背板差不多的。经过测试,经过背板的CLK信号存在畸变,正在寻找干扰源。但是其他差分单端信号是正常的。这里我有一个疑问点:板1与板2的ADC工作时钟CLK需要严格同步么?在测试3.a的环境下,上周五开始adc加输入量测试,运行到今天周一早上,一共出现了三次采集数据错误的报文(不排除软件处理错误的可能),想知道这个方向能否解决问题。

对于测试4回复的回答:

板4是菊花链的最远端,最后一片的DAISY_IN信号接地了的。降低data rate,板4异常的概率也没用降低。在DOUT和DAISY_IN之间放置延迟电路和D触发器一开始是有考虑的,但是信号的两次差分单端转换延时10ns,远远大于了信号走线传输所带来的时延,此延时不可消除,除非走单端信号不经过MLVDS转换。

本产品属于工业领域,应用在铁路沿线,对产品的稳定性及可靠性有着严格的要求。测试下效果最好的测试3.a也无法真正的应用在装置产品上。

,

Echo DAN:

加量与不加量是ADC是否有输入量。其中主板与扩展板通信稳定性测试没有得到想要的稳定环境,只是在不同测试条件下,那种测试环境下工作状态相对稳定。

我认为SPI信号经过SPI-MLVDS转换后使ADC在菊花链模式下工作,不单单是信号质量与时序的问题,更多的是系统的问题。后续我将对SPI-MLVDS转换前后的信号波形质量及信号间的时序再进行一轮测试分析,感谢

,

Amy Luo:

感谢您的反馈,坦白讲我对这种系统性的分析没有太多经验,如果您哪里存在具体的疑问,我可以帮助查找资料进行确认分析或者对一些问题进行讨论性分析。

Echo DAN 说:这里我有一个疑问点:板1与板2的ADC工作时钟CLK需要严格同步么?

因为在菊花链的多个设备中,所有设备都是以START和CLK为参考时序开始同步AD转换的,在经过START上升沿至DRDY下降沿固定时间后,所有的设备都转换结束,所有设备的DRDY都同步拉低表示转换完成,因此才只连接了一个设备的DRDY信号到主控端。

如果设备开始转换不同步,比如其中一个设备识别的CLK信号存在干扰,没有被识别为正确的CLK,但是其他设备正确识别了这个CLK,那么这个设备可能就延迟输出一位或少输出一位,而其他设备正常输出,那么DOUT输出结果就会出错。

如果CLK不同步,那么设备就不能同步转换完成,而输出是依次输出的,那输出也会出错。

对于测试4,如果降低data rate没有影响,那么有可能是设备转换不同步的问题,ADS131E0x是 ΔΣ ADC,它是以 fMOD = fCLK / 2 频率对输入信号采样的,然后抽取滤波器对采样数据以一定抽取比( (fMOD / fDR))对采样数据进行滤波。这两个过程都关系到fCLK,如果fCLK不同步,那么AD转换就不能同步完成。

,

Echo DAN:

感谢您的回复,经过长时间多次的测试。并用示波器将MLVDS转换芯片前后的信号进行对比查看,发现转换前后波形只一致的,结合软件数据发现了问题的原因。

因为:ADC与ADC之间的数据会有一个空位,这个空位由ADC自己本身补上,软件上只需要多发一个SCK。测试1.a环境下,因为SPI主SCK经过单端转差分,差分转成单端从SCK时延10ns,SPI从ADC芯片DOUT信号相当于从SCK时延17ns,DOUT芯片到SPI主MISO经过了转换延时10ns,共计37ns。读取数据时,偶尔芯片与芯片之间的空位,ADC并没有补。就导致本来后移一位的数据没有后移。

进一步测试,将DOUT直接连接SPI主MISO,不经过差分。仍然出现ADC偶尔没补位的情况。

疑问点1:片与片之间的D触发器和缓冲器在硬件原理上没有减少延时的作用,这个D触发器和缓冲器具体作用,真正目的是什么呢,缓解信号延时带来的影响?

疑问点2:板1的菊花链就可以保证ADC芯片的自动补位。为什么板2的SPI信号经过信号转换就不行。

,

Amy Luo:

感谢您的反馈。

Echo DAN 说:测试1.a环境下,因为SPI主SCK经过单端转差分,差分转成单端从SCK时延10ns,SPI从ADC芯片DOUT信号相当于从SCK时延17ns,DOUT芯片到SPI主MISO经过了转换延时10ns,共计37ns。

您这里的意思是SCK共延时10ns,而DOUT数据延迟37ns?

1、我理解的这里的意思是D触发器和缓冲器是延迟电路,用来增加延迟时间,用来使DOUT和SCLK信号尽量保持同步。

2、这里是不是DOUT和SCLK信号延迟时间不一致造成的?

,

Echo DAN:

1.所述的DOUT数据延迟37ns是SPI主收到的MISO的信号相当于SPI主的SCK延迟37nS。其中的17nS是ADC芯片本身在SCK的上升沿17ns以内DOUT进行数据准备。严格意义上是20ns的延时。

2.增加延时怎么来保持数据同步呢,后续将增加D触发器加以测试。

3.为验证是否是信号延迟带来的信号,准备再用一个SPI口将扩展板的SCK差分转换回MCU板,此SPI做从以转换回的SCK来读差分转换回来的DOUT信号。

,

Amy Luo:

我再确认下延迟电路(D触发器和缓冲器)的工作原理,因为再您的应用情况下,DOUT数据是不可避免的经过转换电路延时10ns。

,

Amy Luo:

我咨询了美国的资深工程师,他说:当传播延迟相对较大(即接近半个SCLK周期)时,延迟电路(如D触发器电路)可以帮助避免数据传输问题。如果传播延迟相对较小,则不需要这种技术。

他提供了ADS1278 数据手册中的示例电路图:

对工作原理的解释:A large propagation delay can cause a problem when the SCLK edge for data capture (i.e. the trailing edge for ADS131E08) occurs before the next DOUT bit has transitioned and settled as seen by the MCU. This can result in the SCLK trailing edge capturing the previous old data rather than the settled new data. In that case, a D flip-flop with an inverted SCLK input can hold the data bit for an extra one-half SCLK period. The result is the MCU continues to use the SCLK trailing edge for data capture, but each bit is delayed by one full SCLK period, ensuring that the captured data is fully settled.

他的意思好像是会导致SCLK捕获以前的旧数据,但是看您的问题,是漏掉了芯片与芯片之间的don’t care bit。如果您使用10MHZ的SCLK的话,半个SCLK周期是50ns,DOUT延迟37ns,还不到半个SCLK周期。我不确定这是不是一个问题?您对这个工程师的回复有更合理的理解吗?

,

Amy Luo:

下面是我询问美国工程师问题的源链接,我附在这里,您可以看他的源回复:

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1091594/ads131e06-daisy-chain-mode-placing-delay-circuits/4042952#4042952

赞(0)
未经允许不得转载:TI中文支持网 » ADS131E06: ADS131E06跨板菊花链回读数据异常(跨板信号经过SPI-MLVDS转换)
分享到: 更多 (0)

© 2024 TI中文支持网   网站地图 鲁ICP备2022002796号-1