Öğrenmek İçin Hangi ARM? Tavsiyeleriniz?

atakan1907

Üye
Katılım
11 Kas 2009
Mesajlar
11
Puanları
1
Merhabalar,

Ben 4 yıllık elektronik bitirdim ve üniversite boyunca PIC ile "oyalandım".

Neden mi böyle söylüyorum?

Çünkü ülkemizde en çok kullanılan ve bilinen; dolayısıyla popüler olan mikroişlemci buydu. En çok bunun ismini duydum vakti zamanında ve bu yoldan gittim. PIC 16 ve 18 serisini iyice bellediğimi düşündüğüm şu sıralarda, işlem kabiliyetinin diğer mikroişlemciler karşısındaki acizliği beni yeni arayışlara itti.

Evet 8-bitlik olup da pic18 in çoook çok ötesinde pek fazla işlemci yok. Fakat ATmega128 ve ATXmega128 gibi güzel işlemcileri araştırmalarım sonucunda farkettim ve keşke AVR ile başlasaymışım diyorum. Tüm özellikleri aynı bile olsa AVR 20MISP hızı ile en hızlı pic18lere fark atıyor.

Bunun yanısıra sektörde bu zamana kadar sıkça kullanılan ve son 2-3 yılda iyice atağa geçmiş ARM mimarileri kafama takılıyor. Ebay'den ARM (Cortex m3) geliştirme kartlarına bir süredir bakıyorum. Çok hoşuma giden şeyler var. Fakat sıfırdan, kendi başıma bu mimarileri öğrenebilir miyim bilmiyorum. Çünkü datasheetlerini karıştırdığımda yabancı olduğum çok fazla terimle karşılaşıyorum.

Malesef okulda yarım yamalak biraz 8051 haricinde bu konularda destekleyen olmadı. Kendi çabamla PIC16 ve PIC18 serilerini ASSEMBLY ve mikroC ile programlayabiliyorum. Ve son projemde 18f4550 kullandım. Bu işlemcinin hızı benim uygulamamda biraz yetersiz kaldı. Ve 32bit aritmetiğinde gerçekten çuvallıyor. (çok zaman alıyor)

Sizin gömülü sistemler konusundaki değerli bilgilerinize danışmak istiyorum.
1)AVR ile PIC18 arasındaki işlem kapasitesini kıyaslarsanız AVR gerçekten de daha mı iyi?
2)8/16bitlik AVR mi yoksa 32bitlik ARM'lara mı geçmeliyim?
3)Dökümanda geçen bu 8/16 bit tabiri tam olarak nedir?
4)ARM işlemcileri programlamanın zorlukları nelerdir?
5)ARMda baktığımda bir ton özellik görüyorum. Bütün bu özelliklere hakim olabilmem mümkün mü?
6)3-5 ay gibi bir sürede o seviyeye gelebilir miyim? (pic bilgimi de hesaba katarak)
7)ARM mimarisi ile PIC ve 8051 mimarileri arasında özellikler, hız ve 32bit olması haricinde ne farklar var?

Düşündüğüm AVR'ler yukarıda söylediğim gibi ATmega serisinin yüksek hızılı ve kapasitelileri veya ATxmega serisi. Her ikisi de çevre birimleri olarak PIC'ten daha zengin.

Arm olarak da STM32F105 ve LPC1768 serileri hoşuma gitti.
Beni bu konularda aydınlatırsanız çok mutlu olacağım.

Teşekkürler!
 
AVR daha iyi. AVR de bir clock da bir instruction işlenebilirken, PIC lerde 4 clock da bir instruction işlenebiliyor. Sonuçta AVR daha hızlı. Bu söylediğim 8bitlik seriler için geçerli. 16-32 bitlik işlemcilerde PIC ler hız açısından ATMEL den daha üstünler.

8/16 bit AVR veya 32 bit ARM sorusunun cevabı tabii ki endüstri standartı durumuna gelmiş olan ARM. Ayrıca 32 bit olmasının yanı sıra farklı ihtiyaçlar için farklı seriler, aileler de içeriyor. Ulaşması, elde tutması daha kolay ve ucuz.. Oldukça makul fiyatlı çeşitli geliştirme kitleri var.

8/16/32 bit tek cycle da işlenebilecek veri genişliğini ve aynı zamanda veriyolu genişliğini ifade ediyor. Örneğin 8bitlik işlemcide 16bitlik integer iki sayıyı çarpmanız gerektiğinde sadece bunları bellekten registere yüklemek 4 clock gerektirir. 16 bitlik bir işlemcide ise 2 clock. Daha çarpma, lo-hi bytelerı değerlendirme gibi şeylere girmedik bile. Ayrıca 16/32 bitlik işlemciler daha modern olmaları sonucunda daha özellikliler. Örneğin çarpma işlemlerini tek clockda veya bölme işlemlerini 5-20 clock gibi sürelerde yapabiliyorlar.. DMA vs. gibi çeşitli modülleri oluyor..

