4
\$\begingroup\$

I've been designing and prototyping this PCB for the last couple months. Its supposed to be an STM32F103 based tire temperature sensor for my FSAE team.

The power for the board comes in at 12V from the car. In the schematic, its a male pin connector at the top right that the power comes in from but I'll probably change that to a terminal block connector. The node where the power comes in is also connected to a TVS reverse diode so if the voltage jumps, the diode goes into breakdown and the circuit is grounded and not damaged. The 12V goes into a TPS62921 Buck Convertor, which turns 12V to 3.3V for the STM.

The STM is connected to the temp sensor via its I2C pins, and the sensor is powered by the same 3.3V output voltage coming out of the buck convertor.
The STM is then connected via CANBUS to an SN65HVD CANBUS Transceiver module, which transmits the data from the sensor to the car's central Teensy.

The programming happens via ST-Link, which comes in through the 6 pin configuration at the left of the PCB that I'm gonna replace with a JST Connector soon. I've prototyped most of the IC with a Teensy, the sensor, and modules for the buck convertor and SN65 and I can get one teensy to send data from the sensor to a second teensy via CANBUS, which is basically what I want, but with the STM32, and with no computers attached, just the program uploaded to the STM via ST-Link.

This is my first time attempting a project like this so I'm a little lost at this point on what else to do before fabbing the chip. Is there anything I should check, add or change at this point?
Pics of the schematic, PCB and 3D view are included below. I know I still have to check current and power considerations, but considering the prototype worked, I feel good about that. Any help is greatly appreciated, Thanks:
enter image description here
enter image description here
enter image description here

New contributor
CoolGuy5603 is a new contributor to this site. Take care in asking for clarification, commenting, and answering. Check out our Code of Conduct.
\$\endgroup\$
5
  • 1
    \$\begingroup\$ all of your caps are backwards. you have positive connected to gnd. \$\endgroup\$ Commented yesterday
  • \$\begingroup\$ Man I'm dumb, guy on reddit just told me that too. They also said the layout on the Buck Convertor was bad but I just went off the datasheet? I guess I'll take a look at everything a bit closer \$\endgroup\$ Commented yesterday
  • \$\begingroup\$ @CoolGuy5603 The TPS629210 has a pretty detailed layout section in the datasheet that explains everything you have to do. Why did you seemingly not follow any of its recommendations? Worst case, you can just copy the reference design from the evaluation board, which is also linked from the datasheet. \$\endgroup\$ Commented yesterday
  • \$\begingroup\$ 1) There are quite a few traces are not connected on the PCB, run "Design Rules Checker" on Kicad. 2) Don't create 90 degree trace bending. 3) There are insufficient decoupling capacitors as per suggestions from AN2586 - Getting started with STM32F10xxx hardware development, in general always read the datasheet or application notes on hardware design and follow the recommendations or reference design (for the applicable part to your circuit). \$\endgroup\$ Commented yesterday
  • \$\begingroup\$ On second thought--are you interpreting the suggested layout as just saying where the components should be and not the routes traces take between them, or the size of said traces? Use a lot of filled zones for doing switching converter layouts. \$\endgroup\$ Commented yesterday

1 Answer 1

6
\$\begingroup\$

This answer is long and critical - so I apologize in advance.


You seem to be using really tiny resistors (are they 0402?). Unless you have a good reason for that I'd suggest you use 0805 instead unless you enjoy soldering under a microscope and have very steady hands.

As already noted in the comments by Michael, your electrolytic caps are backwards, and this is clear not only in the schematic - you can see that the pin with the '+' on the PCB footprint is connected to your ground plane on your PCB layout:
backwards cap
backwards caps

You have a number of GND 'islands' on your top layer, and many GND pads are unconnected or incorrectly connected (what's going on with R1?):
unconnected pads R1
GND Island GND Island 2

In addition to the unconnected GNDs all over the board, there are also a number of other unconnected pins (like the VDD pins on the STM32 and elsewhere):
STM32 VDD pins
and your CAD software is showing them to you with all of the "rats-nest" lines all over the place:
rats nest
and these would certainly be pointed out to you be running a DRC (as suggested by hcheung in the comments).

Your switching converter layout is not just "bad", it's terrible (and I assume the "TPS62921" in your question is a typo and that it's actually a TPS629210). C2 isn't even connected to it, and needs to be placed much closer with short wide traces. Similarly, L2 needs short wide traces and you need to try to minimize the "loop area" of L2 and its traces to U2.
switching converter layout
I'd strongly suggest you refer (back) to the datasheet, which gives PCB layout guidelines and an example on page 40:
example layout
and you'll see that your layout looks nothing like this.
You also appear to be missing one of the required resistors on the FB/VSET pin:
FB R1   FB res missing

You've chosen a SMBJ24A which has a breakdown voltage (where it just starts to conduct) of between 26.7V - 29.5V and a Max Clamping voltage of 38.9V ...
SMBJ24A specs
compare this with the max input voltage of your TPS629210 at only 17V and you can clearly see that the TVS diode is not going to do much of anything useful.
In addition to this, automotive power is nasty and spikes and surges in the order of 50V or so would not be uncommon, and these spikes & surges could have significant energy behind them. Even if you'd chosen a TVS diode with a lower voltage range more suitable for protecting the TPS629210, the best case when a spike or surge arrives is that the TVS conducts enough current (to try to absorb the energy) and blows the fuse your circuit is connected to (you are planning to fuse this I hope). But with your current PCB layout you have a tiny skinny trace between your connector and the TVS:
skinny trace
so that trace might act as a fuse between the connector and TVS - which, when it blows, will just leave the rest of the circuit unprotected and still connected.

You haven't connected power to your STM32's VDDA and VSSA pin pair, and you need an individual decoupling cap (typically a 100nF ceramic) directly connected with short traces to each VDD/VSS pair (so 3 caps for VSS/VDD and another 1 for VSSA/VDDA), not a single 100nF electrolytic placed somewhere off to the side.
You might get away with leaving VBAT connected (I haven't verified in the datasheet or reference manual), but I wouldn't risk it - just connect it to your 3.3V supply along with VDD. not a decoupling cap


and it's now past midnight and I have a headache so that's where I'll stop.
I'm sure others will have more to add ...

\$\endgroup\$

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.