beagleboard xm İle harİcİ bİr mİkrodenetleyİcİnİn haberleŞtİrİlmesİ

21
BEAGLEBOARD XM İLE HARİCİ BİR MİKRODENETLEYİCİNİN HABERLEŞTİRİLMESİ GİRİŞ Proje kapsamında Beagleboard üzerinde Linux tabanlı işletim sistemi olan angstrom koşturulup, Beagleboard ve seçilen mikrodenetleyicinin birlikte çalıştırılması sağlanmıştır. Bu kapsamda öncelikle bir mikroSD karta angstrom işletim sistemi yüklenmiş ve bunun Beagleboard üzerinde koşturulması sağlanmıştır. Ardından Beagleboard ile seçilen mikrodenetleyicinin haberleşmesi için Linux sistemlerde seriport haberleşmesi kullanımı için geliştirilmiş olan açık kaynak kodlu libcssl kütüphanesi indirilmiş ve kodun üzerinde düzenleme yapıldıktan sonra cross-compile işlemi yapılmıştır. Elde edilen arm işlemcilerde çalıştırılabilir dosya beagleboard’ da koşturulan angstrom işletim sistemine aktarılmıştır. Bu dosyayı çalıştırarak seriporttan istenilen verinin gönderilmesi sağlanmıştır. Seriporttan gönderilen veri bir mikrodenetleyici ile alınmış ve LEDler üzerinde bu veri gösterilmiştir. Mikrodenetleyici olarak PIC18F4680 seçilmiştir. Böylece alınan verinin gönderilen veriyle tutarlılık sağlayıp sağlamadığı kontrol edilmiştir. Bu şekilde Beagleboard’dan çalıştırılan dosyaya göre seriporttan harici bir mikrodenetleyiciye veri gönderebilir ve mikrodenetleyici de çalışan bu dosyaya göre portlara erişerek istenilen uygulamayı yapabiliriz. Örneğin ‘r’ karakteri gönderildiyse mikrodenetleyicinin portlarına bağlı iki motorun hızını ayarlayarak robotumuzu sağa dönderebiliriz. Yada mikrodenetleyicide ayarlanan karakter alındığında mikrodenetleyicinin bir portuna bağlı sensorden bilgi alıp bu bilgiyi Beagleboard’ a yollayabiliriz. Bu şekilde uygulamalar çoğaltılabilir. BEAGLEBOARD’A ANGSTROM DAĞITIMININ KURULMASI Angstrom gömülü sistemler için geliştirilmiş bir linux dağıtımıdır. Angstrom dağıtımının kurulması için yapılması gerekenler; en az 2gb’lık hafızaya sahip olan bir mikroSD kart, bu kartın biçimlendirilmesi, bu karta gerekli dosyaların yüklenmesi, bilgisayarımızda kullandığımız linux dağıtımına minicom’un yüklenmesi ve dağıtımın Beagleboard üzerinde çalıştırılmasıdır. Öncelikle SD kartımızı boot işleminin yapılabilmesi için FAT, dosya sistemi ve dosya sistemimizin çekilebilmesi için linux dosya sistemi olan ext3 olarak iki parça halinde biçimlendirmemiz gerekiyor. Disk biçimlendirme ve bölümlendirme programı olan gparted’ ı kullanmak için konsola “sudo apt-get install gparted” komutunu vererek bu programı sistemimize yüklüyoruz. SD kartımızı bilgisayara takıyoruz ve ardından konsolu açıp gparted yazarak bu programı açıyoruz. Program arayüzünde öncelikle sağ üst köşeden uygun hafıza birimini(bilgisayarımıza taktığımız SD kart) seçiyoruz.

Upload: eren-telif

Post on 29-Jul-2015

138 views

Category:

Documents


8 download

TRANSCRIPT

Page 1: BEAGLEBOARD XM İLE HARİCİ BİR MİKRODENETLEYİCİNİN HABERLEŞTİRİLMESİ

BEAGLEBOARD XM İLE HAR İCİ BİR MİKRODENETLEY İCİNİN HABERLEŞTİRİLMESİ

