ZHCABI9 April   2022 AM67 , AM67A , AM68 , AM68A , AM69 , AM69A , DRA821U , DRA821U-Q1 , DRA829J , DRA829J-Q1 , DRA829V , DRA829V-Q1 , TDA4AEN-Q1 , TDA4AH-Q1 , TDA4AL-Q1 , TDA4AP-Q1 , TDA4VE-Q1 , TDA4VEN-Q1 , TDA4VH-Q1 , TDA4VL-Q1 , TDA4VM , TDA4VM-Q1 , TDA4VP-Q1

 

  1.   摘要
  2.   商标
  3. 1SPI:串行外设接口
  4. 2J7200/J721e MCSPI 支持
    1. 2.1 MCSPI 特性
  5. 3SPI:Linux 上的主模式启用和验证
    1. 3.1 启用 J721e/TDA4VM 的 SPI 实例
    2. 3.2 在 TD4VM SDK 上启用 SPIDEV
    3. 3.3 使用标准 Linux spidev_test 工具在 TI J7/TDA4x 上的用户空间中练习 SPI
  6. 4SPI:Linux 上的从模式启用和验证
    1. 4.1 启用 J7200 的 SPI 实例
    2. 4.2 为 MCSPI4 从节点启用 DMA
    3. 4.3 启用 SPIDEV 和 SPI_SLAVE 配置
    4. 4.4 使用标准 Linux spidev_test 工具在 TI J7200 上的用户空间中测试 SPI 从模式功能
    5. 4.5 使用 spi-slave-time 进行 SPI 从器件测试
    6. 4.6 Linux SPI 从器件的挑战
    7. 4.7 Linux SPI 从模式一般性限制
    8. 4.8 McSPI SPI 从模式限制
  7. 5参考文献

Linux SPI 从器件的挑战

  • SPI 从器件需要实时运行:
    • 当主器件启动时钟时,SPI 从器件必须准备好发送/接收数据。但是,主器件无法知道从器件是否准备就绪
    • 从器件必须接收主器件发送的所有任意长度的数据,否则缓冲区溢出,同时导致数据丢失
    • 从器件必须准备好数据,以便在下一个时钟周期内发送到主器件,否则0 将移位(如果在有效数据流的中间,则会损坏)
  • 没有任何类型的流控制。因此,从器件无法在中间停止事务以提供额外的资源(用于接收发送给主器件的 cmd/数据的缓冲区)。由此,如果从器件无法承受主器件的数据量,则可能会出现 RX 欠运转和 TX 数据丢失。