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.