Programlama konusunda diğer işlemcilerden daha zor değil. Aynı diğer işlemcilerde olduğu gibi öncelikle işlemciyi tanımayı gerektirir. Yani önce datasheetleri okumalısınız..

Hakim olmak? .. Mümkün.. Anahtar datasheetler, örnek uygulamalarda ve tabii sizde ..
Gelebilirsiniz. Tamamen ayırdığınız zamana, altyapınıza, yani size bağlı..

Son sorunuzun cevabı soruda gizli. Daha özellikli, hızlı ve 32 bit.. Eğermimari farkları detaya girersek bitmez..

Bahsettiğiniz her iki işlemcide CM-3 ailesinin üst seviye işlemcileri. Benim kişisel görüşüm endüstriyel uygulamalar için ST nin NXP den biraz daha iyi olduğu şeklinde.

Başlangıç için ARM Cortex-M4 serisi. DSP özelliği olan FPU içeren bir işlemcisi olan STM32F4discovery adındaki kiti önerebilim.
Üzerinde ST-Link de olduğundan ayrı bir programlayıcı gerekmez. Keil ile entegre şekilde kullanabilirsiniz. Keil'in bedava sürümü ile 32K ' ya kadar kodlar geliştirebilirsiniz ki bir çok uygulama için yeterli..

Farnell, digikey gibi sitelerin yanısıra CizgiTagem'den de alabilirsiniz.
Çizgi TAGEM | Eğitim Market | STM32F4DISCOVERY
 
ARM ailesine geçmeniz oldukça isabetli olur. Nerede ise 8/16 bit fiyatına 32 bit mimariler ve özellikleri çok iyi.ST; Cortex M4(STM32F4XXX) serisi geliştirme kiti sürdü piyasaya ve bu konuda oldukça sağlam olan yerli forumlarımızdan birisinde Bunalmış üstad yeni başlayanlar seviyesinde dersler vermeye başladı. Ülkemiz için büyük bir hayır ve iyilik yaptığını düşünüyorum. İlerleyen süreçte faydası oldukça bariz görülecektir. ALLAH kendisinden razı olsun.
Nette arama yapmanız neticesinde ilgili derslere ulaşabilirsiniz.
Çizgi Tagem de güzel bir destek sergiledi ve temini konusunda sorun kalmadı bildiğim kadarı ile.
 
Öncelikle detaylı cevabınız için çok teşekkür ederim.

AVR de bir clock da bir instruction işlenebilirken, PIC lerde 4 clock da bir instruction işlenebiliyor. Sonuçta AVR daha hızlı.
Burada bahsettiğiniz konuyu, kristal hızıyla değil de MIPS birimleri ile düşünmekte yarar var. Bildiğim kadarıyla,
PIC18 serileri 12MIPS,
PIC18K serileri 16MIPS,
AT(x)MEGA serileri 20MISP hızlarına çıkabiliyor.
Önemli olan kaç saat darbesinde hallettiğinden ziyade, en fazla ne kadar komut işleyebildiğidir. Ve evet, AVR bu konuda üstün.

8/16/32 bit tek cycle da işlenebilecek veri genişliğini ve aynı zamanda veriyolu genişliğini ifade ediyor.
Burda asıl sormak istediğim şey, ATxmega serisinde datasheette geçen "8/16bit" ifadesi idi. Bir bilginiz var mı? Ben tam anlayamadım.

Başlangıç için ARM Cortex-M4 serisi. DSP özelliği olan FPU içeren bir işlemcisi olan STM32F4discovery adındaki kiti önerebilim.
Sayenizde bu kite rastlamam çok çok iyi oldu. Ebay'den getirtmeyi düşünüyordum fakat ulaşma süresi kafamı kurcalıyordu. Ve fiyatlar da bunun kabaca 4-5 katından başlıyordu :) Tek bekleyip de bulamadığım özellik uSD yuvası.

Bu kit konusunda gerçekten sormam gereken bir soru var, Erkek pin olarak çıkış vermişler, sorması ayıp bunları nasıl kullanabiliriz? Örn breadboard üzerine birkaç bacaktan bağlantı almak istesek...?

ARM olayına gelirsek;
ARM7, ARM9 gibi seriler CORTEX serilerinden sanırım daha hızlı. Bu mimarilerin tam olarak gelişmişlik sırası nedir? CORTEX serilerinin buradaki yeri neresidir?

PIC, AVR ve ARM konularında bilgisi olanların, daha fazla görüş ve tecrübelerini öğrenmek isterim.
 
