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.

Design suggestion for Ethernet to USB Adapter supporting USB Power Delivery

Other Parts Discussed in Thread: TPS23731, TPS25750

Hello,

We are planning to build an Ethernet to USB 2.0 Adapter. The Adapter shall also work as a charger getting the power via PoE+ and providing up to 20W to a device using USB Power-Delivery.

This is our idea of a block diagram:


How can we arrange the negotiation of the power- and data-role in the best way?

According to our understanding, the Power-Delivery controller has to define our device as a power source first. In this case, our device will be DFP as data role automatically from the standard definition. That means, the PD Controller must request a data role swap to make our adapter the UFP after that. Do you agree with this estimation?
Can you recommend a PD-Controller for this purpose? Or would you recommend a different system design in general?


Thank you in advance and kind regards!

  • Hi Fabian,

    Thanks for reaching out to us!

    I am from the PoE side. The data (pulse) and power (dc voltage) will be spited by a transformer. The PD of PoE (like TPS23731) will do negotiation with the PSE (power source equipment) to make sure the power can be received from the RJ-45 port. Below is an example of a PoE PD evaluation board (TPS23731EVM). Let me know if you have any other questions about the PoE.

    I will let the USB team answer your other questions.

    Best regards,

    Diang

  • Hi Fabian, 

    I would recommend taking a look at TPS25750 as it seems to fit your requirement. 

    Will the PD need to source and sink and if so, how many PDOs will be implemented and what is the maximum power?

    Thanks and Regards,

    Raymond Lin

  • Hi, I'm working on the project with Fabian.

    Thanks for the recommendation.
    I took a quick look at the TPS25750 GUI.
    This is really cool but also very sluggish to use in advanced mode.
    How can we improve the performance?


    The PD should source power

    PDO_1 - 5V@3A
    PDO_2 - 9V@2.25A
    PDO_3 - 12V@1.65A

    Sink power is an optional function. (max.5V/1A)
    It is not mandatory for our application.

    Data role should be "device" connected to an UFP (USB Host).

    To change the voltage on our DC/DC, a GPIO should adjust the feedback divider.
    Do we simply have to select for example GPIO 1 and map it to sourcepdo1contract_port1 Event?


    I would also like to know if it is possible to enable PDO only when a certain event (GPIO) has occured?
    The background is to recognize whether IEEE 802.3AF or 802.3AT is connected and adjust the PDOs maximum current accordingly.
    Or for example to deactivate PDO_2 and PDO_3.

    Many thanks for the support

    SEBA

  • Hi Seba,

    How can we improve the performance?

    Are you referring to the GUI performance? It might help wiht the speed if you disconnect the Serial Port since the GUI might be actively looking for a connection to an EVM. 

    Click the icon once and you should see it disconnect: 

    This should help with GUI speed improvement. 

    Do we simply have to select for example GPIO 1 and map it to sourcepdo1contract_port1 Event?

    Yes, for example the sourcepdo1contract_port1 Event will trigger when PDO_1 of 5V/3A is active. You can then set the GPIO to be a toggle high or toggle low depending on what configuration you need. 

    I would also like to know if it is possible to enable PDO only when a certain event (GPIO) has occured?

    Unfortunately the TPS25750 does not have said capability and it can't it deactivate PDO_2/3. The alternative is for an external MCU to write into the TPS25750 when the system is active and change the number of Source PDO in Transmit Source Capabilities (0x32) register.  

    Thanks and Regards,
    Raymond Lin

  • Hi Raymond,

    Unfortunately the TPS25750 does not have said capability and it can't it deactivate PDO_2/3. The alternative is for an external MCU to write into the TPS25750 when the system is active and change the number of Source PDO in Transmit Source Capabilities (0x32) register. 

    The simplest idea that came to my mind is to use 2 eeproms, each with the different configuration for PoE or PoE+.

    EEproms are cheap and the solution will not require any additional MCU and firmware development.

    Am I missing something or do you think the solution is viable?

    BR,

    Sebastian

  • HI Sebastian, 

    In your solution, would both EEPROM have the same address and would only one be active (powered on) at any given point? 

    Thanks and Regards,

    Raymond Lin

  • Hi Raymond,

    Thank you for your answer so far.

    Our plan is to configure the two EEPROMS with the same I2C address and to toggle the supply voltage so that only one EEPROM is active at the same time.

    Another question that came into our minds is about the high power switching paths of the TPS25750: 

    Because we do not want to support Battery charge protocol as fallback, we discussed, wether we need the 5V load switch at all. This important to us for the dimensioning of our 5V regulator. Our proposal is to leave the 5V load switch open as marked in the picture in green and to provide only the 350mA needed for the CC-logic to the chip. Would that work without any additional problems? Would this be compliant with the USB Power Delivery specification?

    If this approach was not compliant with the USB specification, we would scale our 5V regulator to provide 1A, so that we can provide 500mA via USB. (A higher current would not be possible anyway, because we do not connect the USB 2.0 data lines to the TPS 25750.)

    Thank you in advance and kind regards,

    Fabian Kappel

  • Hi Fabian,

    The two EEPROM system you described should work as long as only one is active/powered on at startup. 

    For your project, would the PD be acting as a source only, sink only, or DRP (Dual Role Power, can be both source and sink)? 

    Thanks and Regards,

    Raymond Lin

  • Hi Raymond,

    The PD is supposed to act as source only.

    Best Regards,

    Fabian 

  • Hi Fabian,

    I would recommend keeping the VBUS pin connected as shown in the block diagram (both paths connected to VBUS on type-C connector). Internally in the PD's firmware it would automatically detect which power path to use based on negotiated PDOs (or USB advertisement) and disconnecting one of the VBUS line can potentially cause some issues. 

    Thanks and Regards,
    Raymond Lin

  • Hi Raymond,

    In the last days, we made some progress in the schematic design, but we found another issue that we want to clarify.

    When we supply the Adapter only with PoE (not PoE+), the maximum available power for the adapter and the device that is charged is 15W. When we had a closer look at the software, we found that the PDO1 always has to be configured as 3A@5V. So, we cannot provide 15W in this case, because we have to supply our adapter internally and only ca. 12W would be available for charging. Our initial plan was to change the PDO to 2.4A@5V, but this does not work in the Software´s GUI. Is there a possibility to change this in the source code directly?

    And is there another possibility to solve this problem? What would happen, if we do not define any PDOs? And how would the TPS25750 behave, if we cut off the CC-Lines with a Mosfet if only PoE is available?

    Kind regards,

    Fabian

  • Hi Fabian,

    Based on PD specs set by USB-IF, the first source PDO must always be 5V/3A. You can set other PDOs to have lower current (i.e. 5V/2.4A) but the first one must always be 5V/3A. 

    If no PDOs are defined (I assume you're talking about source PDOs) then the PD will not be able to source for any connected device. 

    If the CC lines are disconnected, then the PD will not be able to detect any connected far-end device and will not do any actions. 

    Thanks and Regards,
    Raymond Lin

  • Hi Raymond,

    Today, we got our first prototype boards and started debugging them. We still have some problems with the GPIO settings. We want to use GPIO1 for the 9V Feedback to our DC-/DC-Controller. The pin should be pulled low, when 9V is requested. We have added an external Pullup-resistor on that pin. 9V is defined as Source PDO2 in our case. 

    The settings in the GUI are as follows:

    Unfortunately, GPIO1 iy always low and the output of the regulator is always 9V because of that. (Does not matter if we request 5V or 9V with a PD Tester)

    Can you tell us our mistake or can you please provide more information on how to define the GPIOs in the GUI?

    Thanks and best reagrds,

    Fabian

  • Hi Fabian,

    Let me look into this and get back to you COB Friday. 

    Thanks and Regards,

    Raymond LIn

  • Hi Raymond,

    I´d like to give you a short update about our problem before you answer it. We have done some further testing and solved our problem in parts. We changed the GPIO used for DC-/DC-Control from GPIO1 to GPIO7 temporarily. In this case, the PIN was switched but is always high when 9V was triggered. But for our purpose, the pin has to be active low and we were not able to invert the pin functionality using the inverted event setting. This setting did not affect the Pin behaivour at all. But using an additional Mosfet to invert the pin, we were able to charge a device with 9V.

    Our questions are now, why GPIO1 does not work with the same configuration and how we can invert the GPIO functionality in the best way.

    There is another observation we made, but we are not yet sure, whether this will be a problem. We used our PD Tester to trigger the output voltages. When we changed the voltage from 9V back to 5V, the tester always turned off. So we measured the voltage on VBUS during the switching process with the Oscilloscope. As you can see, the voltage drops after the voltage change to about 3V for 2ms. We could not figure out any possible reasons for that except the TPS25750 discharging the VBUS. Is this behaivour intended?

    Thank you in advance and have a nice weekend!

    Fabian

  • Hi Fabian,

    I am not sure why one GPIO works while one doesn't, and why the inverted event doesn't work. We will need to see if we can replicate it on our end with an EVM. Can you send the .pjt and .json files so we can try to replicate this on our end with your project.

    Thanks,

    Chris

  • Hi Chris,

    Unfortunately, I cannot add a .json file here. So I just opened the file and copied the content:

    {"questionnaire":{"version":"7.0.4.4","answers":[0,1,0,0,1,2,1,null,1,null,0,5,1,1,1],"options":{},"configID":"0000","vendorID":"0000"},"configuration":{"data":{"selected_ace":[{"register":6,"data":[0,0,0,0,0,0,0,0]},{"register":22,"data":[10,48,48,77,0,0,0,0,0,0,3]},{"register":50,"data":[2,168,42,44,145,1,34,222,208,2,0,44,177,4,0,244,65,6,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"register":51,"data":[0,44,145,1,16,44,209,2,0,44,177,4,0,244,65,6,0,69,65,6,0,0,0,0,0,0,0,0,0]},{"register":92,"data":[182,0,0,0,0,0,0,0,128,16,0,0,130,0,0,0,48,0,0,0,0,0,0,0,128,12,0,0,0,0,0,0,134,0,0,0,0,8,1,0,0,0,0,8,0,0,0,0,0]}]}}}

    I hope, you can work with that, otherwise, please give me your E-Mail address, so that I can send you the file.

    Thanks and best regards,

    Fabian 

  • Hi Fabian,

    Have you tried sharing it as a zip file?

    If not, I can provide my email.

    Thanks and Regards,

    Chris

  • config.zip

    Hi Chris,

    Sorry for the late reply, we had a different project that was urgent to work on during the last days.

    I added the zipped config file now.

    Best regards,

    Fabian

  • Thanks Fabian,

    I'll try to look at the project with an EVM tomorrow.

    Thanks and Regards,

    Chris

  • Hi Fabian,

    I haven't been able to test the project on an EVM, but after checking the project file, it looks like the GPIO's are set up correctly. What do you have connected on the GPIO lines currently in your circuit?- 

    There is another observation we made, but we are not yet sure, whether this will be a problem. We used our PD Tester to trigger the output voltages. When we changed the voltage from 9V back to 5V, the tester always turned off. So we measured the voltage on VBUS during the switching process with the Oscilloscope. As you can see, the voltage drops after the voltage change to about 3V for 2ms. We could not figure out any possible reasons for that except the TPS25750 discharging the VBUS. Is this behaivour intended?

    Can you obtain a PD log during this event? Do you have the recommended capacitances on the VBUS and PPHV lines?'

    Could you also check the Vin3V3 voltage during this event?

    Thanks and Regards,

    Chris