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.

Linux: Optical fiber communications, DP83822

Other Parts Discussed in Thread: DP83822IF

Tool/software: Linux

Excuse me, I use two DP83822IFs to work in 100 Base-FX mode for one-way optical communication, one transmits only data, the other receives only data. However, I now encounter a problem, that is, the transmitter Rx terminal must give a low pulse, Tx terminal can send data, how to solve this problem?

  • Hello Lingfu,

    On your board, have you used the Signal Detect pin of the fiber transceiver and connected it to the DP83822? Was the board working before and then stopped working?

    -Regards,
    Aniruddha
  • Dear Mr. Aniruddha,
    Sorry, I didn't describe the problem clearly before. My design is like this:

    The DP83822IF works in 100Base-FX mode, one-way communication, and does not use a standard fiber optic transceiver. The schematic of the design is as follows:

    1. Fiber optic transmission circuit (PHY + laser diode driver)

    2. Light receiving circuit (PHY+ limiting amplifier)



    Since the standard fiber optic transceiver is not used, the LED_1 pin is grounded through a 2.2K resistor and the PHY register 0x0465 is configured to detect the fiber signal as active low.
    During operation, TD_P/M does not transmit data because the RD_P/M pin of the PHY that sent the data does not detect the fiber signal.
    When the RD_P/M pin is shorted to ground after the configuration is completed, TD_P/M sends data;
    If RD_P/M is directly connected to GND through the 50R resistor, data cannot be transmitted after the PHY is initialized.

    Is there any register configuration that allows the PHY to operate in simplex mode, or does the PHY not detect the RD_P/M pin signal to send data normally?
    If the TD_P/M and RD_P/M of the transmitted PHY are shorted together, will there be a malfunction or a hidden danger?

    best regards,
    Lingfu Li
  • Hi Lingfu,

    The is not the usual method of using 100Base-FX PHY so it will have to be evaluated on a system level. Can you try reading register bit 0x0465[0] and change the bit from its current state and try again? After changing this bit, try a software restart by writing 0x4000 to register 0x1F.

    -Regards,
    Aniruddha