GİRİŞ

Proje kapsamında Beagleboard üzerinde Linux tabanlı işletim sistemi olan angstrom koşturulup, Beagleboard ve seçilen mikrodenetleyicinin birlikte çalıştırılması sağlanmıştır. Bu kapsamda öncelikle bir mikroSD karta angstrom işletim sistemi yüklenmiş ve bunun Beagleboard üzerinde koşturulması sağlanmıştır. Ardından Beagleboard ile seçilen mikrodenetleyicinin haberleşmesi için Linux sistemlerde seriport haberleşmesi kullanımı için geliştirilmiş olan açık kaynak kodlu libcssl kütüphanesi indirilmiş ve kodun üzerinde düzenleme yapıldıktan sonra cross-compile işlemi yapılmıştır. Elde edilen arm işlemcilerde çalıştırılabilir dosya beagleboard’ da koşturulan angstrom işletim sistemine aktarılmıştır. Bu dosyayı çalıştırarak seriporttan istenilen verinin gönderilmesi sağlanmıştır. Seriporttan gönderilen veri bir mikrodenetleyici ile alınmış ve LEDler üzerinde bu veri gösterilmiştir. Mikrodenetleyici olarak PIC18F4680 seçilmiştir. Böylece alınan verinin gönderilen veriyle tutarlılık sağlayıp sağlamadığı kontrol edilmiştir. Bu şekilde Beagleboard’dan çalıştırılan dosyaya göre seriporttan harici bir mikrodenetleyiciye veri gönderebilir ve mikrodenetleyici de çalışan bu dosyaya göre portlara erişerek istenilen uygulamayı yapabiliriz. Örneğin ‘r’ karakteri gönderildiyse mikrodenetleyicinin portlarına bağlı iki motorun hızını ayarlayarak robotumuzu sağa dönderebiliriz. Yada mikrodenetleyicide ayarlanan karakter alındığında mikrodenetleyicinin bir portuna bağlı sensorden bilgi alıp bu bilgiyi Beagleboard’ a yollayabiliriz. Bu şekilde uygulamalar çoğaltılabilir. BEAGLEBOARD’A ANGSTROM DA ĞITIMININ KURULMASI Angstrom gömülü sistemler için geliştirilmiş bir linux dağıtımıdır. Angstrom dağıtımının kurulması için yapılması gerekenler; en az 2gb’lık hafızaya sahip olan bir mikroSD kart, bu kartın biçimlendirilmesi, bu karta gerekli dosyaların yüklenmesi, bilgisayarımızda kullandığımız linux dağıtımına minicom’un yüklenmesi ve dağıtımın Beagleboard üzerinde çalıştırılmasıdır. Öncelikle SD kartımızı boot işleminin yapılabilmesi için FAT, dosya sistemi ve dosya sistemimizin çekilebilmesi için linux dosya sistemi olan ext3 olarak iki parça halinde biçimlendirmemiz gerekiyor. Disk biçimlendirme ve bölümlendirme programı olan gparted’ ı kullanmak için konsola “sudo apt-get install gparted” komutunu vererek bu programı sistemimize yüklüyoruz. SD kartımızı bilgisayara takıyoruz ve ardından konsolu açıp gparted yazarak bu programı açıyoruz. Program arayüzünde öncelikle sağ üst köşeden uygun hafıza birimini(bilgisayarımıza taktığımız SD kart) seçiyoruz.

Page 2: BEAGLEBOARD XM İLE HARİCİ BİR MİKRODENETLEYİCİNİN HABERLEŞTİRİLMESİ

Eğer kartta herhangi bir bölüm varsa üstüne sağ tıklayıp siliyoruz (sil komutu aktif değilse önce ayırmak gerekiyor).

Ardından yeni bir bölme oluşturuyoruz. İlk oluşturacağımız bölüm boot işlemi için olacak. Bu bölümün boyutu: 100 MiB, hizalama çeşidi: silindir, dosya sistemi: fat32 olarak seçip etiket olarak boot ismini veriyoruz.

