GPIO'lar Hakkında

          ARM işlemcimizde her biri 16 bit olan 5 adet GPIO bulunmaktadır. Bunlar GPIOA, GPIOB, GPIOC, GPIOD, GPIOE dir. Dokumanlarda GPIOx şeklinde gösterimde tüm GPIO için ortak bir açıklama yapılıyor demektir. (x yerine A,B,C,D,E koyabilirsiniz anlamında.)

          Çipin donanım yeteneklerinde bağlı olarak GPIO pinleri, output yada input yapılarak I/O port olabileceği gibi alternatif fonksiyonlarla ilişkilendirilebilir yada Analog giriş yada çıkış yapılabilir. Her bir GPIO'nun 32 bitlik kontrol registeri bulunur. Bunlar; GPIOx_MODER , GPIOx_OTYPER , GPIOx_OSPEEDR , GPIOx_PUPDR

          Eğer GPIO I/O port olarak tanımlanırsa bu I/O portların 16 bitlik registerleri bulunur ve bunlar GPIOx_IDR GPIOx_ODR I/O portların her bir pinine istersek bit bit erişilebiliriz. Bunun için GPIOx_BSRR registerinden yararlanırız.
İstersek GPIO tanımlarını yaptıktan sonra tanım registerlerini kitleyebiliriz. Bu durumda GPIO tanımlamaları, çip resetleninceye kadar değiştirilemez. Bunu kilitleme işlemini GPIOx_LCKR registeri ile yaparız. Bu işlem kontroldan çıkmış bir yazılımın portlar üzerinde yanlış işlem yapmasını engeller ayrıca işletim sistemi gibi yapılarda kullanıcı programının yetkilerini sınırlar.
Bir GPIO nun herhangi bir bitine alternatif görev verilebilir. Bu görevler GPIOx_AFRL ve GPIOx_AFRH registerleri üzerinden tanımlanır.

Hiç yorum yok:

Yorum Gönder