STM32 Breakout Board

Aus der Mikrocontroller.net Artikelsammlung, mit Beiträgen verschiedener Autoren (siehe Versionsgeschichte)
Wechseln zu: Navigation, Suche

Ein einfaches Breakout Board für Einsteiger in die STM32-Programmierung. Mit USB-Unterstützung für eine einfache Programmierung des Chips ohne ST-Link etc.


Übersicht

Ziel war es, ein Board zu erstellen, welches auf ein Steckbrett aufgesteckt alle Peripherie-relevanten Pins eines STM32 nach außen führt (Port A und B) und welches USB-Funktionalität bietet. Die Fertigung soll professionell erfolgen. Ich habe mich für Oshpark aus den USA entschieden. Hier kann das Board bei Belieben nachbestellt werden.

Verwendete Bauelemente

Wichtig war mir, besonders die teuren Bauelemente samplen zu können. Weiters Kriterium war die Verfügbarkeit der Teile bei Conrad, da hier durch eine Ladenbestellung die Lieferkosten gespart werden können.


MCU: STM32F105

Als MCU kommt ein STM32F105 aus der Connectivity Line von ST zum Einsatz. Dieser bietet unter anderem USB on the go und Ethernet (und natürlich SPI, I2C, USART). In der Version mit 64 Pins und 256kB Flash (STM32F105RC) kann er mit einem Account auf st.com gesampled werden. Ansonsten ist der Chip bei Farnell oder Conrad für rund 10 Euro zu haben. Entscheidend war ein relativ großer Flash bei gleichzeitig geringer Pin Anzahl.

USB: FT231X

Das Board verfügt über einen Mini-USB Anschluss. Dieser kann über zwei Jumper direkt mit den USB Pins des STM32 verbunden werden. Da ich aber den FT231X von FTDI ausprobieren wollte (Dieser kann ebenfalls gesampled werden) ist auch hierfür Platz auf dem Board vorgesehen. Standardmäßig sind die USART1 Pins des STM32 mit diesem Chips verbunden.

Spannungsversorgung: LF33CD

Die Spannungsversorgung (3,3V Betriebsspannung für STM32 und FT231X) erfolgt über den LF33CD im TO-220 Gehäuse von ST. Ebenfalls zu samplen, alternativ erhältlich bei Conrad.

Der LF33CD kann mit maximal 16V bei 500mA Ausgangsstrom versorgt werden.

Sonstige

Ansonsten werden vier 8-polige Stiftleisten, ein 24MHz-SMD-Quarz sowie ein Drucktaster für Reset benötigt.

Ein bedrahteter Elko kann nach Belieben parallel zu dem eingeplanten 0603 Kondensator eingelötet werden. (Das Datenblatt des FT231X empfiehlt 4,7uF an der Versorgung des USB-Chips.)

Platine

Vorderseite der Platine
Rückseite der Platine

Die Platine hat eine Größe von 44x26mm und liegt als geteiltes Projekt auf den Servern von Oshpark: Link. Ich werde demnächst 3 davon bestellen. Alternativ gibt es die Leiterplatten auch hier direkt zu kaufen: STM32-Breakoutboard


Herausgeführte Pins

  • Port A (bis auf die USART1 Pins PA9..12)
  • Port B (bis auf PB2, der als BOOT1 Pin fungiert)
  • Vin, 3V3 und GND für die Spannungsversorgung
  • BOOT0 des STM32
  • SLEEP# des FT231X.

BOOT0 wird per Pulldown Widerstand auf GND gezogen. Liegt hier VCC an bootet der STM32 in den werksmäßig vorinstallierten Bootloader, der eine Programmierung über USART1 oder USB on the go ermöglicht. BOOT1 liegt fest auf Masse. VCC an diesem Pin würde den STM32 vom SRAM booten lassen (vgl. STM32#Bootmodi).

Das SLEEP# Signal ist eigentlich an den CBUS1 Pin des FT231X angeschlossen, welchen ich mir so konfigurieren werde, dass hieran das Signal SLEEP# anliegt, welches signalisiert, dass sich der Chip gerade im USB-Suspend Modus befindet. Durch eine andere Konfguration des FTDI kann hier natürlich auch ein anderes Signal anliegen.

LEDs

Das Board besitzt 5 Leds:

  • Power Led (Größe 0603) an 3V3
  • TX/RX Led (Größe 0603) an CBUS3 des FT231X (muss konfiguriert werden)
  • Led 1,2,3 (Größe 0805) an PC13,14,15 des STM32. Multipurpose