ARM9 geliştirme boardı yapıyoruz [DONANIM]

Başlatan mp3dragon, 30 Aralık 2007, 22:39:42

mp3dragon

ARM9 işlemcilerle çalışmak isteyen benim gibi arkadaşların karşılaştıkları en önemli sorun üzerinde çalışabilecekleri bir kit sahibi olmak herhalde.
Bunun en önemli sebebi ARM9 kitlerin yurtdışı fiyatlarının 100 USD ve 100 Avro'nun çok üstünde olmaları. Dolayısı ile yurtdışından kit getirtmek gerçekten bir dert olmakta. Birde bu derdin üstüne kargo fiyatlarıda düşünülünce dert üstüne dert eklenmekte.
Bu sebeplerden dolayı kendi kitimizi kendimiz yapalım fikri benim uzun zamandır aklımı kurcalamaktaydı.

Hedef kit için aşağıdaki kabulleri yaptım;

1- Kit için kullanacağımız ARM9 tqfp kılıfta olmalı,
2- Kit 2 kat pcb olarak dizayn edilebilmeli,
3- Kullanılan ARM9'un internette benzer proje ve uygulamaları bolca bulunabilmeli,
4- Linux ve WinCE desteği olmalı,
5- Ethernet, SD/MMC, USB Host ve Device, LCD Driver, Touch Screen,  IDE, Audio, JTAG ve genel IO bağlantıları olmalı,
6- Maliyeti yurtdışı kitlere göre daha uygun olmalı,
7- Ve tabii malzemeler kolayca bulunabilmeli ??  :lol: ??

Biraz inceleme ve araştırma sonucu şu verilere ulaştım;

1- ARM9 olarak mevcut seçenekler içinde sadece Atmel AT91RM9200 ve Cirrus EP9302 nin TQFP kılıf seçenekleri bulunmakta,
2- Her iki işlemcinin içerisinde TFT driver ve Touch Screen driver bulunmamakta,
3- Atmel ile yapılan kit seçenekleri ve nette bulunan uygulama desteği hatta linux kernel desteği Cirrus EP9302 ye göre bir hayli fazla,
4- Her iki işlemcide 180 mhz de, 200 mips hızında çalışmakta.

Yukarıda açıklamalarımdan görüldüğü gibi EP9302 ile AT91RM9200 arasında donanım olarak hemen hemen hiç fark bulunmamakta. Ancak nette örnek şema, uygulama, kod ve linux desteği ile AT91RM9200 bir hayli öne çıkmakta.

Bu sebeple ben oyumu AT91RM9200 den yana kullandım.

Diğer bir problem TFT ve Touch Screen driver konusu. Söylemiş olduğum gibi bu işlemciler üzerinde sözkonusu driverlar bulunmamakta. Kısaca bu driverları kendimiz ilave etmeliyiz. Yine yaptığım araştırmalarda TFT ve VGA için EPSON'un S1D13506 tft-vga driverı öne çıktı. (Atmelin kendi kitinde tft driver olarak kardeşi S1D13806 kullanılmakta ve bu entegrenin linux kernelda hazır driverı bulunmaktadır.)
Touch screen driver içinse malum sebeplerden Analog Devices'in touch screen kontrollerı 1. tercih olacaktır. Bu kontrollerinde linux desteği bulunmakta.

Şimdi kit için gerekli malzeme listesine bir bakalım. Voltaj reg. soket ve pasif kompanentleri bir tarafa koyarsak;

1- AT91RM9200 ARM9
2- EPSON S1D1356 TFT - VGA driver,
3- SDRAM (32 MB, 16 it)
4- Serial flash rom,
5- 2 MB EDO RAM (S1D13506 için),
6- Ethernet PHY (Realtek RTL8201, Micrel KZS8721 vs),
7- Analog touch screen kontroller.

3. ve 5. sıradaki SD ve EDO ram lar eski ram modüllerden sökülebilir.
PHY olarak en ucuz Realtek RTL8201 (futurlecte 1.3 usd)
AT91RM9200 Digikey de 22.47 USD, Epson S1D13506 12.33 USD