Son düzenleme:
ARM ailesine geçmeniz oldukça isabetli olur. Nerede ise 8/16 bit fiyatına 32 bit mimariler ve özellikleri çok iyi.ST; Cortex M4(STM32F4XXX) serisi geliştirme kiti sürdü piyasaya ve bu konuda oldukça sağlam olan yerli forumlarımızdan birisinde Bunalmış üstad yeni başlayanlar seviyesinde dersler vermeye başladı.

Teşekkür ederim. Haklısınız, 32Bit'e terfi etmemiz iyi olacak.

Fakat çekincem, ilk mesajımda bahsettiğim gibi, PIC ile başlarken çok isabetli bir seçim yapmamış olduğumu farketmemden dolayı, bu sefer hedefi 12den vurmak isteyişimden.

Ben datasheetlerine gözattığımda (ki epey okudum) DMA dan tutun, AHB, PIPELINING, PHY vs vs vs birçok yabancı olduğum kavram var. Tamam, internetten araştırdığımda kabaca fikir sahibi olunabilen şeyler ama; hem mimariye hem de özelliklere yabancı kalınca gözüm korktu biraz :) Tamam, kartı elime aldığım ilk gün 3-5 led yakıp söndürebileceğimden süphem yok. ARM kullananlar TFT ekramlarla çalışırken, ben bu zamana kadar 2x16 larla çalışıyordum :) Bırakın işlemcinin kendisini, o işlemciyle birlikte kullanılan ekipmanlara bile yabancıyım.

ARM denince, C koduyla 1MB program yazmak (sınırları zorlayabilmek) sizce de çok uzak görünmüyor mu?Bakıyorum kimileri ARM üzerinde LINUX çalıştırıyorlar, kimileri .NET çalıştırıyorlar, kimileri hiçbirine gerek duymuyorlar. Genelde işletim sistemi üzerinde mi çalıştırılır yazılımlar? Ve harici bellek olmadan, direk DISCOVERY üzerinde ne tip işletim sistemleri çalıştırılabilir?
 
ATXmega larla çalışma olanağım olmadı.. Ama incelemiştim, farnell den sipariş bile vermiştim.. İlk çıktığı zamanlarda Türkiye ye ihracı yasaklı üründü. Şimdi ne durumdadır bilmiyorum.

Atxmega serilerindeki 8/16 bit olayı, ARM lardaki thumb mode veya PIC32ler deki MIPS16e modu gibi.. Komut seti ve/veya data size'lar 8 veya 16 bit olabildiği için 8 bitlik kullanırsanız belleği daha efektif kullanabiliyorsunuz. Daha küçük code size çıkıyor. Hıza pek bir etkisi yoktu diye hatırlıyorum. Ama 8 bitlik çalışmaya geçince neler 8 bit oluyor, o kadar detayını bilmiyorum.. Ulaşılabilir olsa güzel seriydi. ADC si DAC vs. microchipin eşdeğer ailesi dsPIC lerden daha iyiydi.

STMF4 kitin erkek pinli olması bence de saçmalık.. Bu haliyle kullanmak için altına ayrı bir beakout board gerekir. Ben erkek pinleri söküp yerine ince yuvalı dişi header taktım. Breadboard'un yanında tutup bir kablo parçasıyla istenilen bağlantı yapılabiliyor.

Board bildiğim kadarı ile 6 katmanlı. Sökerken anladığım kadarıyla orta katmanlardan bir veya ikisi full gnd ve pinlere termal ile de bağlanmamış. Güçlü bir havyanız yoksa GND pinlerini sökmek çok uğraştırır. Bir arkadaşım erkekleri sökmek yerine üst tarafa erkeklerin üzerine direkt dişi header'ı lehimledi. Biraz yüksekçe olması gibi görselliğin dışında bir sorunu yok.

ARM7-9-11 serileri cortex serilerinden daha eski. Özellikle 9-11 serileri daha çok tüketici elektroniği gibi farklı alanı destekledikleri için hızları özellikleri vs. de buna göre. Grafik-vektör coprocessor, java-jazelle gibi destekleri falan vardı.
Eşdeğer yeni seriler için A serileri (application), R (real time) gibi seriler var.
Örneğin Cortex-A8-9 serilerinin GHz lere çıkan saat frekansları, çok çekirdek destekleri var. Androidli çoğu telefonda kullanılıyor.
RF serilerinde çift cpu var ve herhangi bir hata olması durumuna karşı eş çalışıyorlar.

@Atakan1907
Zamanında bende hangi seri diye aynı araştırmaları yapmıştım. O dönemlerde ARM lara erişmek ne kolaydı nede ucuzdu. Direkt dsPIC lerle başladım bende.. Hiç 8 bitlik işlemci kullanmadım desem yeridir.
Şu anda size yabancı gelen DMA, pipeline vs. zaman içerisinde öğrenilir. Öğreniliyor. İşlemciyi-aileyi tanıdıkça neler yapılabilir konusunda daha rahat karar vereceksiniz.
Daha önce belirttiğim üzere bu, tamamen size, isteğinize, ayırdığınız zamana bağlı..

