This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] AFE7921:Latte 的一些错误

Guru**** 2381290 points
Other Parts Discussed in Thread: AFE7921
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/rf-microwave-group/rf-microwave/f/rf-microwave-forum/1293529/afe7921-some-error-about-latte

器件型号:AFE7921

您好:

   我们已下载并安装   AFE79xxEVM_GUIv1p10p1_installer.exe 以及运行 Latte。

但当我们运行演示 Python 脚本时、出现了错误。 我们运行的是 AFE79xx_TSW14J56_Mode1.py 和 AFE79xx_EVM_Mode1.py,其他脚本中也出现错误。

运行 AFE79xx_TSW14J56_Mode1.py 时、日志如下

工作区被清除

无法运行文件

无法运行文件

#Error :未定义名称'sysParams'

#"AFE79xx/Automation/AFE79xx_TSW14J56_Mode1.py"、第18行、

# NameError:名称'sysParams'未定义

#

#

#DONE 正在执行... AFE79xx/自动化/ AFE79xx_TSW14J56_Mode1.py

#结束时间2023年11月17日11:20:51.847000

#执行时间= 0.0029978256226秒

#==================== 错误:3,警告:0=================== #

运行 AFE79xx_EVM_Mode1.py 时、日志如下

#正在执行.. AFE79xx/bringup/ AFE79xx_EVM_Mode1.py

#开始时间2023年11月17日11:22:39.597000

#Error :未定义名称"setupParams"

#"AFE79xx/bringup/AFE79xx_EVM_Mode1.py"、第14行、位于

# NameError:未定义名称"setupParams"

#

#

#DONE 正在执行... AFE79xx/bringup/ AFE79xx_EVM_Mode1.py

#结束时间2023年11月17日11:22:39.600000

#执行时间= 0.00300002098083秒

#==================== 错误:1,警告:0=================== #

我们不更改任何设置。

