【SPI】之调试笔记

总线协议: SPI
工作方式: 全双工

1.某xx的 ip, 传输模式有 4 种, 分别为, read onlywrite only, read_writeeeprom模式
这里主要介绍2种模式,read_write模式, eeprom模式

read_write模式: 因为spi是全双工模式,mosi 在发送 1 byte数据的同时,miso信号线上是存在数据的默认值为FF(默认状态下mosi 拉高的);那么在实际应用中, 使用spi协议 主设备进行命令发送的同时,miso也会有数据, 假设fifo 存在 并打开, 主机发送了多少个字节的数据, 那么spi_rx_fifo 中就会相应的接收多少个数据,这些数全为0xff(实际上并不是从设备回复的有效数据),因此在读取操作中, 需要丢弃掉无效的数据,如下图为 在read write 模式下,主机使用 spi 下发命令的波形:
在这里插入图片描述
从图中可以看出 mosi 发出指令0x0F, 0xC0,的同时 miso 信号线上 的数值为0xff, miso 回的有效数据为 第3个字节的0x00, mosi上的第3个字节 0xff, 不是命令, 只是为了提供时钟(实际测试也可不需要)

eeprom模式: 主机发送数据 或者从机回数据给主机,对应的 rx_fifo 和 tx_fifo中,没有任何无效数据, 软件上不需要做任何处理, 直接从fifo中读数据就可以了,比如eeprom模式下手册上有这么一句:“In eeprom-read mode, receive data is not valid while control data is being transmitted. When all control data is sent to the EEPROM, receive data becomes valis and transmit datat becomes invalid” , 如下图为eeprom模式的波形:
在这里插入图片描述
上图是在eeprom模式(存储器读写模式)下写了几个page ,批量数据传输 建议eeprom模式,

在这里插入图片描述
上图是eeprom 下的 WRITE 操作, 可以看出,主机在连续写数据, miso对其 不会产生影响, 在主机发数据的同时,miso 信号线上的数据全为 0xff, 这一点应该可以说明 全双工模式下,RX 和 TX 的状态了, 加深理解 “In eeprom-read mode, receive data is not valid while control data is being transmitted.”

在这里插入图片描述
上图是eeprom 下的 READ 操作,主机发送完读取的page 地址 0x0B , 0x00, 0x00 ,0x00后, 信号线 mosi 上的值全为0x00, 从设备立马就回数据到rx_fifo中了(实际回的数据从波形信号线 miso 的第4个字节开始,前边的数据会被自动无效掉, 加深理解
When all control data is sent to the EEPROM, receive data becomes valis and transmit datat becomes invalid”), 因此软件直接读取 rx_fifo 就可以拿到数据了

相关推荐

最近更新

  1. TCP协议是安全的吗?

    2024-03-15 12:22:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-15 12:22:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-15 12:22:02       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-15 12:22:02       20 阅读

热门阅读

  1. 2023 年 9 月青少年软编等考 C 语言一级真题解析

    2024-03-15 12:22:02       18 阅读
  2. 简易线程池的实现

    2024-03-15 12:22:02       20 阅读
  3. mac springboot com.spotify Docker 容器化部署

    2024-03-15 12:22:02       21 阅读
  4. 字符串基础

    2024-03-15 12:22:02       17 阅读
  5. Spring MVC相关

    2024-03-15 12:22:02       15 阅读
  6. 23.查询所有列

    2024-03-15 12:22:02       17 阅读
  7. 前端协商缓存和强缓存

    2024-03-15 12:22:02       17 阅读
  8. JVM-3

    JVM-3

    2024-03-15 12:22:02      18 阅读