Difference between revisions of "PinePhone 1.2 VCONN Hardware Fix"
m (Add to PinePhone category) |
(→Workaround: SVG diagram) |
||
(9 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
This page details a hardware fix for an issue that | This page details a hardware fix for an issue that was found on early PinePhone hardware revisions (see [[PinePhone#Hardware revisions]] for an overview of the different revisions) and has been fixed since the 1.2a hardware revision. | ||
The issue was [[PinePhone_v1.1_-_Braveheart#USB-C_CC_pins_are_pulled_to_the_GND_by_AW3512_.28VCONN_switches.29_when_VCONN_is_off | originally reported here]] by megi. | The issue was [[PinePhone_v1.1_-_Braveheart#USB-C_CC_pins_are_pulled_to_the_GND_by_AW3512_.28VCONN_switches.29_when_VCONN_is_off | originally reported here]] by megi. | ||
== Affected Units == | == Affected Units == | ||
# | # Requires confirmation: [[Project Don't be evil|"Project Don't Be Evil" devkit]] | ||
# | # Requires confirmation: [[PinePhone v1.0 - Dev|PinePhone v1.0 - Developer batch]] | ||
# [[PinePhone v1.1 - Braveheart]] | # [[PinePhone v1.1 - Braveheart]] | ||
# [[PinePhone v1.2]] - Community Edition | # [[PinePhone v1.2]] - UBports Community Edition | ||
== Disclaimer == | == Disclaimer == | ||
Line 19: | Line 17: | ||
[[File:Schematic_VCONN_switches.png|thumb|frame|Excerpt from the PinePhone schematic showing the two components.]] | [[File:Schematic_VCONN_switches.png|thumb|frame|Excerpt from the PinePhone schematic showing the two components.]] | ||
The USB standard [https://microchipdeveloper.com/usb:tc-pins specifies] that both halves (top and bottom) of the USB-C port contains one "CC" pin (CC1 and CC2, respectively). A regular cable will connect a CC pin from one end to the other end. This allows detecting which way the cable is plugged. Some active USB-C cables exist (both "e-marked" and "managed active cables"); they contain a chip, which needs to be powered. This is done by having one of the cable end connect its CC pins to 5V and VCONN, and requires switches to plug the right CC pin to the right voltage. | The USB standard [https://microchipdeveloper.com/usb:tc-pins specifies] that both halves (top and bottom) of the USB-C port contains one "CC" pin (CC1 and CC2, respectively). A regular cable will connect a CC pin from one end to the other end. This allows detecting which way the cable is plugged. Some active USB-C cables exist (both "e-marked" and "managed active cables"); they contain a chip, which needs to be powered. This is done by having one of the cable end connect its CC pins to 5V and VCONN, and requires switches to plug the right CC pin to the right voltage. | ||
Line 25: | Line 22: | ||
The issue arises due to the switches that were chosen up to v1.2a (the a revision excluded) of the PCB assembly: the [https://www.awinic.com/cn/index/pageview/catid/122/id/2.html infamous AW3512], labelled U1305 and U1309 on the schematic. Instead of leaving the output pin "dangling" with a high impedance when disabled, the switch pull the output down. This feature is intended for discharging a capacitor, hence its "Quick output discharge" name. This is an excerpt from the datasheet: | The issue arises due to the switches that were chosen up to v1.2a (the a revision excluded) of the PCB assembly: the [https://www.awinic.com/cn/index/pageview/catid/122/id/2.html infamous AW3512], labelled U1305 and U1309 on the schematic. Instead of leaving the output pin "dangling" with a high impedance when disabled, the switch pull the output down. This feature is intended for discharging a capacitor, hence its "Quick output discharge" name. This is an excerpt from the datasheet: | ||
"The AW3512/AW35122 includes the Quick Output Discharge (QOD) feature, in order to discharge the application capacitor connected on OUT pin. When EN pin is set to low level (disable state), a discharge resistance with a typical value of 276Ω (AW35122: 75Ω) is connected between the output and ground, pull down the output and prevent it from floating when the device is disabled." | |||
This issue prevents cable plug/orientation detection and USB-PD communication. ANX always sees cable as plugged even if none is plugged. There's no SW workaround for automatic detection of cable plug or power role. | This issue prevents cable plug/orientation detection and USB-PD communication. ANX always sees cable as plugged even if none is plugged. There's no SW workaround for automatic detection of cable plug or power role. | ||
Line 32: | Line 29: | ||
== Workaround == | == Workaround == | ||
[[File:Pinephone v1.1 VCONN fix diagram.svg|thumb|frame|Simple diagram of U1305 & U1309 switches versus entire board ([[PinePhone v1.1 - Braveheart|v1.1]])]] | |||
Hardware workaround is desoldering U1305 and U1309 switches (BGA like packages). This will void the VCONN control, but it will release the CC pins for their proper connection detection and negotiation roles. | |||
=== Tradeoffs === | === Tradeoffs === | ||
Voiding the VCONN control might (TODO: gather more data) prevent some accessories from working, notably those using an active cable. | Voiding the VCONN control might (TODO: gather more data) prevent some accessories from working, notably those using an active cable. | ||
== Proper fix == | == Proper fix == | ||
HW fix is to replace AW3512 with a variant of the chip that preserves the EN signal polarity and that doesn't have the "quick discharge function" that ties the output to the GND via a 75 Ohm resistor when the switch is OFF. mozzwald used NCP334FCT2G as a replacement. PCBA revision 1.2a onwards incorporate that fix. | |||
HW fix is to replace AW3512 with a variant of the chip that preserves the EN signal polarity and that doesn't have the "quick discharge function" that ties the output to the GND via a 75 Ohm resistor when the switch is OFF. mozzwald used NCP334FCT2G as a replacement. | |||
PCBA revision 1.2a onwards | |||
== Sources and tutorials == | == Sources and tutorials == | ||
* [https:// | * [https://xnux.eu/devices/pp-usbc-fix.jpg megi's writeup] | ||
* [https://xnux.eu/devices/feature/anx7688.html another writeup from megi] with a few words on firmware | * [https://xnux.eu/devices/feature/anx7688.html another writeup from megi] with a few words on firmware | ||
* [https://www.youtube.com/watch?v=xf8OJtjNWUM Video: "The right way"] with a hot air gun/reflow station, by mozzwald | * [https://www.youtube.com/watch?v=xf8OJtjNWUM Video: "The right way"] with a hot air gun/reflow station, by mozzwald | ||
* [https://www.youtube.com/watch?v=ZqOb45N2sMc | * [https://www.youtube.com/watch?v=ZqOb45N2sMc Video: "The equally stupid way"], workaround video by Dalton, using a soldering iron. Less chances to permanently damage the board than the next if you are handy with a soldering iron, but still high. | ||
* [https://www.youtube.com/watch?v=j3jc7Mvn9Eo Video: "The stupid way"] workaround video by Lukasz, with pliers. Slightly damages the circuit board, preventing you from soldering the replacement chips at a later point. You might be fine with this. | * [https://www.youtube.com/watch?v=j3jc7Mvn9Eo Video: "The stupid way"] workaround video by Lukasz, with pliers. Slightly damages the circuit board, preventing you from soldering the replacement chips at a later point. You might be fine with this. | ||
[[Category:PinePhone]] | [[Category:PinePhone]] |
Latest revision as of 07:39, 17 March 2023
This page details a hardware fix for an issue that was found on early PinePhone hardware revisions (see PinePhone#Hardware revisions for an overview of the different revisions) and has been fixed since the 1.2a hardware revision.
The issue was originally reported here by megi.
Affected Units
- Requires confirmation: "Project Don't Be Evil" devkit
- Requires confirmation: PinePhone v1.0 - Developer batch
- PinePhone v1.1 - Braveheart
- PinePhone v1.2 - UBports Community Edition
Disclaimer
This fix requires desoldering tiny (1 mm per 1 mm, from the datasheet) BGA components, therefore some experience with soldering is highly recommended.
Issue description
The USB standard specifies that both halves (top and bottom) of the USB-C port contains one "CC" pin (CC1 and CC2, respectively). A regular cable will connect a CC pin from one end to the other end. This allows detecting which way the cable is plugged. Some active USB-C cables exist (both "e-marked" and "managed active cables"); they contain a chip, which needs to be powered. This is done by having one of the cable end connect its CC pins to 5V and VCONN, and requires switches to plug the right CC pin to the right voltage.
The issue arises due to the switches that were chosen up to v1.2a (the a revision excluded) of the PCB assembly: the infamous AW3512, labelled U1305 and U1309 on the schematic. Instead of leaving the output pin "dangling" with a high impedance when disabled, the switch pull the output down. This feature is intended for discharging a capacitor, hence its "Quick output discharge" name. This is an excerpt from the datasheet:
"The AW3512/AW35122 includes the Quick Output Discharge (QOD) feature, in order to discharge the application capacitor connected on OUT pin. When EN pin is set to low level (disable state), a discharge resistance with a typical value of 276Ω (AW35122: 75Ω) is connected between the output and ground, pull down the output and prevent it from floating when the device is disabled."
This issue prevents cable plug/orientation detection and USB-PD communication. ANX always sees cable as plugged even if none is plugged. There's no SW workaround for automatic detection of cable plug or power role.
In SW this could theoretically be worked around by manual selection of PinePhone's data and power role by the user, but hasn't been attempted, and might damage hardware if done incorrectly.
Workaround
Hardware workaround is desoldering U1305 and U1309 switches (BGA like packages). This will void the VCONN control, but it will release the CC pins for their proper connection detection and negotiation roles.
Tradeoffs
Voiding the VCONN control might (TODO: gather more data) prevent some accessories from working, notably those using an active cable.
Proper fix
HW fix is to replace AW3512 with a variant of the chip that preserves the EN signal polarity and that doesn't have the "quick discharge function" that ties the output to the GND via a 75 Ohm resistor when the switch is OFF. mozzwald used NCP334FCT2G as a replacement. PCBA revision 1.2a onwards incorporate that fix.
Sources and tutorials
- megi's writeup
- another writeup from megi with a few words on firmware
- Video: "The right way" with a hot air gun/reflow station, by mozzwald
- Video: "The equally stupid way", workaround video by Dalton, using a soldering iron. Less chances to permanently damage the board than the next if you are handy with a soldering iron, but still high.
- Video: "The stupid way" workaround video by Lukasz, with pliers. Slightly damages the circuit board, preventing you from soldering the replacement chips at a later point. You might be fine with this.