DIY USB-PD trigger board bugs (STUSB4500) - Page 1
Forum section: electronics / projects

author: TsamsiyuK
author_rank: Newbie
timestamp: January 15, 2021, 01:11:20 pm
content: Hi there,I'm new here, but i have some experience with circuit design and PCB layout, and i figured that this forum is the right place to ask..I'm working on my own USB-PD trigger board based around the STUSB4500 sink controller. Most of the commercial solutions of this form factor didn't fit the requirements i needed, so decided to spin my own board. My goal is to have a small, compact module, which can be used standalone or as a SMD type device inside another project.As a reference, i used the SparkFun Power Delivery board schematics and the recommended application circuit in the datasheet of my sink controller.Schematics and Gerber files can be found in attachment.I made the board layout using Target3001(student version) and ordered them including stencil at JLCPCB. After soldering the parts, i checked for shorts and wasn't able to find any, so went to testing it.*plugs in TypeC cable of PD capable supply: nothing happens. I expected at least the LED for PD0 (standard 5V) to light up.In order to find out why it's not working, i programmed an Arduino pro mini with the example sketch of Sparkfun's library for this chip and hooked it up. I was able to read all current settings from the chip, verifying that it didn't blow up when i plugged it in.I also found out, that depending on how you touch the board when you plug in the cable, it would sometimes work and sometimes not. At this point, i'm suspecting a layout error or some conflict in the schematics, that i didn't spot.all symptoms of the board:I2C worksPD works (PDO2 @ 20V with Lenovo laptop charger)example code can read settings from chipexample code doesn't give error message while writing but changes are not saved on sink controllerno Vsnk output if touing output pads while plugging in cableremoving USB cable is not detected, Vsnk output switch doesn't turn offthing i tried to fix it:different supply voltages at Vsysdifferent MCU for interfacing with the sink controllerremoving diode from Vreg2v7 to Vsys rail (Sparkfun schematics), tied Vsys pin of chip to ground instead (ST recommended application)reflowing the board (made it worse: I2C still ok, PD broke)I have no idea why this is not working. I suspect either a layout error, a schematic error or a faulty chip.I'm hesitant to solder another board, since these chips are not cheap... But i will do that while being more paranoid about ESD than usual... [still testing, no results jet]I hope that someone might spot some mistake i didn't spot..Attachments:1.0.2_schematics.pdf(104.41 kB - downloaded 332 times.)1.0.2_PCBTop.pdf(90.62 kB - downloaded 150 times.)1.0.2_PCBBot.pdf(82.89 kB - downloaded 92 times.)Schematics and PCB of V1.0.2 as PDF (reference: Sparkfun)2.0.0_schematics.pdf(104.14 kB - downloaded 273 times.)Schematics of V2.0.0 as PDF (reference: ST) [reworked PCB, not yet ordered/tested]SparkFun_PowerDeliveryBoardSchematic.pdf(93.35 kB - downloaded 175 times.)Schematics of Sparkfun Power Delivery Boarden.stref-scs001v1_schematic.pdf(94.4 kB - downloaded 132 times.)Schematics of ST Reference DesignPicture of assembeld V1.0.2 board

author: toeeks
author_rank: Newbie
timestamp: January 15, 2021, 01:36:25 pm
content: Looks like you mixed up the DISCH and VBus_VS_DISCH connections.And those 10k pullup resistors should be 4k7 to meet the I2C specs.

author: TsamsiyuK
author_rank: Newbie
timestamp: January 15, 2021, 04:42:29 pm
content: Thanks for pointing that out, didn't see that...I use 10k as I2C pullups on my designs because the host side and other modules have their respective pullups.I will test my board with swapped connections and report back. That could explain the issue with the touchy cable... but this doesn't explain why the new values are not saved to the NVM.

author: TsamsiyuK
author_rank: Newbie
timestamp: January 16, 2021, 06:22:36 pm
content: Test report:The swapped connections of the discharge paths was solved by professionally soldering the resistors crossing over each other.Fixed schematics and PCB layout.No Vsnk while touching output pads is now fixed.I assembled another board and got a green light on the first test.But the test code still wouldn't save to NVM.. Turns out that the setter functions were commented by default by Sparkfun, and didn't see it. Kinda embarassing...After verifying functionality, i re-reflowed the first board, which was previously giving hardware faults. Both work fine.If someone is interested in the Gerbers, email me.And thanks again for spotting that error in my schematics.

author: pallav.aggarwal@gmail.com
author_rank: Contributor
timestamp: July 03, 2021, 04:05:44 pm
content: Quotewhat was the issue and how did you solve it?

author: TsamsiyuK
author_rank: Newbie
timestamp: July 03, 2021, 04:49:51 pm
content: I pinched the board between my fingers, to get a good grip while plugging in the cable. I have fairly sweaty hands, so I think I was bridging the reset pad on the side of the board. I guess I was just resetting the board.

author: julian1
author_rank: Frequent Contributor
timestamp: July 03, 2021, 10:23:58 pm
content: I was researching the STUSB4500 a few days ago as a contained solution for usb pd. Unfortunately the part appears to have gone unobtainium.

author: larryqiann
author_rank: Newbie
timestamp: July 14, 2021, 03:51:47 am
content: There is a simple alternative IC to use could be the Hynetek HUSB238. It's USB-IF certified and is configured by resistors, so an entirely standalone solution. They are still available on AliExpress. Some PD triggers on Amazon use this chip.http://www.hynetek.com/product/pdController/HUSBPDSink/document/HUSB238_DS_EN_V1.0.pdf

author: julian1
author_rank: Frequent Contributor
timestamp: July 14, 2021, 09:38:59 am
content: Thanks, I will check it out.