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

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

Part Number:ADS131E08Other Parts Discussed in Thread: TMS320C6678,

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

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

Amy Luo:

您好,

数字输入是在SCLK下降沿输入,因此,在SCLK的下降沿处DIN线上的信号应该保持不变,您好像是在SCLK上升沿移入的数据,因此可能出现问题;

另外,也检测下ADC的SPI是否与主控端的数字信号电平兼容?

,

? ?:

  你好,我想问一下“数字:1.8V至3.6V”,意思是SPI的数字信号电平是1.8-3.6都可以吗?另外我的主控端输出是1.8V。

,

Amy Luo:

不是的,这里的意思是 ADS131E08的数字供电电压 DVDD管脚 的供电范围是1.8V至3.6V;

关于 SPI信号电平,您需要查看主控端和ADC的输入和输出的数字高低电平是否相互兼容,即看下是否能够相互识别高低电平,下面截图是ADS131E08的输入和输出数字电平,它与DVDD电压有关:

,

? ?:

你好,我的DVDD管脚供电电压是1.8V,因此输入电平范围:1.44-1.9V,TMDSEVM6678LE的SPI输出电压是1.8V,因此电平应该是满足的。

其次,我调整了SPI的相位设置,得到了新的波形。

但是,依然没有返回ADS131E08EVM的ID号。

,

Amy Luo:

您使用的CLK和SCLK的频率分别是多少?看下是否需要在命令字节间延时:

另外,检查下PWDN pin 和RESET pin是否为高电平?

,

? ?:

CLK是2.048MHz,SCLK是2MHz,PWDN pin和RESET pin都是高电平。

根据9.5.3.1,按我这个频率,命令字节间应该不需要延时了。

但是我代码里是没有使用延时函数的。

,

? ?:

另外,我发现在传输的时候,中间(A1-A2)有一个周期的频率突然变小了,由原来2MHz变为1.92MHz,这会有影响吗?

,

Amy Luo:

? ? 说:由原来2MHz变为1.92MHz

这里应该没关系;

您是按照 datasheet中 Figure 53. Initial Flow at Power Up 初始化的设备吗?

您可以附上SPI 主控端 数字信号的高低电平输入和输出电压范围吗?

主控端与ADS131E08是否共地?ADS131E08实测各供电电压是否正常?

再确认下是仅ID寄存器不能读出还是所有的寄存器都不可以正确读出?

,

Amy Luo:

另外,您测试了几块板子是这种情况,您可以多测试几块板子吗?以排除焊接问题

,

? ?:

1、电路图上RESET、PWDN和CLKSEL是与DVDD相连,上电之后应该就置1。所以上电10s之后,我发送SDATAC指令,随后发送0X20,0x00。这个初始化流程应该没有问题吧。

2、我所用的主控端是TMDSEVM6678LE,根据提供的资料,其电平输出应该是1.8V。

3、我是将这79与J1.18相连,应该是共地了。电压接了VCC5V和VCC1.8V,并且在板子测出这两个电压。

4、只测试了读取ID,其他还未测试。

,

? ?:

只购买了2块板子,且都是这种情况。

,

Amy Luo:

1、上电后,待VCAP1 大于1.1V后,建议发送复位脉冲,以使寄存器恢复至默认值;上电时序不满足要求,会发生读取ID不正确的现象;

2、主控端是否有VIH、VIL、VOH、VOL的电平范围,我想具体确认下;

4、也可尝试读取其他寄存器看读取结果怎样?

,

? ?:

1、经测试VCAP1为1.188V,应该是满足上电时序要求的。

2、这是我在TMS320C6678找到的相关电平。

3、发送0x20 0x01 0x00 0x00,即读两个寄存器的内容,但是返回的仍然是0x00,0x00 , 0x00, 0x00.

,

Amy Luo:

1、在上电完成后,您是否尝试发送reset脉冲或reset命令来复位设备? 然后再发送 SDATAC 命令和读取寄存器;

2、主控端的SPI接口类型是LVCMOS吗?VOL最大是0.45V,而ADC可以确定识别为低电平的范围最大是0.2*DVDD,即0.36V,超出了ADC的识别范围;另外VOH是1.8V-0.45V=1.35V,而ADC可以确定识别为高电平的范围最小是0.8*DVDD,即1.44V,也低于ADC可以识别的最小值;

