# spi_master_core **Repository Path**: kduant/spi_master_core ## Basic Information - **Project Name**: spi_master_core - **Description**: spi master基本核心功能,具体发送什么数据,由其他模块提供 - **Primary Language**: Verilog - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2018-05-05 - **Last Updated**: 2023-11-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # spi_master_core spi master基本核心功能,具体发送什么数据,返回的读取数据是否有效,由其他模块提供 # [SPI 工作模式](https://blog.csdn.net/guomutian911/article/details/72813067) ![](https://img-blog.csdn.net/20160103201915635?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center) ## 模式1 CPOL=0 CPHA=0 ``` ----1--------2--------3--------4--------5--------6--------7--------8---- ----- ----- ----- ----- ----- ----- ----- ----- _____________| |____| |____| |____| |____| |____| |____| |____| |____ ``` 发送数据:master 上升沿之前(下降沿)准备好数据,slave上升沿锁存数据 接收数据:master 在上升沿锁存slave发送的数据 ## 模式2 CPOL=1 CPHA=0 ``` ----1--------2--------3--------4--------5--------6--------7--------8---- ------------- ---- ---- ---- ---- ---- ---- ---- ------------- |____| |____| |____| |____| |____| |____| |____| |____| ``` 发送数据:master 上升沿准备数据,slave下降沿锁存数据 接收数据:master 在下降沿锁存slave发送的数据 ## 模式3 CPOL=0 CPHA=1 ``` ----1--------2--------3--------4--------5--------6--------7--------8---- ----- ----- ----- ----- ----- ----- ----- ----- _____________| |____| |____| |____| |____| |____| |____| |____| |____ ``` 发送数据:master 上升沿准备数据,slave下降沿锁存数据 接收数据:master 在下降沿锁存slave发送的数据 ## 模式4 CPOL=1 CPHA=1 ``` ----1--------2--------3--------4--------5--------6--------7--------8---- ------------- ---- ---- ---- ---- ---- ---- ---- ------------- |____| |____| |____| |____| |____| |____| |____| |____| ``` 发送数据:master 下降沿准备数据,slave上升沿锁存数据 接收数据:master 在上升沿沿锁存slave发送的数据 # 软件架构 -[x] 复位信号(altera推荐低电平异步复位,xilinx推荐高电平同步复位) #### 使用说明 1. 数据输入输出参考axi-stream协议. 2. 每发送一个字节数据,`m_axi_tdata`都会有一个收到的数据,这个数据啥时候有效由其他模块决定 3. 模式0, spi时钟10MHz已经测试 #### 参与贡献 1. Fork 本项目 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request