Inhaltsverzeichnis
STM32F303 Devboard
WIP
CAD Dateien
Features
- STM32F303CC Mikrocontroller
- 256kb Flash
- 48kb RAM
- Davon 8 kb auf dem Instruktionsbus
- 10 Timer
- 3 SPI
- 2 I²C
- 3 USART
- 1 CAN
- 1 USB
- 37 GPIO
- Davon 17 5V Tolerant
- 17 Capsense Kanäle
- 4 12 Bit ADCs
- 2 12 Bit DACs
- 7 Analoge Komparatoren
- 4 Opamps
BOM
Anzahl | Beschreibung | Wert | DigikeyNr |
---|
1 | STM32F303CC | LQFP48 | 497-13318-ND |
1 | NCP1117 | SOT-223 | NCP1117LPST33T3GOSCT-ND |
1 | Quarz | 8 MHz | 887-1448-1-ND |
1 | USB-Mini B Buchse | ED2992CT-ND | |
1 | Ferritebead | 0603 | ACML-0603-2000-TCT-ND |
2 | Taster | SMD | 450-1129-ND |
4 | SMD Kondensator 0603 | 100nF | |
2 | SMD Kondensator 0805 | 10uF | 311-1460-1-ND |
2 | SMD Kondensator 0603 | 16pF | 445-5051-1-ND |
2 | SMD Widerstand 0603 | 22Ohm | 311-22.0HRCT-ND |
2 | SMD Widerstand 0603 | 10KOhm | |
1 | SMD Widerstand 0603 | 1.5KOhm | 311-1.50KHRCT-ND |
Code Upload
Bootloader
Der Chip verfügt über einen integrierten Bootloader. Der Code kann wahlweise über UART oder USB hochgeladen werden.
Um den Chip im Bootloadermodus zu starten muss man auf den Resetknopf drücken während man den Bootknopf hält. Danach kann der Bootknopf losgelassen werden.
Windows: DfuSe Demo
STMikro stellt eine GUI basierte Software zur Verfügung mit der man Programmcode in den Mikrocontroller hochladen kann. Diese Software gibt es hier.
Linux/Windows: dfu-util
Dfu-util unterstützt STM32 Mikrocontroller ab Version 0.5. Der folgende Befehl lädt den Inhalt der Datei filename.bin in den Flash des Mikrocontrollers.
dfu-util -s 0x08000000 --alt 0 -D filename.bin
JTAG/SWD
Es ist auch möglich den Code über JTAG oder SWD hochzuladen. Dazu benötigt man jedoch einen JTAG oder SWD Programmieradapter eine kleine Auswahl kompatibler Adapter findet sich hier
Software
Hello World
#include "stm32f30x_conf.h" #include <stm32f30x.h> void delay(uint32_t delay) { while (delay-- > 0) { asm("nop"); } } int main(void){ GPIO_InitTypeDef GPIO_InitStructure; /* Enable GPIO A Clock */ RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE); /* Enable PA3 for output */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_Level_1; GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL ; GPIO_Init(GPIOA, &GPIO_InitStructure); for (;;){ /* LED on */ GPIOA->BSRR = (1<<3); delay(10000000); /* LED off */ GPIOA->BRR = (1<<3); delay(10000000); } return 0; }