şimdi maaliyeti inceleyelim;

AT91RM9200 - 22.47 usd ( http://search.digikey.com/scripts/DkSearch/dksus.dll?Cat=2556109;keywords=at91rm9200 )
S1D13506 - 12.33 ( http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail?name=S1D13506F00A200-ND)
RTL8201 - 1.3 usd ( http://www.futurlec.com/ICSFRealtek.shtml )
Dataflash AT45DB321D - 3.66 USD ( http://www.mouser.com/search/ProductDetail.aspx?R=AT45DB321D-SUvirtualkey55650000virtualkey556-AT45DB321DSU )

Yukarıdaki malzemeler kargo hariç yaklaşık 40 usd tutmakta. SDRAM ve EDORAM hurdalık, Touch Screen sample dediğimizde geriye PCB baskısı, pasif kompanentler ve soketler kalmakta.

PCB için Odak PCB nin verdiği fiyat 100 Avro + KDV bu fiyata 1 m2 PCB çıkarıyor yani en az 7-8 adet pcb dersek ortalama 15-20 Avro pcb'nin adedi tutacaktır.

Kısaca hedef 100 usd civarına maletmek. Ki bu fiyat oldukça makul.

Bu seferde kendim çalıp kendim oynayacakmıyım bakalım?

Kaynaklar:

http://www.opencircuits.com/Linuxstamp
http://twarm.pelos.pl/
http://wiki.emqbit.com/free-ecb-at91
http://www.ronnaby.de/hardware.php
http://www.open-research.org.uk/ARMuC/At91rm9200_Booting.html
http://www.kwikbyte.com/KB9202.html
http://maxim.org.za/at91_26.html
İyilik Yap, Denize At, Balık Bilmezse, Halik Bilir.

ahmet abüü

Alıntı yapılan: "mp3dragon"
Bu sebeple ben oyumu AT91RM9200 den yana kullandım.

Değerlendirmenize katılıyorum.
Bende epey inceledim bu işlemciyi. External TFT sürmek işlemciye ne kadar yük getirir iyi düşünmek lazım. İşlemci belirlerken, beklentilerimiz çok önemlidir. Öncelikle bunları sıralamakta fayda var.
LiNUX bir sudur, iç iç kudur.

arslan74

Merhaba arkadaşlar,

Bende ARM taban işlemcilere gecmek istiyorum. Ama bir türlü o başlangıcı yapamadım. Böyle bir oluşumun içinde bende olmak isterim.
Ayrıca NXP in ARM tabanlı LPC işlemcileride bana çazib geldi. Plaket yapımı Atmele göre daha basit olacak kanısındayım.

Selamlar

Göktuğ

Alıntı yapılan: "mp3dragon"
Katılamayacağım, çünkü 2 katlı olarak yapılmışı var. ( http://www.opencircuits.com/Linuxstamp )

Bu kartta pek cok sey düşünülmemiş. Amatör bir kart.  Aynı chipin Atmelin boarduna ait yolladıgın pcb 8 katlı. 4 tanesi power gnd 4 tanesi signal. Simdi atmel parası var diyemi bu kadar kasmıstır?
Çalışmaz demiyorum. Neyse zaten 4 kat şansınızda düşük. Bunu bir deneyin. Ancak burada calıstı ürün yapayım 2 katlı sorun cıkmaz gibi bir düşünceye sakın kapılmayın.

mp3dragon

@arslan74,

ARM firmasının ürettiği çekirdekler, ARM7, ARM9, ARM10, ARM11 gibi ana sınıflara ayrılmıştır. Alt sınıf olarakta ARM7TDMI, ARM720, ARM926, ARM966, ARM920, ARM1120 gibi sınıfları mevcuttur.

NXP ARM7TDMI konusunda gerçekten başarılıdır. Ama ARM9 çekirdekleri konusunda maalesef çok makbul ürünü bulunmamakta.

Bizim ARM9 kit, üzerinde linux ve WinCE çalıştırabileceğimiz ve BGA kılıfta olmayan mümkünse çift katlı board çizebileceğimiz bir kit olacak.

Yeni başlayanlar için çok uygun olmayabilir.
İyilik Yap, Denize At, Balık Bilmezse, Halik Bilir.

mp3dragon

bu link de var;

http://www.blackmesaeast.com.pl/projects/electronics/sarge-single-board-computer/

hepsi iki kat eagle çizimi. çalıştığını şöylüyorlar. ekran çıktılarıda almışlar.

burada da gerber file olarak başka bir proje var 2 kat ancak via .3 mm olduğu için baskı zorlar.
http://svn.arhuaco.org/svn/src/emqbit/free-ecb-at91/v1.6/

yukarıdaki dosyaların ana sayfası

http://wiki.emqbit.com/free-ecb-at91

eagle için genel .lbr dosyaları;

http://rapidshare.com/files/80262971/ARM9lbr.rar.html
İyilik Yap, Denize At, Balık Bilmezse, Halik Bilir.

arslan74

Alıntı yapılan: "mp3dragon"@arslan74,

ARM firmasının ürettiği çekirdekler, ARM7, ARM9, ARM10, ARM11 gibi ana sınıflara ayrılmıştır. Alt sınıf olarakta ARM7TDMI, ARM720, ARM926, ARM966, ARM920, ARM1120 gibi sınıfları mevcuttur.

NXP ARM7TDMI konusunda gerçekten başarılıdır. Ama ARM9 çekirdekleri konusunda maalesef çok makbul ürünü bulunmamakta.

Bizim ARM9 kit, üzerinde linux ve WinCE çalıştırabileceğimiz ve BGA kılıfta olmayan mümkünse çift katlı board çizebileceğimiz bir kit olacak.

Yeni başlayanlar için çok uygun olmayabilir.

Merhaba,
ARM en üst cekirdeği ARM11 ise, neden direkt ondan başlamiyoruzda, ARM9 cekirdeğini öneriyorsunuz. Ona göre bir altyapı oluşturuyoruz. İlerde ARM9 cekirdeğide ARM7 de olduğu gibi yetersiz kalmayacakmı?

Selamlar

Ersin

@arslan74,
Once yurumeyi, kosmayi ve ucmayi ogrenmek var.Direk ucsak olmaz değil mi .
11 ler icin zaman var daha dogru durust destek yok.

Analyzer

Selam,

Arslan hocam ARM11 çekirdeği içeren mcu'ların tamamı bildiğim kadarıyla bga türevi kılıflarda. Makina olmadan montaj yapmak, pcb üretmek baya zorlar. Ayrıca ARM11 gibi güçlü işlemciye (bugün) ne kadar ihtiyacımız var sorgulamak lazım. (Hem fiyat hem karşılaşılacak güçlükler açısından) Biz ARM7-9 çekirdeklerini bi kotaralım da :D

Analyzer
Üşeniyorum, öyleyse yarın!

mp3dragon

@arslan74,
ARM7 (ARM7TDMI) daha ziyade klasik microişlemci uygulamalarına yönelik olup, şimdiye kadar kullandığınız işlemcilerin daha gelişmişi ve hızlısı olarak düşünebilirisiniz.
ARM9 ve ötesi ise bambaşka bir pencere açıyor ki aralarında kaba tabirle commadore64 ile PC arasındaki fark var neredeyse.

Şimdi neden ARM11 değilde ARM9 derseniz ilk mesajımda yazdığım gibi kendimizin yapabileceği ve ucuz bir proje olması gerektiğinden. Yani 456 pin BGA işlemci ve 8 layer bir pcb kendimizin yapabileceği bir proje olmaktan çıkarıyor işi.

180 mhz, tqfp kılıf, ARM9 da bile Göktuğ'un dediği gibi pcb hazırlama zorlukları karşımıza çıkıyor.

ARM11 de modül bazında çalışmak lazım gelir ki gene ilk mesajımdaki maliyet ve gümrük meseleleri karşımıza çıkacaktır.

ARM9 ve ötesi işlemcili kartları hemen hemen pc gibi düşünebilirsiniz. Tam aynı olmamakla beraber bios --> işletim sistemi --> uygulamalar olarak yükleme yapılıyor.
İyilik Yap, Denize At, Balık Bilmezse, Halik Bilir.

ground

Arm7 ile başlamak da gerekebilirdi. Fakat mp3dragon hocamızında belirttiği klasik mculardan farklı , işletim sistemi için hız gerektirecek harici uygulamalar için böyle bir çalışmayı arm9 la yapmak gerek..

Arm konusunda deneyimleri olan bir arkadaşımız bize bu konuda desteği olacak.

Tam destek de bizden.. :)

Sayenizde arm öğrenecez inşallah.
⌒╮'╭⌒╮⌒╮.
╱◥██◣                  
| 田︱田田|              
╬╬╬╬╬╬╬╬╬

Picproje - Sözde değil özde paylaşım..

arslan74

Alıntı yapılan: "mp3dragon"

ARM9 ve ötesi işlemcili kartları hemen hemen pc gibi düşünebilirsiniz. Tam aynı olmamakla beraber bios --> işletim sistemi --> uygulamalar olarak yükleme yapılıyor.


Merhaba,

Bu bahs ettiğiniz konulardan sizlerden teknik destek alabilecekmiyiz arkadaşlar. Sonra elime nasıl çalıştıracağını bilemiyeceimiz bir donamıma sahib olmayalim.

Selamlar

mp3dragon

Sinan yeterince açıklamış o yüzden konunun üzerinde fazla durmayacağım. Picproje sitesinin mantığına uygun biçimde bu proje eğer gerçekleşirse open source olacak. Bu sebeple programlama kısmı için linux, donanım kısmı için internette bulunan açık projeler kaynağımız olacak. Tabii ki şema ve programını açmış ticari projelerde bize yol gösterebilir.

Malzeme temini ve pcb basımı gibi maddi konularda ben yol gösterici olabilirim. Zaten bir amatör olarak bu konularda istesem de yardımcı olamam. Bu konuda yardımcı olabilecek yurtdışı bağlantısı güçlü veya Türkiye'deki dist. ile çalışması yoğun arkadaşlarında desteğini bekleriz tabii.

Bu tür malzeme ve pcb gibi donanım ihtiyaçlarının temini dışında burada bir parasal ilişki söz konusu olmayacaktır. Malzeme ve pcb içinse mecburi olarak maliyetleri aşağıya çekmek için bir parasal ilişki söz konusu olabilir. Örn. kargo paylaşmak veya pcb tooling ücreti paylaşmak gibi.

Açık konuşmam gerekirse ilk mesajımda belirtmiş olduğum malzemelerin tamamına yakını elimde mevcut. Ancak malesef çoğu 1'er adet olarak. Yani buradaki çalışmaya kimse katkı sağlamasa dahi kendi başıma gidebildiğim noktaya kadar götürmeyi düşünüyorum. Ancak bu projenin benim dışında ARM konusunda birşeyler öğrenmek isteyen arkadaşlar için bir fırsat yaratacağını gördüm. Benim elimdeki malzemeler ile yaptığım projenin  burada açık biçimde yayınlanması çok birşey ifade etmiyecektir. Mühim olan donanımdan başlayarak tüm proje gelişirken katkı sağlayan veya takip edenlerin birşeyler öğrenebilmesi. Bir başka fayda ise bu konuda hemen hemen hiç türkçe kaynak olmaması sebebi ile bu proje gelişirken takip edenlerin %100 türkçe kaynaktan yararlanması olacaktır.

Diğer bir husus Türkiye de programcılık konusunda çalışan bize benzer dernek, grup ve forumlar için bu konunun ilgi çekici olacağıdır. Takdir edersiniz ki  açık kaynaklı Türkçe yazılım ve işletim sistemi içinde çalışanlar için Türkler yani bizler tarafından yapılan bir donanım üzerinde yazılım geliştirmek hemde son yıllarda önemi artan embedded programcılık için bir fırsat olacaktır. Bu konuda, bu tür programcılık üzerine çalışan açık kaynak yazılımcılarından destek isteyebiliriz. Bence onlarda bu projeye seve seve destek olacaklardır.

Son olarak bu proje ticari bir proje değildir. Ticari kaygıları dolayısı ile paylaşım yapamayacak arkadaşları anlayış ile karşılarız. Ama bazı konuların kendi tekellerinde olması veya çok kişi tarafından fazla kurcalanmaması mantığı ile yaklaşanlara tahammülümüz yoktur.

Sayın arslan74,
teknik desteğe hepimizin ihtiyacı var. Ancak elimizde iyi kötü bir donanım olmadan zaten neyi soracağımızı veya neyi nasıl yapacağımızı bilemeyiz öyle değil mi? Bir yerden başlamak lazım. Zaten o sebeple çok kişinin elinde aynı donanımın olması yardım alma ve verme açısından uygun olacaktır.

Tekrar belirtmem uygun olur diye düşünüyorum. İnternetteki araştırmalarımda en çok açık kaynak donanım ve yazılımın AT91RM9200 için olduğunu net bir şekilde gördüm. Hemen hemen aynı donanım özellikleri ve paket seçeneğini bulunmasına rağmen EP9302 için aynı destek söz konusu değil. (EP9302 de elimde 1 adet mevcuttur. Hatta daha ucuza temin etmek mümkündür. Ona rağmen tercihim kaynak bolluğu dolayısı ile AT91RM9200 olmuştur.) İlgilenecek arkadaşlarda araştırma yapabilirler. Belki de Göktuğ arkadaşımızın bahsettiği pcb hazırlama sorunları konusundaki toleransı tercih sebebi yapmıştır.

http://svn.arhuaco.org/svn/src/emqbit/free-ecb-at91/v1.6/

Daha öne verdiğim yukarıdaki kaynakta minimal bir board için hazır gerber dosyaları bulunmaktadır. Türkiye'deki PCB firmalarının limitlerini açıkça bilmiyorum. 0.3 mm via ölçüsüne inebilen varsa uğraşmadan teklif isteyebiliriz. Hiç değilse donanım olarak denenmiş ve yazılım çalıştırılmış bir bord ile başlamış oluruz. TFT driver için ayrı bir kart hazırlanabilir. Veya aynı kaynakta orcad dosyası mevcuttur. Benden daha profesyonel olarak pads ve benzeri PCB programları ile çalışanlar oradan faydalanarak pcb tasarlayabilirler.
İyilik Yap, Denize At, Balık Bilmezse, Halik Bilir.

bigbey

Ben de bu proje konusunda mp3dragon arkadaşa destek vererek bu başlık altında güzel bir çalışma sergilemek istiyorum. ARM ler konusunda ben çok yeniyim. güzel bir çalışma için ben de varım.
TA6R

mp3dragon

Şimdi projeyi modüllere ayıralım,

1- Temel donanım seçeneklerini belirlemek,
2- Malzeme araştırması ve temini,
3- PCB dizaynı,
4- Kart basımı,
5- Donanım testi,
6- Bootloader derleme ve yükleme,
7- Linux kernel derleme ve yükleme,
8- Program geliştirme.

Buna göre önce donanım seçeneklerini belirlemek ile başlıyalım;

benim önerilerim aşağıdakiler;

İşlemci: AT91RM9200
RAM: 32 Mb SDRAM
Flash: 2, 4 veya 8 Mb serial flash (Atmel 45DB162, 45DB321 vs)
Ethernet PHY: RTL8201 veya KZS8721
TFT-VGA Driver: EPSON S1D13506
Touch Screen Controller:AD7873
RS232 driver:max3232

Bu malzemeler ile board üstünde Ethernet, USB host ve device, RS232, I2C, SPI, IDE, I2S, SD/MMC Kart, TFT, VGA, TV out, Touch Screen ve GPIO bulunacaktır.

Alternatif donanım için fikri olanları bekliyorum.
İyilik Yap, Denize At, Balık Bilmezse, Halik Bilir.