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.

MSP432E401Y: power consumption during ethernet wait (tcpecho)

Part Number: MSP432E401Y
Other Parts Discussed in Thread: MSP-EXP432E401Y,

Hi,

I'm using the MSP-EXP432E401Y dev board with CCS 11.0.0.00012.  When running the TI-RTOS tcpecho example, It looks like the MSP432E4 is consuming 80mA while waiting for the next ethernet packet. Is that expected or is there a way to lower the power consumption?  I was hoping the processor would enter a sleep mode and let a low-power section monitor the ethernet.

I measured the current by removing the Display commands (init, open, printf) from the example code, removing the debug jumpers on the board (rxd, txd, rst, tms, tck, etc) and the 5v jumper, and finally, replacing the 3v3 jumper with a small resistor and measuring the voltage drop across the resistor.

Thanks for any suggestions.

Josh

  • Hi Josh,

    A big aspect of power saving is going into a low power mode. Looking at the tcpecho example, they don't switch to a low power mode so everything is running at a normal mode. The tcpecho example was there to demonstrate how to do the tcp connection rather than low-power.

    The MSP432E4 Technical Reference Manual can provide further details on this, the hibernation module section could be the solution to reduce power consumption.

    Regards,

    Luke

  • I thought that TI-RTOS naturally switched to the lowest power mode?  In the tcpecho, the power policy function is PowerMCP432E4_sleepPolicy.  If I put the processor into hibernation, will ethernet still be powered to detect incoming packets?  Or is there another lower power mechanism available that still listens on the ethernet interface?

    Also, I just tried measuring current through JP2 on the board, which the dev board doc says isolates the MCU power domain, and that current measured the same 80mA when idle listening. What surprises me about that is that that leaves no current for the ethernet physical interface (magnetics / transformer). I thought the ethernet transformer took around 40mA on its own....

    Sincerely,

    Josh

  • Bump - any other suggestions?

  • Hi Joshua,

    Looking at the Datasheet we can detail more into the current consumption. Section 5.10 looks at the run and sleep mode current consumptions that you will see based on different clock speeds and peripherals, section 5.11 shows the current consumption of specific peripherals. It looks like depending on the sleep mode parameters and what modules are on 80 mA is possible. 

    Regards,

    Luke

  • Hi Luke,

    I understand that the chip can draw 80mA, my question is how come TI-RTOS does not use a lower-power mode when idle in this specific case, and what modifications would have to be done to TcpEcho example to lower it while preserving the program behavior?

    Thanks,

    Josh

  • I noticed on the datasheet that the I_DDEMACPHY "Ethernet MAC and PHY run mode current" is spec'd at 30mA, so that leaves 50mA unaccounted for.

  • Hi Joshua,

    Generally our examples are to demo that one feature, for this tcpecho it demonstrates the TCP connection. Which means that on the power side it could potentially be less efficient. For the TI-RTOS it does choose a power mode for the situation but because the TCP is constantly pinging I don't believe it is really entering in one of the lowest power modes. The IDDEMACPHY is for the current consumption on that section only (Ethernet Mac and Phy), that disregards the power consumption of the CPU and other peripherals at the time. That is why I pointed you to the other sections that details more of a system wide power consumption. Where exactly are you taking your current consumption?

    Regards,

    Luke

  • Hi Luke,

    I should have mentioned that the 80mA I observe even when there is nothing pinging it. So there are no packets being sent or received. So the cpu and other peripherals shouldn't be doing much of anything. And I'm measuring the 80mA at J2, though it's also the same 80mA measured at the 3v3 jumper.

    Is there some way of telling the CPU and other peripherals to go to sleep or power down when they're not needed. I thought that was what TI-RTOS does?

    -Josh

  • Hi,

    For anyone else reading this, I have a hypothesis on what's going on. It'd be great if someone could confirm if I'm getting the specifics right.

    Classic ethernet is not designed for low-power and is always "on", even if no packets are being transmitted or received.

    40mA of current is drawn continuously by U10 (HX1198FNLT), an isolation transformer on the dev board. That's apparently typical for ethernet 100Base-T.

    In addition, 30mA is also apparently drawn continuously, even when idle, by the MSP432E401Y physical interface, suggested by IDDEMACPHY number in the datasheet.

    I'm not sure where the extra 10mA I see is going.

    Also, when I run in debug mode and pause the processor, it always seems to be in the idle loop, so apparently it's not spinning in some ethernet driver code or being blocked from the idle loop.

    This app note has a bit of info, though I don't think it measure idle current consumption:

      https://www.ti.com/lit/an/snla089b/snla089b.pdf?ts=1639662173731

    -Josh