Modül1-Ders1-Ders2 - Genel Giris-Datasheet Okuma-Stm32f4 Özellikleri

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 14

DERS1-DERS2: GENEL GIRIS-DATASHEET

OKUMA-STM32F4 ÖZELLIKLERI

MODÜL ICERIGI;

1.Gömülü Yazılıma Giriş


Gömülü yazılım nedir ?
Gömülü yazılımın kullanım alanları
Gömülü yazılım mühendisi olmak

2.Temel Kavramlar
Mikroişlemci ve mikrodenetleyici kavramları
System on Chip(SOC)
DRAM ve SRAM
EEPROM ve flash memory
Osilatörler
Giriş-çıkış birimi

3.ARM ve ST Giriş
Arm ve ST nedir?
Dökümanların indirilmesi ve tanıtılması
Arm ailesine genel bakış
ARM mimarisinin incelenmesi
Bus kavramı
Instruction set kavramı
Register kavramı
Preprocessor Memory Mapping
Adres ve offset Kavramı
STM32 kartının tanıtılması
STLink Programlayıcı
4.ARM CORE
Arm core
Reset vector
Stack pointer
Link register
Program counter

Kurs süresi 100+ saat olacak.

Kurs kapsami:
Hersey temelden sifirdan ele alinacaktir. Ön kosul C bilgisi kesin olmalidir.

Kursta yapilan uygulamalar REGISTER düzeyinde olacaktir. Bunun yaninda HAL Kütüphanesi ve
CUBEMX de anlatilacaktir.

Datasheet okuma becerisi kazandirilacak.

STM32 Discovery Karti kullanilacak ve Gelistirme ortami olarak STMCUBE IDE kullanilacaktir. Bu
sadece örnek amacli ama genel olarak MIKRODENETLEYICI programla becerisi saglanacaktir.

Kurs kapsaminda C Programlama anlatilmayacaktir sadece gerekli yerlerde hatirlatmalar yapilacaktir.

GÖMÜLÜ SISTEMLER (EMBEDDED SYSTEM)

Elektronik ve yazilimin birLesmesi ile olusan, hayati boyunca ayni isi yapan sistemlere gömülü sistem
denir.

Firmware(embedded Software): Gömülü sistem icindeki yazilim. Gömülü sistemler islem gücü, bellek
kapasitesi olarak sinirli kaynaga sahip sistemlerdir. Kapasite bilgisayarlar gibi GB seviyesinde degil MB
hatta KByte seviyesinde bellek kapasitesine sahiptirler. Gömülü sistemin güc tüketimleride önemlidir.

Gömülü sistemler programlarken;

- minimum program bellegi ve ram kullanimi,


- hizli,

- az güc tüketmeli,
- bakimi kolay,
- ve okunurlugu yüksek olmalidir.

Gömülü System programlamasinda cogunlukda C Programlama dili kullanilmaktadir.


Ardindan en cok CPP Programlama dili kullanilmaktadir.

Kod verimliligi söz konusu olmasindan dolayi C ve CPP programlama dilleri kullanilmaktadir.

Genel olarak Is ilanlarinda bir Gömülü Yazilim Mühendisinden beklenti nelerdir:

- Iyi seviyede C, CPP bilgisine sahip,


- ARM Cortex Mimarisini yorumlayabilen, register seviyesinde(low level) kod yazabilen,
- Haberlesme ve cevre birimleri(UART, SPI, i2S, Ethernet....) protokollarine hakim,
- Teknik seviyesinde Ingilizce,
- STM32, STM8; ESP32 islemcile ile calismis,
- GIT versiyon kontrol sistemini kullanabilen,
- Tercihen CPP ve Linux bilen,
- Digital ve Analog sinyal isleme algoraitmalarina hakim
- Elektronik ölcüm cihazlarini(Osiloskop, Sinyal Generator...) kullanabilen,
- Gercek zamanli isletim sistemleri hk bilgi sahibi(RTOS, MicroROS...),

- Belli seviyede elektronik bilgisi,

MALZEME LISTESI:(Baslangic setidir. Ders boyunca eklemeler yapilacaktir.)

1. - STM32 Discovery karti,


2. - Breadboard,
3. - Jumper Kablolar,
4. - LED,
5. - Cesitli Direncler,
6. - Pushbutton,
7. - Lojik Analyzer,

8. - 2x16 LCD Ekran(I2C destekli),


9. - Arduino,
10. - USB-TTL,
11. - ADXL345,
12. - Servo Motor,

