我胡汉三又回来了 ~

差点账号密码全忘了~

最近在忙FPGA与7043SPi通讯的事情,其中FPGA里的spi是自己用的microblaze中的AXI Quad SPI核,他的标准时序是这样的c0976afd070a9b0110d8f3024babdcc.png

他需要四根线,分别是片选信号(CS)、时钟(SCLK)、SDI(主机输出,从机输入)、SDO(主机输入、从机输出)。

而7043的SPI时序图是这样的:

cd1c4e0ca46e916351d6af9d17e49a0.png

f993d02fbccc33a7858dc0cd6336ca5.png

相信你们已经发现了,他只有三根线片选(SLEN)、时钟(SCLK)、数据(SDATA)。

所以很长一段时间,SPI只能读不能写。

咋办,咋办我网上搜索过,有个很复杂的办法,搞了,没用(说实话没看懂),链接如下:啥? 一行代码不敲就构建三线制SPI驱动?-电子工程专辑 (eet-china.com)

无果,想着自己写驱动吧,奈何能力不够,时钟与片选信号的时序一直不对。

最终上了ADI官方论坛(一开始没想这个,因为我用的国产芯片),终于找到了方法!!!7043的IO口可以设置成SDATA的数据接收拷贝,从而让全双工的SPI能够接收半双工的数据。

具体操作方法如下:

About HMC7043 SPI interface - Q&A - Clock and Timing - EngineerZone (analog.com)

先复位,然后将寄存器0x46、0x50、0x56分别配置为0、7、3。

硬件上这样接:

image.png

然后就能直接用了~

赏个积分吧~~~

1 打赏
打赏 10 积分后可见