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.

PROCESSOR-SDK-AM62X: CPSW DP83867E phy leds not blinking during RX/TX activity

Part Number: PROCESSOR-SDK-AM62X

Hello,

I am trying to configure my PHY Leds. One LED has been set to show link status and reports that correctly. The other LED is expected to blink at 10Hz for any RX/TX activity. It is observed that when there is very less traffic like only ping happening on the port, the activity LED blinks on each RX/TX, however during average to high data transmission the LED goes solid on. Below is the configuration that i am using

LED_2_SEL = 0001

LED_1_SEL = 0101

LED_0_SEL = 1000

I also tried setting LED_2_SEL = 1011, wherein by default activity LED stays on due to active link and blinks properly on RX/TX activity. Our requirement is to have the activity blink only during RX/TX activity and stay off otherwise.

Request you to suggest how we can have activity LED blink during RX/TX activity and stay off otherwise.

Thanks & Regards,

Vinay Kushwaha

  • Hi,

    Assuming this is not a connectivity issue since traffic is passing this question seems to be more related to the PHY. I will be passing this thread to the TI PHY team for support. How are you setting the LED variable? 

    Best Regards,

    Schuyler

  • Hi Vinay,

    To clarify, are you still seeing TX/RX activity LED blinking if there is no data being transmitted?

    It may be a limitation of the the LED for it to go solid on for high throughput, I will replicate your setup in lab to confirm.

    Thank you,

    Evan

  • Hello Schuyler,

    Yes its not connectivity issue. I am setting LED configurations by writing into corresponding PHY register.

    Thanks & Regards,

    Vinay Kushwaha

  • Hello Evan,

    With the configuration wherein "LED_2_SEL = 0001" (this means LED source is set to "Receive or Transmit activity"), LED doesn`t blinks if no data is being transmitted. When data is being transmitted it gets stable ON, however, i expect it to blink to indicate data transmission happening.

    Thanks & Regards,

    Vinay Kushwaha

  • Hi Vinay,

    It seems this is a limitation of the LED - higher throughput activity will appear as a solid LED when set for TX/RX activity.

    Does this violate your system requirements?

    Thank you,

    Evan 

  • Hello Evan,

    Thanks for confirming this. Yes this behavior is violating our system requirements.

    One point that i would like to bring to your notice is same LED blinks even in higher throughput when set to value of 1011 i.e."active link and blinks on RX/TX activity". If its a LED limitation, then i would expect LED to stay solid in all higher throughput activity. Is my understanding wrong ? Will you be able to provide more details around these behaviors ?

    We need the behavior for Tx/Rx activity to be fixed to blink properly, request you to do the needful.

    Thanks & Regards,

    Vinay Kushwaha

  • Hi Vinay,

    Sorry for the confusion - this looks to be a limitation of the LED settings available on DP83867. I will spend time confirming to see if there is any configuration that can meet your requirements.

    Thank you,

    Evan

  • Hi Vinay,

    When setting the LED to TX/RX activity, and decreasing the blink rate via 0x1A[1:0] = '11', do you see a solid LED during high throughput?

    Thank you,

    Evan 

  • Hi Evan,

    I work with Vinay... we've tried all combinations of 0x1A[1:0] to see if the behavior improves... and it does not.  We also tried both values of "LEDS_BYPASS_STRETCHING" even though it was not clear what that does.

    Regards,

    Dan

  • Hi Dan,

    In this case, we may have to explore alternative workarounds if the LED must turn off during link with no activity.

    I will still take time to explore more configurations in lab to see if this exact requirement can be met without additional logic.

    Otherwise, one workaround I can imagine is to write logic such that the MCU actively muxes the LED depending on whether TX//RX activity is present.

    For example:

    • During TX/RX activity, MCU sets LED_X_SEL = '1011' for blinking on TX/RX activity
    • If link remains high while TX/RX activity stops, MCU sets LED_X_POLARITY to opposite value such that the LED switches off

    Is something like this acceptable?

    Thank you,

    Evan

  • Hello Evan,

    I follow what you are suggesting for workaround. I have already verified this and also had it working that way for a while. However, while reviewing the same with our hardware team, it was suggested not to play with Polarities as it may lead to more unexpected behaviors.

    Hence, i request you to suggest me some other way wherein we don`t have to change polarities. I would still expect that original setting of "LED_2_SEL = 0001" should work properly.

    Thanks & Regards,

    Vinay Kushwaha

  • Hi Vinay,

    What is the intended link speed?

    Another alternative is to set the LED_X_SEL to act a link indicator for a link speed that is not being used in the application, such that the LED remains off in the unwanted case.

    Thank you,

    Evan

  • Hello Evan,

    Our product supports all speeds 10/100/1000Mbps. We don`t want to fix things in a work around way wherein we keep changing the LED settings each time link status changes. Our expectation is to set the register for once during driver initialization. Thereafter, LEDs should work appropriately.

    Thanks & Regards,

    Vinay Kushwaha

  • Hi Vinay,

    Please allow me until Wednesday 2/14 to confirm if this is possible without additional logic.

    Thank you,

    Evan

  • Hi Vinay,

    I replicated the setup and unfortunately observed the same issue. There is no fixed configuration that will allow the LED to blink during high throughput activity, but remain off during link up.

    It seems the only options are to add additional analog components to keep the LED off during inactivity, or to actively mux the LED from SEL = '1011' to a condition that turns the LED off when activity is not present.

    Thank you,

    Evan

  • Hello Evan,

    Since we are limited by hardware, we are not in good situation to proceed with this issue. We are trying to explore other alternate options for this. Request you to kindly provide explanation for below points:

    1. There is LED configuration register "LEDCR3" which has a bit field "LEDS_BYPASS_STRETCHING". Need details on what is this bit for and what`s it role/impact on the PHY LED behavior.

    2. Since the blinking works fine with LEDCR1 SEL = '1011' ("Link established, blink for transmit or receive activity"). I am unable to understand why blinking won`t be possible with SEL = '0001'. I am assuming it should be some configurable parameters within PHYfirmware/code. Is it not the case ? if not can you put some light on how various LED SEL parameters in LEDCR1 are being handled.

    Thanks & Regards,

    Vinay Kushwaha

  • Hi Vinay,

    1)

    I do not have a more detailed description for "LEDS_BYPASS_STRETCHING" than what is in the datasheet.

    I will test again with DP83867EVM and probe the LED pulse while toggling this bit to confirm its impact. My current assumption is that the PHY's internal block for tuning the LED pulse via [1:0] will only be enabled if LEDS_BYPASS_STRETCHING is '0'. Please allow me some time to confirm this.

    2)

    The blinking achieved from LED_SEL '1011' appears to be set in the PHY internal logic as independent of throughput, while '0001' is dependent on throughput.

    For TX/RX activity dependent on throughput, LEDCR registers are used to tune the pulse length.

    Thank you,

    Evan

  • Hi Vinay,

    I have confirmed in lab, LED_BYPASS_STRETCHING = '1' acts as a disable for the configured blink rate in 0xA[1:0]. When reading the pulse on the scope, however, this disable only had noticeable impact on LED_SEL '1011'. The blink rate is behaving as expected for '1011', but TX/RX activity remains high independent of throughput and blink rate/bypass setting.

    One solution I was able to implement to meet your requirement was to use LED_SEL '1011' with LED polarity set in 0x19 as active low. In this case, the LED remains off during idle link, and blinks during TX/RX activity. Is this acceptable?

    This appears to be the simplest solution without adding more components or logic.

    Thank you,

    Evan