也建议用示波器看下SPI的通信波形质量是怎样的,同时确认下主控端输出高低电平的电压值具体是多少?

3、建议先检查以上2点,再做读取操作

,

? ?:

我觉的是内部时钟CLK的问题。

datasheet写着有三种内部时钟产生方式(内部CLK,3.3V的FX0-HC735,1.8V的SiT8002AC-34-18E)。

然而只有给板子提供3.3V DVDD时,能够获得内部时钟。

,

Amy Luo:

ADS131E08 在CLKSEL pin 是高电平,且 CLK_EN bit置1时,内部时钟才会在CLK pin输出;

对于EVM板,需做以下配置:

对于3.3V的FX0-HC735,1.8V的SiT8002AC-34-18E,是外接的时钟,是使用外部时钟的时候对外接时钟的电平要求,DVDD供电不同,外接的时钟电平也不同;

如果您使用内部时钟,请按照我以上描述配置,即:

CLKSEL pin 是高电平,且 CLK_EN bit置1,同时JP5的跳线帽不要安装,看ADC是否输出时钟?

,

? ?:

是的,CLKSEL =1 且 CLK_EN bit = 1。但是我通过ADS131E08-EVM-PDK-SW发现CLK_EN bit默认是为0。

所以,怎么才能将这位置1呢?因为现在连读寄存器都失败,写寄存器应该也成功不了。

,

Amy Luo:

您现在是有EVM板吗?您可以使用 ADS131E08EVM GUI进行配置,具体见下面用户指南:

https://www.ti.com.cn/cn/lit/ug/sbau200c/sbau200c.pdf

另外,固件源代码包含在ADS131E08EVM-PDK GUI安装中,安装软件后,您可以在下面的目录中找到源代码,以加快您的软件设计:

C:\Program Files (x86)\ADS131E08EVM\source

,

? ?:

是的,我有EVM板。

并且当我与MMB0相连,是可以通过GUI配置CONFIG1,并且能够获得内部时钟,

但是,在我配置好之后,与MMB0断开,把EVM作为一个独立的板,再去测试,发现CLK_EN bit又恢复为0,内部时钟又关闭了。

,

Amy Luo:

是的,独立EVM不能自动配置寄存器,需要连接主控端来配置,断电后寄存器值复位;

如果您需要EVM板独立工作,只能连接主控端,上电后主控端自动初始化寄存器配置来使ADC工作;

上面已附EVM的源代码位置,您可以参考源代码编写程序;

,

? ?:

你好,我想问一下这种突然的频率变化可能是什么原因引起的?

,

Amy Luo:

这个信号应该是SPI的SCLK,SCLK信号是主控端输出的,在主控端它是怎样产生的?您用示波器测量它是怎样的,可能是外部信号干扰了SCLK;

如果断开SCLK与ADC的连接,悬空SCLK,在其输出端口测量仍是这种波形,那说明主控端输出的SCLK波形本身就是异常的,或许您需要咨询所使用主控端厂商的技术支持

,

? ?:

悬空之后的波形是正常的,但是一旦接入ADC的SCLK端口,再用逻辑分析仪连接这个SCLK端口,波形就异常了。

,

Amy Luo:

您用示波器测量它是怎样的,是不是外部信号干扰了SCLK?

,

? ?:

不接入的话就是正常的2MHz的正弦波。

难道是EVM的外部OSC1有一些干扰吗

,

Amy Luo:

您可以用示波器测量下它的波形吗?看它的干扰信号是怎样的?

您是怎样将主控端的SCLK连接到EVM板的?检查下看是否连接牢固,看下是否因连接不牢固造成的?连接线长吗,请尽量使用短连接线连接

,

? ?:

我把EVM上的晶振做了更换,换了一个1.8V供电,2.048MHz。这时候DVDD为1.8V,数字电平跟主控端一致。

主控端与EVM用一根20cm的杜邦线连接。

但是尝试后,发送数据仍然没有任何反应。

,

Amy Luo:

您可以先按照以下操作来验证芯片是否还正常吗