ILK DERSE GIRIS

GPIO - Register amatör düzey


GPIO - Register Profesyonel düzey,
GPIO - HAL Kütüphanesi
CUBEMX ile yapilacak

ARM (Advanced RISC Maschine) MIMARISI NEDIR?

RISC tabanli bir islemci mimarisidir.

1. Yüksek Performans,
2. Düsük Güc Tüketimi,
3. Maliyet Düsüklügü,
ARM mimarisinde 3 temel grup bulunmaktadır:

1. Klasik ARM işlemciler: ARM7, ARM9, ARM11


2. Gömülü sistemlere yönelik ARM işlemciler: Cortex-M0, Cortex-M1, Cortex-M3, Cortex-M4
3. Uygulama seviyesindeki ARM işlemciler: Cortex-A5, Cortex-A8, Cortex-A9, Cortex-A15

ARM firmasi islemci ya da mikrodenetleyici üretmez sadece islemci mimarisi tasarlar. Yari iletken üretim
firmalari (ST, NXP, ATMEL,Samsung...) ARM firmasinin tasarladigi islemci mimarisini satin alarak ona
uygun mikrodenetleyici üretir.

Aritmetik ve lojik isllemleri yapan birim CPU. Bunun kaydedildigi alan Memory. Bunun dis dünya ile
baglantisini I/O Birimleri ile saglanir.
En cok kullanacagimiz iki dokuman:

STM32F04 DATASHEET
STM32F4 REFERENCE MANUAL

https://www.st.com/resource/en/datasheet/stm32f405rg.pdf
https://www.st.com/resource/en/reference\_manual/dm00031020-stm32f405-415-stm32f407-417-
stm32f427-437-and-stm32f429-439-advanced-arm-based-32-bit-mcus-stmicroelectronics.pdf

Bu dokumanlar bastan sona okunmayacak ihtiyac halinde ilgili bolumlere bakilacaktir.

Bu dokumanlar haricinde devamli baska dokumanlarda inceleyecegiz..STM32 Serisi dokumanlari:

https://www.st.com/en/microcontrollers-microprocessors/stm32f4-series/documentation.html

Uygulama yaptikca hangi dokumana, hangi bölüme bakmamiz gerektigini ögrenecegiz..

STM32f4 NUCLEO Kart dokumani

https://www.st.com/resource/en/user\_manual/um1724-stm32-nucleo64-boards-mb1136-
stmicroelectronics.pdf

DERS2:DATASHEET üzerinden STM32f4 Özellikleri

STM32F04 Datasheet Okuma


Arm Cortex M4---> Mikro mimari olarak M4 kullaniyor

32b MCU ---> 32 bitlik mikrodenetleyici

FPU --> Floating Point Unit:Gercel Sayilarla islemleri daha hizli yapmamizi saglayan ayri bir ünitesi var.

1MB Flash ---> Kalici Bellek

4KB RAM---> RAM bellegi

--->> Ethernet, 17 Timer, ADC, 15 Haberlesme birimi ve Kamera modülü var.


Features:

32 Bitlik MCU, FPU sahibi ve 168 Mhz'e kadar frekansi cikar.

1.25 DMIPS/MHZ ---> MHZ basina DMIPS degeri, 1.25x168= 210 DMIPS degerine sahip
microdenetleyici. Diger islemciler ile karislastirma yapmak icin kullanilabilir.

DSP:Digital Signal Processing: Sayisal isaret islemede kullanmak icin kullanilan islemcilerdir. MCU'lar
genel amacli mikrodenetleyicilerdir.

1Mbyte hafiza**(Flash Memory)-**--> Kalici bellek, yani elektrik enerjisi kesilince de veri silinmiyor.
Program kodlari Flash da olur. ST Link Programlayicisi ile flash' lama yapilir. Bizim mikrodenetleyici
board üzerinde hazir var.
SRAM: Statik RAM: Yazilabilir silinebilir RAM. Degiskenler RAM de tutulur Energi kesildiginde
icindeki veriler silinir!!

LCD Modul baglanabiliyor


1.8V-3.6V arasi calisma Gerilimine sahip

POR: Power On Reset,


PDR:Power Down Reset

4-26 Mhz arasinda harici Crystal Osilator baglanabilir.


Internal 16 Mhz RC Osilatöre sahip. Crystal Osilatorler RC osilatorlere gore daha stabil calisirlar.

