====== STM32F303 Devboard ====== {{tag>project hardware electronics }} WIP ====== CAD Dateien ====== Gibt es unter https://github.com/alex-gh/projects/tree/master/hardware/stm32f303_devboard ====== Features ====== * [[http://www.st.com/web/catalog/mmc/FM141/SC1169/SS1576/LN1531/PF252051|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 [[http://www.st.com/web/en/catalog/tools/FM147/CL1794/SC961/SS1533/PF257916|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 [[http://www.mikrocontroller.net/articles/STM32#Programmieradapter|hier]] ====== Software ====== ===== Hello World ===== #include "stm32f30x_conf.h" #include 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; }