给设备提供主时钟(或使用内部时钟),START引脚置高,然后 用示波器检测 /DRDY引脚是否以默认数据速率输出脉冲?

,

? ?:

是有脉冲输出,但我不知道这个数率对不对。

,

? ?:

这个默认数率好像是32KSPS

,

Amy Luo:

32KSPS 是正确的:

,

Amy Luo:

主控端是怎样与ADC的SPI接口连接的?检查下主控端的MISO与MOSI是否与ADC的SPI_OUT与SPI_IN接反了?

,

? ?:

主控端通过一根20cm的杜邦线与SPI接口连接。

检查过没有接反

,

Amy Luo:

您可以用示波器测量下CS、SCLK、DIN、和DOUT的信号波形吗?请让它们显示在同一示波器屏幕中,我想具体看下信号电平以及信号波形质量

,

? ?:

我只有逻辑分析仪,这是我用逻辑分析仪抓取的波形,时序应该没有问题。

,

Amy Luo:

时序图我没看出问题,但逻辑分析仪看不出信号电平是多少?您可以再确定下信号电平是否兼容吗?以及主控端与ADC要共地

,

? ?:

信号电平是兼容的,因为我给ADC供电的DVDD是1.8V,并且主控端SPI输出也是1.8V。

我将TMDSEVM6678LE的80 Pin中的79(GND)与J1.18(AGND)连接的,应该是共地了。

,

Amy Luo:

START信号电平是什么?在配置寄存器期间,不应启动转换,START应置低电平

,

? ?:

是的,上电之后START一直都是低电平

,

Amy Luo:

我需要再确认一下,您是使用的EVM板与TMDSEVM6678LE主控端飞线连接进行测试的吗?

使用 ADS131E08EVM板和GUI可以正常配置AD寄存器和正常读取AD转换结果是吗?

逻辑分析仪对SPI信号的连接是在哪端连接的呢?或者说逻辑分析仪测试的是ADS131E08 芯片的SPI管脚处吗?

,

? ?:

1.是的

2.使用GUI可以正常配置寄存器,至于转换我没有测试。

3.逻辑分析仪是与EVM的J1端口处的SPI接口连接的。

,

? ?:

这会跟参考电压有关系吗?

我测ADS131E08管脚(VREFP-AVSS:0.064V,VREFN-AVSS:0V)

,

Amy Luo:

这个应该没关系,EVM板默认是使用内部参考电压的,而ADS131E08的寄存器配置,默认是Power-down内部参考电压的。

,

? ?:

好像实在找不出问题在哪里了

,

? ?:

好像查出问题了,我用探针直接与ADS131E08的DIN管脚相连,得到的命令不一致

,

? ?:

,

Amy Luo:

所以还请再检查下接线是否有问题,接线是否松动不牢固?前端测得波形与这里不一致,只能考虑是接线问题

,

? ?:

应该没问题,我用探针直接连ADS131E08的DIN针脚,能得到我发送的波形(0x20 0x00 0x00 ),但是DOUT就是没有反应。

,

Amy Luo:

您使用的TMDSEVM6678LE原理图是下面链接的吗?

https://wfcache.advantech.com/www/support/TI-EVM/download/TMDXEVM6678L_EVM_A101-1_DSN.pdf

我看到上面的您使用的TI_TMS320C6678 SPI接口还与板子上的FPGA相连着呢?因此,您在拉低DSP_SSPCS1时,同时也使能了板子上的FPGA的SPI接口,我怀疑是FPGA的SPI接口对ADS131E08 SPI的通信产生影响,您是否有办法将使用的SPI接口的CS仅使能ADS131E08 ,而不使能板子上的FPGA?因为挂接在SPI总线上的设备,只能通过CS管脚使能一个设备进行通信

,

? ?:

是的

我使用的是GPIO13作为CS信号,不知道这有没有影响。

另外我在ADS131E08的DIN管脚采集到了所发送的数据,说明数据是正确发送了,应该是ADS响应的问题吧。

而且我尝试发送START和STOP命令,发现也没有效果。

赞(0)
未经允许不得转载:TI中文支持网 » ADS131E08: 通过SPI发送指令读取的ID错误
分享到: 更多 (0)

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