STM32F4 Discovery guide

14

Click here to load reader

description

short guide for STM32F4

Transcript of STM32F4 Discovery guide

TIM ROBOTICS UNIVERSITAS TARUMANAGARASTM32F4 DISCOVERY (STM32F407VGT6) TUTORIAL

A. PendahuluanSTM32F4 Discovery merupakan mikrokontroller 32 bit yang menggunakan arsitektur ARM. STM32F4 Discovery memiliki spesifikasi sebagai berikut:Ukuran97mm x 67mm

Kecepatan168 MHz (maksimal)

Flash1024 Kb

RAM internal192 Kb

Timer 16/3212/2

Timer lainnya2xWDG, RTC, 24-bit down counter

12 bit ADC16

12 DAC2

I/O82

SPI3

SAI-

I2S2

I2C3

USART+UART4+2

USB OTG2

CAN 2.0B2

SDIO1

Ethernet MAC10/100Ya

Tegangan kerja1.8 - 3.6 V

Arus terendah2.5 uA

Arus kerja238 uA

Fitur lainnya: Boosted execution dari pengendalian algoritma Mudah digunakan Efesiensi kode lebih baik Elimination of scaling and saturation Easier support for meta-language tools On-board ST-LINK/V2 with selection mode switch to use the kit as a standalone ST-LINK/V2 (with SWD connector for programming and debugging) Board power supply: through USB bus or from an external 5V supply voltage External application power supply: 3V and 5V LIS302DL or LIS3DSH, ST MEMS motion sensor, 3-axis digital output accelerometer MP45DT02, ST MEMS audio sensor, omnidirectional digital microphone CS43L22, audio DAC with integrated class D speaker driver Eight LEDs: LD1 (red/green) for USB communication LD2 (red) for 3.3V power on Four user LEDs, LD3 (orange), LD4 (green), LD5 (red) and LD6 (blue) 2 USB OTG LEDs LD7 (green) VBus and LD8 (red) over-current Two pushbuttons (user and reset) USB OTG with micro-AB connector Extension header for LQFP100 I/Os for quick connection to prototyping board and easyProbing

Ukuran dimensi dari STM32F4 Discovery:

Gambar 1.1 Dimensi STM32F4 Discovery

B. Keil VisionKeil Vision adalah IDE dari software Keil yang mengabungkan manajemen project, penyuntingan source code, dan program debugging untuk prosesor ARM. Keil Vision dapat diunduh secara gratis di www.keil.com/download/product/. Dalam tutorial ini, akan digunakan Keil MDK-ARM v5 yaitu versi 5.11a (juni 2014). Versi gratis ini dibatasi ukuran target file yang akan di upload ke SMT32F4 Discovery maksimal 32 Kbyte. Setelah menunduh MDK, jalankan aplikasi tersebut. Lakukan pemasangan aplikasi seperti pada umumnya. Pada langkah terakhir, pastikan Retain current Vision configuration tercentang dan klik finish. Kemudian akan puncul tampilan pack installer, pastikan komputer anda terhubung dengan internet untuk melanjutkan pemasangan. Jika pack installer tidak muncul, jalankan aplikasi Vision dan klik ikon (pack installer). Setelah dibuka, cari STM32F4xx_DFP pada tab Packs dan kemudian klik install. Vision akan melakukan pengunduhan dan pemasangan hingga tampilan seperti pada gambar 2.1.Gambar 2.1 Telah dilakuakan penambahan STM32F4xx_DFP

C. PenyetelanBeberapa penyetelan yang perlu diketahui: Mengubah clock speed:Buka project anda, dan cari file system_stm32f4xx.c pada baris 254 dan 256. Ubah nilainya sesuai tabel dibawah untuk mendapatkan clock speed yang diinginkan.Clock Speed (MHz)#define PLL_M#define PLL_Q

16887

888

Menambahkan fitur multitasking:Download contoh di www.keil.com/appnotes/docs/apnt_230.asp atau buka pack installer, pilih tab example. Setelah itu, pilih copy pada CMSIS-RTOS Blinky (STM32F4-Discovery). Klik OK. Setelah itu, open project dan pilih folder MDKBoardsSTSTM32F4-DiscoveryRTX_Blinky (default).

ST-Link V2 USB Drivers:Jika komputer anda tidak dapat terhubung dengan STM, maka buka C:\Keil_v5\ARM\STLink\USBDriver. Jalankan file stlink_winusb_install.bat.Inikator LED LD1: LED kedap-kedip merah: mencoba menghubungi PC, tetapi belum selesai. LED nyala merah: Koneksi ke PC telah selesai, tetapi tidak terhubung dengan ST-Link (misal dalam mode debug). LED nyala hijau: terkoneksi dalam mode debug dan komunikasi terakhir berhasil. LED kedap-kedip hijau/merah: terjadi pertukaran data. LED mati: ketika mulai masuk mode debug/run.

Memasang template: Buka Keil, pilih menu Project dan pilih New Vision Project. Simpan project anda di satu folder projek anda. Setelah itu, muncul window Select Device dan pada box Data base, pilih STM32F407VG. Pilih fitur seperti gambar 2.2.

