很多芯片都需要用到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总线去完成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配置芯片。
上述文件经过测试可以正常使用!