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.

ADS131E08: 通过SPI发送指令读取的ID错误

Part Number: ADS131E08
Other Parts Discussed in Thread: TMS320C6678,

根据datasheet的说明,我先发送SDATAC指令,随后延时2μs(频率为2MHz),然后发送0x20 0x01(ID寄存器地址为00h),得到如下的波形。

似乎我发送数据之后,ADS131E08并没有任何反应,想请问一下可能是哪里出现了问题?

  • 好像是会有影响。

  • 您去掉R202后,测试结果怎样?

  • 我还没找到R202在哪里,电路图打不开,只找到了U255.

  • 去掉之后仍然还是不对。

  • 这是我用示波器测量SCLK和MOSI所得的波形,您看哪里有问题吗

  • 时序上没看出问题,但信号峰峰值太大了,数据手册绝对最大额定值规定的数字信号幅值范围是DGND – 0.3 至 DVDD + 0.3,DVDD=1.8V的话,也就是-0.3V 至2.1V,所测波形已经超出这个范围,有永久性损坏设备的可能性;

    建议您缩短SPI接线长度,看波形质量如何?如果还存在比较大过冲,可以串联十几欧姆电阻来改善;

  • 我串联了一个56欧姆的电阻后,单独把MOSI接入示波器,这是峰峰值满足要求而。

    但是当我把SCLK、CS、MOSI同时接入示波器后,峰峰值又超出了。

  • 您是通过飞线将SCLK、CS、MOSI接入示波器的吗?接线时飞线尽量短,各信号间不要靠的太近,地线也要尽量短;

    如果使用示波器单独测试各信号线没问题的话,那应该不是信号质量的问题;

    您用示波器测试SCLK、CS、MOSI信号时是从ADC端引出的信号线吗?

  • 不是,我是通过杜邦线接入示波器的,线的长度20cm。

    我这里测的是从6678LE的80pin端口处的SPI引脚信号。

  • 我在测试中发现发送“START”“STOP”命令可以控制DRDY脉冲的产生。

    并且是满足tSETTLE的时序的。

  • 建议您从ADC管脚处飞线测量SPI信号,且飞线长度尽可能短,避免connector处造成的影响示波器检测不到;从ADC管脚处飞线可以查看ADC芯片检测的信号;

    ‘’START”“STOP”命令分别是0x08h 和 0x0Ah,上面波形处没有看到这两个命令呀

  • 我是放了一张整体图,下面是局部图。并且从右侧解析结果可以看出命令内容,应该没有发错。

  • 如果‘’START”“STOP”命令 可以控制ADC,那么其他命令应该也可以,您可以尝试读取其他寄存器值吗?因为ID寄存器可能会因为上电顺序不满足要求而读取不正确;

    或者发送reset脉冲/命令,再次进行读取,看结果怎样?

  • 我觉得是不是SCLK不稳定的问题,因为“START”"STOP"命令对SCLK的速率没有要求。

    我在网上看见这样一个说明:

    而我用逻辑分析仪测量时,SCLK会从60ns变化为80ns的情况,我想是不是这个原因引起的。

  • 您使用的SPI速率是多少?您可以降低SCLK的速率再进行尝试通信吗?

    在datasheet中只有SCLK的最大频率和高低电平的宽度要求:

  • 我是根据CONFIG1的DR[2:0]为001,以及9.5.2.2的公式(9)计算tSCLK的最小速率为5.2MHz,于是我使用的SPI速率为8MHz。

    此时的脉冲宽度为62.5ns,应该是满足7.6的要求的。

    之前我尝试过使用2MHz的速率,但也是无返回值。

  • SCLK是边沿触发输入和输出,关键要保持SCLK信号干净无干扰以避免误触发;关于SCLK的占空比变化,我认为满足最低高\低电平宽度要求就行了,我也不确定是不是这个原因造成的,您目前有办法改善SCLK的输出吗?SCLK是怎样产生的?SCLK输出源端本身就是这样的吗?还是因干扰造成的?

  • 应该不是SCLK的问题,是逻辑分析仪的采样率引起的,当我使用32MHz的采样率时,SCLK的占空比为恒定脉冲宽度。

  • 好的,感谢反馈!

    接着上次的讨论,那您可以尝试读取其他寄存器值吗?因为ID寄存器可能会因为上电顺序不满足要求而读取不正确;

    或者发送reset脉冲/命令,再次进行读取,看结果怎样?我想既然可以识别‘’START”“STOP”命令,那其他命令应该也可以

  • 其他寄存器我也试过了,返回的仍然是0X00。

    至于reset命令,当我发送START后,DRDY出现脉冲,随后我发送RESET命令后,DRDY变为高电平,且脉冲消失。这种情况reset命令应该是生效了吧?

  • 好像成功返回ID号了,不过这个CS的值正常吗?(CS最大值、最小值只有mv,而其他三个都是V)

  • 当我发送START后,DRDY出现脉冲,随后我发送RESET命令后,DRDY变为高电平,且脉冲消失。这种情况reset命令应该是生效了吧?

    这种情况可能生效了,但是reset后,18个tCLK周期后会将配置寄存器初始化为默认状态并启动转换周期。这时DRDY应该还会有脉冲出现;

  • CS幅值较低,看下是不是示波器探头设置问题?是不是使用衰减了?

    或者和其他通道交换下探头,以判断是不是探头设置的问题

  • reset后还会出现脉冲的前提应该是START置1吧,如果START为0,还是没有脉冲。

  • 探头设置应该没问题,VIL是(-0.1 - 0.2*1.8),20mv左右也是在这个范围内。

    但是这个MISO波形应该存在问题吧。

  • reset后还会出现脉冲的前提应该是START置1吧,如果START为0,还是没有脉冲。

    是的,reset后就是拉低reset后又拉高,如果reset=0,那么设备一直处于reset状态,是不会发出DRDY脉冲的;

    但是看CS波形,每格是20mV,那么CS在高电平时是不满足高电平要求的;

    MISO是每格1V,看幅值也不满足高电平要求,ADS131E08输出高电平至少0.9*DVDD,即1.62V;

    感觉应该是接线问题或者示波器探头设置问题,您交换下探头,看是否还是同样的现象?

  • 是示波器探头的问题,然后我用同一个探头测试四个信号。

    从示数上可以看出,SCLK、CS、MOSI应该是正常的。

    但是MISO出现了两种高电平,这个问题应该是ADS131E08引起的吧,会不会之前电压超出限值使它损坏了。

  • 感觉不像是损坏,MISO接线与其他接线有什么特殊的地方吗?比如是否接线较长?

    ADS131E08的DVDD供电电压是多少?在ADC的DVDD管脚处测量是稳定的1.8V吗?感觉应该是1.8V供电电压的问题,其他三个是主控端的输出,而MISO是ADC的输出,这应该与ADC的供电有关;

    或者换一块板子或芯片测量MISO看是否也是同样的现象?

  • 这个MISO是从EVM的J1端口处测得,应该跟线没有关系吧。另外,我今天测MISO发现其波形又变了(程序代码未变)

    这是我昨测得的DVDD处的电压,基本是稳定的。

    我测量了两块板子,两者的MISO输出波形基本是一致的。

  • ADC输出的数字信号高电平最小应该是0.8DVDD,若DVDD=1.795V的话,最小1.436V满足要求,因此输出1.6V也是符合datasheet 规格的:

    看主控端可以识别的高电平是0.65DVDD,也就是1.17V,因此ADC输出的1.6V可以被主控端识别为高电平,目前应该可以正常通信。

  • 输出电平应该是正常了,但是这个波形返回的应该全是0X00吧,并且DSP收到的是0X36,并不是0xD2

  • CS、SCLK和MISO信号不在同一示波器屏幕中不好判断ADC输出的是什么;另外,这只是您在J1处测量的波形,并不代表DSP接收的波形也是这样的,从J1处到DSP管脚处还有一段接线, 这段接线是否存在干扰或问题还没有去检测;

    如前所述,ADC的ID寄存器值与上电顺序是否正确有关,也建议您尝试读取其他寄存器值看是怎样的

  • 1、是的,DSP的接受波形不一定。但是,MISO是测量EVM板子上的J1端口,这个应该没有什么干扰吧,J1处输出不对,那传给DSP可能更不对了。

    2、另外,我用逻辑分析仪解码MISO信号,可以正确读出ID号,并且,当我给CONFIG1写入新数据后,也能读出这个新数据。逻辑分析仪能正确解码的

    原因可能是它的高电平阈值电压为0.9V,之前的~1V电压对它来说是可以正常识别的。

    3、现在的问题好像就是输入的SPI信号是正确的,但是ADS的输出电压没有达到手册的0.8DVDD的要求。

  • 我不明白您上面要表达的是什么意思,现在是ADC输出的信号电平应该可以被主控端识别,因为主控端识别的高电平范围到0.65DVDD,也就是大于1.17V就可以识别为高电平。ADC输出的高电平1.6V>1.17V完全可以被识别为高电平,您这里为什么说电平电压不满足要求?

  • 上次那次图片应该是异常情况,下面这个波形才是一般的情况。这次把SCLK和DOUT放在了一起。

    MCU是下降沿采集,所以这个波形应该是没问题的。但是ADS的搞定平输出只有1.2V左右,没有达到0.9DVDD的输出要求。

  • ADC在DVDD为1.8V供电时,输出数字信号高电平1.2V确实不满足要求,您是否可以更换ADS131E08 IC,以防ADS131E08 已经损坏造成的原因。

  • 我的两块EVM都是这种情况,没有更多的板子了。

  • 您是否重新购买几片ADS131E08换上?

    另外请您再确认下测量ADC输出数字信号高电平为1.2V时,其数字供电电压实际测量是1.8V。

  • 1、我看TI官网和贸泽电子几乎都没有这款芯片的现货了。

    2、我重新测量之后,DVDD的电平在1.764V左右,并且此时MISO的输出电平应该也是满足0.9DVDD的要求的。

    但是,此时MISO在SCLK周期内并无任何输出内容。

  • ADC有时输出高电平到 1.2V,有时可以到1.6V,通过这些测量现象感觉ADS131E08的输出信号幅值不稳定,不知道是接线或测量问题还是ADC本身出现问题,因此还是建议您想办法购买新的ADS131E08以确认问题来源,或等一等有现货了再进行验证。

    目前各种能考虑的原因都考虑了,能提供您的检测步骤也都说明了,所以只能换芯片以验证芯片本身是否出现了问题。

  • 你知道总线竞争这种现象吗?我了解到可能是因为总线竞争导致错误出现。

    当我只用3根线(SCLK、CS、MOSI)连接MCU和ADS,然后分别测MCU和ADS的MISO。

    但是我不太清楚总线竞争为什么会导致问题的出现。

  • 您的意思是连接ADC的SPI总线挂接了两个主设备?一个是MCU另一个是ADS?

    当我只用3根线(SCLK、CS、MOSI)连接MCU和ADS,然后分别测MCU和ADS的MISO。

    没明白您这里的描述要表达的意思,以及所附图片的用意,您可以做更详细的解释吗?