ZHCUD83 August   2025

 

  1.   1
  2.   摘要
  3.   商标
  4. 1 简介
  5. 2 FT4222_Python_Controller.py
    1. 2.1 I2C 命令
    2. 2.2 SPI 命令
  6. 3 AFE20408_Page_Global_Def.py
  7. 4 AFE20408_Page_0_Def.py
  8. 5 AFE20408_Page_1_Def.py
  9. 6 AFE20408_Page_2_Def.py
  10. 7 AFE20408_Page_3_Def.py
  11. 8 AFE20408_Page_4_Def.py
  12. 9 AFE20408_Page_6_Def.py
  13. 10Main.py
  14. 11通用序列
    1. 11.1 复位序列
    2. 11.2 ADC 配置
    3. 11.3 DAC 配置
  15. 12常见问题
  16. 13总结

SPI 命令

initializeSPI(模式,时钟,CPOL,CPHA,从器件选择)

在 SPI 模式下初始化 FTDI

表 2-4 InitializeSPI 参数
名称 参数 说明
模式

Ft4222.SPIMaster.Mode.NONE

Ft4222.SPIMaster.Mode.SINGLE

Ft4222.SPIMaster.Mode.DUAL

Ft4222.SPIMaster.Mode.QUAD

AFE20408EVM 使用 SINGLE 模式。请勿使用其他模式。
时钟

ft4222.SPIMaster.Clock.NONE

ft4222.SPIMaster.Clock.DIV_2

ft4222.SPIMaster.Clock.DIV_4

ft4222.SPIMaster.Clock.DIV_8

ft4222.SPIMaster.Clock.DIV_16

ft4222.SPIMaster.Clock.DIV_32

ft4222.SPIMaster.Clock.DIV_64

ft4222.SPIMaster.Clock.DIV_128

ft4222.SPIMaster.Clock.DIV_256

ft4222.SPIMaster.Clock.DIV_512

默认时钟值为 60MHz。AFE20408 最大时钟为 20MHz。
CPOL

ft4222.SPI.Cpol.IDLE_LOW

ft4222.SPI.Cpol.IDLE_HIGH

AFE20408 使用 IDLE_LOW
CPHA

ft4222.SPI.Cpha.CLK_LEADING

ft4222.SPI.Cpha.CLK_TRAILING

AFE20408 使用 CLK_TRAILING
从器件选择

ft4222.SPIMaster.SlaveSelect.SS0

ft4222.SPIMaster.SlaveSelect.SS1

ft4222.SPIMaster.SlaveSelect.SS2

ft4222.SPIMaster.SlaveSelect.SS3

AFE20408EVM 使用 SS0

spiWrite(寄存器地址,寄存器数据)

向 EVM 发送 SPI 写入命令。

表 2-5 SPIWrite 参数
寄存器地址 8 位寄存器地址
寄存器数据 16 位寄存器数据

spiRead(寄存器地址)

向 EVM 发送 SPI 读取命令。返回一个 16 位值。

表 2-6 SPIRead 参数
寄存器地址 8 位寄存器地址

示例:

    ftdiObject = FtdiController()   # initialize the FTDI 
    ftdiObject.getFtdiDeviceInfo()  # Get FTDI info
    # Initialize SPI. Note the only changeable variable is the clock division. Everything else is static for the EVM
    ftdiObject.initializeSPI(ft4222.SPIMaster.Mode.SINGLE, ft4222.SPIMaster.Clock.DIV_4, ft4222.SPI.Cpol.IDLE_LOW, ft4222.SPI.Cpha.CLK_TRAILING, ft4222.SPIMaster.SlaveSelect.SS0)
    
    # Write to register address 0x08, with data 0x0001
    ftdiObject.spiWrite(0x08, 0x0001)   

    # Read back from register address 0x08 and print the data.
    print(ftdiObject.spiRead(0x08)) 

    ftdiObject.closeHandle()    # close the FTDI when done.