#Schematic Review Request - Fan control

1 messages · Page 1 of 1 (latest)

worldly stratus
#

Hello! I'm new to electronics and KiCad. I just started my very first KiCad Project for fun in order to try a complete pipeline from modelizing a PCB board and program it. My goal is to create a PCB which allows me to control the speed of a fan and it's rotation and displays the information on an OLED display via I2C.

To do so, I will use a PWM fan and a small motor to make the rotation using an external H-Bridge. I am using a RP2040 (which is overkill, but I intend to extend the board and add some more complex stuff in the future without having to change a lot in my C code). The input voltage is around 12V, the fan and rotation motors also 12V.

I've never done something like this, so I would love to get some review on my schematics. Do you see any problem on the schematic? Do you have any recommendation or good practice tips? Thanks in advance!

frail isle
#

these low contrast color schemes people are using are really hard to read.

neat flume
frail isle
#

missing pullups on i2c?
why's there a series resistor on qspi /CS ?

neat flume
#

you dont have the usb pins hooked up to anything

#

for something this simple id say just use a pi pico or some other rp2040 board and solder it on with the castellated pads

#

rather than putting a whole uC directly onboard

frail isle
#

J2 and J3 have the same section title, but one signal is FANPWM and the other is FANROT.

#

you've got /RESET on the SWD header, but then you call the signal RESET and then hook it up to RUN

#

it's either RUN or /RESET not RESET

worldly stratus
#

Thanks a lot for the input! 🙂 Here is a light mode high contrasted updated version.

worldly stratus
# frail isle missing pullups on i2c? why's there a series resistor on qspi /CS ?

I had placed the resistors on the QSPI lines to reduce the signal reflection effect, because I saw someone do it in a tutorial. But as I've understood from the tutorial I took them from, you are right, they are overkill and for my case probably not needed. I have deleted them, because I've now seen from the rp2040 hardware design recommendation that the flash should be wired directly to the pins with short connections (https://datasheets.raspberrypi.com/rp2040/hardware-design-with-rp2040.pdf in section 2.2)

#

for the CS pin, I've taken the values directly from the rp2040 hardware design, same link as before and same section. The explanation for the resistors is also written there. But thanks for the hint, because the resistor seems to only be used to trigger the BOOTSEL mode (where the rp2040 presents itself as USB mass storage), which is irrelevant for me, since I don't plan to use USB. Therefore I removed it also. I've kept the DNF R1 resistor even it will not be on the PCB, because this resistor is not required for the flash memory that I currently plan to use. But maybe I will change The flash memory in the future, so I keep the DNF resistor to keep it in mind if I change the flash memory.

worldly stratus
# neat flume you dont have the usb pins hooked up to anything

I don't plan to use the USB port, since I will program and debug the board via SWD. I've chosen to not use USB, because as far as I understand, it would require a precise clock and I therefore would also have to add an external oscillator, which I don't want to do now to keep it simple. I could do all this using a pico board yes and I will probably test my code on a raspberry pi pico at the beginning, but my main goal here is really to go through the whole process of creating a working PCB, order it and program it, so that I understand how the components actually work.

worldly stratus
worldly stratus
#

I've also added a capacitor and a 10k resistor at the reset pin to avoid accidentally having the reset pin activated, which I heard can happen due to some glitches.

#

Thanks a lot for the comments, they were really helpful! If there are no additional comments, I will continue and start the PCB part 😄

frail isle
# worldly stratus I had placed the resistors on the QSPI lines to reduce the signal reflection eff...

oh you did have resistors on all the rest of the lines. somehow i didn't notice them. you've taken them out, but in the future try to avoid splitting those sorts of things between two different sections of the schematic.
i was mostly confused by only putting it on the /CS line, which is the one that would need it the least.
if you had significant EMI/EMC concerns, they might be worth considering, but only after you've measured an actual problem on a real board.

neat flume
#

Its 3 more components lol, the crystal and the 2 load capacitors

#

You just connect the traces, nothing special, no impedance matching or length matching

muted roost
#

Ferrite for the ADC_AVDD

neat flume
muted roost
neat flume
#

even then, not needed

#

rp2040 adc has poor performance regardless of what you do to it

muted roost
#

ahh good to know

neat flume
#

8 ENOB

muted roost
#

been playing with adc's with 12 ENOB , ferrites make a difference in that case

neat flume
#

yeah clean power matters much more there

#

just a few mV can make a difference at 12 bits

strong monolith
#

You probably don't need as much capacitance around the regulators, 470uf x2 on input is overkill as is 220 on 3v3. You would be better with several cascaded values eg 47uf + 4.7uf + 1uf on 3v3 o/p, depending on power drawn.
Select the type of cap carefully: electrolytic vs tantalum vs ceramic are main choices. Ceramic are a bit noisy and their value varies a lot with temperature. But they are cheap and small. Electrolytic are high cap and relatively cheap but big, their value is not well controlled.
Tantalum are expensive but also quite good in other respects. Larger than ceramics but much less noisy.

neat flume
#

Not so sure about tantalum, I never use em, don't know where you would need it specifically unless specified in a datasheet

worldly stratus
#

Thanks a lot! Your comments really helps me a lot to understand things (didn't even know what ENOB is or what is ferrite lol)

#

Here is a new version of my schematics:

worldly stratus
worldly stratus
worldly stratus
#

I have also made changes for the converters. I switched from LM2596S to ETA8121, because the latest has a much bigger frequency and as I understand, it's therefore way more efficient and generates less heat. Moreover it's smaller. I don't know how reliable they are, but well, we'll see. I hope that the wiring is okay. I have connected them based on the datasheet https://jlcpcb.com/partdetail/Etasolution-ETA8121S2G/C7465509

#

I have added a connection between rp2040 and the EN pin of the ETA8121 for the 12V regulator, so that I can switch the motors completely off when not needed and reduce power consumption without needing an extra MOSFET.

worldly stratus
#

I'm still not quite sure to understand how to decide which capacitor values to take for the transformer, as for the inductor, but I will continue to read doc these days to understand this.

neat flume