Wiki

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Last revisionBoth sides next revision
resources:eval:user-guides:rf-trx-vcxo-and-profiles [04 Mar 2022 13:17] – [ERROR: 321: Tx Profile IQrate and filter settings are not possible with current CLKPLL frequency] Michael Hennerichresources:eval:user-guides:rf-trx-vcxo-and-profiles [09 Nov 2022 13:29] – Add Creating custom files section Liviu-Mihai Iacob
Line 220: Line 220:
  
 </code> </code>
 +
 +=====Creating custom files=====
 +====HDL====
 +If the desired design has other configuration than the default one, you will have to do some modifications to the HDL and devicetree.
 +First of all, the project has to be parametrized in order for this flow to work. A quick check for the **MAX_TX/RX/RX_OS_NUM_OF_LANES** variable into the **common/adrv9009zu11eg_bd.tcl** file would ensure that: 
 +[[https://github.com/analogdevicesinc/hdl/tree/master/projects/adrv9009zu11eg/common/adrv9009zu11eg_bd.tcl | common/adrv9009zu11eg_bd.tcl]]
 +
 +If the condition above is valid, you can jump to the last step from the HDL section.
 +Then, the AXI_XCVR IP has to be configured with the MAX_TX/RX/RX_OS_NUM_OF_LANES instead of TX/RX/RX_OS_NUM_OF_LANES.
 +Check for the ad_xcvrconn function call and use it with a partial lane map as in this example: 
 +<code>
 +ad_xcvrcon  util_adrv9009_som_xcvr axi_adrv9009_som_tx_xcvr axi_adrv9009_som_tx_jesd {0 1 2 3 4 5 6 7} core_clk_a {} $MAX_TX_NUM_OF_LANES {0 1 4 5}
 +</code>
 +What this does is it gives the util the maximum number of lanes, but only binds the one in the partial lane map (the last list given as a parameter). For the lane map (the first list given as a parameter) it needs to contain all the lanes. The order might be different, depending on the hardware configuration and FMC connections.
 +
 +After doing all the modifications mentioned above, you can just run: 
 +<code>
 +make TX_JESD_L=4
 +</code>
 +
 +====ADRV9009 Transceiver Evaluation Software====
 +After figuring out the HDL, download the transceiver evaluation software from this page, form the **ADRV9008/ADRV9009 Evaluation Software with GUI for Evaluation Board** section: 
 +
 +https://www.analog.com/en/design-center/landing-pages/001/transceiver-evaluation-software.html
 +
 +The image below contains the first page of the configuration panel. Here you will have to set the device to adrv9009, the desired device clock frequency, the channels that you want to enable and the profile for each of these channels.
 +
 +{{:resources:eval:user-guides:talise3.png}}
 +
 +Move to the JESD204b Setup tab. Here you can choose what lanes do you want to use in the design, but please keep in mind that the lanes must correspond to the ones picked in HDL.
 +
 +{{:resources:eval:user-guides:talise4.png}}
 +
 +Now, from the top left corner click Tools, then Create Script and then Init .c Files. If everything goes well you will be welcomed by a success message and you will have a .c file that contains values corresponding the devicetree setup.
 +
 +====Devicetree====
 +First, create a new dts file that contains in its name the number of lanes that you are using (ex: zynqmp-adrv9009-zu11eg-tx-l4.dts). Then include the devicetree file that was usually used. Now all that is left to do is overwrite the jesd parameters that are different, according to the .c file generated by the evaluation software.
 +Here is an example for [[https://github.com/analogdevicesinc/linux/tree/master/arch/arm64/boot/dts/xilinx/zynqmp-adrv9009-zu11eg-tx-l4.dts | adrv9009-zu11eg-tx-l4.dts]]:
 +<code>
 +#include "zynqmp-adrv9009-zu11eg-revb-adrv2crr-fmc-revb-jesd204-fsm.dts"
 +&spi0 {
 + trx0_adrv9009: adrv9009-phy@0 {
 + /* JESD204 */
 +
 + /* JESD204 OBS */
 + adi,jesd204-framer-b-m = <4>;
 +
 + /* JESD204 TX */
 + adi,jesd204-deframer-a-deserializer-lanes-enabled = <0x03>;
 + };
 + trx1_adrv9009: adrv9009-phy-b@1 {
 + /* JESD204 */
 +
 + /* JESD204 OBS */
 + adi,jesd204-framer-b-m = <4>;
 +
 + /* JESD204 TX */
 + adi,jesd204-deframer-a-deserializer-lanes-enabled = <0x03>;
 + };
 +};
 +</code>
 +Here are overwritten the parameters accountable for tx number of lanes and rx_os number of converters (because TX and RX_OS share the same clock => it is recommended to use the same M)
 +
  
 ===== Troubleshooting ===== ===== Troubleshooting =====
resources/eval/user-guides/rf-trx-vcxo-and-profiles.txt · Last modified: 14 Nov 2022 10:59 by Liviu-Mihai Iacob