Kalan hafıza ile de ext3 sisteminde hizalama çeşidi silindir,etiket ismi rootfs olan bir bölüm oluşturup uygula deyip programı kapatıyoruz. Tekrar konsolu açıp “sudo fdisk /dev/sdb” komutunu

Page 3: BEAGLEBOARD XM İLE HARİCİ BİR MİKRODENETLEYİCİNİN HABERLEŞTİRİLMESİ

yazıp SD karta erişiyoruz. Daha sonra sırayla “a” ,“1” ve ”w” komutlarını giriyoruz. Böylelikle kartın 1. bölümünün (FAT32’ li bölüm) boot bayrağını aktif edip kaydedip çıkmış oluyoruz. Bu aşamaya kadar yapılan işlemlerle sd kartı formatlama ve bölümlendirme işlemini gerçekleştirmiş oluyoruz. Bölümleri oluşturduktan sonra SD karta yükleyeceğimiz dosyalarında hazır olması gerekiyor. FAT32 li kısma yükleyeceğimiz dosyalar için http://www.angstrom-distribution.org/demo/beagleboa rd/ sitesinden MLO ,u-boot.bin ve uImage dosyalarını indiriyoruz. Kolaylık olması açısından indirdiğimiz bu dosyaları ve daha önceden indirdiğimiz imaj dosyalarını home klasörüne kopyalıyoruz. Beagleboard için Angstrom işletim sistemi dosyalarını internette bulabilmek mümkün. Fakat işimize yönelik bir Angstrom işletim sistemi kurmak için http://narcissus.angstrom-distribution.org/ adresine girdiğimizde karşımıza çıkan ekranda aşama aşama işletim sistemini oluşturmaya başlıyoruz. Oluşturulan işletim sisteminin özellikleri şu şekilde seçilmiştir.

Page 4: BEAGLEBOARD XM İLE HARİCİ BİR MİKRODENETLEYİCİNİN HABERLEŞTİRİLMESİ
Page 5: BEAGLEBOARD XM İLE HARİCİ BİR MİKRODENETLEYİCİNİN HABERLEŞTİRİLMESİ
Page 6: BEAGLEBOARD XM İLE HARİCİ BİR MİKRODENETLEYİCİNİN HABERLEŞTİRİLMESİ
Page 7: BEAGLEBOARD XM İLE HARİCİ BİR MİKRODENETLEYİCİNİN HABERLEŞTİRİLMESİ

Build seçeneğine tıkladıktan sonra karşımıza çıkan sayfada bir süre beklemek gerekmektedir. Bu süre yaklaşık 30 dakika sürebilir.

Page 8: BEAGLEBOARD XM İLE HARİCİ BİR MİKRODENETLEYİCİNİN HABERLEŞTİRİLMESİ

Oluşan dosyalardan küçük olan araçlar , boyutu büyük olan ise sistem imajımız. Artık İmaj dosyamız hazır boot işlemine geçebiliriz. Aşağıdaki adımları adım adım gerçekleştiriyoruz.

sudo mkdir -p /tmp/disk (disk isminde bir geçici klasör oluşturuyoruz ) sudo mount /dev/sdb2 /tmp/disk (oluşturduğumuz klasörle ext3 li bölümü tek klasöre bağlıyoruz) sudo su (süper kullanıcı moduna geçiyoruz) (narcisusdan indirdiğimiz MLO, u-boot.bin ve uImage dosyalarını sırayla fat32li bölüme kopyalıyoruz) tar -zxvf /'home/erdem/Angstrom-2011.12-narcissus-b eagleboard-i686- Angstrom -image-toolchain.tar-C/tmp/disk (ext3 bölümündeki disk klasörüne narcisus dan indirdiğimiz işletim sistemi araçlarını aktarıyoruz) tar -zxvf /'home/erdem/ Angstrom-image-beagleboard. tar' -C/tmp/disk exit (süper kullanıcı modundan çıkıyoruz) sudo umount /tmp/disk (oluşturduğumuz geçici disk dosyasıyla bağlantıyı koparıyoruz) sudo mount /dev/sdb1 /tmp/disk (fat32 li bölüm için bağlantıyı kuruyoruz) (narcisusdan indirdiğimiz MLO, u-boot.bin ve uImage dosyalarını sırayla fat32li bölüme kopyalıyoruz) sudo cp /'/home/erdem/MLO' /tmp/disk sudo cp /'/home/erdem/u-boot.bin' /tmp/disk sudo cp /'/home/erdem/uImage' /tmp/disk sudo umount /tmp/disk (disk dosyasıyla fat32li sistemin bağını koparıyoruz) sync Bu işlemlerin ardından sd kartımıza angstrom yüklemiş oluyoruz. Artık bilgisyardan çıkarabiliriz.