Gambar 2.2 Penyetelan pada jendela manage run-time environment. Pada kotak project, klik kanan nama project anda dan pilih manage project items atau ikon . Lakukan penyetelan sesuai gambar 2.3.

Gambar 2.3 Penyetelan umum pada manage project item. Pada gambar 2.3 (A), anda dapat mengubah nama project sesuai keinginan anda. Pada gambar 2.3 (B), buat 3 grup yaitu Main, Include, dan STM32F4xx_StdPeriph_Driver untuk menyusun source kedalam kelompoknya masing-masing, sehingga dalam pembuatan program akan lebih mudah dilakukan dan terstruktur. Pada gambar 2.3 (C), isi tiap file tergantung dari grupnya masing-masing. Pada grup Main, diisi source utama dari project ini. Pada grup Include, diisi source library untuk mendukung project ini. Pada grup STM32F4xx_StdPeriph_Driver diisi source yang mengatur driver yang dipakai, misalnya GPIO, timer, dan lainnya. Contoh penyisipan source driver seperti gambar 2.4.

Gambar 2.4 Beberapa driver yang digunakan pada project ini. Setelah menyetel seperti langkah diatas, pilih menu Flash Configure flash tool atau pilih ikon dan akan muncul tampilan seperti pada gambar 2.5.

Gambar 2.5 Jendela Options for Target project anda. Pada tab Target, ubah kecepatan Xtal sesuai keinginan (misalnya 168) dalam MHz. Jika tidak menggunakan Pada tab output, centang Create Hex File. Setelah itu, pilih select folder for object. Buatlah folder baru pada folder project anda, sehingga output dari project ini akan disimpan ke dalam folder tersebut. Pada tab C/C++, masukkan define pada grup preprocessor symbols yaitu USE_STDPERIPH_DRIVER,STM32F4XX,HSE_VALUE=168000000. Setelah itu, klik browser pada Include Paths. Masukkan semua path yang berhubungan dengan source anda seperti pada gambar 2.6.

Gambar 2.6 Contoh alamat folder (include path) yang dimasukan. Pada tab debug (opsional), pastikan penggunaan debug menggunakan ST-Link Debugger seperti pada gambar 2.7.

Gambar 2.7 Pemilihan ST-Link Debugger pada tab debug. Pada tab utilities, klik tombol setting. Pastikan target driver memiliki penyetelan seperti pada gambar 2.8.

Gambar 2.8 Penyetelan alamat memori flash untuk STM32F4xx. Pada jendela yang sama seperti langkah sebelumnya (opsional), pilih tab debug dan pada bagian debug adapter, pastikan port yang digunakan adalah SW. Setelah itu, pilih OK dan penyetelan pun selesai. Penyetelan ini cukup dilakukan sekali dalam 1 project dan jika ada perubahan yang berarti dikemudian.D. GPIOMasukkan driver stm32f4xx_gpio.c. Pada source utama, deklarasikan struct yang bernama GPIO_InitTypeDef. Sebelum memulai inisialisasi pada GPIO, jalankan perintah RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOX, ENABLE); X untuk mententukan GPIO mana yang akan diinisialisasi. Beberapa anggota dari struktur tersebut adalah: GPIO_Pin menentukan pin mana yang akan diatur dengan cara memberi nilai GPIO_Pin_x dan x adalah 0-15. Untuk mengatur lebih dari 1 pin, dapat diberi logika atau ( | ). GPIO_Mode terdapat 2 mode, input dan output. Cara penyetelan: GPIO_Mode_OUT: output mode. GPIO_Mode_IN: input mode. GPIO_Mode_AF: alternate function mode. GPIO_Mode_AN: analog mode. GPIO_OType terdapat 2 tipe, push-pull dan open drain. GPIO_OType_PP: push-pull memiliki frekuensi yang lebih tinggi. GPIO_OType_OD: open_drain digunakan untuk jalur bus dan memerlukan pull-up resistor. GPIO_Speed kecepatan perubahan data dan kecepatan ini tidak bisa lebih cepat dibandingkan kecepatan prosesor. Cara penyetelan: GPIO_Speed_2MHz. GPIO_Speed_25MHz. GPIO_Speed_50MHz. GPIO_Speed_100MHz. GPIO_PuPd mengatur pull-up atau pull-down pada pin yang ditentukan. GPIO_PuPd_NOPULL. GPIO_PuPd_UP. GPIO_PuPd_DOWN.Untuk mengakhirinya, dipanggil perintah GPIO_Init(GPIOX, &GPIO_InitStructure); X adalah port yang akan diatur.Contoh penyetelan GPIO:GPIO_InitTypeDef GPIO_InitStructure;void main(){RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD, ENABLE);GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12 | GPIO_Pin_15;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;GPIO_Init(GPIOD, &GPIO_InitStructure);GPIO_SetBits(GPIOD,12);GPIO_ResetBits(GPIOD,15);}E. DelayUntuk menambahkan delay, dapat dimasukan source yang ada pada template (delay.c) dan headernya (delay.h).

(underconstruction). Untuk info lebih lanjut lihat template.F. UART/USARTG. TimerH. InterruptI. PWMJ. ADCK. I2CL. RTOSSTM32F4 Discovery Tutorial