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命令,发现也没有效果。