arm tabanlı mikrodenetleyici temelleri ve programlama

22
TUNA AYAN www.tuna-ayan.com [email protected] ARM Tabanlı Mikrodenetleyici Temelleri ve Programlama

Upload: shiela

Post on 12-Jan-2016

93 views

Category:

Documents


1 download

DESCRIPTION

ARM Tabanlı Mikrodenetleyici Temelleri ve Programlama. TUNA AYAN www.tuna-ayan.com [email protected]. BAŞLAMADAN ÖNCE. GPIO(Çevresel Aygıtlar) StellarisWare İle Programlama Interrupt OLED Ekran Debug İşlemi. GPIO (Çevresel Aygıtlar). GPIO Nedir? - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: ARM Tabanlı  Mikrodenetleyici  Temelleri ve Programlama

TUNA AYAN

www.tuna-ayan.com

[email protected]

ARM Tabanlı Mikrodenetleyici

Temelleri ve Programlama

Page 2: ARM Tabanlı  Mikrodenetleyici  Temelleri ve Programlama

• GPIO(Çevresel Aygıtlar)

• StellarisWare İle Programlama

• Interrupt

• OLED Ekran

• Debug İşlemi

BAŞLAMADAN ÖNCE

Page 3: ARM Tabanlı  Mikrodenetleyici  Temelleri ve Programlama

GPIO Nedir?

• Genel amaçlı giriş ve çıkış pinlerine GPIO denir.

• Bu pinler programcı tarafından kontrol edilebilir, programlanabilir ve yönlendirilebilir.

• LM3S811 üzerinde GPIO pinleri 5 adet port altında toplanmıştır.

GPIO (Çevresel Aygıtlar)

Page 4: ARM Tabanlı  Mikrodenetleyici  Temelleri ve Programlama

GPIO (ÇEVRESEL AYGITLAR)

Özellikleri:

GPIO Modülü, her portta 8 adet pin kullanımına olanak sağlar. Bu pinlerin genel özellikleri;

• Giriş yada çıkış olarak tanımlanabilirler.

• Opsiyonel olarak pull-up, pull-down seçenekleri ile kullanılabilirler.

• Çevresel aygıt pini olarak kullanılabilirler.

• Her pinin birden fazla görevi vardır. Bu görevler arasında seçim yapılmasına olanak sağlar.

Page 5: ARM Tabanlı  Mikrodenetleyici  Temelleri ve Programlama

GPIO Modülüne Ait Fonksiyonel Tanımlamalar:

• Data Kontrolü

• Interrupt Kontrolü

• Mod Kontrolü

• Pad Kontrolü

GPIO (ÇEVRESEL AYGITLAR)

Page 6: ARM Tabanlı  Mikrodenetleyici  Temelleri ve Programlama

GPIO (ÇEVRESEL AYGITLAR)

Data Kontrolü:

• Pin için giriş çıkış ayarları bu kısımda gerçekleştirilir.

• Stellaris üzerindeki GPIODIR register’ı ile gerçekleşir.

• Gerekli pini giriş olarak tanımlamak için ‘0’ değeri, çıkış olarak tanımlamak için ‘1’ değeri yazılır.

Page 7: ARM Tabanlı  Mikrodenetleyici  Temelleri ve Programlama

GPIO (ÇEVRESEL AYGITLAR)

Interrupt Kontrolü:

• GPIO pinlerinin interrupt özelliğinin açılıp kapanmasını sağlar.

• Hangi durumlarda interrupt geleceğinin belirlenmesini sağlar.

Mod Kontrolü:

• GPIO pininin hangi işlevini kullanacağımızı belirler.

Page 8: ARM Tabanlı  Mikrodenetleyici  Temelleri ve Programlama

GPIO (ÇEVRESEL AYGITLAR)

Pad Kontrolü:

• Pad ayarlamaları için kullanılır.

• Donanımsal olarak kullanım değişikliklerinde tercih edilir.

• Opsiyonel olarak open-drain seçimi yapılmasına olanak sağlar.

Page 9: ARM Tabanlı  Mikrodenetleyici  Temelleri ve Programlama

Algoritma:

1. Cihaz üzerinde kullanacağımız port aktif hale getirilir.SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOX);

2. Port üzerinde kullanacağımız pin seçilir ve özellikleri ayarlanır.GPIOPinTypeGPIOOutput(GPIO_PORTX_BASE,GPIO_PIN_5 | GPIO_PIN_6);

3. Varsa özel ayarlar yapılır.

4. Yapmak istediğimiz işlemler gerçekleştirilir.GPIOPinWrite(GPIO_PORTX_BASE,GPIO_PIN_Y,!GPIO_PIN_Y);

STELLARİSWARE İLE PROGRAMLAMA

Uygulama

Page 10: ARM Tabanlı  Mikrodenetleyici  Temelleri ve Programlama

INTERRUPT

Interrupt Nedir?

• Bir uygulamanın, daha önemli bir uygulamanın gerçekleşmesi için kesilmesi işlemidir.

• Interrupt bağlandığı yerdeki spesifik hareketlere göre ayarlanabilir, kontrol edilebilir, kendi içerisinde de önem sırasına göre kullanılabilir.

