# spi_slave_core **Repository Path**: kduant/spi_slave_core ## Basic Information - **Project Name**: spi_slave_core - **Description**: 只提供简单的spi slave接收和发送数据功能 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2018-05-05 - **Last Updated**: 2025-04-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 简单的spi slave功能 # 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发送的数据 slave在如上图所示的边沿锁存数据,master就必须提前半个周期准备好数据 # simulation * 提供master 模式下的 `write_byte()`任务 * 提供master 模式下的 `read_byte()`任务 # spi_slave_core ## 特性 - [x] 支持SPI 4种工作模式的接收,发送 - [x] 数据宽度8bit - [x] 类似axi_stream总线的数据收发接口 - [ ] MSB, LSB 选择。默认MSB ## config_reg 配置spi的工作特性及模式 bit | 作用 | 备注 --------|-----------|---- bit[7] | reverse | bit[6] | reverse | bit[5] | reverse | bit[4] | reverse | bit[3] | reverse | bit[2] | lsbfe | 1: MSB first; 0: LSB first bit[1] | cpol | bit[0] | cpha | ## spi_slave_recv_core 主机向从机写数据时,从机从mosi端口中解析出接收到的数据 ## spi_slave_send_core 主机需要读取数据时,从机响应。m_axi_tvalid和m_axi_tready同时有效时,将数据通过miso发送出去