I'm in the process of designing and ordering my first PCB with MCU. In the past I did make PCBs that were driven by a Arduino Pro Micro chip, but I wanted some more professional.
Below I added the pictures of my schematic from which I already made a PCB and Gerber file. But before I order this PCB I wanted a double check to see if I missed something or made a mistake.
In the schematic I used the multiplexing technology for the push buttons and rotary encoders. I used this before on the Arduino driven PCBs. Would this work correctly on this as well? I did not use a pull-down resistor, is this a big issue?
I want to program the PCB by USB. The USB connection will come through the JST-XH-4 connection on the right of the MCU picture. I used the following main components:
- STM32G103CBT6
- AMS1117-3.3V
- Oscillator
The MCU, with on the right JST-XH-4 for USB connection and a switch to pull boot0 low.
The power supply, voltage regulator, and crystal oscillator.
The multiplexing with 12 push buttons, 4 rotary encoders and 2 JST-XH-2 for my shifter input.
EDIT 1:
I have added diodes to my schematic. Did I do this correctly?
EDIT 2:
After the helpful input from @Justme I did some more research and came across the USBLC6 solution. This chip prevents the need of the USB pull-up line. I have changed the capacitors on the regulator schematic from 22 μF to 10 μF, but the datasheet stated it should be 22 μF; is this correct? I also added the SWD 10-pin header so I can program my PCB with an ST-LINK device.