FMC SPI格式
如何对FMC子板上的AD9517和AD9250芯片做配置,这是个让人困惑的问题。
不就是简单的SPI配置嘛,为什么让人困惑呢?
主要是因为:FMC子板上的AD9517和AD9250芯片的SPI不是和FPGA直接连接的,中间还有个CPLD。AD9517的SPI和2个AD9250的SPI都是跟CPLD相连。而CPLD只有一个SPI与FPGA相连。
如下图所示:
可以推测的是,CPLD肯定对SPI做某种译码,但是在网上实在找不到关于这个CPLD对SPI的处理描述。
花了一天时间找相关的信息,终于发现点有用信息:
Queries on fmcjesdadc_spi - Q&A - FPGA Reference Designs - EngineerZone
同时参考K706上FMCJESDADC1的FPGA工程,发现FPGA端有个地址判断(fmcjesdadc1_spi.v)。
FMC子板上芯片的配置方式变得明显起来。
- 在AD9517/AD9250 SPI正常时序之前需要发出1个Byte的地址码,CPLD将基于此地址码决定对哪个芯片继续读写。
- 更具体的:要读写AD9517芯片,需发出地址码0x84;
- 要读写AD9250-1芯片,需发出地址码0x80;
- 要读写AD9250-2芯片,需发出地址码0x81。
AD9250 SPI格式
最简单的一个SPI操作格式:[R/W][00][13bit地址][8bit数据],共24bit。