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:首个奈奎斯特区域性能

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

https://e2e.ti.com/support/rf-microwave-group/rf-microwave/f/rf-microwave-forum/1264190/afe7950evm-first-nyquist-zone-performance

器件型号:AFE7950EVM

您好!

为了进行测试、我使用内部 JESD 环回操作 AFE7950EVM。 在测试过程中、我们注意到第一个奈奎斯特区域的性能比第二个奈奎斯特区域差。 下面是设置脚本、我很好奇我是否出错或缺少应该设置的参数。 为便于参考、我将以~0dBm 进入 ADC、并在第一个奈奎斯特区域(位于1000 MHz 和1400 MHz 之间)中获得大约-50dBm 的输出。 在第二奈奎斯特区域中运行时、可获得约-40dBm 的输出(介于1600 MHz 和2000 MHz 之间)。 当前设置是一个信号发生器、该信号发生器连接到 AFE7950EVM 上的端口 RXA_IN、端口 TXA_OUT 连接到频谱分析仪。 感谢所有的帮助!

##############		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

ddcVal = 6
Fadc = 2949.12
dacSpeedUp = 3
ducVal = ddcVal* dacSpeedUp

fNCO1 = 1200 
fNCO2 = 1800
firstNyquist = True
if(firstNyquist) : fNCO = fNCO1
else : fNCO = fNCO2

LMFS = "44210"

setupParams.skipFpga = 1 # setup FPGA (TSW14J56) using HSDC Pro 
##############		Top Level			##############
sysParams.FRef			= 491.52
sysParams.FadcRx		= Fadc
sysParams.FadcFb		= Fadc
sysParams.Fdac			= Fadc*dacSpeedUp
sysParams.externalClockRx=False
sysParams.externalClockTx=False
													
##############		Digital Chain		##############
if(firstNyquist) : sysParams.ncoFreqMode = "1KHz" #FCW
else : sysParams.ncoFreqMode = "FCW"

sysParams.RRFMode = 5

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

		#####	FB	#####
sysParams.fbEnable		=	[True,True]
sysParams.ddcFactorFb	=	[ddcVal,ddcVal]					#DDC decimation factor for FB 1 and 2
sysParams.fbNco0		= 	[fNCO,fNCO] 			#Band0 for FB1 and FB2 

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

sysParams.enableDacInterleavedMode = False


##############		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= [2,2]						# 0 - 8b/10b encoding; 2 - 64b/66b encoding 
sysParams.LMFSHdRx		= [LMFS,LMFS,LMFS,LMFS]
													# 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		= ["22210","22210"]

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

sysParams.rxJesdTxK		= [1,1,1,1]
sysParams.fbJesdTxK		= [1,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= [2,2]
sysParams.LMFSHdTx		= [LMFS,LMFS,LMFS,LMFS]
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		= [28,28]
sysParams.jesdRxScr		= [False,False,False,False]
sysParams.jesdRxK		= [1,1,1,1]

###sysParams.enableDacInterleavedMode = True

		#####	JESD Common	#####
	
sysParams.jesdABLvdsSync= True
sysParams.jesdCDLvdsSync= False
sysParams.serdesFirmware = True
sysParams.jesdLoopbackEn = True

##############		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	= 184.32 # 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

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

    Bruce、您好!

    如果您使用 AFE7950EVM、那么您将在每个 Tx 和 Rx 通道上使用频率范围为4.7GHz 至12GHz 的平衡-非平衡变压器。 此外、每个通道都有一个匹配~9.5GHz 的前端电路。 考虑到 EVM 上使用的平衡-非平衡变压器和匹配电路、在您要测试的频率下、性能预计不是线性的、这就是您会看到输出功率差异的原因。  

    此致、

    大卫·查帕罗