Forum Discussion

JDeff's avatar
JDeff
Icon for New Contributor rankNew Contributor
6 years ago
Solved

How to switch Transceiver transmitter PLL

I am following the user guide to switch transmitter pll sources. I read register x117(3:0) and get x"B'". I then do a read-modify-write to register x111. but before I modify, the read value is x"78". after manipulating the pll maping value of x"B" I should write x"FB" to x111. I am confused though because I am switching to the same pll that is already active (just trying to test the state machine logic) so i would expect to write the same value to x111 as I read.

When I write xFB to x111, the calibration hangs and the transcever does not come back to life. however, without changing any logic if I write x78 to x111 (the same value that I read) the calibration completes just fine.

What am I doing wrong that PLL switching is not working

  • Hi,

    As I understand it, you have some inquiries related to the TX PLL switching in the Native PHY. I believe you are referring to A10 devices. If yes, as I understand it from the user guide, to switch to tx_serial_clk0, the 8 bit mapping should be:

    {~logical_PLL_offset_readdata[3], logical_PLL_offset_readdata[1:0],logical_PLL_offset_readdata[3], logical_PLL_offset_readdata[3:0] }

    With the read back value = 0xB -> 4'b 1011, after encoding, the value should be 8'b 0111 1011 -> 0x7B instead of 0xFB. Please help to correct me if I have encoded this incorrectly.

    Thank you very much.

    Best regards,

    Chee Pin

4 Replies

  • CheepinC_altera's avatar
    CheepinC_altera
    Icon for Regular Contributor rankRegular Contributor

    Hi,

    As I understand it, you have some inquiries related to the TX PLL switching in the Native PHY. I believe you are referring to A10 devices. If yes, as I understand it from the user guide, to switch to tx_serial_clk0, the 8 bit mapping should be:

    {~logical_PLL_offset_readdata[3], logical_PLL_offset_readdata[1:0],logical_PLL_offset_readdata[3], logical_PLL_offset_readdata[3:0] }

    With the read back value = 0xB -> 4'b 1011, after encoding, the value should be 8'b 0111 1011 -> 0x7B instead of 0xFB. Please help to correct me if I have encoded this incorrectly.

    Thank you very much.

    Best regards,

    Chee Pin

    • JDeff's avatar
      JDeff
      Icon for New Contributor rankNew Contributor

      Yes that was my mistake. I did not realize ~ notation meant NOT bit 3. It now works correctly. Thank you