stm32-kicad-reference-designs

Public

@danielvilas

Share stm32-kicad-reference-designs

Check access before sharing the link.

Who can open this board

Anyone can open this board. No sign-in is required.

This link opens the latest version. Copying it does not grant additional access.

Loading…

README

STM32-kicad-reference-designs

{:toc}

Reference Designs for STM32 in KiCad

These projects are designed as reference Design for copy subsheets and reuse wherever needed.

Ideally the board will allways the same (DevelBoard) modified to use the current chip. But as needed the reference design will be updated to use different elements, such as Ethernet, Can Bus, usb.

Folder structure

The Folders under this repository are defined to follow this standard:

 .
├── [FAMILY]
│   ├── [LINE]
|   |   ├──Firmware
|   |   |  └──[*] Platformio Code
|   |   ├──[CHIP]_[Board]
|   |   |  └──[*] Kicad Project
|   |   └──README.MD
│   ├── [LINE] Other line 
|   |   └── ...
|   ...  
│   └──PlatformIo
│       ├──install.sh
│       ├──[Board].json
|       ├──[variantn].h
|       ├──[variantn].cpp
|       └── ... More boards and variants
└──[FAMILY] Other family
├──... More families
...

The folder estructure is based on the STM32 organization of theirs chips, this are based on families and lines. This relates to the name of the chip having the code `STM32FFLLCCCC' where F is the FamiliyCode, L the line and C the chip code.

TermsDescritpionexamples
FamilyStm32 FamilySTM32F4, STM32G0
LineStm32 Line name, chooses a model within the familySTM32F103, STM32G051
ChipCurrent Chip, defines package, ram, rom,... inside the lineSTM32F103CBT8, STM32G051C8U6
FirmwarePlatform.io project for all boards on this family. Create envorinments for eachsee notes
[CHIP]_[BOARD]Kicad Project of boardsee notes
README.mdeach line should have it's own document to explay all the boards, what the firmware does, and the compatible chips (testeds)
PlatformIoOn this folder must be all the files to install the boards in PlatformIo.b

Chip compatibility

By default, and as far it is indicated by ST, all the chips with the same package are interchangeables, at least at pcb level. That means that the power pins are on the same posititions and the same for the io ones.

NOTE: Some lines/families needs some minor changes on power pins, but the io pins mantains the positions. Check datasheets

Tested chips, should be on the README.md file of the line.

NOTE: This applies to hardware, not at software. update the firmware accordiling

Firmware Notes

The firmware should be unique for the line and configured by environments on Platformio. In the case two firmwares are needed, then it will be explained on the README.MD.

The enviroments should be based on the "Generic" boards of platform.io with the defines for use the clock correctly. Even if it is based on another boards, (such as blackpill) in this cases it is correct to have two environments for that board (generic and the original board).

The environments must be explained on the README.md of the line.

The bare minimum firmware must have a blinking led and serial output (UART or USB). If the board has more components (CAN, ETH0,...) the firmware should select them by defines and have the component it's own set of files.

Board folder Notes

As stated before, there are compatible chips, cappable of drop-ons replacement. When a fully compatible chip is found, there is no need to copy all the board. But the folder for both chips must exists. When this case ocurrs, ensure that:

  • On the original board, include notes on the schematic to include the new chip.
  • On the line README.md of the original board, include the chip on the compatible chips found
  • On the folder of the new chip, include:
    • Link to the current folder
    • README.MD explaing when was detected, to which, and which versions of the board are tested.
  • On the line README.md of the new board document the board is the same of...

NOTE: Remebember that only applies to hardware, the new line must have it's own firmware, with the new chip environment.

Kicad Project Rules

The objective is to have a series of schemeatic pages to easily import onto new projects.

The main project must only contain:

  • Mount holes, or similar
  • Debug Leds
  • Board related connectors
  • Zone for (general) power distribution, or subpage if needed
  • Each functional component in one SubPage
  • Mapping to the project especific pin/net names

Inside each sub page, one per functional component:

  • The bare minimun componentes
  • All the required connectors related to the function (SWD, ETH, USB, ...)
  • Blocks separated by zones
  • Herarchichal pins must be named as low level (chip) possible
  • Specific power distribution as a zone, but subpage if needed

Good rules indicate to have all the conectors on the main page, but on this project we search to have a library of schematics ready to use, so it is better to have the required connectors on the same page of the functionality.

Status of Boards

FamilyLineBoardStatus
F0STM32F030STM32F030K6T6tested, updated needed
F1STM32F103STM32F103C8T8Not implemented, tested old version
G0STM32G051STM32G051C8U6Only in design phase

Change Log

  • 25/05/2021 Initial Commits
    • Copy STM32F103 Devel Board from Digital Trains
  • 04/08/2021 Re-Structuration
    • Creation of the structure of folders
    • Update Kicad to sub-pages
    • Added STM32G051
  • 03/09/2021 Added F030
    • Added an F030
    • Created Files for board integration on pio
Comments

No comments yet. Be the first to ask about this board.

Ask about this board

Sign in to BoardRepo

New here? Signing in creates your account; there is no separate sign-up.