Start a new topic

ZC706-FMC30RF TRX Switch control


I am working with the Xilinx Zynq 7000 ZC706 board and the FMC 30RF daughter card.

I have downloaded the reference design .bit file, run the reference .C file for the processing system on the Zynq, and I am running the Ethapi C++ program and communicating with the Zynq board/30RF daughter card from the host PC via TCP/IP, as specified by the reference design.

I am having a problem with the C++ code.

I have gone through the code a little bit and made my own small changes, most of which have worked as desired.
In my recent edits to the reference design I have tried to call the function "fmc30rf_ctrl_trx_switch(arg a,arg b);"
With argument A being "AddrCtrl" an address of the control registers in the reference design, and argument b being "0" which, to the best of my knowledge, is supposed to switch the FMC30RF card from Frequency Division Duplex (FDD) to Time Division Duplex (TDD), which in short connects output RF I/O to the receiver instead of the transmitter.

Yet, I generate a waveform for a short time through RF I/O with TRX Control set to "1", then I call the function to switch to "0" but I still measure the same output through RF I/O connector which leads me to believe the call to switch is not working.

Please inform me if I am wrong about some of my assumptions above, but otherwise I would like to ask for some help with this issue.
I have postulated that maybe the address of the register is incorrect, or the wrong bit is being masked but I am unsure.

Thank you for your help,

Ahh my mistake.
The function works just fine.

The amplifier I have been using to boost the signal was picking up the signal still when TRX was switched to TDD.

You can mark this as solved.
This topic is being closed because the issue is considered as resolved by 4DSP. Feel free to create a new topic for any further inquiries.