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.

[参考译文] AFE7950EVM:采用 TSW14J58的 JESD 环回

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

https://e2e.ti.com/support/rf-microwave-group/rf-microwave/f/rf-microwave-forum/1247785/afe7950evm-jesd-loopback-with-tsw14j58

器件型号:AFE7950EVM

您好!

我尝试使用 AFE7950EVM 板执行 JESD 环回。 我在端口 RXA 上有一个信号发生器、在端口 TXA 板上有一个频谱分析仪。 我将 NCO 频率设置为8900MHz、将信号发生器频率设置为8950MHz。

AFE 通过 Latte 工具进行编程、我可以按顺序执行以下 python 脚本:Setup.py、devInit.py 和经过少量修改的 S3_OnboardClk_RX_TX_500M_FB_disabled.py 版本。
我添加了命令 sysParams.serdesFirmware 和 sysParams.jesdLoopBackEn、并将这两个命令都设置为 true。

脚本在运行时不会出现错误、但我无法测量 AFE 的 TX 端口上的输出信号。 我还尝试了其他端口没有成功。

您能查看我的代码吗? 我缺少什么吗?

此致

斯特凡

##############		Read me			##############
#In HSDC Pro DAC tab, Select AFE79xx_2x2TX_44210; Data Rate = 491.52M
#In HSDC Pro ADC tab, Select AFE79xx_2x2RX_44210; Data Rate = 491.52M ---> To capture 4 RX channels

sysParams=AFE.systemParams
sysParams.__init__();sysParams.chipVersion=chipVersion

setupParams.skipFpga = False # setup FPGA (TSW14J56) using HSDC Pro 
##############		Top Level			##############
sysParams.FRef			= 491.52
sysParams.FadcRx		= 2949.12
sysParams.FadcFb		= 2949.12
sysParams.Fdac			= 2949.12*4
sysParams.externalClockRx=False
sysParams.externalClockTx=False
													
##############		Digital Chain		##############

		#####	RX	#####
sysParams.ddcFactorRx	=	[6,6,6,6]				#DDC decimation factor for RX A, B, C and D
sysParams.rxNco0		= 	[[8900,8900],			#Band0, Band1 for RXA 
							[8900,8900],        	#Band0, Band1 for RXB 
							[8900,8900],        	#Band0, Band1 for RXC 
							[8900,8900]]        	#Band0, Band1 for RXD 

		#####	FB	#####
sysParams.fbEnable		=	[False,False]
sysParams.ddcFactorFb	=	[6,6]					#DDC decimation factor for FB 1 and 2
sysParams.fbNco0		= 	[8900,8900]				#Band0 for FB1 and FB2 

		#####	TX	#####
sysParams.ducFactorTx	=	[24,24,24,24]			#DUC interpolation factor for TX A, B, C and D
sysParams.txNco0		= 	[[8900,8900],			#Band0, Band1 for TXA 
							[8900,8900],        	#Band0, Band1 for TXB 
							[8900,8900],        	#Band0, Band1 for TXC 
							[8900,8900]]        	#Band0, Band1 for TXD


##############		JESD		##############

		#####	ADC-JESD	#####
sysParams.jesdSystemMode= [3,3]
													#SystemMode 0:	2R1F-FDD						; rx1-rx2-fb -fb
													#SystemMode 1:	1R1F-FDD						; rx -rx -fb -fb
													#SystemMode 2:	2R-FDD							; rx1-rx1-rx2-rx2
													#SystemMode 3:	1R								; rx -rx -rx -rx
													#SystemMode 4:	1F								; fb -fb- fb -fb
													#SystemMode 5:	1R1F-TDD						; rx/fb-rx/fb-rx/fb-rx/fb
													
sysParams.jesdTxProtocol= [0,0]						# 0 - 8b/10b encoding; 2 - 64b/66b encoding 
sysParams.LMFSHdRx		= ["44210","44210","44210","44210"]
													# The 2nd and 4th are valid only for jesdSystemMode values in (0,2).
													# For other modes, select 4 converter modes for 1st and 3rd.
sysParams.LMFSHdFb		= ["44210","44210"]

sysParams.rxJesdTxScr	= [True,True,True,True]
sysParams.fbJesdTxScr	= [True,True]

sysParams.rxJesdTxK		= [16,16,16,16]
sysParams.fbJesdTxK		= [16,16]

#sysParams.jesdTxLaneMux	= [5,6,4,7,3,2,0,1]

sysParams.jesdTxLaneMux	= [0,1,2,3,4,5,6,7]			# Enter which lanes you want in each location. 
													# For example, if you want to exchange the first two lines of each 2T,
													#		this should be [[1,0,2,3],[5,4,6,7]]

		#####	DAC-JESD	#####
sysParams.jesdRxProtocol= [0,0]
sysParams.LMFSHdTx		= ["44210","44210","44210","44210"]

