13

EYL

2011

Yazan: Barış Samancı
Kategoriler:Donanım, ARM

quadrotor

Görüntüsü genel olarak aynı fakat bir çok ismi bulunmakta. Quadrotor,quadcopter, multikopter, multirotor kimiside insansız hava aracı (UAV) demekte.Dörtten fazla pervaneli modelleride bulunmakta. Yeni değiller, ilk fikirler ve kullanışsız büyük mekanik prototipler 1920li yıllarda ortaya atılmış. Zamanla elektronik sistemlerin kabiliyetleri geliştikçe ve mekanik sistemlerinde ufalmasıyla ortaya çıkan MEMS teknolojisi sayesinde 1990 lı yıllarda üniversitelerde küçük, elektronik kontrollü quadların yapımına başlanmış. 2000'li yıllarda popülerliği gittiçe artan bu araçların günümüzde deyim yerindeyse çılgınlığı yaşanıyor.

27

EYL

2010

Yazan: Barış Samancı
Kategoriler:ARM

Şuan geliştirdiğim bir gömülü sistem uygulamasında beyin olarak kullanmak üzere aldığım LPCXpresso kitine giriş niteliğinde bir göz atıp hem kiti hem Cortex-M3 işlemci çekirdeğini hemde LPC1768 işlemcisini yüzeysel olarak inceleyelim. LPCXpresso kitleri şuan için LPC1100, LPC1300 ve LPC1700 ailelerinden işlemcileri desteklemektedir. Benim kullanmış olduğum kitin işlemcisi LPC1768 dir. Kitin genel yapısı aşağıdaki şekil ve fotoğraflarda gözükmektedir.

lpcxpresso

Yazan: Barış Samancı

LPC2000

Bu işe başladığımda takvimler 2009 u gösteriyordu. Kendime çalışmak için not çıkartıyordum. Daha sonra notları bir araya getirerek kitap formatına sokmayı düşündüm ve çalışmalara başladım. Aldığım notların üzerine yeni bilgilerde ekleyerek bu çalışmayı tamamlamış oldum.Aslında çoktan bitirmiştim fakat yayınlamak bugüne kısmetmiş :)   Bu e-kitapta kaynak olarak hitex'in kitaplarını, nxp'nin dahasheetlerini ağırlıklı olarak kullandım. Hitex'in konu anlatımının üzerine saklayıcı bilgilerinin eklenmesi sonucu daha kullanışlı olduğunu düşünüyorum. Şimdiye kadar basılı veya elektronik formatta bir Türkçe arm kitabı görmedim. Sanırım ilkini ben oluşturdum :) İçerik hakkında fazla söyleyebileğim bir şey yok.Kitap 106 sayfadan oluşmaktadır. İndirip okumalısınız :) Aşağıya önsözü ekliyorum. Devamında da download linkini bulabilirsiniz.Ek olarak içeriğinde I2C, SPI ve CAN bus kullanımını da detaylıca anlattım. Platform bağımsız olarak bilgi edinmek isterseniz konuları okuyabilirsiniz.

"Bu kitapta LPC2000 ARM7 işlemcileri üzerine aldığım notların toparlanmış halini bulacaksınız.Başlıklar uzun zaman aralığında farklı zamanlarda yazıldığından, farklı bölümler arasında konu anlatımı bakımından farklılıklar olabilir.Kaynak olarak Hitex firmasının kitaplarını ve NXP işlemci datasheetlerini kullandım. Bu kitabın herhangi bir resmiyeti yoktur, tamamen toparlanmış ders notlarından ve çevirilerden oluşmaktadır. Kitapta anlatılanlar ve verilen örnek programların kullanımı tamamen okuyan kullanıcının sorumluluğundadır. Örnek olarak verilen programların büyük bir çoğunluğu Keil uVision IDE sinde simüle edilmiştir.Aksi belirtilmedikçe anlatımlar LPC2104 işlemcisi için yapılmıştır. Kitapta kullandığım işlemciler LPC2101, LPC2104, LPC2148 ve LPC2368 dir.

Yazan: Barış Samancı
Kategoriler:ARM

LPC2368 SD kart

Bu uygulama notunda LPC23XX mikrodenetleyicileri ile mikrodenetleyicinin MCI adaptörü üzerinden SD karta veri yazılıp okunmaktadır. FatFs modülü ile yazılan veriler FAT'a uyumlu olarak yazılmakta ve FAT uyumlu tüm sistemler üzerinde taşınabilmektedir.

