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.

AM2634: DP83869 in fiber mode - how to configure it?

Part Number: AM2634
Other Parts Discussed in Thread: DP83869, LP-AM263, DP83869EVM

Tool/software:

Hello,
We are trying to configure DP83869 in 1000Base-FX mode, that is connected to AM2634 MCU.
The circuit is based on both evaluation boards: LP-AM263 and DP83869EVM.
More precisely, almost the whole our scematic is the same as LP-AM263's one, but we added connection to a SFP module, the way it is connected on DP83869EVM.
The problem is that we are unable to switch DP83869 to work in fiber mode (neither via the strapping pins nor via the MDIO interface) - it always stays in copper mode.
Regarding the software part - it is based on the example project "Enet Lwip TCP Server Example on CPSW" from AM2634's SDK.
It looks like the library tries to force DP83869 all the time in copper mode.
What is the proper way to configure DP83869 in fiber mode, using the AM2634's SDK?

Best regards,
V. Dimov

  • Hi V. Dimov,

    We are trying to configure DP83869 in 1000Base-FX mode, that is connected to AM2634 MCU.
    • I'm a bit confused here. I see that the DP83869 does not support 1000Base-FX mode.
    • We have 10Base-Te, 100Base-TX and 1000Base-T, 1000BaseX, 100Base-FX, 1000BaseX. I assume you mean 100Base-FX mode.

    This PDF explains more about strap config and Operations modes on DP83869 PHY: https://www.ti.com/lit/an/snla318/snla318.pdf

    Regarding the software part - it is based on the example project "Enet Lwip TCP Server Example on CPSW" from AM2634's SDK.
    It looks like the library tries to force DP83869 all the time in copper mode.

    Yes, the PHY driver is located at mcu_plus_sdk/source/networking/enet/core/src/phy/dp83869. Here you can see that the default mode being selected is OP_MODE_DECODE_RGMII_MII_SEL set to .

    The "Dp83869_setMiiMode()" function sets the mode by writing to the external PHY register (DP83869_OP_MODE_DECODE, 0x1DF)

    The problem is that we are unable to switch DP83869 to work in fiber mode (neither via the strapping pins nor via the MDIO interface) - it always stays in copper mode.

    Can you please share the steps you tried to switch to fiber mode. In the PDF linked above, the section 1.11.2 explains the steps to switch from RGMII to Fiber mode.

    If you want to change the mode at run-time, it would require a PHY reset to ensure proper settings. If you want to do it during the initialization,

    You can update the DP83869 function which sets the mode "Dp83869_setMiiMode()" in the driver itself located at mcu_plus_sdk/source/networking/enet/core/src/phy/dp83869.c and rebuild the library by running the commands below then rebuild your application.

    # TO CLEAN
    gmake -sj -f makefile.am263x enet-cpsw_r5f.ti-arm-clang_clean
    gmake -sj -f makefile.am263x enet-cpsw_r5f.ti-arm-clang_clean PROFILE=debug
    
    # TO BUILD
    gmake -sj -f makefile.am263x enet-cpsw_r5f.ti-arm-clang
    gmake -sj -f makefile.am263x enet-cpsw_r5f.ti-arm-clang PROFILE=debug

    Regards,
    Shaunak

  • Hi Shaunak,

    thank you for the reply!

    By 1000Base-FX mode, I meant 1000Base-X, my bad.
    We want to use a connected 1000 Mbit SFP module.

    The steps that we are trying for switching to fiber mode are indeed from the document you mentioned:
    We write the values, suggested in section 1.11.2 and also the strapping resistors of DP83869 are in configuration for fiber mode, just in case.
    When we try to read the registers back, we can see that for a short moment the values are successfully accepted,
    and then they suddenly return to their original values (which are for copper mode). It looks like that the driver overwrites them continuosly.

    However we are confused from the description texts of sections 1.11.1 and 1.11.2.
    As you can see from the image below, right after the bold text, there is statement for just the opposit mode.
    Could you please confirm which set settings we need to send for fiber mode (1.11.1 or 1.11.2)?

    Regards,
    V. Dimov

  • Hi Vladimir,

    Sorry for the confusion on the phrasing. Sequence in 1.11.1 is correct for RGMII to 1000Base-X configuration.

    You can also refer to datasheet section 7.4.8.2 for 1000Base-X sequence:

    Which driver is being used? If the sequence in section 7.4.8.2 is used, do you see the values continuously overwritten?

    Thank you,

    Evan

  • Hi Evan,

    thank you for the help!
    When the sequence in section 7.4.8.2 is used, the values were continuously overwritten indeed.

    We use the driver, located in the following default directory:
    C:\ti\mcu_plus_sdk_am263x_09_02_00_55\source\networking\enet\core\src\phy\dp83869.c

    Using the sequence in 1.11.1 and also by changing some code in the driver, mentioned above,
    now DP83869 stays permanently in the chosen mode and works as expected!

    Thank you once again,

    Vladimir