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.

[参考译文] AFE7920EVM:DAC JESD 设置错误

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

https://e2e.ti.com/support/rf-microwave-group/rf-microwave/f/rf-microwave-forum/1176055/afe7920evm-dac-jesd-setup-error

器件型号:AFE7920EVM

大家好、

我已经尝试修改了随 AFE7920EVM Latte 软件提供的中继器脚本(#5)、以便其 PLL 从外部时钟源(@163.68MHz)以分布式模式工作。

代码(随附的)可用于编译和运行、但也会报告以下错误:

器件 DAC JESD-RX 0链路状态

通道0:1的 SerDes-FIFO 错误

CS 状态 TX0:0b00001010。 预计为0b00001010

FS 状态 TX0:0b00000101。 预计为0b00000101

无法获取设备 RX:0的链接;警报:0x1000

器件 DAC JESD-RX 1链路状态

通道1的 SerDes-FIFO 错误:1.

CS 状态 TX0:0b00001010。 预计为0b00001010

FS 状态 TX0:0b00000101。 预计为0b00000101

无法为设备 RX:1获取链接;警报:0x2000

我怀疑这些错误来自以下事实:我没有修改任何 JESD204B 接口属性、因为它们仅取自原始中继器脚本。  

但是、我不太确定这些错误的确切原因是什么。 您是否可能对我修改的设置中可能出现的问题有任何看法?

非常感谢您的参与、

Zeljko

##########                     General settings:                     ##########

# VLBI Tx frequency plan details:
custom_clk 							= 1
benchmark_on 						= 1
if (custom_clk != 0):
	f0 								= 163.68
	Nrx								= 18
	Nddc							= 6
	Ntx 							= 4
	NFRef							= 1
	NfpgaRefClk						= 1
	NinputClk						= 1
else:
	f0 								= 122.88
	Nrx								= 24
	Nddc							= 12
	Ntx 							= 3
	NFRef							= 4
	NfpgaRefClk						= 2
	NinputClk						= 12
ncoFreqModes 						= ["1KHz", "FCW"]
Nduc								= Nddc*Ntx
Fnco_tx1 							= 2245.0
Fnco_rx1							= 500.0

# AFE general settings
AFE.systemStatus.loadTrims			= 1
setupParams.skipFpga 				= 1
setupParams.fpgaRefClk 				= f0*NfpgaRefClk
sysParams							= AFE.systemParams
sysParams.FRef 						= f0*NFRef

##########               Analog settings: AFE 79XX EVM               ##########

# General system settings	
sysParams.RRFMode   				= 0
sysParams.modeTdd					= 0
sysParams.adcSelect0				= [0, 1, 2]
sysParams.adcSelect1				= [0, 1, 2]
sysParams.useSpiSysref				= 0
sysParams.sysrefTermination			= 0
sysParams.ncoFreqMode				= ncoFreqModes[custom_clk != 0]
sysParams.spiMode					= 1

# ADC settings
sysParams.FadcRx 					= f0*Nrx
sysParams.rxEnable 					= [1, 1, 1, 1]
sysParams.externalClockRx 			= 0
sysParams.halfRateModeRx 			= [0, 0]
sysParams.ddcFactorRx 				= [Nddc, Nddc, Nddc, Nddc]
sysParams.numBandsRx 				= [0, 0, 0, 0]
sysParams.numRxNCO 					= 1
sysParams.ncoRxMode					= [0, 0]
sysParams.broadcastRxNcoSel			= 0
sysParams.rxNco0 					= [ [Fnco_rx1, Fnco_rx1], 
										[870.0, 870.0], 
										[637.5, 637.5], 
										[637.5, 637.5]]
sysParams.rxNco1 					= [ [Fnco_rx1, Fnco_rx1], 
										[870.0, 870.0], 
										[637.5, 637.5], 
										[637.5, 637.5]]

# FB settings
sysParams.FadcFb					= sysParams.FadcRx
sysParams.fbEnable 					= [0, 0]
sysParams.halfRateModeFb 			= [0, 0]
sysParams.ddcFactorFb 				= [Nddc, Nddc]
sysParams.numBandsFb				= [0, 0]
sysParams.numFbNCO 					= 1
sysParams.ncoFbMode					= 0
sysParams.fbNco0 					= [1000, 1000]
sysParams.fbNco1 					= [1000, 1000]
sysParams.fbNco2 					= [1000, 1000]
sysParams.fbNco3 					= [1000, 1000]

# DAC settings
sysParams.Fdac 						= sysParams.FadcRx*Ntx
sysParams.txEnable 					= [1, 1, 1, 1]
sysParams.externalClockTx			= 0
sysParams.halfRateModeTx 			= [0, 0]
sysParams.ducFactorTx 				= [Nduc, Nduc, Nduc, Nduc]
sysParams.numBandsTx 				= [0, 0, 0, 0]
sysParams.numTxNCO 					= 1
sysParams.combineDucMode 			= [0, 0]
sysParams.enableDacInterleavedMode 	= 0
sysParams.ncoTxMode					= [0, 0]
sysParams.broadcastTxNcoSel			= 0
sysParams.txNco0	 				= [ [Fnco_tx1, Fnco_tx1],
										[5020.0, 5020.0], 
										[8212.5, 8212.5], 
										[6812.5, 6812.5]]
sysParams.txNco1 					= [ [Fnco_tx1, Fnco_tx1],
										[5020.0, 5020.0], 
										[8212.5, 8212.5], 
										[6812.5, 6812.5]]
										
##########              Clock distribution mode setting              ##########

lmkParams.pllEn 					= (custom_clk == 0)
lmkParams.inputClk 					= f0*NinputClk
lmkParams.sysrefFreq				= f0*Nrx/1024
lmkParams.lmkFrefClk				= 1

##########               JESD204 settings AFE 79XX EVM               ##########

if not benchmark_on:
	pass

##########                         Dummy txt                         ##########


if benchmark_on:
	sysParams.topLevelSystemMode	= 'StaticTDDMode'
	sysParams.jesdSystemMode		= [1,1]
	sysParams.jesdLoopbackEn		= 1
	sysParams.LMFSHdRx              = ['24410', '24410', '24410', '24410']#['14610', '14610', '14610', '14610']#
	sysParams.LMFSHdFb              = ["24410","24410"]
	sysParams.LMFSHdTx              = ["24410","24410","24410","24410"]#['14610', '14610', '14610', '14610']#
	sysParams.jesdTxProtocol        = [0,0]
	sysParams.jesdRxProtocol        = [0,0]
	sysParams.serdesFirmware			= True
	sysParams.jesdTxLaneMux				= [0,1,2,3,4,5,6,7]
	sysParams.jesdRxLaneMux				= [0,1,2,3,4,5,6,7]
	sysParams.jesdRxRbd					= [4, 4]
	sysParams.rxJesdTxScr				= [True,True,True,True]
	sysParams.fbJesdTxScr				= [True,True]
	sysParams.jesdRxScr					= [True,True,True,True]
	sysParams.rxJesdTxK					= [16,16,16,16]
	sysParams.fbJesdTxK					= [16,16,16,16]
	sysParams.jesdRxK					= [16,16,16,16]
	logDumpInst.setFileName(ASTERIX_DIR+DEVICES_DIR+r"\Afe79xxPg1.txt")
	logDumpInst.logFormat				= 0x01
	logDumpInst.rewriteFile				= 1
	logDumpInst.rewriteFileFormat4		= 1
	device.optimizeWrites				= 0
	device.rawWriteLogEn				= 1
	sysParams.jesdABLvdsSync			= 1
	sysParams.jesdCDLvdsSync			= 1
	sysParams.rxJesdTxSyncMux			= [0,0,0,0]
	sysParams.fbJesdTxSyncMux			= [0,0]
	sysParams.jesdRxSyncMux				= [0,0,0,0]
	sysParams.syncLoopBack				= False
	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']}
	device.delay_time = 0
	AFE.deviceBringup()
	AFE.TOP.overrideTdd(15,3,15)
else:
	pass

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

    您好、Zeljko、

    我们将在我们的设置中尝试您的脚本、看看我们是否有类似的问题。  

    此致、

    David Chaparro

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

    尊敬的 David:

    是否有任何更新?

    此致、

    Željko μ A

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

    您好、Zeljko、

    我已在我的设置上对此进行了测试、并且出现了相同的问题。 我发现问题可能与使用的通道速率有关、我正在与我的团队核实确切原因。 我确实发现 、如果通过 将 Rx 和 Tx 通道的 LMFS 模式更新为44210来降低通道速率、同时 sysParams.jesdSystemMode =[3、3]、则问题不再发生。 您还可以保持相同的 LMFS 模式、24410、并将抽取和插值因子加倍、 NDDC = 12。

    此致、

    David Chaparro