Page 9: BEAGLEBOARD XM İLE HARİCİ BİR MİKRODENETLEYİCİNİN HABERLEŞTİRİLMESİ

Minicom, beagleoard üzerinde çalışan işletim sistemindeki değişikleri ve işlemleri seriport üzerinden göstermek için kullanılan bir pakettir. Sd kartı beagleboarda takmadan önce sistemimizde bu paket yüklü değilse “sudo apt-get install minicom ” komutu ile gerekli paket yüklenmelidir.

Beagleboard’da yapılan işlmeleri konsolda görmek için bir seriport-usb dönüştürücü kullanılır.

Minicom paketini yükledikten sonra bu dönüştürücüyü bilgisayarımıza takıp konsola “ls /dev ” komutu girilerek bilgiayarımıza bağlı olan dönüştürücünün hangi isimde olduğuna bakılır. Bu genellikle ttyUSB0 olmaktadır:

Ardından konsola “sudo minicom –s ” komutu yazılarak ayraları yapmamız gerekir. Bu komut ile konsolda ayar menüsü görünür:

Page 10: BEAGLEBOARD XM İLE HARİCİ BİR MİKRODENETLEYİCİNİN HABERLEŞTİRİLMESİ

Ayar menüsünde “serial port setup ” a girilir ve ayarlar aşağıdaki gibi değiştirilir.

Burada ttyUSB0 yukarda bahsedildiği gibi bakıldığında değişiklik gösteriyorsa ayarlar

kısmında uygun olan isim yazılır. Ardından “save setup as dfl ” e tıklar ve her seferinde ayarları yapmamak için kaydederiz. Bu işlemle birlikte minicom ayarlarını tamamlamış oluyoruz.

Bu işlemi de yaptıktan sonra bilgisayarımız ile birbirine seriport-usb dönüştürücü kabloyla

bağlı olan beagleboarda SD kartımızı takıp yapılan işlemlerin bitmesini bekliyoruz. Bu işlem kartı ilk taktığımızda biraz uzun sürebilir. İşlem başladığında ve bittiğindeki ekran çıktıları aşağıdaki gibidir:

Page 11: BEAGLEBOARD XM İLE HARİCİ BİR MİKRODENETLEYİCİNİN HABERLEŞTİRİLMESİ

Son olarak “root ” ismiyle sisteme giriş yapmamız gerekir.

BEAGLEBOARD’IN M İKRODENETLEY İCİ İLE HABERLE ŞTİRİLMESİ Ev sahibi bir bilgisayar sistemi üzerinde hedef bir bilgisayar sistemi için kod derleme işlemine

çapraz derleme denir. Gömülü sistemlerde kullanılır, çünkü hedef sistem genellikle yazılım geliştirebilecek ve derleyebilecek kaynağa sahip değildir. Yani yazdığımız kodu arm işlemcili beagleboard’da çalıştırabilmek için bilgisayarımızda arm işlemciye göre derleyeceğiz ve elde ettiğimiz çıkış dosyasını arm işlemcili gömülü sistemde çalıştırabileceğiz. Çapraz derleme için Codesourcery programını kullanacağız. Program https://sourcery.mentor.com/sgpp/lite/arm/portal/re lease858 adresinden indirilir ve programın kurulumu aşağıdaki şekilde yapılır. Bu adresten IA32 GNU/Linux Installer dosyasını indirip kurulumu onun üzerinde yapıyoruz.