İşletim sistemi konusunda da STMF4 güçlü bir işlemci. Extra RAM desteği vs. de var. Uygun bir linux sürümü veya RTOS çalıştımak mümkün. Sanırm bu kit üzerinde linux biraz sıkıntılı olabilir. Ama RTOS iyi gider. Ki RTOS da ayrı bir derya.

Bu kit bana yetmez, İşletim sistemi üzerine uygulamalar geliştirmek istiyorum derseniz beagleboard, Raspberrypi gibi seçeneklerde var.
 
Son düzenleme:
yerinde ve doğru bir düşünce birçok forum sitesinde yapılan devrelere baktığımda bu sıkıntıyı bende birçok kez yaşadım.atmega işlemciler gerçekten pic işlemcilere göre çok hızlı.ayrıca verdiğiniz bilgiler için ayrıca teşekkür ederim.
 
ATXmega larla çalışma olanağım olmadı.. Ama incelemiştim, farnell den sipariş bile vermiştim.. İlk çıktığı zamanlarda Türkiye ye ihracı yasaklı üründü. Şimdi ne durumdadır bilmiyorum.

Megasan da ATXMEGA128A1-AU mevcut. Signal elektronik sitesinde de 3-5 hafta teslimat süreleri ile tüm modeller mevcut.

Şuradaki ATmega128RFA1 harika bir işlemci. Kablosuz her türlü uygulama geliştirmek çok basit hale getirilmiş. Tek başına bir ÖLÇ-GÖNDER sistemi kurmak için birebir. Fakat temin etmek için kısa bir araştırma yaptım ve bu kart haricinde Türkiye'den temin edilemiyor sanırım.

Board bildiğim kadarı ile 6 katmanlı. Sökerken anladığım kadarıyla orta katmanlardan bir veya ikisi full GND ve pinlere termal ile de bağlanmamış. Güçlü bir havyanız yoksa GND pinlerini sökmek çok uğraştırır.
Sanırım şöyle birşey gerekecek.

Bu kit bana yetmez, İşletim sistemi üzerine uygulamalar geliştirmek istiyorum derseniz beagleboard, Raspberrypi gibi seçeneklerde var.
Beagleboard türevi kartlar bana çok daha fazla yabancı geliyor. Fakat kart gömülü işletim sistemi üzerine çalışmak için gerçekten mükemmel. Bu sorumun amacı şuydu; piyasada ARM kullananlar genellikle LINUX, J2ME, .NET gibi platformlar üzerinde mi çalışırlar, yoksa sıfırdan makine kodu (C, ASM, BASIC...) mu yazarlar? Çünkü daha önce bahsettiğim gibi, STM32F4xx göz önüne alırsak, 1MB program hafızasını C ile doldurmak bana çok uzak görünüyor. Bu zamana kadar en fazla 18F4550'nin yarısını doldurdum.

Son sorumu da sorum sizi rahat bırakayım :)

Şuradaki PSoC deney kartını ve işlemcisini biraz inceledim. Bana FPGA ya ucuz bir alternatif gibi göründü. Bu iki sistemde arabirimlerin tamamen özelleştirilebilir olması çok büyük avantaj. Sizin PSoC ve FPGA konularındaki görüşleriniz nelerdir? Bu platformları öğrenebilmek için bütçeyi zorlamayacak deney setleri önerebilir misiniz?

Değerli bilgileriniz için çok teşekkür ederim.
 
İşletim sistemi konusunda, sürücü v. yazmadığınız sürece işlemcinin ne olduğu ile pek ilginizin olmaması gerekir. OS' un size tanıdığı olanaklar çerçevesinde işinizi yaparsınız. Hatta aynı kodları, çapraz derleyiciler ile başka bir işlemci içinde kullanırsınız.

1MB register seviyesinde kod yazmak için büyük bir alan.. Ne kadar dolacağıda size ve ne yaptığınıza bağlı..

PSoC VE FPGA konusunda hiç bilgim yok desem yeridir. Özellikle FPGA konusunda Çizgi tagem kit, döküman, eğitim için iyi bir referans.
 
Konu hortlatma gibi olacak ama bende yavaş yavaş arm a giriş yapmaya çalışıyorum stm32f4-discovery kiti ile çalışmayı planlıyorum, keil uvision kurdum bulduğum örnekleri deniyorum. Forumda böyle bir konunun tartışılmış olması çok hoşuma gitti, bilgilendirmede bulunan tüm arkadaşlara teşekkür etmek istedim.
 

Forum istatistikleri

Konular
127,952
Mesajlar
913,885
Kullanıcılar
449,601
Son üye
AlienInc

Yeni konular

Geri
Üst