ZHCUC05A November   2022  – May 2024 AFE7900 , AFE7903 , AFE7906 , AFE7920 , AFE7921 , AFE7950

 

  1.   1
  2.   摘要
  3.   商标
  4. 引言
  5. 先决条件
  6. 典型裸机设计流程
  7. 背景
  8. 添加 Microblaze 和 SPI IP 以便在 Vitis 中用于嵌入式开发
  9. 在 Vitis 中创建新平台
  10. 在 Vitis 中新建应用工程
  11. 构建应用工程
  12. 为 AFE79xx EVM 生成 SPI 日志
    1. 9.1 生成 LMK SPI 日志
    2. 9.2 生成 AFE SPI 日志
    3. 9.3 将 SPI 日志转换为 Vitis 的格式
  13. 10AFE79xxEVM 板修改
  14. 11配置 AXI GPIO
    1. 11.1 初始化 GPIO
    2. 11.2 设置方向
    3. 11.3 针对相应的位设置为高电平或低电平
  15. 12配置 AXI SPI
  16. 13设置硬件和为硬件加电
  17. 14为 VADJ_FMC 设置 ZCU102 电路板接口
  18. 15调试应用工程并设置 Vitis 串行终端
  19. 16执行应用
  20. 17修订历史记录

配置 AXI SPI

标准模式 下使用 TI AFE SPI IP 中的 AXI SPI 实例。

外设 select 0select 1 分别用作 AFE 和 LMK 时钟器件的芯片选择

SCL 频率在 TI IP 内硬编码为 10MHz

在 Vitis 中初始化和使用 SPI 的关键命令如下所述:

  1. XSpi_Config *ConfigPtr

    初始化指针 (ConfigPtr)。

  2. ConfigPtr = XSpi_LookupConfig(XPAR_AXI_QUAD_SPI_0_DEVICE_ID)

    参考“Xparameters.h”找到正确的 AXI QUAD SPI DEVICE ID。

  3. XSpi_CfgInitialize(&Spidev, ConfigPtr, ConfigPtr->BaseAddress)

    初始化 SPI (Spidev) 的新实例。

  4. XSpi_SetOptions(&Spidev, XSP_MASTER_OPTION)

    将 Spidev 实例设置为控制器模式。

  5. XSpi_Start(&Spidev)
  6. XSpi_SetSlaveSelect(&Spidev, 1)

    选择外设:AFE。

  7. XSpi_SetSlaveSelect(&Spidev, 2)

    选择外设:LMK。

  8. XSpi_Transfer(&Spidev, WrBufdev, RdBufdev, 3);

    第二个实参 WrBufdev 是一个包含 3 个字节(要在 SPI 上传输的 24 位数据)的数组。

    第三个实参 RdBufdev 是一个包含 3 个字节的数组,最后一个字节有 SPI 读取值。

    第四个实参是要发送/接收的字节数...在本例中为 3。

D23 是 24 位数据的 MSB 位,因为 D23 指示它是读操作还是写操作:

  • 如果 D23 设为 1,则为读操作,RdBufdev[2] 存储读回地址内容
  • 如果 D23 设为 0,则为写操作,RdBufdev[2] 无关紧要