Uygulamada LPC2368 işlemcisi kullanılarak SD karta veri yazma ve FAT dosyalama sistemi kullanılması anlatılmıştır. NXP nin lpc23xx işlemcileri için yayınladığı codebundle paketi içerisindeki MCI örneği temel alınarak üzerine ChaN in FatFs kodları eklenmiştir. Bu uygulama 2GB SD kart ile denenmiş ve çalışmaktadır. Herhangi bir hata ile karşılaşılmamıştır. Diğer boyuttaki SD kartlar, SDHC ve MMC kartlar denenmemiştir. Kullanılan kaynakların lisansı serbesttir fakat kodların ve bu uygulamanın sorumluluğu uygulamaya yapana aittir. Olası bir zararda kimse sorumlu tutulamaz.

Uygulamada sadece temel f_read, fwrite gibi fonksiyonları kullanarak, diskte var olan bir dosyadan bilgisayara terminal çıktısı alınacak ve diske yeni dizin içerisinde yeni dosya açıp ilk dosyadan okunan veri yazılacaktır. 

Konuları önceki e-kitaplarımda ve bu uygulama notunda yeterince anlattığım için buraya fazladan anlatılacak bir şey kalmadı :) Sadece dosyaları indirip okumalısınız. Aşağıdaki linklerden konu ile alakalı daha önce yazmış olduğum dökümanlara ulaşabilir, altında uygulamadan ekran görüntülerini görebilirsiniz.

Yazan: Barış Samancı
Kategoriler:ARM

ARM işlemcisinde iki farklı komut seti vardır. Bunlar 32 bitlik ARM komut seti ve 16 bitlik THUMB komut setidir. Hafızanın yetersiz kaldığı gibi bazı durumlarda bu iki komut seti arasında geçiş yapmamız gerekebilir.THUMB komut setini seçmemiz bize hafızadan kazanç sağlayacaktır.Bu komut setinde komutlar 16 bitlik formatta saklanırken çalışma esnasında 32 bitlik ARM komutlarına dönüştürülürler.Bu mekanizma bize düşük hafızalı işlemcilerde bellek kazancı sağlar.THUMB komut seti ile %30 hafıza kazancımız olur fakat çalışma esnasında THUMB komutlarının ARM komutlarına genişletilmesi esnasında %40 lık bir performans kaybı söz konusu olur.Yani ARM komut seti %40 daha hızlı çalışmaktadır.

ARM modunda derleme

Örneğin yandaki şekilde yazdığım bir kodun hafıza kullanımını görüyorsunuz. Kod hafızanın %5.71 lik bir alanını kullanmaktadır ve boyutu 28.80Kbyte tır.Bu kod 32bitlik ARM modunda derlenmiştir. Şimdi derlemeyi THUMB modunya yapalım ve yukarda anlattığımız değişikliği gözlemleyelim.

Aşağıdaki şekilde kodun thumb modunda derlenmiş halini görüyorsunuz. Gördüğünüz gibi hafıza kullanımı %5.71 den %4.04'e inmiş, kod boyutu ise 28.80KByte tan 20.35Kb a düşmüştür.

Yazan: Barış Samancı
Kategoriler:ARM

lpc2368

Şu sıralar network ve TCP/IP sistemleri üzerinde fazlaca çalışıyorum. PIC ile yapmış olduğum TCP/IP uygulamasından sonra bir uygulamada ARM mikrodenetleyicileri ile yapmaya karar verdim :) Ayrıca bundan sonra yapacağım çalışmaları kitap formatında değilde uygulama notu formatında yayınlamaya karar verdim böylece daha az zamanda daha çok çalışma yapmış olacağız.001 den başlayarak zamanla gidebildiğimiz yere kadar gideceğiz :) Yapmış olduğum bu çalışmayıda linkten indirebilirsiniz. LPC2368_ve_uIP_TCP/IP_Stack.zip (740Kb)   

Sözü uzatmadan uygulamaya dönelim. LPC23XX ve LPC24XX ailelerinin hemen hemen hepsinde ethernet donanımı bulunmaktadır. Bende bu uygulamamda LPC2368 boardumu kullandım. Uygulamada Keil firmasının uVision IDE sini kullandım. TCP/IP arayüzü içinse uIP stack'ini kullandım. uIP stack Adam Dunkels tarafından geliştirilmiştir. Hedeflediği işlemcilerin genelde düşük hafızalı 8 ve 16 bitlik işlemciler olduğunu söylesede bazı koşul ve fonksiyonları sağladıktan sonra hemen hemen tüm sistemlerde çalışabilmektedir. Yaptığım uygulamalarda da kod boyutunu kontrol ettiğimde 32 bitlik 512k hafızanın  %2 ila %4 ünü kullandığını gördüm. Benim yaptığım uygulamalar gayet iyi çalıştı fakat Dunkels sistemi yeteri kadar iyi test etmediğini yazmış. Dolayısıyla profesyonel ve güvenli uygulamalar yapmak istiyorsanız arkasında firma olan  daha profesyonel stack leri kullanmanızı tavsiye ederim.

