MSP430 IMU Karti

Başlatan sfaunl, 12 Şubat 2012, 01:49:59

sfaunl

Merhaba arkadaslar. Forumu yeni yeni kesfediyorum. ARM konusunda sayenizde cok degerli bilgiler edindim. Buradan forumda emegi gecen herkese oncelikle tesekkurlerimi sunuyorum.
Soruma gelecek olursak... Msp430 ile bir imu karti tasarimi yapmaktayim.
Karti utu yontemiyle bastim. Ancak tasarim asamasinda yaptigim birkac hatadan dolayi kartin ustune sonradan kablo ile jumper yapmak zorunda kaldim. Forumdaki Cin'de pcb yaptirma basliginda seeedstudio'yu gordukten sonra bu karti profesyonel sekilde bastirmayi dusunuyorum artik. Ancak karsilastigim sorunlar nedeniyle karti mumkun oldugunca hatasiz sekilde tekrar duzenlemek istiyorum. Sizden ricam eagle sematik ve board dosyalarini indirip incelemeniz. Buldugunuz hatalari veya goruslerinizi bildirmeniz. Ornegin sdkartin baglantisi dogru mu?(Daha once hic sd kart uygulamasi yapmadigim icin ornek bir uygulamanin devresinden aldim sematigini) Ya da vcc ve gnd hattinin pcb uzerinde dagilimi iyi mi? Gibi...
Su anda benim farkettigim hatalar;
f5436a'nin jtag baglantisinda test pinini bagmamamisim. Yaptigim kartin uzerinde kablo lehimledigimde jtag calisti.
rgb ledlerin anotlarini gndye baglamisim.

Sematik ve pcb tasarimi:
--

Sematik biraz karisik gorundugu icin biraz aciklayayim.
Kart uzerinde kullandiklarim:
msp430f5436a - Ana islemci
msp430f2012 - Servo girisi icin kullanilan yan islemci (uzaktan kumanda icin kullandim ama buna artik gereksiz gozuyle bakiyorum)
ft232rl - ftdi usb uart entegresi
ina139 - akim sensoru
BMP085 - barometre
itg3200 - gyro
bma180+adxl335 - accelerometer
hmc5883 - magnetometer
1117 - 3.3v regulatoru
microsd soketi
gs407 gps icin bosluk
dealextreme ttl bluetooth tranciever icin konnektor

memo333

Alıntı yapılan: sfaunl - 12 Şubat 2012, 01:49:59

ina139 - akim sensoru
BMP085 - barometre
itg3200 - gyro
bma180+adxl335 - accelerometer
hmc5883 - magnetometer
1117 - 3.3v regulatoru
microsd soketi
gs407 gps icin bosluk
dealextreme ttl bluetooth tranciever icin konnektor


öncelikle hoşgeldiniz.

çalışmanız öncelikle çok güzel elinize sağlık.

ben kompoment seçmi ile ilgili bir-iki öneride bulunacağım.

*neden 2 adet acc? eğer tek kullanmanız yeterli ise adxl345 ve lis3dh'ı öneririm spidan haberleşiyorlar.

*işlemci stm32f4 veya stm32f1 olursa daha iyi olabilir. malum o kadar sensör.

onun dışında bu saatte bu çıkar benden, çalşmanızda başarılar :D
Gömülü Linux Notları --> http://linuxedu.xyz/

sfaunl

Alıntı yapılan: memo333 - 12 Şubat 2012, 02:01:52
öncelikle hoşgeldiniz.

çalışmanız öncelikle çok güzel elinize sağlık.

ben kompoment seçmi ile ilgili bir-iki öneride bulunacağım.

*neden 2 adet acc? eğer tek kullanmanız yeterli ise adxl345 ve lis3dh'ı öneririm spidan haberleşiyorlar.

*işlemci stm32f4 veya stm32f1 olursa daha iyi olabilir. malum o kadar sensör.