#sysParams.jesdRxLaneMux	= [5,6,4,7,3,2,1,0]
sysParams.jesdRxLaneMux	= [0,1,2,3,4,5,6,7]			# Enter which lanes you want in each location.
													# For example, if you want to exchange the first two lines of each 2R
													#		this should be [[1,0,2,3],[5,4,6,7]]
sysParams.jesdRxRbd		= [4, 4]
sysParams.jesdRxScr		= [True,True,True,True]
sysParams.jesdRxK		= [16,16,16,16]

		#####	JESD Common	#####
	
sysParams.jesdABLvdsSync= True
sysParams.jesdCDLvdsSync= True
sysParams.syncLoopBack	= False	#JESD Sync signal is connected to FPGA

sysParams.serdesFirmware= True
sysParams.jesdLoopBackEn= True

#sysParams.serdesRxLanePolarity = [1,1,1,1,0,0,0,0]
#sysParams.serdesTxLanePolarity = [1,1,0,0,1,1,0,0]


##############		GPIO		##############
sysParams.gpioMapping	= {
						'H8': 'ADC_SYNC0',
						'H7': 'ADC_SYNC1',
						'N8': 'ADC_SYNC2',
						'N7': 'ADC_SYNC3',
						'H9': 'DAC_SYNC0',
						'G9': 'DAC_SYNC1',
						'N9': 'DAC_SYNC2',
						'P9': 'DAC_SYNC3',
						'P14': 'GLOBAL_PDN',
						'K14': 'FBABTDD',
						'R6': 'FBCDTDD',
						'H15': ['TXATDD','TXBTDD'],
						'V5': ['TXCTDD','TXDTDD'],
						'E7': ['RXATDD','RXBTDD'],
						'R15': ['RXCTDD','RXDTDD']}

##############		LMK Params		##############
lmkParams.pllEn			= True
lmkParams.inputClk		= 983.04 # Valid only when lmkParams.pllEn = False
lmkParams.lmkFrefClk	= True
setupParams.fpgaRefClk	= 245.76 # Should be equal to LaneRate/40 for TSW14J56


##############		Logging		##############
logDumpInst.setFileName(ASTERIX_DIR+DEVICES_DIR+r"\Afe79xxPg1.txt")
logDumpInst.logFormat=0x0 #Modify to 0x1 to save register scequence to log file. Script takes more time to execute.
logDumpInst.rewriteFile=1
logDumpInst.rewriteFileFormat4=1
device.optimizeWrites=0
device.rawWriteLogEn=1

device.delay_time = 0
#-------------------------------------------------------------------------------------------------#
AFE.deviceBringup()

