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.

AFE5818EVM: SPI通信

Part Number: AFE5818EVM
Other Parts Discussed in Thread: AFE5818

Hi TI experts

Now i am holding an afe5818evm in my hand. then i am using the A-7 development board to communicate with the afe5818evm using SPI, configure the internal registers and remove R22 as per the user manual. the board is powered by a 5V supply but it seems that it is not able to write data. I would like to know exactly what registers I need to write for SPI communication to get the development board to work, can you provide me with some good ideas?

Best regards!

  • 您好,

    您是否有采集卡TSW1400EVM ,有的话建议先按照 AFE5818EVM User Guide (Rev. A) 中的步骤操作。

    您使用的A-7 development 板SPI接口是几伏的?AFE5818EVM的J4接口是3.3V的SPI,确认下电平兼容;

    在datasheet 9.5 Programming章节有寄存器写入和读取时序说明,如下截图是写入时序,建议您用示波器抓取SPI通信波形,看下SPI通信时序是否正确?

  • 感谢你的回复!

    我用示波器抓取了输入到AFE5818的SPI波形,时序是sen变为低电平后等待80ns开始在sclk上升沿写寄存器,在第24个上升沿结束后等待80ns让sen拉高,再等待80ns后写入下一个寄存器命令,另外,sclk的时钟为12.5MHz。当我连接到AFE5818并接入了一个5MHz的正弦波时,输出端却没有显示采样后的波形。

    下图蓝色为sen,黄色为sclk,粉红色为mosi

  • 今天我休假了,明天我会具体看下你的问题,很抱歉给你带来不便

  • 波形显示的太密了,看不出来在SCLK的上升沿MOSI是否保持稳定,请确认这一点,因为AFE5818的SDIN管脚是在SCLK的上升沿锁存输入,也就是说master需要在SCLK的下降沿改变MOSI的输出。为确保寄存器被正确写入,您是否尝试读出来以验证为写入的寄存器值?

    您使用的A-7 development 板SPI接口是几伏的?AFE5818EVM的J4接口是3.3V的SPI,确认下电平兼容;

    波形图中看不出来信号电压,请确保通信电平兼容。

    CLK是单端还是差分输入?频率、幅值是否正常?您是怎样设置的?

  • 我的spi接口的电压给的是3.3V,我尝试了将寄存器值读出,但好像sdout一直没有输出,我怀疑spi数据没有写进去,下面这个图是我用示波器采到的fpga输出的SPI,中间的为sclk,下面为sdata,写入的指令是0011_0111_0111_1000_0000_0000。

    关于时钟我是根据开发手册上使用的AFE板子的内部晶振时钟。

    另外,目前我是根据开发指南移除了R22电阻,我想知道板子上的dig_spi需要使用吗,我从社区上看到有人也是遇到了数据无法写入的问题,它貌似是对dig_spi进行了改变。

    https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1001437/afe5818evm-problem-of-using-dig_spi_en-pin

  • 为进行外部SPI通信,我是移除了R22电阻,但我查看原理图时,我认为移除了R22,U9的输出端应该是不输出的吧,但是当我用5V电源供电时,D5 LED灯是亮着的,U9的输出端口貌似是输出的,这是否是我不能进行外部SPI通信的原因呢。

    最后,我想问一下如果是利用外部SPI通信的话,U9和U6这两个隔离器芯片能否直接移除呢,如果您能回答,不胜感激!

  • 看信号波形图高低电平都变成正弦信号了,特别是时钟信号,SPI接线是否是比较长,建议尽量缩短SPI接线以改善信号质量。

    我看了您提供的链接帖子,您好像需要去掉U6;关于dig_spi ,我认为您应该不需要管它,因为您没有使用TSW采集板。

  • U9和U6这两个隔离器芯片能否直接移除呢,

    是的,这两个应该都移除。移除后,您在看下是否可以正常通信?

  • 你好,我移除了那两个芯片之后,进行spi通信,sdout接到示波器上还是一直没有数据,目前我已经不知道是什么原因了,另外在写spi程序时,比如tsensu 和 tsenho 都要满足最小要8ns,有上限吗。

    如果用测式模式来测试lvds输出的话,需要写哪几个寄存器可以实现啊

  • 另外在写spi程序时,比如tsensu 和 tsenho 都要满足最小要8ns,有上限吗。

    是的,没有上限。

    进行spi通信,sdout接到示波器上还是一直没有数据

    读寄存器的话,需要置REG_READ_EN  bit 为1 使能读出模式,默认模式是disable的,我想可能是这个原因DOUT没有输出。

    如果用测式模式来测试lvds输出的话,需要写哪几个寄存器可以实现啊

    先按datasheet 10.4章节如下截图初始化设置:

    也可参照 AFE5818EVM User Guide (Rev. A) 12页步骤开始进行相应操作。

    下面E2E帖子指出了FPGA firmware code 下载处,您可以参考下:

    AFE5818: FPGA/CPLD code of AFE5818

  • 感谢您的回复,我将SPI的sck时钟降到了1MHz,读取到了寄存器地址,并利用测试模式进行了测试,40MHz的fclk,输出的dclk是280mhz,输出数据是0和1交替,按理说也是280MHz,但数据刚开始输出是280mhz,不一会就自动变了,如右下图,(信号都是通过杜邦线接到示波器上看的),不知道是什么情况。另外当我改变lvds的测试输出时,发现好像读不到SDOUT了,貌似spi写入时行时不行的感觉,心态有点崩了。

             

    下面E2E帖子指出了FPGA firmware code 下载处,您可以参考下:

    AFE5818: FPGA/CPLD code of AFE5818

    另外您发的这个帖子我看了,我没找到相关配置寄存器的代码,你能帮助看一下吗,非常感谢!

  • 黄色和红色是什么波形?蓝色是DCLK?看黄色和红色波形没问题,DCLK异常是不是信号线受到了干扰?您尽量缩短信号线还有此现象吗?

    另外当我改变lvds的测试输出时,发现好像读不到SDOUT了,貌似spi写入时行时不行的感

    时行时不行一般是信号存在干扰造成的,也建议您用示波器测量信号波形看上面是否存在干扰?

    我刚试了下,上面链接中的链接打不开了,很抱歉,没有相关代码分享给您。