onun dışında bu saatte bu çıkar benden, çalşmanızda başarılar :D
Acikcasi elimde iki sensor de oldugu icin ve hangisinin daha iyi calisacagini bilmedigim icin(titresim nedeniyle) tasarlarken ikisini de koymustum. Ama yeni tasarimda adxl335'i cikarmayi dusunuyorum. Sanirim bma180 titresime karsi daha dayanikli. Ayrica i2c ile calistigi icin diger sensorlerle butun calismis oluyor.

ARM konusunda henuz yeniyim. Cevre birimlerini iyi sekilde kullanabilecek seviyede degilim. Ama acikcasi 168 MHz 32bitlik bir kontrolcu benim de isime gelirdi. :D Cevap icin tesekkurler. :)

muhittin_kaplan

Hocam Öncelikle Hoşgeldiniz. Eagle hiç çalışmadım. genelde Ares ile çizerim.
Kartın Çalışmasını Garanti etmeden, yani dinamik olarak (uçağın üzerinde) denemeden kart bastırmayınız.
ayrıca titreşimler tüm ivme lerde olacaktır. bunu engellemek için ya bir analog filtre kullanacaksınız yada yazılımsal (kalman gibi) bir fonksiyonu filtre olarak kullanacaksınız.
Kolay gelsin

sfaunl

Alıntı yapılan: muhittin_kaplan - 12 Şubat 2012, 19:49:06
Hocam Öncelikle Hoşgeldiniz. Eagle hiç çalışmadım. genelde Ares ile çizerim.
Kartın Çalışmasını Garanti etmeden, yani dinamik olarak (uçağın üzerinde) denemeden kart bastırmayınız.
ayrıca titreşimler tüm ivme lerde olacaktır. bunu engellemek için ya bir analog filtre kullanacaksınız yada yazılımsal (kalman gibi) bir fonksiyonu filtre olarak kullanacaksınız.
Kolay gelsin
Hocam yerde test etmeden zaten ucurmam onu ama elimdeki kartta padleri kucuk biraktigim icin(qfn kilif) yaptigim karttaki acc calismayinca, zaten tasarimda da hatalar oldugu icin yeniden tasarlamaya karar verdim.
Titresimden kastim sensorun titresimden olumsuz etkilenmesiydi. Yoksa zaten filtre kullaniyorum sensorlerde.

Yok mu pcb konusunda akil verecek birisi? ::)

iyildirim

Bu kadar küçük kılıflar için PCB yi kendiniz, hemde ütüleme ile yapmak bayağı zor olmalı.

Buna benzer bir board bende yapmıştım. Yeni tasarladığım board içinde pusula ve işlemci dışında aynı elemanları kullanmışız. Ben 5843 kullanmıştım.
İşlemci için de DSP destekli bir işlemci öneririm.  Kontrol algoritmanız nasıldır bilmiyorum ama matris çarpımları vs. gibi işlerde ciddi hız katıyor.

QFN kılıflar için söyleyebileceğim pad'leri dışa doğru biraz uzun yapmanız olacak. Sıcak hava tam iş görmezse havya ile müdahale olanağı daha rahat oluyor.
BMA80 de gayet iyi bir acc. 335 için hiç uğraşmayın derim .
BMA180 + ITG3200 yerine MPU6000 diye bir şey de var.

bluetooth modüller yerine Zigbee (Xbee) modüllere de bakabilirsiniz. Hiç sorun çıkarmıyorlar, çok başarılı. mesafe olarak da bluetooth dan iyidirler.

PCB yi hazır yaptırmanız daha iyi olabilir. Ütü ile çıkacak kaliteye açıkçası pek güvenemiyorum. Belki de ben ütü konusunda beceriksiz olduğumdan..


sfaunl

Alıntı yapılan: iyildirim - 13 Şubat 2012, 02:44:03
Bu kadar küçük kılıflar için PCB yi kendiniz, hemde ütüleme ile yapmak bayağı zor olmalı.

