This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

ADS9234R: 使用复位后缺省的每路单一数据线输出的方式可以同时正确读取两个通道的数据,但配置成并行方式(或每通道2、4个数据线)后,读取的第一通道数据正确,第二通道数据出错(干扰很大)

Part Number: ADS9234R
Other Parts Discussed in Thread: ADS9224R

用FPGA控制ADS9234R实现数据采集,当使用ADS9234R的缺省配置(复位之后的状态)、利用1路数据(SDO0A/SDO0B)数据接口读取ADC数据,能够正确读取2个通道的数据,但由于每通道只有1路数据输出,需要16个SPI读取时钟,受此影响ADC的采样速率受到限制,大约只有1.47Msps;

为了提高采样速率,需要更改其工作方式,比如设置成并行输出方式,按手册7.7.1.3的说明,可以用命令0x1240(op3-0=0001,a3-0=0010,sdo_protocol2-0=100,cpol=0,cpha=0),写入时序如下(FPGA内部在输出到ADS9234R引脚的同时引到其它FPGA引脚,用逻辑分析仪同步采集到的波形-----可惜波形还没找到上传的办法);如果复位之后,不发送0x1240的命令,ADS9234R只有SDO0A和SDO0B两路输出,而发送命令之后,sdo7-0均有信号输出(说明命令起作用了)。

问题:1)当设置到并行模式后,读取ADC数据,结果只有ch0的数据是正常的,ch1的数据不正常,会有许多干扰(见下图);类似的控制,如果使用命令0x1302或0x1303(即SPI-2和SPI-4的方式)读取ADC数据,现象是一样的:ch0正确,ch1数据不对。(SCLK时钟速率是25MHz,一些图片没找到上传的办法)

因此,需要请教一下如何正确配置ADS9234R内部的工作方式,如何正确读取并行方式下的数据,其时序逻辑有何要求。当我们只需要修改成并行数据接口方式,只要发送前述0x1240的命令,还是还需要同时发送其它命令(若需要则其命令码是什么)?发送命令和开始采集之间需要有什么时间间隔?