Latte 窗口如下所示

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Zhansheng、

    我有一个自动脚本、您可以使用它来 一起演示 AFE7921和 TSW14J58 EVM。 该脚本将使用 TXA 通道在3510 MHz 处发送提示音、并将使用 RXA 通道接收和显示该提示音的 FFT。 要可视化接收到的音调、请确保您已安装 HSDC Pro

    我已经给出了一些有关如何运行此脚本的说明。

    在 AFE7921 EVM 上:

    请连接 RXA 和 TXA、如下图所示。

    在 TSW14J58 EVM 上:

    正如 Kang 在其先前的帖子中所示、请确保 J35跳线处于向下位置、以确保您使用的是 JESD 204B 固件。

    在 HSDC Pro 中

    请打开 High Speed Data Converter Pro 应用程序。 您将看到如下所示的起始屏幕、请按 取消 复选框。

    在 Latte 中:

    请使用上面 Kang 提供的脚本替换 AFE79xx_EVM_Mode1.py。

    此外、您需要添加  两个新脚本 对于这个自动化脚本、我在下面提供了两个脚本。

    在"bringup"文件夹中创建一个新脚本- bringup.py 和 AFE79xx_EVM_Mode1.py 位于此处。 这将创建一个名为"scriptX.py"的新脚本、其中  X 将是某个数字。  请将这个新脚本重命名为 fpgareset.py  这可以通过双击该新脚本的名称来完成。

    在 fpgareset.py 中、粘贴以下脚本:

    from USBHSCProgrammer import USBQPort
    
    if("fpgaResetFtdi" not in globals()):
    	qportAddr="TSW14J58_CTRL B"
    	fpgaResetFtdi=USBQPort(name="FPGA reset",addr=qportAddr)
    	fpgaResetFtdi.pin0=4  #fpga resetZ=1. For ver0, this is reset. Logic needs inversion. 
    	fpgaResetFtdi.pin1=5
    	fpgaResetFtdi.pin2=4  #program sel=1
    	fpgaResetFtdi.pin3=5
    	fpgaResetFtdi.pin4=4  #fpga progZ=1
    	fpgaResetFtdi.pin5=5
    	fpgaResetFtdi.pin6=5
    	fpgaResetFtdi.pin7=5
    
    
    def reloadFpga():
    	if("fpgaResetFtdi" in globals()):
    		log("Programing FPGA ....")
    		fpgaResetFtdi.pin4=3
    		delay(0.5)
    		fpgaResetFtdi.pin4=4
    		delay(0.2)
    		log("Programing FPGA Done")
    	else:
    		error("FPGA Reset device not found")
    
    def resetFpga(ver=0):
    	if("fpgaResetFtdi" in globals()):
    		log("Resetting FPGA ....")
    		for i in range(2):
    			if(ver==1):
    				fpgaResetFtdi.pin0=3
    				delay(0.5)
    				fpgaResetFtdi.pin0=4
    				delay(0.8)
    			else:
    				fpgaResetFtdi.pin0=4
    				delay(0.5)
    				fpgaResetFtdi.pin0=3
    				delay(0.8)
    
    
    		log("Resetting FPGA Done")
    		if("myfpga" in globals()):
    			myfpga.Reconnect()
    	else:
    		error("FPGA Reset device not found")
    
    
    def changeJESDMode(ver=0):
    	#204C: 0
    	#204B: 1
    	if("fpgaResetFtdi" in globals()):
    		log("Changing FPGA Firmware From ")
    		if(ver==0):
    			log("204B to 204C")
    			fpgaResetFtdi.pin2=3
    		if(ver==1):
    			log(" 204C to 204B")
    			fpgaResetFtdi.pin2=4
    	else:
    		error("FPGA Reset device not found")
    
    changeJESDMode(1)
    reloadFpga()
    resetFpga(1)

    在"Automations"文件夹(AFE79xx_TSW14J56_Mode1.py 文件所在的位置)中创建一个新脚本。 这将再次创建一个新文件、 您可以选择将此脚本命名为任何想要的名称。

    在这个新文件中、粘贴以下自动化脚本:

    mainWindow.clearSession()
    
    ## Note : below base_directory needs to be modified per user's environment. 
    base_directory = PROJECTS_DIR + "AFE79xx\\"
    
    '''************INITIALIZATION**********************'''
    mainWindow.runFile(base_directory + r"bringup/setup.py")
    mainWindow.runFile(base_directory + r"bringup/fpgareset.py")
    mainWindow.runFile(base_directory + r"bringup/devInit.py")
    
    '''************RUN BASICBRINGUP.PY**********************'''
    device.delay_time = 0 # run faster
    mainWindow.runFile(base_directory + r"bringup/AFE79xx_EVM_Mode1.py")
    
    '''************SEND TX TONE AND RECEIVE**********************'''
    ## Turn on RXA and TXA
    AFE.TOP.overrideTdd(1,0,1) 
    
    ## Send single tone
    freq=10 # offset frequency from NCO
    
    amplA = -10
    freqA = freq
    amplB = -10
    freqB = freq
    AFE.selectCh(2,0)
    AFE.FPGA.sendSingleTone(0,freqA,amplA,freqB,amplB)
    AFE.adcDacSync(1)
    
    ## Capture data
    AFE.selectCh(0,0) # choose RXA
    AFE.adcDacSync(1)
    
    engine.sampleNo = 2**16 # 65k samples
    engine.captureType = 1
    engine.inputFrequency = 3510e6
    engine.start = 1 # start capture
    
    ## Save capture data
    
    ImportCSVFilePathWithName = # replace with user path
    
    AFE.saveCaptureData(ImportCSVFilePathWithName)
    
    '''************VISUALIZE CAPUTRE IN HSDC PRO**********************'''
    NoofBits = 16
    NoofChannels = 1
    TimeoutinMs = 30000
    
    Datarate = 245.76E6
    InputTargetFrequency = freq * 1E6
    Number_Of_Samples_Per_Channel = 65536
    NumberOfSamplesForAnalysis = 65536
    
    PlotType = 2 #0-Codes 1-Bits 2-Real_FFT 3-Complex_FFT
    plotStr = ""
    if PlotType == 0:
    	plotStr = "codes"
    elif PlotType == 1:
    	plotStr = "bits"
    elif PlotType == 2:
    	plotStr = "real FFT"
    elif PlotType == 3:
    	plotStr = "complex FFT"
    
    info ("Setting ADC output data rate as {:.2f} MSPS.".format(Datarate/1E6))
    Err_Status = HSDC_Pro.Pass_ADC_Output_Data_Rate(c_double(Datarate),TimeoutinMs)
    if Err_Status:
    	critical("Error setting data rate.")
    
    info ("Setting ADC input target grquency as {:.2f} MHz.".format(InputTargetFrequency/1E6))
    Err_Status = HSDC_Pro.Set_ADC_Input_Target_Frequency(c_double(InputTargetFrequency),TimeoutinMs)
    if Err_Status:
    	critical("Error setting target frequency.")
    
    info ("Setting number of samples as {:d}.".format(Number_Of_Samples_Per_Channel))
    Err_Status = HSDC_Pro.Set_Number_of_Samples(c_ulonglong(Number_Of_Samples_Per_Channel),TimeoutinMs)
    if Err_Status:
    	critical("Error setting number of samples.")
    
    info ("Setting ADC analysis window length as {:d}.".format(NumberOfSamplesForAnalysis))
    Err_Status = HSDC_Pro.ADC_Analysis_Window_Length(c_ulong(NumberOfSamplesForAnalysis),TimeoutinMs)
    if Err_Status:
    	critical("Error setting analysis window length.")
    
    info ("Selecting ADC plot type as {}.".format(plotStr))
    Err_Status = HSDC_Pro.ADC_Plot_Type(c_ulong(PlotType),TimeoutinMs)
    if Err_Status:
    	critical("Error selecting plot type.")
    
    info ("Importing data file from {}.".format(ImportCSVFilePathWithName))
    Err_Status = HSDC_Pro.ADC_Import_Data_File(ImportCSVFilePathWithName,NoofBits,NoofChannels,TimeoutinMs)
    if Err_Status:
    	critical("Error importing data.")

    重要提示:  在该脚本的第41行、您需要提供一个保存 CSV 文件的路径、请在 PC 上提供一些有效路径。 例如,在我的 PC 上,我有:ImportCSVFilePathWithName = r"C:\Users\DC-WI\Documents\capture.csv"

    现在、您可以 在自动化脚本上按 F5键、约2-4分钟后、 应启动 AFE 并将在3510 MHz 发送和接收提示音。 如果一切运行良好、您将在 HSDC Pro 中看到以下输出:

    Latte 输出应如下所示:

    疑难解答:

    如果您看到"无法运行文件"错误-这可能意味着我提供的自动化脚本没有指向正确的文件。 您可以尝试在自动化脚本中分别运行第7、8、9和13行以查看未找到哪个文件。 您也可以在命令行中键入"base_directory"、以查看 Latte 认为这些脚本应该位于的位置。 请确保第7、8、9和13行中提到的每个文件都存在、并且脚本指向正确的目录。

    如果您看到"无法连接到采集卡"错误、请尝试将 fpgareset.py 中的最后一行更改为 resetFpga (0)(而不是 resetFpga (1))。

    我希望这对您有所帮助、如果您 需要任何澄清或遇到与此相关的任何错误、请告诉我。

    谢谢。

    阿曼