AFE.TOP.overrideTdd(15,3,15)	# bit-wise; 4R,2F,4T

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

     Stefan、您好、

    将 AFE 配置为 JESD 环回模式时、不需要像 TSW14J58这样的 FPGA 采集卡。 您是否在连接了 TSW14J58的情况下尝试使用此脚本?

    如果未连接、请 将脚本中的第8行更新为 "setupParams.skipFpga = True"、然后重试。 如果您在日志中看到错误、请与我们分享错误。 我们可以查看错误 并告知您解决方法。  

    此致、

    维贾伊

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

    Vijay、您好!

    我尝试了这两种方法、都有 TSW 板、也有没有 TSW 板。 连接 TSW14J58板后、日志中没有错误。

    当我在断开 TSW14J58板的情况下执行脚本时、我得到以下日志:

    #======
    #Executing .. AFE7950/bringup/setup.py
    #Start Time 2023-07-19 14:41:39.646000 
    AFE79xxLibraryPG1p0
    spi - USB Instrument created.
    resetDevice
    Purge
    Kintex RegProgrammer - USB Instrument created.
    Kintex RegProgrammer - USB Instrument created.
    Kintex RegProgrammer - USB Instrument created.
    #Done executing .. AFE7950/bringup/setup.py
    #End Time 2023-07-19 14:41:48.098000
    #Execution Time = 8.45200014114 s 
    #================ ERRORS:0, WARNINGS:0 ================#
    #======
    #Executing .. AFE7950/bringup/devInit.py
    #Start Time 2023-07-19 14:41:51.126000 
    Power Card - USB Instrument created.
    Version : 0x0
    Could not connect to capture card. Reset Card and Reconnect( myfpga.Reconnect() )
    Loaded Libraries
    Refreshed GUI
    #Done executing .. AFE7950/bringup/devInit.py
    #End Time 2023-07-19 14:42:25.942000
    #Execution Time = 34.8159999847 s 
    #================ ERRORS:1, WARNINGS:0 ================#
    #======
    #Executing .. AFE7950/bringup/S3_OnboardClk_RX_TX_500M_FB_disabled.py
    #Start Time 2023-07-19 14:42:36.798000 
    The External Sysref Frequency should be an integer factor of: 5.12MHz
    2T2R1F Number: 0
    Valid Configuration: True
    laneRateRx: 9830.4
    laneRateFb: 9830.4
    laneRateTx: 9830.4
    2T2R1F Number: 1
    Valid Configuration: True
    laneRateRx: 9830.4
    laneRateFb: 9830.4
    laneRateTx: 9830.4
    LMK Clock Divider - Device registers reset.
    LMK Clock Divider - Device registers reset.
    REFCLOCK is used from LMK source, ensure board connections are ok to do the same
    LMK and FPGA Configured.
    DONOT_OPEN_Atharv_FULL - Device registers reset.
    chipType: 0xa
    chipId: 0x78
    chipVersion: 0x11
    AFE Reset Done
    Fuse farm load autoload done successful
    No autload error
    Fuse farm load autoload done successful
    No autload error
    //Firmware Version = 11000
    //PG Version = 1
    //Release Date [dd/mm/yy] = 10/7/19
    patchSize=11697
    //Patch Version = 165
    //PG Version = 0
    //Release Date [dd/mm/yy] = 27/11/21
    AFE MCU Wake up done and patch loaded.
    PLL Locked
    AFE PLL Configured.
    AFE SerDes Configured.
    AFE Digital Chains configured.
    AFE TX Analog configured.
    AFE RX Analog configured.
    AFE FB Analog configured.
    AFE JESD configured.
    AFE AGC configured.
    AFE GPIO configured.
    Sysref Read as expected
    ###########Device DAC JESD-RX 0 Link Status###########
    LOS Indicator for (Serdes Loss of signal) lane 0: 1
    Serdes-FIFO error for lane 0: 1
    LOS Indicator for (Serdes Loss of signal) lane 1: 1
    Serdes-FIFO error for lane 1: 1
    LOS Indicator for (Serdes Loss of signal) lane 2: 1
    Serdes-FIFO error for lane 2: 1
    LOS Indicator for (Serdes Loss of signal) lane 3: 1
    Serdes-FIFO error for lane 3: 1
    Comma Align Lock Lane0: False; Please check if the transmitter is sending data and eye is good.
    Comma Align Lock Lane1: False; Please check if the transmitter is sending data and eye is good.
    Comma Align Lock Lane2: False; Please check if the transmitter is sending data and eye is good.
    Comma Align Lock Lane3: False; Please check if the transmitter is sending data and eye is good.
    CS State TX0: 0b00000000 . It is expected to be 0b10101010
    FS State TX0: 0b00000000 . It is expected to be 0b01010101
    Couldn't get the link up for device RX: 0; Alarms: 0xff00
    ###################################
    ###########Device DAC JESD-RX 1 Link Status###########
    LOS Indicator for (Serdes Loss of signal) lane 0: 1
    Serdes-FIFO error for lane 0: 1
    LOS Indicator for (Serdes Loss of signal) lane 1: 1
    Serdes-FIFO error for lane 1: 1
    LOS Indicator for (Serdes Loss of signal) lane 2: 1
    Serdes-FIFO error for lane 2: 1
    LOS Indicator for (Serdes Loss of signal) lane 3: 1
    Serdes-FIFO error for lane 3: 1
    Comma Align Lock Lane0: False; Please check if the transmitter is sending data and eye is good.
    Comma Align Lock Lane1: False; Please check if the transmitter is sending data and eye is good.
    Comma Align Lock Lane2: False; Please check if the transmitter is sending data and eye is good.
    Comma Align Lock Lane3: False; Please check if the transmitter is sending data and eye is good.
    CS State TX0: 0b00000000 . It is expected to be 0b10101010
    FS State TX0: 0b00000000 . It is expected to be 0b01010101
    Couldn't get the link up for device RX: 1; Alarms: 0xff00
    ###################################
    AFE Configuration Complete
    #Done executing .. AFE7950/bringup/S3_OnboardClk_RX_TX_500M_FB_disabled.py
    #End Time 2023-07-19 14:43:24.579000
    #Execution Time = 47.7809998989 s 
    #================ ERRORS:26, WARNINGS:1 ================#

    错误信息出现在74-105行。

    此致

    斯特凡

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

    Stefan、您好、

    我们将测试您在 实验室中发送的脚本、并明天回复给您。  

    此致、

    维贾伊

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

    Stefan、您好、

    问题是您正在使用的 JESD 环回命令拼写错误、环回中的"B"不应大写。 除了 "setupParams.skipFpga = True"外、请使用下面一行。

    sysParams.jesdLoopbackEn= True

    此致、

    大卫·查帕罗

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

    供参考:我采用了《AFE79XX 配置指南》- SBAA417的拼写错误。 这里拼写错误。

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

    Stefan、您好、

    感谢您指出这一点。 我们将在文档中对此进行更新。

    此致、

    大卫·查帕罗