:::: MENU ::::
Posts tagged with: am335x evm

Pin Muxing (AM335x EVM)

Bu yazida, AM335x EVM board icin external olarak kesme (interrupt) olusturmak icin gerekli pinmuxing ile gpio uzerinden export islemleri anlatilacaktir.

Dokuman uzerinde bahsi gecen islemler https://github.com/eckucukoglu/linux-tools/tree/master/gpio-interrupt uzerinden orneklenecektir.

  • Oncelikle interrupt gonderilmek istenen gpio portlari tespit edilmelidir. Bu nedenle debugfs mount islemi gerceklestirilerek, kullanimda olan gpio pinlerinin durumu (in/out, high/low) incelenmelidir.
    Bunun icin oncelikle  mount -t debugfs none /sys/kernel/debug/  ile debugfs mount edilmelidir. Ardindan  cat /sys/kernel/debug/gpio ile sistemde kayitli gpio listesine erisilebilinir. gpio-int.c ile user space interrupt islemlerimizde 40. ve 41.pinleri AM335x EVM boardu uzerinde, sirasiyla, interrupt gondermek (signal generator kullanarak) ve yakalanan interrupt sonucunda cikti alabilmek (osiloskop kullanarak) icin kullaniyoruz.
  • Bir sonraki adimda bu gpio pinlerinin board uzerindeki yerini bulmaliyiz. Bu nedenle http://www.ti.com/… adresinden indirdigimiz AM335x processors guide (am3359.pdf) ile ilgili gpio’larin hangi pin’e denk geldigini buluyoruz.
    Ornegin gpio-40 ve gpio-41 icin, dokumanda gpio1_8 ve gpio1_9 degerlerini bakiyoruz. (1*32+8 ve 1*32+9)
    gpio1_8 icin pin isminin UART0_CTSn ve mode’un ise 7 oldugunu gozlemliyoruz.
  • Ardindan http://processors.wiki.ti.com/ind… adresinden indirebileceginiz schematic (am335x_gpevm_zczbaseboard_3h0002_schematic_rev1_5c.pdf) ile expansion connector kismindan UART0_CTSn pininin yerini buluyoruz.
    UART0_CTSn -> Dokumandan gorulecegi gibi J5 21.koluna denk geliyor.
  • Su anda board uzerindeki pinin, kernel’de hangi gpio’a denk gelebilecegini biliyoruz. Bundan sonra 2 adim izlenmesi gerekiyor. Ilki gpio-40 in sisteme kayitlanmasi ve UART0_CTSn uzerinde mode ayarini 7 yaparak gpio1_8 olarak calismasini saglamak.
  • Ilk adimi  /sys/class/gpio  icindeyken

    yaptiktan sonra gpio40’i tanimlamak ve ardindan /gpio40 klasoru icerisindeki direction, edge ve active_low degerlerini istenildigi gibi ayarlayabiliriz.
    Bununla birlikte gpio-int.c icerisinde de gozlemlenebilecegi gibi

seklinde de yapmak mumkundur.

  • Ikinci adim icin ise oncelikle;  /sys/kernel/debug/omap_mux/ klasoru altinda iken,

    yaparak, secilebilir mode’lari gormek mumkundur. Burada su sekilde bir cikti almaliyiz:

Belirtilen mode’lardan 7.si yani gpio1_8 isteniyor. Dolayisiyla

yaparak mode degistirmek mumkundur.