+ All Categories
Home > Documents > Arhitektura STM32F4xx ARM Cortex M4 MCU, GPIO...Prezentacija/odbrana projekta je u prvom terminu...

Arhitektura STM32F4xx ARM Cortex M4 MCU, GPIO...Prezentacija/odbrana projekta je u prvom terminu...

Date post: 13-Jul-2020
Category:
Upload: others
View: 4 times
Download: 1 times
Share this document with a friend
50
Disclaimer: The European Commission support for the production of this website does not constitute an endorsement of the contents which reflects the views only of the authors, and the Commission cannot be held responsible for any use which may be made of the information contained therein. Co-funded by the Erasmus+ Programme of the European Union ARHITEKTURA STM32F4 XX ARM CORTEX M4 MCU, GPIO ARHITEKTURA STM32F4 XX ARM CORTEX M4 MCU, GPIO ARHITEKTURA STM32F4 XX ARM CORTEX M4 MCU, GPIO
Transcript
Page 1: Arhitektura STM32F4xx ARM Cortex M4 MCU, GPIO...Prezentacija/odbrana projekta je u prvom terminu završnog ispita1. Studenti ce raditi pet (5) provjera znanja ukupno 60 bodova (kviz

Disclaimer: The European Commission support for the production of this website doesnot constitute an endorsement of the contents which reflects the views only of theauthors, and the Commission cannot be held responsible for any use which may bemade of the information contained therein.

Co-funded by theErasmus+ Programmeof the European Union

ARHITEKTURA STM32F4XX ARM CORTEX M4MCU, GPIO

ARHITEKTURA STM32F4XX ARM CORTEX M4MCU, GPIO

ARHITEKTURA STM32F4XX ARM CORTEX M4MCU, GPIO

Page 2: Arhitektura STM32F4xx ARM Cortex M4 MCU, GPIO...Prezentacija/odbrana projekta je u prvom terminu završnog ispita1. Studenti ce raditi pet (5) provjera znanja ukupno 60 bodova (kviz

P-I P-II P-III P-IV P-V P-VI

Cilj kursa - TK402

Upoznati se mikrokontrolerima opšte namjene u cilju rješavanja problemadigitalne obrade signala, prijenosa/zaštite/prikaza informacija, upravljanjaaktuatorima u realnom vremenu.

Fokus ARM Cortex Mx serija mikrokontrolera (konkretnije M4) opšte namjenesa podrškom za DSP i FPU operacije.

Ispit se sastoji od 60% bodova predispitnih aktivnosti - realizovanih kroz zadacei završnog ispita projekta koji nosi 40 % bodova.

Prezentacija/odbrana projekta je u prvom terminu završnog ispita1.

Studenti ce raditi pet (5) provjera znanja ukupno 60 bodova (kviz (5b) +prakticno(7b)), na auditornim/laboratorijskim vježbama.

Završni ispit ce biti projekat 40 bodova.

Prijava teme2 projekta je u 12-toj sedmiciPredznanje: ANSI C993, osnove programiranja, signali i sistemi, osnovielektronike...

1studenti vracaju hardware nakon prvog završnog roka2odabiri teme po slobodnoj volji3Ili bilo koja verzija C-a

Page 3: Arhitektura STM32F4xx ARM Cortex M4 MCU, GPIO...Prezentacija/odbrana projekta je u prvom terminu završnog ispita1. Studenti ce raditi pet (5) provjera znanja ukupno 60 bodova (kviz

P-I P-II P-III P-IV P-V P-VI

Šta je - MCU

Mikrokontroler predstavlja kompleksan integrirani sklop koji ukljucuje procesoropšte namjene (CPU), memoriju (Flash, SRAM, FRAM, EERPOM), digitalni IOinterface (GPIO) i analogne module (ADC/DAC/COMP/AMP/CAP),komunikacijske (žicane i bežicne) module (UART/SPI/I2C/I2S/SDIO/DCMI/ETH..., TIMER, RTC, FPU, DSP, DMA), FPGA/CPLD blokove iizvore takt impulsa.

Page 4: Arhitektura STM32F4xx ARM Cortex M4 MCU, GPIO...Prezentacija/odbrana projekta je u prvom terminu završnog ispita1. Studenti ce raditi pet (5) provjera znanja ukupno 60 bodova (kviz

P-I P-II P-III P-IV P-V P-VI

Zašto MCU

Zašto i gdje koristiti Mikrokontroler (MCU)?

Page 5: Arhitektura STM32F4xx ARM Cortex M4 MCU, GPIO...Prezentacija/odbrana projekta je u prvom terminu završnog ispita1. Studenti ce raditi pet (5) provjera znanja ukupno 60 bodova (kviz

P-I P-II P-III P-IV P-V P-VI

Svjetski udio u proizvodnji MCU’s

Globalno elektronicko tržište generira/proizvede preko 20milijardi uredaja baziranih na MCU.

Od ukupnog broja elektronickih uredaja baziranih naprocesorima ili mikrokontrolerima, mikrokontroleri predstavljaju99% tržišta.

Prednosti: visoka efikasnost (M4 1.25 DMIPS/MHz (Dhrystone2.1), 33µW/MHz), jednostavni za upotrebu, niska cijena, širokspektar integriranih modula, napredni determinizam...

Za razliku od procesora (CPU), MCU ukljucuje sve neophodnemodule za samostalnu funkcionalnost.

CPU arhitekture: von Neuman i Harward sa RISC ili CISCinstrukcijskim setovima.

Širok spektar CPU arhitektura: ARM, AVR, TI, MIPS (PIC), x86,x64, ...

Page 6: Arhitektura STM32F4xx ARM Cortex M4 MCU, GPIO...Prezentacija/odbrana projekta je u prvom terminu završnog ispita1. Studenti ce raditi pet (5) provjera znanja ukupno 60 bodova (kviz

P-I P-II P-III P-IV P-V P-VI

Svjetski udio u proizvodnji MCU’s

Page 7: Arhitektura STM32F4xx ARM Cortex M4 MCU, GPIO...Prezentacija/odbrana projekta je u prvom terminu završnog ispita1. Studenti ce raditi pet (5) provjera znanja ukupno 60 bodova (kviz

P-I P-II P-III P-IV P-V P-VI

Svjetski udio u proizvodnji poluprovodnickih komponenti za autoindustriju

Page 8: Arhitektura STM32F4xx ARM Cortex M4 MCU, GPIO...Prezentacija/odbrana projekta je u prvom terminu završnog ispita1. Studenti ce raditi pet (5) provjera znanja ukupno 60 bodova (kviz

P-I P-II P-III P-IV P-V P-VI

Benchmark programi za mjerenje performansi CPU-a

1972 Dhrystone Reinhold P. Weicker - sinteticka testna aplikacijaciljano dizajnirana da statisticki obnaša opterecenje procesora zaodredeni set programa.Ne sadrži floating point operacije i u osnovi mjeri integer performanseCPU-a.2009 CoreMark - testna aplikacija razvijena do strane EmbeddedMicroprocessor Benchmark Consortium za mjerenje performansiCPU-a na bazi izvršenja stvarnih a ne sintetickih algoritama.Dhrystone omoguce poredenje razlicitih platformi RISC i CISC.Vjerodostojniji uvid u performanse CPU-a jer osigurava informaciju obroju izvršenih iteracija programa u jedinici vremena.DMPIS je vrijednost Dhrystone skalirana sa 1757 što predstavlja brojDhrystone-a na DEC VAX 11/780 iz 1970 godine.Dhrystone je podložan utjecajima performansi kompajlera i nivoaoptimizacije.DMIPS/MHz - omogucuje poredenje performansi neovisno o frekvencijiCPU-a

Page 9: Arhitektura STM32F4xx ARM Cortex M4 MCU, GPIO...Prezentacija/odbrana projekta je u prvom terminu završnog ispita1. Studenti ce raditi pet (5) provjera znanja ukupno 60 bodova (kviz

P-I P-II P-III P-IV P-V P-VI

SGS Thompson Microelectronics - STM ARM Cortex MCU’s

Page 10: Arhitektura STM32F4xx ARM Cortex M4 MCU, GPIO...Prezentacija/odbrana projekta je u prvom terminu završnog ispita1. Studenti ce raditi pet (5) provjera znanja ukupno 60 bodova (kviz

P-I P-II P-III P-IV P-V P-VI

Atmel - ARM Cortex MCU’s

Page 11: Arhitektura STM32F4xx ARM Cortex M4 MCU, GPIO...Prezentacija/odbrana projekta je u prvom terminu završnog ispita1. Studenti ce raditi pet (5) provjera znanja ukupno 60 bodova (kviz

P-I P-II P-III P-IV P-V P-VI

Texas Instruments

Page 12: Arhitektura STM32F4xx ARM Cortex M4 MCU, GPIO...Prezentacija/odbrana projekta je u prvom terminu završnog ispita1. Studenti ce raditi pet (5) provjera znanja ukupno 60 bodova (kviz

P-I P-II P-III P-IV P-V P-VI

STM32F103C4T6B DIE - 2854x3123µm

Page 13: Arhitektura STM32F4xx ARM Cortex M4 MCU, GPIO...Prezentacija/odbrana projekta je u prvom terminu završnog ispita1. Studenti ce raditi pet (5) provjera znanja ukupno 60 bodova (kviz

P-I P-II P-III P-IV P-V P-VI

Programiranje

Moguce izvoditi na baziJezika višeg nivoa: Visual Studio .NET, C#, Java, C++,Matlab,...Skriptnih jezika: Phyton, JavaScrip, Lua, TCL,...Proceduralnih jezika: C jezik, Fortran, Pascal, Basic,...Asemblera4

Efikasnost generiranog koda zavisi od kompajlera (nivoaoptimizacije speed/size) i same kompleksnosti programa.

Generalno, najveca efikasnost se postiže pisanjem programa uasembleru i upotrebom hardverski modula.

Programiranje u asembleru nije za svakog! Izvodenjejednostavnih operacija u višim jezicima je ponekad u asemblerunekoliko stotina linija koda.

C jezik predstavlja kompromis izmedu efikasnosti koda ivremena uloženog za implementaciju željene funkcionalnosti.

4Razlikuje se od mašinskog programiranja po tome što se stvarne vrijednosti instrukcija - hex vrijednosti,zamjenjuju simbolickim imenima.

Page 14: Arhitektura STM32F4xx ARM Cortex M4 MCU, GPIO...Prezentacija/odbrana projekta je u prvom terminu završnog ispita1. Studenti ce raditi pet (5) provjera znanja ukupno 60 bodova (kviz

P-I P-II P-III P-IV P-V P-VI

Generiranje koda

SOURCE FILES*.c, *.h

C PROCESSOR

COMPILER

LINKER

LOCATOR

EXECUTABLE FILES*.elf, *.hex, *.bin

KORAK 1

KORAK 2

KORAK 3

KORAK 4

KORAK 5

Odstranjanje svihpredprocesorskih (#)

direktiva, konstanti, makroa

Validacija sintakse koda,generiranje objektnog kodapodijeljenog u segmente

STRUKTURA OBJEKTNOG FILE-a

TEXT: DATA:

STACK: BSS:

Izvrsni kod i lokalnevarijable

Kod i lokalne varijable

Inicijalizirane globalne

i staticke varijable

Varijable i podaci kreirane

tokom izvrsavanja

koda i poziva funkcija

Neinicializirane globalne

i static varijable

Kreiranje relokabilnog file-a,linkanje ekternih funkcija

varijabli, biblioteka

Dodjeljivanje fizickih adresa,varijablama kao i izracun

relativnih skokova

Generiranje izvrsnih,file-ova u razlicitim

formatima

ORGANIZACIJA MEMORIJE

FLASH: 0x08000000

0x080FFFFF

RAM: 0x20000000

0x2001FFFF

PERIPHER: 0x40000000

0x5FFFFFFF

Page 15: Arhitektura STM32F4xx ARM Cortex M4 MCU, GPIO...Prezentacija/odbrana projekta je u prvom terminu završnog ispita1. Studenti ce raditi pet (5) provjera znanja ukupno 60 bodova (kviz

P-I P-II P-III P-IV P-V P-VI

Arhitektura STM32F407 - Blok dijagram

Page 16: Arhitektura STM32F4xx ARM Cortex M4 MCU, GPIO...Prezentacija/odbrana projekta je u prvom terminu završnog ispita1. Studenti ce raditi pet (5) provjera znanja ukupno 60 bodova (kviz

P-I P-II P-III P-IV P-V P-VI

Arhitektura STM32F407 - Blok dijagram

Page 17: Arhitektura STM32F4xx ARM Cortex M4 MCU, GPIO...Prezentacija/odbrana projekta je u prvom terminu završnog ispita1. Studenti ce raditi pet (5) provjera znanja ukupno 60 bodova (kviz

P-I P-II P-III P-IV P-V P-VI

Arhitektura STM32F407: Sabrinice

STM32F4xx ARM Cortex M4 MCU ukljucuje 32-bitnu višeslojnuAHB Matricu koja povezuje

osam master modula - CPU I-Bus, D-Bus and S-Bus,DMA1 i DMA2 Memory bus, DMA2 peripheral bus, Ethernet& USB bussedam slave modula - Internal memory I-Code & D-Codebus, Main and Auxiliry SRAM bus, AHB1 & AHB2peripherals, FSMC bus.

Page 18: Arhitektura STM32F4xx ARM Cortex M4 MCU, GPIO...Prezentacija/odbrana projekta je u prvom terminu završnog ispita1. Studenti ce raditi pet (5) provjera znanja ukupno 60 bodova (kviz

P-I P-II P-III P-IV P-V P-VI

Arhitektura STM32F407: Sabirnice/Trase/Bus

AHB1 - Advance High performance Bus taktovana na 150 MHz

64 kB Core Coupled SRAM-a dostupan samo preko CPU aostatak 128 kB5 dostupno za DMA transakcije i periferale.

I-Code bus: CPU trasa za prikupljanje instrukcija, vektora6 izmemorijskog prostora (0x00000000 - 0x1FFFFFFF). U osnovisluži za prikupljanje instrukcija iz interne ili eksterne memorije.

D-Code bus: CPU trasa za pristup podacima i interfejsu zadebagiranje iz memorijskog prostora (0x00000000 -0x1FFFFFFF). U osnovi služi za ucitavanje literala i koddebugiranja. Pristup kodu ili podacima iz interne ili eksternememorije.

S-Bus: CPU trasa za prikupljanje instrukcija, vektora, podataka ipristup interfejsu za debagiranje iz memorijskog prostora(0x20000000 - 0xDFFFFFFF, 0xE0100000 - 0xFFFFFFFF). Uosnovi osiguran pristup CPU-a periferalima.

5Ukupno 192 kB SRAM kod STM32F407VGT6 verzije6Prikupljanje instrukcije koje operiraju nad vektorom podataka kao i prikupljanje samih vektora podataka

Page 19: Arhitektura STM32F4xx ARM Cortex M4 MCU, GPIO...Prezentacija/odbrana projekta je u prvom terminu završnog ispita1. Studenti ce raditi pet (5) provjera znanja ukupno 60 bodova (kviz

P-I P-II P-III P-IV P-V P-VI

Arhitektura STM32F407: Sabirnice/Trase/Bus

AHB2 i AHB3 - taktovane na 168 MHz.

APB1 - Advance Peripheral Bus taktovan na 42 MHz

APB2 - taktovan na 84 MHz

AHB/APB bridges - postoje dva AHB/APB mosta koja povezujuAPB1, APB2 i osiguravaju sinhronu konekciju izmedu AHB idvije APB trase.

Nakon reset-a/power cycle MCU-a, svi periferalni taktovi suonemoguceni (osim SRAM i Flash interfejsa), te je stogapotrebno omoguciti generiranje takt impulsa za dati periferalkoristeci RCC_AHBxENR or RCC_APBxENR registre.

Page 20: Arhitektura STM32F4xx ARM Cortex M4 MCU, GPIO...Prezentacija/odbrana projekta je u prvom terminu završnog ispita1. Studenti ce raditi pet (5) provjera znanja ukupno 60 bodova (kviz

P-I P-II P-III P-IV P-V P-VI

Arhitektura STM32F407: Adresni prostor

Programska memorija, memorija za podatke, registri i IO portovi,organizovani u jednom linearnom memorijskom prostoruvelicine 4GB.

STM32F4xx koristi little endian (Intel) princip storiranjapodataka u memoriju. Za primjer 32 bitne vrijednosti0x01020304, LSB 0x04 se storira prvo.

Adresni prostor je podijeljen u osam blokova od po 512 MB.Adresni prostor koji nije alociran za memoriju ili periferale seoznacava reserved .

Page 21: Arhitektura STM32F4xx ARM Cortex M4 MCU, GPIO...Prezentacija/odbrana projekta je u prvom terminu završnog ispita1. Studenti ce raditi pet (5) provjera znanja ukupno 60 bodova (kviz

P-I P-II P-III P-IV P-V P-VI

Arhitektura STM32F407: Interna Flash memorija

Interna flash memorija kapaciteta 1MB organizovana je u 12sektora.

Podržanje operacije nad flash memorijom su sector i masserase, shodno tome sektori su razlicite velicine.

Page 22: Arhitektura STM32F4xx ARM Cortex M4 MCU, GPIO...Prezentacija/odbrana projekta je u prvom terminu završnog ispita1. Studenti ce raditi pet (5) provjera znanja ukupno 60 bodova (kviz

P-I P-II P-III P-IV P-V P-VI

Arhitektura STM32F407: Interna Flash memorija

Podržane su operacije pisanja byte, half word i word.

Pristup memoriji odvija se preko 128-bitne sabirnice

Option bytes u flash adresnom prostoru omogucuju

mehanizam za zakljucavanje pristupa (citanje/pisanje)sektorima,definiranje naponskog nivoa BOR7 modula.aktivnost WDT 8

Zbog cinjenice da je period takt impulsa CPU-a znatno manji odvremena citanja podatka iz flash memorije, neophodno jepodesiti odgovarajuci broj WAIT STATES-a/LATENCY u FlashAccess Control Register FLASH_ACR u skladu sa CPU taktimpulsima HCLK i naponom napajanja MCU-a.

7Brown Out Reset predstavlja mehanizam koji štiti MCU od propada napona koji ima za posljedicu narušavanjeintegriteta memorije, integriteta izvršenja samog programa i dr. U osnovi BOR modul kada detektuje propad naponaispod predefinirane vrijednosti u vremenskom periodu ≥ 100µs uzrokuje reset MCU-a

8Modul/brojac koji po isteku resetuje MCU. Štiti izvršenje MCU softverski grešaka koje imaju za posljedicubeskonacne petlje.

Page 23: Arhitektura STM32F4xx ARM Cortex M4 MCU, GPIO...Prezentacija/odbrana projekta je u prvom terminu završnog ispita1. Studenti ce raditi pet (5) provjera znanja ukupno 60 bodova (kviz

P-I P-II P-III P-IV P-V P-VI

Arhitektura STM32F407: Reset & Clock control

Radni napon STM32F4xx MCU je 3.3V (podržani radni naponi od 1.8 V do 3.6 V)

STM32F4x podržava tri tipa reset-a: system Reset , power Reset i backupdomain ResetSystem reset - setuje sve registre na reset stanje osim reset flagova u clockcontroller CSR registru i Backup domain registrima.

System reset se generira u jednom od sljedecih slucajeva:NRST pin je pod djelovanjem napona niskog nivoa,WWDT je dosegao kriterij brojanja,IWDG je dosegao kriterij brojanja,Softverski reset - poziv funkcije void NVIC_SystemReset(void)Low power reset tj. reset nakon ulaska u Standby mode ili Stop mode.

Power reset generiše se u slucajuPower-on/power-down reset (POR/PDR reset) ili BOR resetNakon izlaska iz Standby mode.

Page 24: Arhitektura STM32F4xx ARM Cortex M4 MCU, GPIO...Prezentacija/odbrana projekta je u prvom terminu završnog ispita1. Studenti ce raditi pet (5) provjera znanja ukupno 60 bodova (kviz

P-I P-II P-III P-IV P-V P-VI

Arhitektura STM32F407: Reset & Clock control

Backup Domain Reset - setuje sve RTC registre i RCC_BDCRregistar na reset vrijednosti.

Backup Domain Reset se generira u jednom od dva slucaja

Software resetPower cycle - VDD ili VBAT je apliciran uz pretpostavku daje napon prije dogadaja bio nula volti.

STM32F4xxx ima tri primarna izvora takt impulsa zaCPU/periferale:

HSI (High Speed Internal izvor baziran na RC oscilatoru,HSE (High Speed External) izvor baziran na eksternomoscilator (baziran na kvarcnom kristalu),Main PLL (Phase Lock Loop) - generiranje takt impulsa zaCPU, USB, I2S

Page 25: Arhitektura STM32F4xx ARM Cortex M4 MCU, GPIO...Prezentacija/odbrana projekta je u prvom terminu završnog ispita1. Studenti ce raditi pet (5) provjera znanja ukupno 60 bodova (kviz

P-I P-II P-III P-IV P-V P-VI

Arhitektura STM32F407: Reset & Clock control

Dva sekundarna izvora takt impulsa

32kHz interni RC oscilator (LSI) koji služi kao izvor taktimpulsa IDWT i RTC,32768 Hz ekterni oscilator (baziran na kvarcnom kristalu)koji može da služi kao izvor takt impulsa za RTC.

Napajanje svakog izvora takt impulsa se može zasebnokontrolisati s ciljem povecanja energetske efikasnosti (smanjenjaukupne struje MCU-a).

Frekvencija eksternog HSE oscilatora mora biti u opsegu od 4MHz do 26 MHz.

HSI je 16 MHz izvor takt impulsa implementiran sa RCoscilatorom koji se može koristiti kao glavni izvor takt impulsa a ikao izvor takt impulsa za PLL.

Page 26: Arhitektura STM32F4xx ARM Cortex M4 MCU, GPIO...Prezentacija/odbrana projekta je u prvom terminu završnog ispita1. Studenti ce raditi pet (5) provjera znanja ukupno 60 bodova (kviz

P-I P-II P-III P-IV P-V P-VI

Arhitektura STM32F407: Reset & Clock control - structure

Page 27: Arhitektura STM32F4xx ARM Cortex M4 MCU, GPIO...Prezentacija/odbrana projekta je u prvom terminu završnog ispita1. Studenti ce raditi pet (5) provjera znanja ukupno 60 bodova (kviz

P-I P-II P-III P-IV P-V P-VI

Arhitektura STM32F407: Reset & Clock control - connection

HSE oscilator : frekvencija ulaznog signala 4-26 MHz, loading capacitance 15pF, startup time 2 ms i max struja od 1 mA.LSE oscilator : frekvencija ulaznog signala 32768 Hz, loading capacitance CL +2 pF (stray capacitance) = max 15 pF, ostali parametri zavise od konkretnogizvora.Main PLL: jitter 200 ps i max struja od 0.85 mA.HSI oscilator : tacnost ±4%, startup time 4µs i max struja od 80µA.LSI oscilator : tacnost ±46.7%, startup time 40µs i max struja od 0.6µA.

Page 28: Arhitektura STM32F4xx ARM Cortex M4 MCU, GPIO...Prezentacija/odbrana projekta je u prvom terminu završnog ispita1. Studenti ce raditi pet (5) provjera znanja ukupno 60 bodova (kviz

P-I P-II P-III P-IV P-V P-VI

Razvojna ploca STM32F4 Discovery

Page 29: Arhitektura STM32F4xx ARM Cortex M4 MCU, GPIO...Prezentacija/odbrana projekta je u prvom terminu završnog ispita1. Studenti ce raditi pet (5) provjera znanja ukupno 60 bodova (kviz

P-I P-II P-III P-IV P-V P-VI

STM32F4xx Dokumentacija

RM0090 STM32F4 Reference manual definira kompletnudokumentaciju (registre i funkcionalnost) STM32F4xx serije MCU’s

sistema generiranja takta,modova rada,IO jedinice,periferala,memorijskih modula.

STM32F407 Datasheet koji definira specificnosti konkretnog cipaelektricne karateristike MCU-a,podržane periferale,raspodred pinova na cipu MCU-a,matricu mapiranje IO linija prema periferalima,radni takt CPU i velicinu memorije,

UM1473 Dokumentacija STM32F4 Discovery ploce koja ukljucujeelektricnu shemu razvojen ploce,raspored pinova na header-u ploce,informacije o eksternim komponentama.

Page 30: Arhitektura STM32F4xx ARM Cortex M4 MCU, GPIO...Prezentacija/odbrana projekta je u prvom terminu završnog ispita1. Studenti ce raditi pet (5) provjera znanja ukupno 60 bodova (kviz

P-I P-II P-III P-IV P-V P-VI

Toolchain

Toolchain - predstavlja skup alata i biblioteka neophodnih zakompajliranje, linkanje i generiranje izvršnog koda zamikrokontrolera kao i aplikacije za spremanje koda u flashmemoriju mikrokontrolera.

S ciljem automatizacije procesa kompajliranja koristi se makeprogram.

make predstavlja aplikaciju za automatizaciju procesa izvršenjagrupe komandi ili aplikacija.

Pozivom make programa sa komandne linije, make aplikacija cepretražiti lokalni direktoriji za file-om Makefile. U suprotnommora se navesti ime make file-a sa -f opcijom, ukoliko make fileima proizvoljno ime.

Page 31: Arhitektura STM32F4xx ARM Cortex M4 MCU, GPIO...Prezentacija/odbrana projekta je u prvom terminu završnog ispita1. Studenti ce raditi pet (5) provjera znanja ukupno 60 bodova (kviz

P-I P-II P-III P-IV P-V P-VI

make

U osnovi Makefile se sastoji od blokova

target: dependencies(tab) system command

Pretpostavimo da imamo dva file-a main.c i fnc.c koje trebamo kompajlirati sagcc. Proces kompajliranja sa komandne linije bi bio

gcc -o main main.c fnc.c

Ukoliko koristimo make struktura make file-a Makefile bi bila

all:WWWWWgcc -o main.c fnc.c

Procedura kompajliranja bi se svela na poziv komande make u direktoriju gdjesu naši *.c file-ovi odnosno

make

Ili

make -f Makefile

Page 32: Arhitektura STM32F4xx ARM Cortex M4 MCU, GPIO...Prezentacija/odbrana projekta je u prvom terminu završnog ispita1. Studenti ce raditi pet (5) provjera znanja ukupno 60 bodova (kviz

P-I P-II P-III P-IV P-V P-VI

make

U našem primjeru nismo imali ogranicenja/ovisnosti (dependencies) s obziromna druge file-ove.

Jednolinijske komentare možemo dodavati sa karakterom #

Varijable unutar make file-a možemo kreirati na jednostavan nacin

# Ovo je primjer komentara.

# U novom redu imamo primjer kreiranja varijabli

CC = gcc

# opcije: kreiraj samo objektne file-ove i sva upozorenja

CFLAGS = -c -Wall

# target: all sada ima dependencies

all: test

test: main.o fnc.o

WWWWW$(CC) main.o fnc.o -o test

main.o: main.c

WWWWW$(CC) $(CFLAGS) main.c

fnc.o: fnc.c

WWWWW$(CC) $(CFLAGS) fnc.c

clean:

WWWWWrm *.o

Page 33: Arhitektura STM32F4xx ARM Cortex M4 MCU, GPIO...Prezentacija/odbrana projekta je u prvom terminu završnog ispita1. Studenti ce raditi pet (5) provjera znanja ukupno 60 bodova (kviz

P-I P-II P-III P-IV P-V P-VI

Organizacija MWE

Svaki STM32Fxxx projekat mora sadržavati

main.c - file koji mora sadržavati implementaciju funkcijeint main(void)stm32f4xx.h - zaglavlja koje remapira simbolicka imenasvih periferala u stvarne fizicke adrese registaramikrokontrolera.system_stm32f4xx.c - sadrži implementacijuvoid SystemInit(void) funkciju koja ima za cilj inicijalizacijudigitalne PLL-a, tipa i izvora takt impulsa.startup_stm32f4xx.s - startup file definira tabelu vektorahandler-a ISR-astm32_flash.ld - linker skriptu koja definira adrese ivelicine internog FLASH i RAM, eksterne memorije zatimdata, text, bss ostale sekcije objektnih file-ove.Makefile - komande za automatizaciju procesakompajliranja, linkanja, generiranja izvršnog file i njegovopohranjivanje u flash memoriju.

Page 34: Arhitektura STM32F4xx ARM Cortex M4 MCU, GPIO...Prezentacija/odbrana projekta je u prvom terminu završnog ispita1. Studenti ce raditi pet (5) provjera znanja ukupno 60 bodova (kviz

P-I P-II P-III P-IV P-V P-VI

GPIO Port

STM32F4xx ARM Cortex M4 mikrokontrolera ukljucuje maksimalno 11 GPIO(General Purpose Input Output) Portova sa po maksimalno 16 IO pinova.

STM32F407 VGT6 MCU koji se nalazi na STM32F4 Discovery Board-u, ima 6GPIO portova: GPIOA, GPIOB, GPIOC, GPIOD, GPIOE i GPIOF.

Svaki GPIOx Port ukljucuje 4 konfiguracijska 32-bitna registra

GPIOx_MODERGPIOx_OTYPERGPIOx_OSPEEDRGPIOx_PUPDR

Dva podatkovna 32-bitna registra i set/reset registar

GPIOx_IDRGPIOx_ODRGPIOx_BSRR

Lock registar i registar alternativnih funkcija oba 32-bitna registra

GPIOx_LCKRGPIOx_AFRHGPIOx_AFRL

Page 35: Arhitektura STM32F4xx ARM Cortex M4 MCU, GPIO...Prezentacija/odbrana projekta je u prvom terminu završnog ispita1. Studenti ce raditi pet (5) provjera znanja ukupno 60 bodova (kviz

P-I P-II P-III P-IV P-V P-VI

Struktura GPIO pina IO PORTA

Page 36: Arhitektura STM32F4xx ARM Cortex M4 MCU, GPIO...Prezentacija/odbrana projekta je u prvom terminu završnog ispita1. Studenti ce raditi pet (5) provjera znanja ukupno 60 bodova (kviz

P-I P-II P-III P-IV P-V P-VI

GPIO Registri9

GPIOx_MODER - grupe od po dva bita registra, definiraju tip IO pin-a. Funkcijekoje IO pin može imati su

00 - digitalni ulaz,01 - digitalni izlaz opšte namjene,10 - alternativna funkcija (pin spojen sa nekim drugim periferalom),11 - analogni ulaz ili izlaz.

GPIOx_OTYPER - svaki bit definira tip izlaza odgovarajuceg IO pina a može biti:[0] push-pull ili [1] open drain.

9STM32 Reference manual p278-283

Page 37: Arhitektura STM32F4xx ARM Cortex M4 MCU, GPIO...Prezentacija/odbrana projekta je u prvom terminu završnog ispita1. Studenti ce raditi pet (5) provjera znanja ukupno 60 bodova (kviz

P-I P-II P-III P-IV P-V P-VI

GPIO - digitalni izlaz

Page 38: Arhitektura STM32F4xx ARM Cortex M4 MCU, GPIO...Prezentacija/odbrana projekta je u prvom terminu završnog ispita1. Studenti ce raditi pet (5) provjera znanja ukupno 60 bodova (kviz

P-I P-II P-III P-IV P-V P-VI

GPIO Registri

GPIOx_OSPEEDR - grupe od po dva bita registra, definiraju minimalno vrijemeodnosno maksimalnu frekvenciju prijelaza iz High u Low stanje i obratno.Dozovljene vrijednosti10 su:

00 - 10 MHz,01 - 25 MHz,10 - 50 MHz,11 - 100 MHz.

GPIOx_PUPDR - grupe od po dva bita definiraju stanje neopterecenog pina.Dozvoljene vrijednosti su: , pull-up, pull-down, reserved (00,01,10,11).

00 - no pull-ups/downs,01 - pull-up,10 - pull-down.

10Važe samo za STM32F407VGT6

Page 39: Arhitektura STM32F4xx ARM Cortex M4 MCU, GPIO...Prezentacija/odbrana projekta je u prvom terminu završnog ispita1. Studenti ce raditi pet (5) provjera znanja ukupno 60 bodova (kviz

P-I P-II P-III P-IV P-V P-VI

GPIO - digitalni ulaz

Page 40: Arhitektura STM32F4xx ARM Cortex M4 MCU, GPIO...Prezentacija/odbrana projekta je u prvom terminu završnog ispita1. Studenti ce raditi pet (5) provjera znanja ukupno 60 bodova (kviz

P-I P-II P-III P-IV P-V P-VI

GPIO Registri

GPIOx_ODR - po jedan bit definira stanje IO pina koji je proglašen kao izlaznipin opšte namjene.

GPIOx_BSRR - pisanje bit-a u grupi od prvih 15 bita, setuje stanjeodgovarajuceg bita. Sa druge strane, pisanje u drugoj grupi od 15 bita resetujestanje IO pina koji je proglašen kao izlazni pin opšte namjene.

GPIOx_IDR - po jedan bit definira stanje IO pina koji je proglašen kao ulazni pinopšte namjene.

GPIOx_LCKR omogucuje zakljucavanje trenutne konfiguracije GPIO porta.

GPIOx_AFRH i GPIOx_AFRL - grupe od po 4 bita definiraju aktivnu alternativnufunkciju koje IO pin može imati.

U osnovi grupe od po cetiri bita unutar AFR registra definiraju konkretnualternativnu funkciju.

Konkretna funkcija pina zavisi od binarne kombinacije/GPIO porta/pina11

11Pogledati tabelu 7 STM32F407 datasheet na strani 56

Page 41: Arhitektura STM32F4xx ARM Cortex M4 MCU, GPIO...Prezentacija/odbrana projekta je u prvom terminu završnog ispita1. Studenti ce raditi pet (5) provjera znanja ukupno 60 bodova (kviz

P-I P-II P-III P-IV P-V P-VI

GPIO - alternativne funkcije

Page 42: Arhitektura STM32F4xx ARM Cortex M4 MCU, GPIO...Prezentacija/odbrana projekta je u prvom terminu završnog ispita1. Studenti ce raditi pet (5) provjera znanja ukupno 60 bodova (kviz

P-I P-II P-III P-IV P-V P-VI

GPIO Port - konfiguracija IO pina kao izlaz

Procedura konfiguracije IO pina na PORT-u x kao digitalni izlaz opšte namjene,sastoji se od sljedecih koraka

1. Omoguciti pristup odgovarajucem GPIOx PORT-u na AHB1 sabirnicu(bus) kao i generiranje takta za dati GPIOx sa AHB1ENR registrom izRCC (Reset and Clock Control) modula.

2. Postaviti tip IO pina u digitalni izlaz opšte namjene koristeciGPIOx_MODER registar.

3. Postaviti karakter izlaznog IO pina koristeci GPIOx_OTYPER registar.4. Odabrati frekvenciju tranzicije(switching-a) IO pina sa GPIOx_OSPEEDR

registarom.5. Postaviti trenutno stanje pina sa registrom GPIOx_ODR.

Primjer inicijalizacije GPIOD porta i setovanja pina 15 u stanje logicku nulu umain funkciji

RCC->AHB1ENR |= (RCC_AHB1ENR_GPIODEN);//RCC->AHB1ENR |= 0x00000008;12

GPIOD->MODER |= 0x80000000;GPIOD->OTYPER = 0x00000000;GPIOD->OSPEEDR |= 0xC0000000;GPIOD->ODR &= ~(0x00008000);

12Pogledati STM32F4xx reference manual str 238

Page 43: Arhitektura STM32F4xx ARM Cortex M4 MCU, GPIO...Prezentacija/odbrana projekta je u prvom terminu završnog ispita1. Studenti ce raditi pet (5) provjera znanja ukupno 60 bodova (kviz

P-I P-II P-III P-IV P-V P-VI

GPIO Port - konfiguracija IO pina kao ulaz

Procedura konfiguracije IO pina na PORT-u x kao digitalni ulaz opšte namjene,sastoji se od sljedecih koraka

1. Omoguciti pristup odgovarajucem GPIO port na AHB1 sabirnicu (bus) kaoi generiranje takta za dati GPIOx sa AHB1ENR registrom iz RCC (Resetand Clock Control) modula.

2. Postaviti tip IO pina u digitalni ulaz opšte namjene koristeciGPIOx_MODER registar.

3. Odabrati karakter neopterecenog IO pina koristeci GPIOx_PUPDRregistar.

4. Procitati stanje IO pina sa GPIOx_IDR.

Primjer inicijalizacije GPIOA porta i IO pina 0 kao digitalni ulaz sa pull-up-om umain funkciji

RCC->AHB1ENR |= (RCC_AHB1ENR_GPIOAEN)13

GPIOA->MODER &= ~(0x00000003);GPIOA->PUPDR = 0x00000001;uint32_t state = (GPIOA->IDR)&(0x00000001);

13Pogledati STM32F4xx reference manual str 238

Page 44: Arhitektura STM32F4xx ARM Cortex M4 MCU, GPIO...Prezentacija/odbrana projekta je u prvom terminu završnog ispita1. Studenti ce raditi pet (5) provjera znanja ukupno 60 bodova (kviz

P-I P-II P-III P-IV P-V P-VI

GPIO Port - elektricne karakteristike

Svi GPIO I/O digitalni pinovi mogu osigurati sink/source struje do 8 mA (max).

Pull-down i Pull-up otpornici na svim GPIO pinovima su opsegu od 30-50kΩosim PA10 i PB12 koji imaju vrijednosti u opsegu 8-15kΩ.

Kapacitet svih I/O pinova je tipicno 5 pF.

Napon histereze I/O Schmitt trigger-a je 200 mV.

Page 45: Arhitektura STM32F4xx ARM Cortex M4 MCU, GPIO...Prezentacija/odbrana projekta je u prvom terminu završnog ispita1. Studenti ce raditi pet (5) provjera znanja ukupno 60 bodova (kviz

P-I P-II P-III P-IV P-V P-VI

GPIO Port - primjer 1

PRIMJER 1

Na STM32F4 Disco nalaze se 4 LED diode. Napisati C program koji ce manipulirati 4 LED

diode (LD3-LD6) na nacin da se sve cetiri diode periodicno ukljucuju i iskljucuju.

Napomene:

Za tacnu informaciju na kojem IO pinu i kojem GPIO portu su spojeneLED, pogledati STM32F4 Disco manual p36.Pauze izmedu operacija ukljucivanja i iskljucivanja LED softverskigenerirati.

Page 46: Arhitektura STM32F4xx ARM Cortex M4 MCU, GPIO...Prezentacija/odbrana projekta je u prvom terminu završnog ispita1. Studenti ce raditi pet (5) provjera znanja ukupno 60 bodova (kviz

P-I P-II P-III P-IV P-V P-VI

GPIO Port - primjer 1 - analiza

GCC kompajler ce izbaciti svaku petlju tokom kompajliranja ukoliko ista u svomtijelu ima samo lokalnu varijablu koju inkrementiramo.

Prvo rješenje datog problema je ukidanje optimizacije.

Posljedica: velicina koda postaje znacajno veca.

Drugi nacin je da proglasimo brojacku varijablu cnt u petlji (sa kojom simuliramopauzu) kao volatile ili static.

Prefiks volatile za varijablu nagovještava kompajleru da sve dijelove koda ukojim se pojavljuje citanje/pisanje u date varijable, kompajler ne optimizira.

Nedostatak: generiranje pauza i ukljucivanje koncepta vremena u program nemože se bazirati na softverskim emulacijama pauza/vremena jer:

Vrijeme izvršavanja instrukcija varira od platforme do platforme,Kod kojim emuliramo pauzu biti ce preveden u instrukcije procesora uzavisnosti od nivoa i tipa optimizacije.Ne znamo tacno vrijeme izvršavanja jednog prolaza kroz petlju.Granulacija vremenskog koraka pauza je ogranicena i varijabilna (uzavisnosti sa opterecenjem procesora (interrupts)).

Page 47: Arhitektura STM32F4xx ARM Cortex M4 MCU, GPIO...Prezentacija/odbrana projekta je u prvom terminu završnog ispita1. Studenti ce raditi pet (5) provjera znanja ukupno 60 bodova (kviz

P-I P-II P-III P-IV P-V P-VI

GPIO Port - primjer 2

PRIMJER 2

Na STM32F4 Disco nalazi se plavi taster (plave push-button) koji cemo iskoristiti za

demonstraciju funkcionalnosti GPIO pin-a kada obavlja funkciju digitalni ulaz opšte namjene.

Napisati C program koji ce:

1. Ukljuciti sve LED diode na STM32F4 Disco razvojnoj ploci (LD3-LD6) dok je taster

pritisnut, a zatim iskljuciti kada je taster otpušten. Drugacije receno stanje LED diode mora

biti invertovano stanje tastera.

2. Ukljuciti sve LED diode na STM32F4 Disco razvojnoj ploci (D1-D4) kada se izvrši cijela

operacija on-off a zatim na sljedecoj on-off operaciji iskljuci sve LED diode. .

Napomene:Za tacnu informaciju na koji IO pin i koji GPIO port je spojen taster,pogledati STM32F4 Disco manual p36.

Page 48: Arhitektura STM32F4xx ARM Cortex M4 MCU, GPIO...Prezentacija/odbrana projekta je u prvom terminu završnog ispita1. Studenti ce raditi pet (5) provjera znanja ukupno 60 bodova (kviz

P-I P-II P-III P-IV P-V P-VI

GPIO Port - primjer 2 - analiza

Sve mehanicke i elektricne (tranzistori) prekidace prati prijelazni procesa izstanja HIGH u LOW i obratno. Dodatno, na krajevima tastera dolazi do oscilacijanapona zbog nesavršenosti dodirne površine što ima za posljedicu da tasterbude u stanju on-off par stotina puta u nekoliko milisekundi.

Oba problema možemo tretirati na nacin da koristimo softversko (debouncingrutine) ili hardversko rješenje (pull-up ili pull-down sa debouncingkondenzatorom).Najjednostavnije rješenje debouncinga je upotreba rutina za kašnjenje. Medutim,trajanje oscilacija je specificno za aplikaciju i korisnika.Rutine za kašnjenje blokiraju izvršenje ostalih rutina i neefikasne su.Rješenje: upotreba rutina za kašnjenje koje ne blokiraju izvršenje ostalihprocesa kao i analiza utjecaja stanja IO ulaznog pina.

Page 50: Arhitektura STM32F4xx ARM Cortex M4 MCU, GPIO...Prezentacija/odbrana projekta je u prvom terminu završnog ispita1. Studenti ce raditi pet (5) provjera znanja ukupno 60 bodova (kviz

P-I P-II P-III P-IV P-V P-VI


Recommended