17

TMZ

2010

Yazan: Barış Samancı
Kategoriler:ARM

ARM Logo

ARM nedir? ARM bir mimaridir ve adını icat eden firmadan alır.Bu mimari 1983 yılında “Acorn Computers Ltd” isimli bir şirket tarafından ARM1 adıyla (Acorn RISC Machine 1) ismiyle tasarlanmaya başlanmış ve 1985 yılında piyasaya sürülmüştür.Takip eden sene 32 bitlik ARM2 modeli piyasaya sürülmüş, basit ve kullanışlı yapısıyla baya ses getirmiştir. 1990 yılında firma ismi Advanced RISC Machines Ltd olarak değiştirilmiştir.1998 yılında firma ismini tekrar değiştirerek günümüzde de kullanılan ARM Ltd yapmıştır.

ARM firması 32 bitlik işlemci çekirdekleri üretmektedir ve NXP(Philips), Samsung, NEC, Atmel gibi diğer firmalara lisanslı olarak bu çekirdekleri satmaktadır.ARM şirketinin verdiği bilgilere göre şuanda 200 üzerinde firmaya 600 ün üzerinde işlemci mimarisi ve çekirdeği lisanslanmış durumdadır. ARM işlemciler 32 bitlik yapısı, düşük güç tüketimi, yüksek performansı gibi özelliklerinden dolayı sektörde açık ara lider durumdadırlar.2009 yılı verilerine göre tüm dünyadaki 32 bitlik gömülü sistemlerde kullanılan işlemcilerin %90ı ARM mimarisini kullanmaktadır.Düşük güç tüketimi sayesinde cep telefonları, PDA lar ve taşınabilir cihazlarda tercih edilmektedir. Aşağıdaki şekilde ARM işlemciler kullanılan bazı ürünleri görüyorsunuz.

Yazan: Barış Samancı
Kategoriler:ARM

Genelde ARM işlemciler ile yeni çalışmaya başlayanlar yada merak edenler yazdıkları programları işlemciye PIC lerde olduğu gibi programlayıcı bir devre ile yükleyebileceklerini düşünürler.Buda bir çok kişiye zahmetli gözüküp vazgeçmelerine neden olmaktadır.Evet PIC lerde olduğu gibi programlayıcı devreler vardır, hatta bunlar debug imkanıda vermektedir fakat bu yazıda en basit şekiliyle herhangi bir ek donanım kullanmadan yazdığımız programları LPC işlemcilerine nasıl atabileceğimizi inceleyeceğiz.Bunun için flashmagic isimli bir aracı kullanacağız. Bu araç ile Philipsin NXP ürünlerinden bir çoğunu programlayabilmekteyiz.Bu araç ile LPC2000 işlemcilerinin dahili bootloaderını kullaranak, derlediğimiz kodu seri port üzerinden (RS232) her hangi bir kompleks programlayıcı donanıma ihtiyaç duymadan çok rahat bir şekilde işlemciye atabilmekteyiz. Programı resmi sitesi olan http://www.flashmagictool.com/ adresinden indirebilirsiniz. Ekran görüntüsü aşağıdaki gibidir.

flash magic screenshot

Şekilden görüldüğü gibi 5 adımda kodumuzu işlemciye RS232 üzerinden çok kolay bir şekilde atabilmekteyiz. Bazı işlemci modelleri ethernet bootloader a sahiptir ve RJ45 üzerindende program atmamıza izin vermektedirler.RS232 için işlemcilerin bootloader kodu sadece UART0 üzerinden gelen verileri işlemektedir.Bu yüzden RS232 ile işlemcinin bağlantılarını yaparken RS232 pinleri ile UART0 ın RXD, TXD ve GND pinlerini birbirine bağlamamız gerekmektedir.Tabi araya 12V-3.3V voltaj çevirici bir entegre koymamız gerekmektedir.Bunun için MAX3232/MAX3222 kullanabilirsiniz.Bu entegrelerin pin bağlantıları datasheetinde aşağıdaki gibi gösterilmiştir.

« Önceki 1 2 Sonraki »

Tasarım ve Programlama Barış SAMANCI
Her hakkı saklıdır.
barissamanci.net  ©  2010-2024