2)有关ZONE2方式,是否只要在convst上升沿之后的15-180ns内启动有效的cs(变低电平)及其读取时序,就可以自动进入zone2读取模式?手册7.7.1.1有关状态寄存器0的bit2只是方式的状态指示(当bit2=1),当被清零时退出Zone2方式?

  • 您好,

    上传图片可以点击回复对话框下方的“插入”---“图形/视频/文件”----弹出对话框后,点击'上传'----选择需要上传的图片即可。

    1、不同读取模式下,寄存器配置分别是怎样的?还是建议您先附上通信时序波形看下

    2、是的,

    是的,只是指示,清零时不会退出Zone2方式。

  • 您说的插图的方式试过,在那个对话框的“URL”输入图片所在目录及文件名"D:\GW_FPGA\Screen 2022-03-23 083657.jpg"后,下面的大框会显示“正在加载...”之后显示“文件或URL不是允许被插入”。界面还有一行“尺寸  320x240"是否限制了图片大小?

  • 不是输入,是点击“上传”,然后会弹出路径让您选择文件,如下截图所示:

    320x240"应该不限制,这个尺寸您别管它,文件上传100%应该就可以了

  • 我把之前问题的文档(含多幅图)直接上传了,谢谢!

  • 好的,我会看下

  • 上电之后,您是否进行了复位操作?建议您上电之后复位一下芯片,确保寄存器值恢复至默认值。

    因为您描述说“刚上电时(复位状态),只有sdo0和sdo4有数据输出”,所有寄存器值在默认状态时,通信协议应该是SPI-00-S,sdo4上不该有输出,因此建议您上电稳定之后,进行复位操作,看是否还有这种现象?

    另外,模拟输入端ch0,ch1的信号源 是一样的吗?排除下输入端模拟信号源不同造成的问题;

  • 您好!

    上电后有复位,按手册要求的时间参数;sdo4是chB的输出(sd0b),因此复位后它有输出我认为是正常的;输入信号源没有问题,并联一起或外部输入互换,都是类似的结果,而且当使用缺省状态(即只有sdo0--sdo0a和sdo4--sdo0b输出)且采样率低一些(1.4Msps左右),采集回来的两路数据是正常的;当设置到并行输出方式(设置命令0x1240)或SPI的2路或4路输出(复位状态是spi-00-s,因此用0x1302或0x1303设置2路或4路spi总线宽度),采集回来的数据chA正常而chB出现干扰。因此,想了解一下复位之后进行参数配置是否有什么时序约束要求,是否只需要设置所需改变的寄存器即可还是要有其它条件配合,有条件的话,可否在你们的评估板上实地测试一下,看配置参数需要如何设置,谢谢!

  • sdo4是chB的输出(sd0b),因此复位后它有输出我认为是正常的;

    抱歉,我没注意到它是sd0b输出,那么这里有输出是正常的。

    我认为既然chA数据正常,应该不是时序问题。我怀疑可能是chB并行输出线或与其他数字信号线间存在串扰,您检测下chB输出线附近是否有其他高速信号?SCLK信号线是否与SDO-3B线走线过近,影响了SDO-3B信号?或者用示波器分别测量下SDO-0A至SDO-3A和SDO-0B至SDO-3B的信号质量是怎样的?看下上面是否存在干扰。

    我手头上没有评估板,所以非常抱歉,没法实际验证。

  •         谢谢您的反馈!

            当使用并行输出方式(设置命令0x1240),在没有改变寄存器5(见7.7.1.6)的参数,因此其输出格式是按CHA.H、CHA.L、CHB.H、CHB.L顺序的字节数据,其数据SD7..0是字节数据(也就是先输出cha的高低字节数据再输出chb的高低字节数据),因此不应该是信号线上的干扰;另外,当设置输出特征数据0x1502或0x1503,输出的数据分别是0xA558A558和0xE956E956,表示读取的特征数据是正确的;当输入直流电平的信号,cha正确,chb一样有很大干扰,因此应该说信号线的干扰不会有那么大,况且目前只是做的一块实验板,只有与ADS9234有关的14根信号接到FPGA,周围没有其它信号干扰。因此一直没想到原因、这个论坛也没有找到类似的现象,才会提出问题向你们请教。

  • 寄存器5定义如下截图:默认是DATA FORMAT是 (PB-xy-AA-zDR protocol);

    因此其输出格式是按CHA.H、CHA.L、CHB.H、CHB.L顺序的字节数据,其数据SD7..0是字节数据(也就是先输出cha的高低字节数据再输出chb的高低字节数据)

     

    寄存器2的值设置为0x40的话,根据表7协议就是PB-00-AA-SDR,应参考时序图64,在SCLK上升沿读取数据,前2列是CHA数据,后2列是CHB数据。

    当寄存器5设置为0x1502或0x1503时,输出应该是A55AA55Ah,您为什么说“输出的数据分别是0xA558A558和0xE956E956,表示读取的特征数据是正确的”?

    通过以上现象,可能您的读数据时序存在问题,如果配置协议就是PB-00-AA-SDR,应参考时序图64。

  • (1)使用0x1240的并行格式读取数据,就是用的AABB的方式,读取的数据是cha正确、chb有严重噪声干扰,如之前文档中的有关图片,由于cha正确,而chb不正确,所以无法理解出错的原因,也正是求教你们的原因。

    (2)手册上读取特征值说是“0xA55AA55A",我觉得是对ADS9224R而言,开始读到0xA558A558和0xE956E956我也以为有问题,但后来自己分析:由于ADS9234R只有14bit,使用左对齐方式是,末2位是00,因此第二个字节0x5a (0101,1010)->0x58(0101,1000);当右对齐时,我理解14bitd:1010,0101,0101,1000的末2位去掉,左边补11变成11 10,10 01,01 01,01 10-->0xE956,所以认为我所说的结果是对的,这只是想说ADC芯片外到FPGA到PC之间的数据传送通道是可信的;另一角度,如果读取时序有问题,恐怕连chad 正确数据也读取不到。

    以上是我的理解,请指正,谢谢! 

  • 感谢您的反馈和分析,因为现在是假期间,周三我将继续分析和查找问题原因,现在不能给您有效反馈,请您谅解。

  • 理解。假期期间,正好居家隔离着,继续做了一些调试,并记录了一些现象供您参考。

    (1)下图是读取数据正确时的接口输出时序,其ad7-0的数据变化宽度正好是sclk一个周期的宽度

    (2)出错时,会出现如下的时序逻辑:第1和4时钟节拍的数据宽度正常,第2节拍的宽度太窄而第3节拍过宽(异常)

    另一种情况:似乎第2、3节拍凑一起了。

  • 您是ZONE2方式读取的转换数据吗?在上述波形图中没有看到 CONVST与CS的时序关系,在发出启动转换 CONVST 上升沿后tD_CONVST_CS时间最小最大值之间拉低CS并发出SCLK时钟?

    ad7-0信号线等长吗?因为应该是在CS的第一个下降沿输出第1bit,看上面时序并不是同时输出的数据,后面的数据是在SCLK的下降沿输出,您应该在SCLK的上升沿读取输出数据(按照图64时序)。

    如果使用Zone 1方式,应该在READY发出高电平时,拉低CS并发出SCLK时钟以读取数据,READY pin的上升沿表示数据转换完成,主控端可以读取转换数据了。

    所以还需您仔细检查是否符合数据表图44或者图45。

  • (1)ZONE1和2都试过,在并行方式都是同样的结果;时序关系肯定满足所需的所需的条件,这一点是设计的先决条件,我们还不至于犯这样错误;zone 1方式试过检测ready上升沿后开始读取数据,也试过在convst上升沿后硬延时300ns(甚至更长一点,ADS9234R的最大时间是280ns)再读取数据,都是一样的结果。

    (2)你所说的等长不会很严格,但相差也不会有多少,只有几十MHz的时钟也无需很严格。对于"00"格式的时钟相位,/cs下降沿出第一个数据,随后SCLK下降沿依次出2、3、4个数据,用SCLK的上升沿读取数据,对于前面所给三张图的第一张,工作正常;但第2、3张图,我用红线圈起来的时序,明显是异常的:第二张图是在第一个sclk的后沿出第二个数据,但似乎在第二个sclk的上升沿出了第三个数据并保持到第3个sclk的后沿,最后输出第四个数据;而第三张图则是第一个sclk的后沿出第二个数据,接着在第二个sclk的上升沿出了第三个数据、第二个sclk的后沿输出了第四个数据,因此造成的数据出错,为什么会出现这样的情况?

    谢谢!

  • 您给出的第一张图工作正常,也就是说有可以正常工作的器件是吗?

    看第一张图,输出数据是在SCLK低电平期间发生变化(数据是在SCLK的下降沿输出,理解为数据输出有一点延迟,表现为在SCLK低电平期间输出),但是异常的第二张图和第三张图,输出好像不受SCLK时钟控制,一个周期内变化了2次电平,因此,我怀疑SCLK时钟是否存在干扰或者毛刺,您可以用示波器实测波形吗?看下SCLK的信号质量。

    同样的工作时序,如果有存在正常工作的器件,那么还可能是器件本身存在问题,所以还请确认产品的购货来源是否为TI Store。

  •       感谢您的反馈!

          抱歉,最近忙着调试FPGA的网络接口,想先用缺省工作状态的SPI方式调通整个板卡,因此没有上来。前述的三张图所表述的意思:是同1片ADS9234R(这些测试都是在同一块PCBA上进行的)在一段时间内的数据传输过程中,有不少数据是正常的(时序如第一张图),也有不少地方出现异常(如第二、第三张图),因此出现了前文“ADS9234R的问题.doc”中ch2噪声很大的问题(其中也有局部正弦波波形是正常的);sclk是由FPGA产生的,我最近可以抽空用示波器再看看,但出现干扰的可能性不大,在FPGA片内分出一路到逻辑分析仪上,逻辑分析仪用500msps采样是没有看到干扰。

          至于芯片,是公司采购人员落实的,我明天可以了解一下来源。

  • 再补充一点:现在单路SPI可以正常工作,其sclk输出是FPGA内部100MHz时钟经二分频产生的,即50MHz时钟都能正常工作;而设置成并行输出时,其时钟是100/4=25MHz,因此从电路上看其sclk时钟应该是没有问题的,当然我近期会继续抽空实测。

  • 看您的描述是间断性的异常,并不是一直异常,那么应该不是配置的问题,应该是干扰或者是稳定性的问题,因此,还是建议您实测下是否存在干扰。另外,您是测试了几块板子,可以多测试几块板子吗?以看下其他板子是否也存在这种现象吗?

  • 一阵子没有上来了,一是中间转去调试了一块AD7606的板卡,二是将ADS9234R的板卡功能完整调通,现将几个问题说明一下:(1)经与采购沟通,说芯片是正规渠道采购的,有原厂的包装;(2)目前是基于实验阶段,因此FPGA板卡和ADS9234R的ADC板卡是独立的两块小板卡,开始两板卡之间采用排线相连,但工作不稳定,排线已经从若干cm长度缩短到2个IDC排线接头只有1.5cm,一样不甚稳定,最后是采用两块板卡直接通过针座和排母直接上下对接,一些其它问题消息了;(3)手头的实验板卡有2套(FPGA和ADC板卡各2块),现象一样,现使用单路SPI、SCLK时钟速率50Msps,实现了2.5Msps的采样,可以正确获取输入信号波形,但如果想再提高点速度,设置ADS9234R工作于并行总线输出方式(配置码0x1240),则ch0正常,ch1一样出现干扰,原因则是ADS9234R输出的数据总线偶尔会出现异常----sclk的第二、三个sclk下降沿出现的ch1数据的宽度明显缩小,导致第三、四个sclk时钟的上升沿锁存的数据出错,为什么会有这种错误暂时不敢确定,但FPGA的输出时钟出现异常的可能微小,ADS9234R的问题_20220518.doc后面的附件包含了三张图片,供参考。

  • 下午的信息中,第(3)所说有点问题,后来进一步测试,使用单路SPI输出的方式,在zone1时序模式下,目前的FPGA程序实现到1.5625Msps速率的采样;所说的达到2.5Msps采样速率是尝试了Zone2时序模式,后来具体分析了采集的数据,发现未能达到预期,监视了其接口时序,在Convst上升沿后大约60ns开始启动读取时序(/cs输出低电平,随后启动sclk输出逻辑),中间采样点出现了缺漏,未能达到预期,还有待进一步分析。

  • 感谢您的反馈,看您提供的时序图还是和之前的现象一样,我在看数据表的时候,发现还需对SDI的状态做处理,您是否执行了这一步?

  • 您所说的SDI的处理,我的FPGA程序在配置的时候做过处理,也算老工程师了,对工作方式的配置都会认真处理。下面的三幅图是我刚才重新实际测试的:第一副是复位之后的配置:在SDI上先输出0x1240(16个SCLK),之后设置SDI=1又输出了16个SCLK(其时钟频率是25MHz),配置之后SDI一直保持高电平;第二幅图是监控的ADS9234R返回的ADOUT[7:0],红线勾画的是数据出错的2个地方,第三幅图是第二幅图中间那个出错的地方局部展开后的波形,从这两幅图可以看到,出错时ADS9234R输出的数据的间隔宽度明显低于SCLK的周期(时钟也是25MHz)。

  • 看您的波形并不是一直异常,是间断性的异常,所以还是建议您用示波器实测下SCLK和SDO的波形,看波形质量怎样?是否存在干扰?

    另外,货源也请确认下