Buna benzer bir board bende yapmıştım. Yeni tasarladığım board içinde pusula ve işlemci dışında aynı elemanları kullanmışız. Ben 5843 kullanmıştım.
İşlemci için de DSP destekli bir işlemci öneririm.  Kontrol algoritmanız nasıldır bilmiyorum ama matris çarpımları vs. gibi işlerde ciddi hız katıyor.

QFN kılıflar için söyleyebileceğim pad'leri dışa doğru biraz uzun yapmanız olacak. Sıcak hava tam iş görmezse havya ile müdahale olanağı daha rahat oluyor.
BMA80 de gayet iyi bir acc. 335 için hiç uğraşmayın derim .
BMA180 + ITG3200 yerine MPU6000 diye bir şey de var.

bluetooth modüller yerine Zigbee (Xbee) modüllere de bakabilirsiniz. Hiç sorun çıkarmıyorlar, çok başarılı. mesafe olarak da bluetooth dan iyidirler.

PCB yi hazır yaptırmanız daha iyi olabilir. Ütü ile çıkacak kaliteye açıkçası pek güvenemiyorum. Belki de ben ütü konusunda beceriksiz olduğumdan..
Zor degil de ugrastirici, ozellikle de delikler. :) pnp kagit kullanarak yaptim. Kart cok iyi cikti ama delikler cok zaman aliyor. :) Kartta da bir suru delik var. Pek akil kari degil bu tarz bir devreyi utu ile yapmak bunu ogrendim. :) Kullandigim islemcide 32 bit hardware multiplier modulu var, onu kullanmayi dusunuyorum. MSP430'a da su anda hakim sayilirim o yuzden islemci degistirmek su anda zamanimi calacaktir. Evet yeni tasarimda dediginiz gibi padleri uzatacagim. Bu tasarimda komik olan qfp kiliflarin uclarini uzatmisim da uzatmisim ama qfnler hemen diplerinde bitiyor. :) MPU6000 alacaktim aslinda ama o da biraz tuzlu. elimde zaten sensorler de vardi. Belki bu karttan sonraki tasarimlarda deneyebilirim. Bluetooth modulu elimde vardi o yuzden kullaniyorum uzerinde. Zaten soketi zigbee'yi de dusunerek tasarladim. Yani sonradan oraya zigbee de takabilirim ama yerde deneme yaparken pid degiskenlerini duzeltmek icin kullanacagim buyuk cogunlukla. Simdilik bluetooth yeterli. Bir de simdi aklima gelen sensorleri islemciden ayirsam mi acaba? Daha sonra baska islemciler ile de cok rahat kullanabilirim boylece.

memo333

Alıntı yapılan: sfaunl - 13 Şubat 2012, 03:49:01
Bir de simdi aklima gelen sensorleri islemciden ayirsam mi acaba? Daha sonra baska islemciler ile de cok rahat kullanabilirim boylece.

ayırmanız daha iyi olur.
Gömülü Linux Notları --> http://linuxedu.xyz/

muhittin_kaplan

Hocm ben öyle düşünmesemde (tüm kartı tek pcb yapacağım) modül modül yapıldığını görüyorum. muhtemelen bu satış stratejisidir. adamın sadece bir sensöre ihtiyacı varsa ona göre alım yapıyor vs.

sfaunl

Satmak gibi bir dusuncem yok bunu zaten sema dosyalarini koydum buraya kimse almaz artik. :D Butun kart olunca tek bir hatada tum kart gidiyor.(Sekil 1-a :) ) Sensorlerin kisminda yanlis bir sey olmaz sanirim zaten. Sparkfun'daki sensor stick tarzi bir sey yapip pin header kullanarak islemci katina takarim. Peki GPS'i nasil yerlestirmeliyim? Elimdeki gps su:
http://www.sparkfun.com/products/9436
Anteni helical oldugu icin dikey olmasi gerekiyor gps'in. Sensor kartina mi yerlestirsem? Ne yapsam acaba?
Hala pcb icin not veren olmadi.  :-\

sfaunl

