Iâve just opened the design in KiCad V5.0.2 and all schematic symbols get remapped without problem. The PCB also loads without problem.
Getting thrown a design in your lap without any background or intended use is ⌠a bit difficult. When I start looking deeper into the design it gets fuzzier all the time.
Iâve spend some time in writing down some random remarks in the order I saw them.
It will probably take you some time to digest them. Donât try to do it all at once. Take one or a few items at a time.
Edit: I wrote my post independent of Seth_h, there is overlap.
I see quite a lot of things I like, bunch of things that can be improved (No wonder for a first design) and a whole lot of things I do not understand. Can you tell us a bit more about the intended use of this design?
The overall design looks like a development board, but for a development board I would expect connectors on all unused I/O pins. The pins on the STM32F407VGTx are pretty small, and it is a nuisance to solder wires to them later. You also have plenty of room on the PCB to add some 0.1" breakout headers.
I like the grouping by functionality on the schematic. Did you follow the guidelines from the EEvblog video there? I like the fat blue text for different function blocks, but the blue dotted lines are a bit overkill, I tried that once also, and the tend to get moved and redrawn a lot, which is mostly a waste of time.
You have a clear isolation barrier on the PCB, which is very good. But I would like that same barrier on the schematic. If you want to blue dotted lines on the schematic, then use it for the isolation barrier. For example, I think these voltages are on different parts of the isolation barrier:
(I removed the bold attribute from one of the labels, makes it easier to read).
You have a separate block with connectors, and it is not clear what they do. It is much more logical to put the connectors with the function blocks where they belong. Put the RS485 connector in the RS485 block.
RS485
Use a more strict signal flow from left to right.
Start with your RxD & TxD modbus labels on the left. Draw a dotted line as isolation barrier right through your ADM2485 and design the symbol in such a way that the different voltage domains are on separate sides of the IC.
Then draw the output section with TVS and resistors on the right side, and also put the connector there. From the âRS485â section it looks like the VDD5v_iso and GND2_iso are the outputs (inputs?) of the circuit. You have to search and follow A+ and B- labels to see those are connected to the external connectors.
I am not sure what the 10R resistors do with the signal integrity of the RS485 data, but they may be a good idea. If you put the PSM712 between the 10R resistors and the RS485 driver chip they work more effectively.
Beware of the RS485 termination resistor (R22) and the Bias resistors (R19 & R23). These should not be placed on every board. You should have a note about that on the schematic. Have a look at â10 ways to bulletproof RS485â
https://duckduckgo.com/?q=10+ways+to+bulletproof+RS485&t=opera&ia=web
It is unclear to me what your âlevel shifterâ block does without carefull analysis of all the labels. Make more use of wires instead of labels. For example, use labels for the RxD and TxD lines from the processor, and then connect the level shifter, RS232 driver and connector with wires (in logical order, signal flow from left to right).
USART3 (Rx & Tx) are both connected to 3 semi conductor pins. (uC, RS232 chip, Level shifter). Looks likely to be a short, but I havenât looked too deep in what the components do.
I like the TVS diodes.
I like the ferrite bead, but I want to see more of them. Especially where te power comes into the board. The uC is easily upset by (very short) spikes, and these short spikes go right through the voltage regulator.
Reset switch:
100nF directly shorted with a switch that can probably only handle 50mA or so is not a robust design. For a reset switch that only gets used occasionally this is less of a problem than for example a rotary encoder, but it still is bad practice. Assume such a small ceramic capacitor can deliver a 10A peak current.
Resistors:
Youve added âRâ to all the values. Not an error, but unusal. It is more common to simply use a value of â10kâ for a 10k resistor. Personally I use âRâ only for small resistors (< 1k Ohm.) For example â4R7â for a 4.7 Ohm resistor or âR22â for a 0.22 Ohm resistor. I try to avoid dots in values, but nowadayâs when stuff is getting printed on paper less as it used to be this becomes a lesser issue.
Youre using suffix âKâ for kilo (Except for R6), but SI suffix is lower case âkâ for kilo.
https://en.wikipedia.org/wiki/Metric_prefix
I would give R19 & R23 a value of â1k2â.
Talking about a voltage regulatorsâŚ
The LD3985xx is a very small voltage regulator and gets overheated quickly. It also does not have a good connection to the GND plane. Normally the GND plane is used to give such SMD components a bit of extra cooling. A good Thermal connection to the GND plane can easily double or even triple the maximum current such a small voltage regulator can handle before it overheats. A bigger voltage regulator such as the LM1117 seems a better choice. But have you considered using a small SMPS?
With an SMPS ( I think I like MP1485 but itâs just an example) you can use any input voltage between 5V and 24V. The inductor in the SMPS also keeps electrical noise on the external power supply lines away from the Vcc output to the processor.
Youâve made all the text of the labels bold, but for small text that does not improve readability. I think itâs better to use bold text sparingly for some important things.
Why such a monstrous big Processor?
Why Can + RS485+UART?
Why no USB?
Why a DS3231? (STM32 has built-in RTC clock with battery backup).
Why all those isolated interfaces? They make a first design relatively expensive, especially if you use so many on them.
Why a 20MHz oscillator? Iâm not familiar with PLL settings of this processor, but 8MHz seems to be a âstandardâ for STM32. Ans why an crystal oscillator instead of just a crystal?
Making more use of power symbols (For all Power Connections) instead of labels make your schematic easier to read.
How do you intend to manufature this board?
Double sided boards, trace widths of 0.3mm and all the viaâs are hard to do at home.
If you have the board made by a PCB fab you usually get the silk screen for free.
Silk screen is a very usefull addition during asssembly and finding faults on board. All those SMD pads make you dizzy without a silk screen during assembly. I wanted to have a look at the routing of the ESD diodes. The current paths (Also through the GND plane) must be kept away from electronics, but because you have not paid attent to the silk screen it makes it hard to see which components is which. Some manufacturers also print the silkscreen over pads if it gets printed, which makes soldering hard.
Silkscreen is also usefull for labeling pins of connectors, especially for individual screw connector pins.
You have made the Zones for the GND planes the same size as the board outline.
This is not so good. It makes the zones harder to select. KiCad should always respect a clearance between the board outline and the edge of the zones. It is better to make the zone 1 or 2mm smaller than the board. Alternatively, I often make the zones a lot bigger then the board outline, and with some slanted or jagged edges. If anything then goes wrong during Gerber generation you see it immediately. With making the zones and board outline the same, you risk having the zones to the edge of the board, which can lead to manufacturing problems (Shorts around board edges).
The GND Zones look reasonable, but they can be improved. You have no copper under the processor itself, and the processor is the most sensitive to voltage differnetials. Iâm not sure about the STM32F407, but I think the core of the STM32 processors runs at 1.5V or so and only the I/O pins get 3V3. This means you want a better GND plane under the processor, with no interruptions. You can very easily do that by clicking on the Red zone on F.Cu, then âeâ for Edit and making the clearance a bit smaller (From 0.508 to 0.4mm will do). This will have the GND plane sneak through the corners of the STM32 and fill the area beneath it. As a second step move the viaâs in the square under processor to the side. You want as much copper there as you can get, and it must be connected directly to all the GND pins of the processor.
You can even easily remove most of the vias away from that important square. For example, the traces for the rs232_Leds go under the processor, then to a via, and then the go right back to the pad they came from. Ideally you have 2 copper squares under the processor. One for GND and one for Vcc, and the decoupling caps are as close by as you can get them.
You also have the connector J4 directly connected to the GND plane (although not connected very solidly). Preferably both GND and VDD5v_68K go through a common mode filter (or at least ferrite beads & ceramic capacitor) and then only connect to the voltage regulator section before a connection to the GND plane is made. Keep external noise away from the GND plane.