Page 12: BEAGLEBOARD XM İLE HARİCİ BİR MİKRODENETLEYİCİNİN HABERLEŞTİRİLMESİ

İndirdikten sonra dosyayı arşivden çıkarıp /home/<kullanıcı adı> dizinine getiriyoruz ve terminal üzerinden

sudo chmod +x <dosyanın ismi>

./<dosyanın ismi>

komutlarını girerek programı çalıştırıyoruz

Karşımıza bir yükleme ekranı geliyor. Daha sonra adımları takip ediyoruz. tess olarak yazılan kısım kullanıcı addır. Sizde faklı olacaktır.

Page 13: BEAGLEBOARD XM İLE HARİCİ BİR MİKRODENETLEYİCİNİN HABERLEŞTİRİLMESİ
Page 14: BEAGLEBOARD XM İLE HARİCİ BİR MİKRODENETLEYİCİNİN HABERLEŞTİRİLMESİ

Böylelikle tess ismindeki dizin içerisine derleyiciyi kurmuş olduk.

Beagleboard üzerindeki seriport çıkışı ilk ayarlamalar ve dosya işlemlerinin görüntülenmesi

için kullanıldığından mikrodenetleyiciyle haberleşme usb-seriport dönüştürücü üzerinden gerçekleşmektedir. Sonuç olarak elimizde HDMI girişe sahip bir monitör yada beagleboard’ ın DVI-D çıkışını bağlayabileceğimiz uygun bir monitör yoksa iki adet usb-seriport dönüştürücüye ihtiyacımız olacaktır. Bunlardan biri beagleboard’da yaptığımız işlemleri görmek için beagleboard’un seri portundan bilgisayarımızın usb girişine bağlıdır. Diğeri ise mikrodenetleyici ile beagleboard’ın haberleşmesi için beagleboard’ın usb girişinden mikrodenetleyicili devreye bağlanır.

Beagleboard’a dönüştürücü kabloyu taktığımızda gözlenen kablo bilgileri aşağıdaki gibidir.

Beagleboard’a takılan dönüştürücünün hangi ismi aldığını “ls /dev” komutuyla

görebiliriz. Burada ttyUSB0 ismiyle yer almaktadır.

Page 15: BEAGLEBOARD XM İLE HARİCİ BİR MİKRODENETLEYİCİNİN HABERLEŞTİRİLMESİ

Linux sistemlerde seriport haberleşmesi kullanımı için geliştirilmiş olan açık kaynak kodlu

libcssl kütüphanesi kullanılıştır. Kütüphane verilen adresten indirilebilir. http://sourceforge.net/projects/cssl/files/libcssl/ 0.9.4/

İndirilen kütüphane üzerinden gönderilmek istenen verilere göre değişiklikler yapılıp çapraz derleme işlemi yapıldıktan sonra beagleboard üzerinde çalıştırılması gerekmektedir.

İndirilen kütüphane içerisinde haberleşme ayarları ve gönderilmek istenen veriler test.c dosyasında değiştirilir.

Libcssl dosyası içindeki test.c dosyası açılır ve aşağıdaki gibi değişiklikler yapılır.

Page 16: BEAGLEBOARD XM İLE HARİCİ BİR MİKRODENETLEYİCİNİN HABERLEŞTİRİLMESİ

serial=cssl_open() fonksiyonu donanımı ve haberleşme için gerekli parametreleri ayarlama