#10
Bir de sensor karti icin ayri islemci karti icin ayri regulator kullanmali miyim? Yoksa ustteki kartta oldugu gibi hepsini bir taneden beslesem sorun olur mu? Ayrica usb ve sd kart soketlerinin metal kisimlarini gnd'ye baglamali miyim?

Ek olarak, yan islemci olarak kullandigim 2012'yi tasarimdan tamamen cikarip servo baglantilari icin 5436a'ya mi baglasam? Su anda entegreler birbirleriyle i2c ile haberlesiyor. Ne dersiniz? Ek bir entegreye luzum var mi bu is icin?

airforce

Sensör ve işlemcinin çektiği akımları regülatörün karşılayabiliyorsa ayrı bir regülatör eklemek gerekmez. Sensör ve işlemci arasında analog bir bağlantı varsa 2 farklı regülatör sorun oluşturabilir.

Usb ve SD soketlerinin metal kısımlarını gördüğüm kadarıyla cihazlarda şaseye bağlıyorlar bende tasarımlarımda bu şekilde kullanıyorum.

Ufak bir sorum var

Bu iki 3-eksen pusula sensörünün birbirlerine göre iyi-kötü özellikleri nelerdir? Hangisini alsam daha iyi olur?

http://strawberry-linux.com/pub/HMC5883L.pdf

http://www51.honeywell.com/aero/common/documents/myaerospacecatalog-documents/Defense_Brochures-documents/HMC5843.pdf


Kolay gelsin....

iyildirim

5883 yeni model.
5843 de 1043 serisi , 5883 118x serisi daha yeni bir sensör varmış.

5883 auto degauss özelliğine de sahip,  5883 de hard-soft iron calibrasyonu için hazır kütüphaneler var yazıyor, ama 5843 için de kullanmak mümkündür sanırım.
5843 max 116hz çıkış veriyor. Daha hızlı çıkış verince de çözünürlüğü düşüyordu.  Kullanmıştım.

5883 160hz imiş ve çözünürlük yüksek hızda daha iyi gibi.

Continuous modda 5883 %50 daha hızlı. Ayrıca çözünürlüğü de daha iyi.

Fiyatları aralarında ciddi bir fark da yok. Benim tercihim 5883 olurdu.


airforce


mistek

Yeni konu açmak istemedim.
HMC5883L magnetometer sensörden i2c ile veri okuyorum ancak doğruluğundan emin olamadım. 3 eksen ölçüm yapabiliyor. +-1.3 gauss hassasiyetinde ayarladım bildiğim kadarıyla dünyanın  manyetik alanı 0.5-0.6 gauss.
Sorum şu;
X ve Y düzleminde ölçülen manyetik alanın eşit olması gerekmez mi? ya da Z ekseni etrafında çevirdiğimde X ve Y ninde değişmesi gerekmez mi? Manyetik alan tam olarak nasıl tespit ediliyor anlayamadım. Yükseklik fark edermi bilmiyorum ölçtüğüm yer Erzurum rakım:1970m

Sensör masanın üstünde durduğunu düşünün +Z tavana doğru
+X
|
|
|
O _________ +Y

iken Seri Porttan aldığım (birim gauss);
X=-0.354         Y=-0.708        Z=-0.049
X=-0.354         Y=-0.708        Z=-0.049
X=-0.354         Y=-0.708        Z=-0.049
X=-0.354         Y=-0.708        Z=-0.049
X=-0.351         Y=-0.708        Z=-0.049


+Z tavana doğru
                       +Y
                         |
                         |
                         |
+X _________ O

iken Seri Porttan aldığım (birim gauss);
X=-0.221         Y=-0.695        Z=0.303
X=-0.215         Y=-0.697        Z=0.305
X=-0.213         Y=-0.695        Z=0.305
X=-0.215         Y=-0.697        Z=0.305
X=-0.215         Y=-0.697        Z=0.305
X=-0.213         Y=-0.695        Z=0.305
boş işlerin adamı ---- OHM Kanunu: I = V/R ---- Güç Formülü: P = V*I = I^2*R = V^2/R