• ARM tabanlı MCU’lar üzerinde NVIC (Nested Vectored Interrupt Controller) bulunur.

Page 11: ARM Tabanlı  Mikrodenetleyici  Temelleri ve Programlama

INTERRUPT

NVIC Nedir?

• Stellaris üzerinde 26 adet NVIC interrupt kullanılabilir.

• 0-7 arasında öncelik sırasına göre interrupt’lar kendi aralarında da sıralanabilir.(önceliği en büyük olan 0)

• GPIO pinlerine bağlanabilir.

• Maskelenebilir, Maskelenemeyen harici NMI interrupt’ı vardır.

• Vektörel olarak tanımlanır, kolay kullanım avantajı sağlar.

Page 12: ARM Tabanlı  Mikrodenetleyici  Temelleri ve Programlama

INTERRUPT

NVIC Nasıl Kullanılır:

• Proje içerisindeki startup.s dosyası içerisinden kolaylıkla kullanılabilir.

• Vektörel olarak isimlendirilmiş alanda interrupt olduktan sonra dallanılacak fonksiyon adresini belirtilir.

• Fonksiyon adresi tanımlanır.

Page 13: ARM Tabanlı  Mikrodenetleyici  Temelleri ve Programlama

STELLARİSWARE İLE PROGRAMLAMA

Algoritma:

1. İnterrupt özellikleri ayarlanır.(örn. Düşen kenar)GPIOIntTypeSet(GPIO_PORTX_BASE, GPIO_PIN_Y, GPIO_FALLING_EDGE);

2. Pin üzerindeki interrupt yakalama aktif hale getirilir.GPIOPinIntEnable(GPIO_PORTX_BASE, GPIO_PIN_Y);

3. Genel interrupt açılır.IntEnable(INT_GPIOX);

4. Interrupt fonksiyonu içerisinde Interrupt bayrağı temizlenir.GPIOPinIntClear(GPIO_PORTX_BASE, GPIO_PIN_Y);

Page 14: ARM Tabanlı  Mikrodenetleyici  Temelleri ve Programlama

OLED EKRAN

OLED Ekran Nedir?

• OLED ekran LCD ekran teknolojisine rakip olarak çıkmıştır. Işık yayan diyot(LED) familyasının son türüdür.

• Organic Light Emitting Device açılımına sahiptir.

• Düşük güçte çalışmalarından dolayı genellikle mobil uygulamalarda kullanılırlar.

Page 15: ARM Tabanlı  Mikrodenetleyici  Temelleri ve Programlama

OLED EKRAN

Stellaris OLED Ekran ÖZellikleri:

• Üzerinde SSD0303 sürücü bulunmaktadır.

• Bu sürücü sayesinde fonksiyonlar yardımıyla kolayca yazı ve resim ekleyebiliyoruz.

• Monochrome(tek renk) ekranı vardır.

• 96x16 Çözünürlük destekliyor.

Page 16: ARM Tabanlı  Mikrodenetleyici  Temelleri ve Programlama

OLED EKRAN

Resim Ekleme:

• Resim gösterimi matris tanımlanarak yapılabilmektedir.

• Stellaris üzerindeki OLED ekran ile resim gösterimi matris dolumu ile gerçekleşir.

Page 17: ARM Tabanlı  Mikrodenetleyici  Temelleri ve Programlama

OLED EKRAN

Algoritma:

1. Hızı ayarlanır.Display96x16x1Init(true);

2. String yazılır.Display96x16x1StringDraw("Merhaba", 0, 0);

Page 18: ARM Tabanlı  Mikrodenetleyici  Temelleri ve Programlama

DEBUG

Debug Nedir?

• Türkçesi hata ayıklama olan bu yöntem programcıya kodunu adım adım inceleme imkanı sunar.

• Adım adım kod çalıştırmanın yanında anlık değişkenlerimizin değerini de okumak mümkündür.

• Başlarda simülasyon düzeyinde olan bu işlemler artık gömülü sistemlerde cihazın üstünde debug yapma özelliği getirmiştir. Aynı zamanda zorunlu hale de gelmiştir.

Page 19: ARM Tabanlı  Mikrodenetleyici  Temelleri ve Programlama

DEBUG

JTAG Nedir?

• Joint Test Action Group olarak açılabilir.

• Bir debug çeşididir. İşlemciler üzerindeki alt blokları kontrol eder.

• Gömülü sistemlerde adım adım çalışmayı sağlar.

• 1990 yılında test mekanizması olarak çıkmıştır.

Page 20: ARM Tabanlı  Mikrodenetleyici  Temelleri ve Programlama

DEBUG

JTAG Elemanları:

Page 21: ARM Tabanlı  Mikrodenetleyici  Temelleri ve Programlama

DEBUG

JTAG Nasıl Çalışır?

Page 22: ARM Tabanlı  Mikrodenetleyici  Temelleri ve Programlama

DEBUG

ICDI

• In Circuit Debugger Interface olarak açılabilir.

• Stellaris LM3S811 üzerinde bilgisayar ile arasındaki debugger ICDI tipi debugger dır.

• Bilgisayar ve stellaris arasında debug ara yüzünü kolayca oluşturur.