32 kHz kristal osilatöre sahip. Özel amaclar icin kullanilir. WDT, Real Time Clock
PLL; frekansi istenilen degeri getirmek icin kullanilir.

Low Power Operation: Düsük güc harcama özelligine sahip. Sleep, Stop, Standby modlarina
sahip.

Sleep Modu: islemcinin saat isareti ve cevresel birimler aktif. islemcinin cekirdek(Core) kismi durur.
Tekrar calismaya hizli gecer.
Stop Mode: Islemcinin saat isareti, cekirdek kismi ve cevresel birimler durur. Islemci daha az güc
tüketir bur durumda.
Standby Mode: Islemciyi yazilimsal oalrak kapatmak. Software off.

----> Milisaniyelerin önemli olmadigi, güc tüketiminin önde oldugu durumlarda Sleep Mode kullanilabilir.

Vbat: Real Time Clock(RTC) icin disardan birgüc baglanabilir. Islemcinin gücü kesilse dahi saat
calismaya devam eder.
3 adet 12 bit cözünürlükte ADC var.

2 adet 12 bit cözünürlükte DAC var.


17 adete kadar TIMERS var.

Debug Mode: SWD ve JTAG VAR: Biz SWD kullanacagiz.


140 adete kadar I/O Birimi var. I/O calisma frekansi 86 Mhz e kadar cikabiliyor.
15 adete kadar haberlesme birimi var. UART, SPI, I2C, CAN,SDIO

96 bitlik disardan programlayarak degisitirilemeyen unique ID'ye sahip.

BLOCK DIAGRAM
Arm Cortex Islemcileri:

Micro Architecture:Bular biribirine nasil baglanacak, verielr nasil tasinacak, kontrol mekanizmasi
islemcinin elektronik arayüzü
Instruction Set Architecture (ISA) :Yazilimsal arayüzü
Register: islemcinin cekirdek kisminda yer alan bellek bölgesine denir. Register olabilmesi icin hizli bir
sekilde yazilip ve silinebiliyor olmasi ve islemcinin cekirdek kismiyla baglatili olmali.

Registerlar bir sayi ile adreslenir yada özel bir isim ile de isimlendirilir. GPIOA gibi..

Memory Cell: Islemcinin cekirdek kisminin disinda kalan bolgeye denir.

Bu bellek alanlarinin bir bellek adresi ve bellek genisligi olur.

Absolute Adres: Bir yerin baslangic adresinden gittigi yere kadar olan adresi ifade ediyor. 2000 ---> X
Noktasi

Relative Adres: Bir yeri referans alarak ifade edilen adres. Y=X+400

Offset: Bir adresin referansa göre degeri

Y=X+400; Y noktasinin offset degeri 400

Z=Y+300; Z nin X'e gore offset degeri 700

Tera-> 10^12 2^40

Giga-> 10^9 2^30


Mega->10^6 2^20
Kilo-> 10^3 2^10
-------10^0

mili->10^-3
micro->>10^-6
nano->10^-9

piko->10^-12

MEMORY MAPPING
Cevresel birimleri kullanabilmek icin burdaki adres bloklarini kullanacagiz. Biz burdaki adres belleklerini
010101... yazarak programlama yapacagiz. Register seviyesinde programlama buna denir. Yada teknik
anlamda Bare Matel Programming denir.

BOOT Pins: Programiniz nereden baslasin. Flash memory, System Memory, SRAM bunlardan
hangisinden baslasin sisteme güc verildiginde. BOOT pinlerinin durumuna göre.

Boot Loader: Islemcinin icindeki programi degistirmek icin kullanilir. Mesela bir cihaz ürettik 20 bin
kisiye sattik fakat yazilimsal hata var. Bunu düzeltmenin yolu Boot Loader.
Bizim islemcimiz 32 bitlik bir islemci. Yani bir cycle'da 32 bit büyüklügünde veri isleyebilir. 64 bitlik bir
veri alip yada göndermek icin 2 cycle göndermeli.

GPIO --->>> 0x4002 0000 - 0x4002 03FF adres araliginda

uint32_t* pr=(uint32_t*)0x40020000; //GPIO

*pr=20; //set amacli kod

uint32_t k;

k=*pr;//get amacli kod

Osilatörler:
HSI(High Speed Internal)

HSE(High Speed External)

LSI(Low Speed Internal)

LSE(Low Speed External)

Internal Osilatörler RC devrelerinden olusan RC Osilatörlerdir.

Crystal Osilatörler RC Osilatorlere göre daha kararlidir.

You might also like