xilinx 的ip AXI Quad SPI 使用寄存器传输数据及协议介绍

SPI协议介绍

很多芯片都需要用到SPI协议进行配置,关于SPI协议有很多介绍。本人觉得下面介绍比较好,放在下方(侵权告知会删除)

SPI和IIC对比  

https://blog.csdn.net/ce123_zhouwei/article/details/6878547  其英文原文地址 :http://www.byteparadigm.com/applications/introduction-to-i2c-and-spi-protocols/

关于spi 4种模式判断:CPHA 和CPOL     

https://blog.csdn.net/ce123_zhouwei/article/details/6923293

一般芯片是4线spi,也有少量3线spi,即MOSI&MISO合成为一个双向通道,若使用三线SPI,需要自己再编写一个模块将AXI Quad SPI 的4wire转换为3wire。


AXI Quad SPI 寄存器介绍

想要使用AXI总线去完成spi的设置从而完成对应芯片的配置,需要对AXI Quad SPI 内部的寄存器了解清楚。下面是本人参考的博客和手册

寄存器介绍(也要参考对应ip手册,对照理解) 

https://blog.csdn.net/weixin_30443895/article/details/97432183

https://www.cnblogs.com/chensimin1990/p/8526497.html#4105474

配置顺序,可参考,不能照搬

 https://blog.csdn.net/qq_32610559/article/details/94480327

针对不同的spi芯片其数值是不同的,因此还是要看手册了解寄存器功能,比如不同spi芯片的CPHA 和CPOL就不一样,需要改动。


驱动程序编写

设置寄存器值来驱动AXI Quad SPI完成最基本的一次传输,使用C语言编写底层驱动(本人已上传资源)

spi_drive.h      https://download.csdn.net/download/lijq94/12049130

使用一个芯片先做最简单读写寄存器测试

main.c

针对不同芯片,本人使用了时钟芯片CDCM6208,afe818,AD5681都是四线spi

spi_dev.h    https://download.csdn.net/download/lijq94/12049139

根据自己需要的功能再进行封装。

cdcmtop.h    https://download.csdn.net/download/lijq94/12049144

最终实现想要的功能进行测试。

helloworld.c    https://download.csdn.net/download/lijq94/12049151

使用这些文件可以实现上位机直接配置芯片,如使用PCIE配置芯片。

上述文件经过测试可以正常使用!

你可能感兴趣的:(xilinx 的ip AXI Quad SPI 使用寄存器传输数据及协议介绍)