işlemlerini yapmaktadır. Beagleboard üzerindeki seriport dönüştürücü donanımı /dev/ttyUSB dizini altında olduğu için bu parametre girilmiş ve mikrodenetleyicinin seriport kesmesinin ayarlarını içermiştir (parite biti,bitiş biti,baud rate oranı vs). cssl_putstring(serial, “ “) fonksiyonu istenen veriyi gönderir. Örnek olarak şekilde “p“ karakteri gönderilmektedir. Bu karakterin hexadecimal karşılığı mikrodenetleyicinin b portuna bağlı 8 ledde gözlemlenmiştir. Verinin sürekli gönderilmesini engellemek için while(!finished) ve pause() komutları kaldırılmıştır. printf(“\ngonderildi\n”) komutu verinin gönderildiğini konsol ekranına basmaktadır. test.c kaynak dosyasında gerekli değişiklikleri yapıp dosyayı kaydettikten sonra programın beagleboard üzerinde çalışması için çapraz derlenmesi gerekir. Bunun için öncelikle çapraz derleme araçları konsola export edilir. Bununla çapraz derleme aracımızın sistemdeki yerini belirtmiş oluyoruz.

İndirilen program dosyasına geçilir ve ardından aşağıdaki şekilde çapraz derleme araçlarından arm-none-linux- gcc ile dinamik bi kütüphane oluşturulur.

“arm-none-linux-gnueabi-gcc –Wall –D_GNU-SOURCE –g – O –c cssl.c ”

Page 17: BEAGLEBOARD XM İLE HARİCİ BİR MİKRODENETLEYİCİNİN HABERLEŞTİRİLMESİ

Oluşturulan kütüphane cssl.o dosyası olarak aşağıda görülmektedir.

Oluşturulan kütüphane ile test.c dosyamıza istediğimiz isimle derleme yapabiliriz.

“arm-none-linux-gnueabi-gcc –Wall –O –o ledp test.c cssl.o ”

Oluşturulan ledp dosyası aşağıda görülmektedir.

Bu şekilde farklı karakterler için farklı dosyalar oluşturulabilir ve mikrodenetleyiciye farklı işlemler yaptırmak için farklı dosyaların çalıştırılması koşulu sağlanabilir. Arm işlemcilerde çalışabilir dosyamızı beagleboard’a aktarmamız gerekmektedir. Bu dosyayı SD kartın rootfs bölümündeki home dosyasının içindeki root dizinine kopyalamamız gerekmektedir. Dosyayı bu bölüme aktarmanın bir çok yolu mevcuttur. Bilgisayara bir flash bellek takarak dosyayı bu belleğe atıp ardından belleği beagleboarda takıp dosya transferini gerçekleştirmek bunlardan biridir. Belleği beagleboarda taktığımızda aygıtın tanıtılmasını gözlemliyoruz.

Page 18: BEAGLEBOARD XM İLE HARİCİ BİR MİKRODENETLEYİCİNİN HABERLEŞTİRİLMESİ

Daha sonra aşağıdaki gibi dosyayı uygun yere kopyalıyoruz.

Çalıştırılabilir dosyamızın bulunduğu dizin:

MİKRODENETLEY İCİLİ DEVRENİN KURULMASI VE YAZILIMI

Beagleboard’dan veri alınması ve alınan veriye göre mikrodenetleyici ile uygulama yapılması sağlanmıştır. Mikrodenetleyicinin bulunduğu devrede uygulama için PIC18F4680,ledler(8 adet hexadecimal karşılık için,1 adet veri alışverişini göstermek için,1 adet istenilen verinin alındığının gösterilmesi için) ve max232 devresi bulunmaktadır. Max232 ile beagleboard’dan çıkan yüksek gerilim seviyelerini pic için uygun seviyelere dönüştürmektedir. Rs232 kablosundan seri haberleşme ile veri alışverişi için 9 pinden 3 pin kullanmak yeterlidir. Bu 3 pinden biri toprak uç, diğerleri ise alıcı ve verici uç olan tx ve rx uçlarıdır. Dönüştürücü kablodan alınan 3 pin max232 devresine girer ve entegreden alınan çıkışlar da mikrodenetleyiciye gider. Böylelikle rs232 deki lojik 0 için 3 ile 25 volt, lojik 1 için ise -3 ile -25 volt arasında değişen değerler uygun seviyeye çekilip PIC18F4680’e gönderilmiş oluyor. Max232 devresi şu şekildedir:

