You will be designing an STM32 development board, similar to an STM32 Nucleo board or with equivalent I/O functionality and form factor to an Arduino. No on-board peripherals will be required (to reduce complexity), and you will instead break out all unused I/O pins to a header.
All decision-making has already been done for you, using a similar process to what we've discussed in Air Brakes and Avionics meetings. The following major component selections have been made:
- STM32C071G8U6 microcontroller (MCU) in a 28-pin QFN package
- Power via a USB-C receptacle, without using the PD standard: Same Sky UJ20-C-H-G-SMT-P16-TR
- 5V USB power input reduced to 3.3V MCU operating voltage using the TLV75533PDBV voltage regulator in a SOT-23-5 package
- 8 MHz HSE crystal in a 3225 package
- 10-pin Cortex SWD debug header with keyed orientation: CNC Tech 3220-10-0100-00
- On-board reset and boot buttons (PTS815_SJM_250_SMTR_LFS)
- On-board user button (PTS815) and user LED (Harvatek B1911USD is an 0603 package)
You will need to draw appropriate schematic diagrams that are electrically sound and clearly convey designer's (your) intent. Then, after creating the schematic, a PCB layout should be created under the assumption of a 2-layer, single-sided PCB, hand assembled, with a relaxed size constraint.
Folder structure is as follows:
cur-kicad-workshop
├───datasheet
├───example
├───kicad-library
│ ├───3d_models
│ ├───footprints
│ ├───spice
│ └───symbols
├───pcb
└───src
- The
datasheetdirectory contains all necessary datasheets and application notes you may want to refer to while developing this PCB. - The
exampledirectory is a worked example schematic and PCB to refer to if you get lost. - The
kicad-librarydirectory is a Git submodule shared between the example and blank design for you to get started on, containing schematic symbols, PCB footprints, 3D models, and even SPICE models for components we may use. - The
pcbdirectory contains a blank project you will work on. - The
srcdirectory contains all STM32CubeIDE files including the CubeMX configuration selected for this project.