Page 19: BEAGLEBOARD XM İLE HARİCİ BİR MİKRODENETLEYİCİNİN HABERLEŞTİRİLMESİ

5 numaralı pinin ground pini olduğu ve şekildeki konnektörün dişi olduğu unutulmamalıdır. Yazılan kod ile her karakter transferi gerçekleştiğinde c5 pinindeki led toggle yapılmaktadır. Bu led bize veri alındığını bildirir. b portlarına bağlı sekiz adet led ise gelen karakterin hexadecimal karşılığını ifade etmektedir. ‘p’ veya ‘r’ karakterleri gönderildiğinde ise d1 pinindeki led toggle yapılmaktadır. Bu kod aşağıda yer almaktadır. #include <18F4680.h> #fuses XT,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP,NOPUT,NOCPD,NOWRT,NODEBUG #use delay(clock=4000000) #use rs232 (baud=9600,xmit=pin_C6,rcv=pin_C7,parity=N,stop=1) #bit overrun_flag = GETENV("BIT:OERR") #byte rcreg = GETENV("SFR:RCREG") char karakter; #int_rda // RX ucuna veri gelince meydane gelen kesme void serihaberlesme_kesmesi () { disable_interrupts(int_rda); // int_rda kesmesini pasif yap karakter=getch(); // veriyi al ve "karakter" adlı dizi değişkenine aktar. output_b(karakter); output_toggle(pin_c5); if(karakter=='r') { output_toggle(pin_d1); karakter='a'; //’a’ karakteri rastgele bir karakterdir. } if(karakter=='p') { output_toggle(pin_d1); karakter='a'; } enable_interrupts(int_rda); // int_rda kesmesi aktif }

Page 20: BEAGLEBOARD XM İLE HARİCİ BİR MİKRODENETLEYİCİNİN HABERLEŞTİRİLMESİ

void main ( ) { setup_psp(PSP_DISABLED); // PSP birimi devre dışı setup_spi(SPI_SS_DISABLED); // SPI birimi devre dışı setup_timer_1(T1_DISABLED); // T1 zamanlayıcısı devre dışı setup_timer_2(T2_DISABLED,0,1); // T2 zamanlayıcısı devre dışı setup_adc_ports(NO_ANALOGS); // ANALOG giriş yok setup_adc(ADC_OFF); // ADC birimi devre dışı setup_CCP1(CCP_OFF); // CCP1 birimi devre dışı setup_CCP2(CCP_OFF); // CCP2 birimi devre dışı enable_interrupts(int_rda); enable_interrupts(GLOBAL); // Aktif edilen tüm kesmelere izin ver set_tris_b(0x00); output_b(0x00); output_high(pin_c5); // RC5 çıkışı ilk anda sıfırlanıyor output_high(pin_d1); while(1) // Sonsuz döngü { enable_interrupts(GLOBAL); if(overrun_flag) { overrun_flag=rcreg; } } }

Page 21: BEAGLEBOARD XM İLE HARİCİ BİR MİKRODENETLEYİCİNİN HABERLEŞTİRİLMESİ

Beagleboard ile mikrodenetleyicili devrenin bağlantısı yapıldıktan sonra beagleboard’dan dosyamızı çalıştırabiliriz.

Uygulamanın asıl amacı beagleboard ile harici bir mikrodenetleyicinin haberleşmesini sağlamaktır. Bu kapsamda çeşitli uygulamalar yapılabilir. KAYNAKLAR:

1. BeagleBoard-xM Rev C System Reference Manual 2. İnternet Tabanlı Gömülü Sistem Araç Denetimi- Ali Tunç, Hamit Çetinkaya, Ahmet Samet

Uzuncan 3. http://www.mcu-turkey.com

4. http://hyetik.wordpress.com/

5. http://sourceforge.net

6. CCS C ile PIC Programlama – Serdar Çiçek

7. PIC18F4680 Datasheet

8. MAX232 datasheet