Picproje Elektronik Sitesi

DİJİTAL & ANALOG ELEKTRONİK => Pld, Spld, Pal, Gal, Cpld, Fpga => Konuyu başlatan: hyperalika - 08 Ocak 2012, 14:58:08

Başlık: FPGA veya CPLD basit proje yardım.
Gönderen: hyperalika - 08 Ocak 2012, 14:58:08
 FPGA ları yeni duydum benim projem basit ama paralel çalıştığı için projem için bulunmaz nimet. FPGA veya CPLD kullanarak sumo robotu yapmak istiyorum. Ama fpga mı kullanmalıyım yoksa cpld mi  bilmiyorum daha önce pic kullanıyordum , pic içindeki programı tek tek okuduğundan sensörü geç algılıyor çünkü o sırada başka bir işlem yapıyor. 15 digital giriş ve 3 çıkış (Led yakmak için) + 4 çıkış (2 DC motor sürmek için ) + 2 (DC motor hız kontrolu için pwm ) = 9 Toplam çıkış . Toplam 24 I/O kullanacağım . Sensörlerden gelen sinyale göre motorların hızını pwm ile artırıp azaltıp veya ileri ve geri yönde sürmek içim kullanacağım. Sensörleri pic teki gibi sıra ile kontrol etmemek için fpga veya cpld kullanmak istiyorum. Paralel olarak hepsini birden kontrol edip aynı anda motoru kontrol etmek istiyorum . Bunun için Fpga mı kullanmalıyım CPLD mi hangi seri hangi model kullanmamı tavsiye edersiniz. Bu projem için elinizde fpga veya cpld için gerekli yazılım veya döküman varsa paylaşırsanız sevinirim. Örneğin pwm ile hız kontrol gibi. Şimdiden herkeze teşekkür ederim.
Başlık: Ynt: FPGA veya CPLD basit proje yardım.
Gönderen: SERRO EFE - 08 Ocak 2012, 15:07:11
Bence sen sumo robotun için pic kullanmaya devam et. Düşündüğünden çok saha hızlı çalışıyo emin ol hatta senin 1 değil 2 sumonu birden idare edebilir.
Başlık: Ynt: FPGA veya CPLD basit proje yardım.
Gönderen: teknikelektronikci - 08 Ocak 2012, 15:09:48
soruna cevap
cpld fpga icin birde ayrica seri veya paralel flash a ihtiyac duyacaksin ayrica projen icin fpga fazla olmakla birlikte cpld bile fazla ama olsun ögrenmek icin ideal bence ögrenmek istiyorsan durma cpld ile projeni gerceklestir ama o kadar basit degil benden söylemesi ;)
Başlık: Ynt: FPGA veya CPLD basit proje yardım.
Gönderen: hyperalika - 08 Ocak 2012, 15:37:57
Elimde xilinx XC2C64A CPLD si var bu iş için uygunmudur. PIC in sumo robotu için yeterli olduğunu biliyorum zaten derecelerim var ama  "SERDO EFE" CPLD  PIC' e göre daha performanslı çalışacaktır. Fazla bilgi göz çıkarmaz ilerde belki FPGA ile belki daha değişik projelere el atarım. Ayrıca flashı ne için kullanıcam
Başlık: Ynt: FPGA veya CPLD basit proje yardım.
Gönderen: yamak - 08 Ocak 2012, 16:00:05
FPGA larda flash bulunmuyo yani yani her açılışta flashtan boot ediyo yazdığın programı. Ama yeni çıkan bazı fpgalarda flash mevcut.
Başlık: Ynt: FPGA veya CPLD basit proje yardım.
Gönderen: Ersin - 08 Ocak 2012, 16:08:15
PWM demişin ,sensörlerden gelen bilgi demişsin,  ama bu sensorler analog bilgi  mi yoksa dijital mı  çok fark eder.PWM de kullanacagına göre xc2c64 yetmez , en az xc2c128 belki de 256 gerekir.Sensörlerin analog ise pic le yap , projende performans pic ten değil daha çok motor ve mekanik yapıdan dolayıdır.
Başlık: Ynt: FPGA veya CPLD basit proje yardım.
Gönderen: hyperalika - 08 Ocak 2012, 18:09:59
Alıntı yapılan: Ersin - 08 Ocak 2012, 16:08:15
PWM demişin ,sensörlerden gelen bilgi demişsin,  ama bu sensorler analog bilgi  mi yoksa dijital mı  çok fark eder.PWM de kullanacagına göre xc2c64 yetmez , en az xc2c128 belki de 256 gerekir.Sensörlerin analog ise pic le yap , projende performans pic ten değil daha çok motor ve mekanik yapıdan dolayıdır.
Motor ve dişli sistemimin performansından memnunum zaten işte dediğim gibi paralel işlem yapabilirsem biraz daha stabil çalışıcak robot. Sensörlerin hepsi digital çıkış 1(5V) ve 0 .
Başlık: Ynt: FPGA veya CPLD basit proje yardım.
Gönderen: Ersin - 08 Ocak 2012, 21:44:42
Sensorler dijital olmaları adc kullanımını kaldırır , cpld li bir devre için avantaj olur.Paralel işlem demişsin, picle yaptığın zaman 1-2us gecikme ile komutlar çalışsa çok mu sorun olacak.Bu senin pic kullanamadığından kaynaklanır,ne bir adc değer okuyosun ne bir pid algoritması sağlamaya çalışıyosun alt tarafı aç kapa işlemlerin var.Devren pic ile rahat yapılacak şekilde , pic ile yaparsan tiimer ları kulanmaya çalış , pwm için hpwm pinlerini kullan.Yok illa cpld ile yapacam öğrenecem diyosan 128 lik cpld yeter buyuk ihtimal, yalnız level translator  ( Sensörlerin hepsi digital çıkış 1(5V) ve 0 ) kullanmaya unutma.
Başlık: Ynt: FPGA veya CPLD basit proje yardım.
Gönderen: yamak - 08 Ocak 2012, 21:51:19
Bence de bu is icin cpld biraz gereksiz olur. Ama ogrenmek icin ideal bi uygulama olabilir. Ama sirf robot daha iyi  performans gostersin istiyosaniz arm cekirdekli bir mcu da kullanabilirsiniz. Tabi cpld ya da arm kullanmani soyle bi sikintisi olacak devreyi basma derdi cikiyo ortaya.Ama cortex mo cekirdekli  dip kilifli nxp nin mculari cikmis. Az once oyle okumustum bi baslikta
Başlık: Ynt: FPGA veya CPLD basit proje yardım.
Gönderen: hyperalika - 08 Ocak 2012, 22:23:53
Devre basmak problem değil . Kartı zaten smd tasarlıyorum genelde küçük olması için. Şimdi karar veremedim neden cpld gereksiz olur anlayamadım. Zaten aklımda ya STM32 ya da CPLD kullanmayı düşünüyordum . Anladığım kadarıyla sizde CPLD yerine PIC veya arm diyorsunuz. Ayrıca söylememişim ama PID de kullanıyorum.
Başlık: Ynt: FPGA veya CPLD basit proje yardım.
Gönderen: berat23 - 08 Ocak 2012, 23:27:53
fpga ya da cpld ile böyle bir işe kalkışmak,deneyimsizken çok mantıklı bir iş değil.çok iyi bir kod yazamazsanız ki muhtemeldir,cpld size yetmeyebilir.fpga ise her yönden ekstra maliyet demek ki fpganın kapasitesinin çok ufak bir kısmı kullanılacak.o yüzden baştan elendi fpga.aslında 4 pwm ve geri kalan kontrol kısmı için 128 macrocell yeter belki ama adını ilk defa duyduğun bir elemanla böyle bir iş geliştirmek zor.ayrıca algoritmada yaptığın ufak değişiklikler fpga için tamamen değişim anlamına da gelebilir ama c gibi yüksek seviyeli bir dille çok basittir.bu gibi birçok sebep var.mesela arka arkaya koyduğun if ifadelerini fpga ile yapman için fsm yapman lazım.

aslında pic gibi mcular böyle basit kontrol devreleri için yeterince hızlı.zaten sensörün gecikmesi her türlü mcudan fazla olacaktır.us mertebesinde gecikmeler çok sıkıntı oluşturmaz.bilmiyorum ama mesela c gibi yüksek seviyeli diller yerine asm ile yazarsanız yazılımı,daha fazla müdahale imkanınız olur hıza.veya başka bir mcu kullanıp,ciddi hız farkları yaratabilirsiniz.pid değilde daha görüntü falan işleseniz ancak fpga mantıklı olurdu.
Başlık: Ynt: FPGA veya CPLD basit proje yardım.
Gönderen: yamak - 08 Ocak 2012, 23:35:58
Ben CPLD kullanmadım hiç ama FPGA kullanıyorum.Şöyle bi örnek vereyim mesela FPGA lar ile bölme işlemi yapmak bile sıkıntı.Sadece 2 ye bölme işlemi yapılabiliyo. Bunun için daha önceden tasarlanmış IP (logic core) lar var onları kullanmanız gerekiyo. Floating point işlem de yapılmıyo.Bunun için de ayrı logic core lar var. Bunlar sadece örnekti bunun gibi bir çok muhabbet giriyo işin içine. FPGA lar genellikle sinyal işleme gibi konularda kendini gösteriyo.Ama illa öyle olsun diyosanız. Tabi paralel işlem nimetini kullanıp her sensorden gelen veriyi paralel olarak işleyebilirsiniz.Ama mesele arm çekirdekli bi mcu ile yapsanız böyle bi uygulama işlemciyi hiç kasmaz. Gecikmeler farkedilemez bile. Mesele forum sayesinde aldığımız stm32f407 ler 168mhz de çalışabiliyo. Bu da sizin işinizi hayli hayli görür. Fakat görüntü işleme,ses işleme yapabilen bi robot yapmak isteseniz bu iş için FPGA biçilmiş kaftan olur.
Başlık: Ynt: FPGA veya CPLD basit proje yardım.
Gönderen: fatihinanc - 08 Ocak 2012, 23:52:09
Alıntı yapılan: gerbay - 08 Ocak 2012, 23:45:03
Sinyal => [hızlı bir ADC] => [FPGA] <=> [Cortex=M4] <====> diger peripheral lar..

şeklinde bir olay kurun, istediğiniz gibi oynayın..

Yeni dijital skoplar :)
Başlık: Ynt: FPGA veya CPLD basit proje yardım.
Gönderen: berat23 - 08 Ocak 2012, 23:59:46
Alıntı yapılan: gerbay - 08 Ocak 2012, 23:45:03
Sinyal => [hızlı bir ADC] => [FPGA] <=> [Cortex=M4] <====> diger peripheral lar..

şeklinde bir olay kurun, istediğiniz gibi oynayın..

şöyle yapsak;
Sinyal => [hızlı bir ADC] => [FPGA=>soft cpu, diger peripheral lar]..

genel olarak sistemi ufaltmak için?
Başlık: Ynt: FPGA veya CPLD basit proje yardım.
Gönderen: berat23 - 09 Ocak 2012, 00:11:00
nios çarpıp,bölebiliyor.zaten fpga içinde dahili dsp blokları bu işler için kullanılabiliyor,işlemciyi gömerken hangi elemanları(logic elementler veya dsp ) seçilebiliyor.biraz uğraşılırsa kaynak en verimli şekilde kullanılabilir.yüksek kapasiteli bir fpga ile hepsi halledilebilir.zaten bu kadar çok işlem gücüne ihtiyacımız varsa muhtemelen elimizde yeterli bir fpga vardır.

ben aslında bu yazdığımla işlemcilerin sequential kod yazmadaki kolaylıklarını kullanmak istedim.yoğun işlem gerektiren işler için fpga üzerinde bir dsp bloğu oluşturulup,geri kalan haberleşme,kontrol gibi işler için nios gibi bir işlemci kullanılabilir.fsm kurmak yerine c ile sequential kod yazmak bence çok daha basit.
Başlık: Ynt: FPGA veya CPLD basit proje yardım.
Gönderen: fatihinanc - 09 Ocak 2012, 00:14:14
Alıntı yapılan: gerbay - 09 Ocak 2012, 00:03:44
hocam çarpma, bölme, türev, integral olaylarına girmeyecekmisiniz. FPGA biraz yormaz mı? micro blaze, nios falan mı kullanacaksınız? onların bölme instruction ı var mı?

Nios oldukça güzel bir CPU çekirdeği fakat içerisindeki çevrebirimlerin kullanımı o kadar kolay değil. Bir de bana göre en sıkıntı tarafı çevrebirimler için Altera'nın yazdığı kütüphaneler çok yer kaplıyor. Bu sebeple yüksek hafıza bloğu taşıyan bir FPGA seçmek kaçınılmaz oluyor. O da bir CM4 MCU ya kıyasla oldukça yüksek ekstra maliyet demek. Bence FPGA arkasına güzel bir MCU daha mantıklı. İşin bir de soft core lar için maddi boyutu var tabi...
Başlık: Ynt: FPGA veya CPLD basit proje yardım.
Gönderen: z - 09 Ocak 2012, 00:55:41
FPGA?

Çizgi izleyen robot değil de uçak izleyen roket yapıyor olmalısın.
Başlık: Ynt: FPGA veya CPLD basit proje yardım.
Gönderen: mozkan87 - 09 Ocak 2012, 01:06:59
Alıntı yapılan: bunalmis - 09 Ocak 2012, 00:55:41
FPGA?

Çizgi izleyen robot değil de uçak izleyen roket yapıyor olmalısın.
,
;D ;D ;D

Bende yazacaktım ama vazgeçmiştim.
Başlık: Ynt: FPGA veya CPLD basit proje yardım.
Gönderen: z - 09 Ocak 2012, 01:22:57
FPGA kullanipda icine MCU gomme fikri bana cok sacma geliyor.

Eger FPGA icinde PID isletecekseniz bunun icin cipin icine MCU gommenize gerek yok zaten bu FPGA in asil amacina da aykiri. PID nin ozu carpma ve toplamadir. Bu iki islemi lojik devre olarak tasarlayip FPGA yada yogun bir CPLD icine gomersin olur biter ve Mhz hatta Ghz mertebesinde samplelar alarak PID ni dondurursun.

Fakat cizgi izleyen robot icin bu frekanslar inanilmaz dehset korkunc urkutucu degerler.

Rahat etmek istiyorsan TI in 16Bit motor kontrol islemcileri var. Bunlarla robota takla bile attirirsin. PWM ve ADC birimi iceren herhangi bir ARM cipi de secebilirsin.
Başlık: Ynt: FPGA veya CPLD basit proje yardım.
Gönderen: fatihinanc - 10 Ocak 2012, 00:06:48
Alıntı yapılan: gerbay - 08 Ocak 2012, 23:45:03
Sinyal => [hızlı bir ADC] => [FPGA] <=> [Cortex=M4] <====> diger peripheral lar..

şeklinde bir olay kurun, istediğiniz gibi oynayın..

Hocam burada aklıma takılan bir soruyu sormak istiyorum.
Şu an benzer bir tasarım üzerinde çalışıyorum ve sinyal işleme ağırlıklı olmayan kısımları bir MCU'ya yüklemek istiyorum.
FPGA ile MCU arasındaki iletişimde sizce hangi yol seçilmeli ?
Yani SPI,I2C veya UART veya da paralel iletişim veya... ?
Hangisi sizce pratikte daha verimli olur ?
Başlık: Ynt: FPGA veya CPLD basit proje yardım.
Gönderen: hyperalika - 10 Ocak 2012, 21:22:22
STM32F4 kullanmaya karar verdim . Herkeze çok teşekkür ediyorum bilgilendirdikleri için
Başlık: Ynt: FPGA veya CPLD basit proje yardım.
Gönderen: fatihinanc - 10 Ocak 2012, 22:33:22
Alıntı yapılan: gerbay - 10 Ocak 2012, 00:23:05
hocam saydıkların içerisinden tabiki SPI ama bazı insanlar static memory controller içeren MCU lar ( örneğin STM32 ler ) ile bu işi yapıyorlar ve FPGA i static RAM gibi bağlıyorlar. Bu şekilde çok daha yüksek hızlarda veri aktarımı yapıyorlar. Ben hiç denemedim ama görmüştüm bu tip çalışmalar..

Hocam teşekkür ederim. Bu konuyu araştıracağım. Bahsettiğimiz olay external memory controller olayı, doğru mudur ?
Başlık: Ynt: FPGA veya CPLD basit proje yardım.
Gönderen: electronious - 10 Ocak 2012, 23:08:05
Alıntı yapılan: bunalmis - 09 Ocak 2012, 00:55:41
FPGA?

Çizgi izleyen robot değil de uçak izleyen roket yapıyor olmalısın.

Hocam çok iyi olmuş açıklama :D
Başlık: Ynt: FPGA veya CPLD basit proje yardım.
Gönderen: z - 10 Ocak 2012, 23:15:18
FPGA ile paralel veri alışverişi yapmak için illaki işlemcinin external bus'a sahip olması gerekmiyor. Eğer varsa (memory controller olması şart değil) FPGA'den veri okumak yada tersine yazmak tek makine koduna indirgenebiliyor.

Eğer external bus yoksa yapılacak iş gene basit. I/O portlardan da paralel konuşmak mümkün. (Örneğin LCD lerle konuştuğumuz gibi) Bu durumda konuşma bir makine koduyle değil de bir kaç makine koduyla oluyor.
Başlık: Ynt: FPGA veya CPLD basit proje yardım.
Gönderen: fatihinanc - 10 Ocak 2012, 23:28:47
@gerbay hocam açıklama çok güzel olmuş teşekkür ediyorum.
Evet ST'de bu özellik FSMC olarak geçiyor dün biraz araştırmıştım. Diğer CM3 serisi LPC ve Stellaris'lerde var mı diye baktım ama galiba yok. LPC178x serisinde var sadece.
Çıkışa FSMC modülü olan basit bir CM3 çok güzel olur aslında. Zaten matematik işlemlerini FPGA halledecek.

@bunalmis hocam dediğiniz gibi i/o lar ile de rahatlıkla yapılabilir. Hız açısından bildiğimiz standart seri iletişim protokollerinin haricinde başka hernagi birşey var mı diye merak etmiştim. Bu external memory controller olayı varmış. En azından bu işler için özel tasarlanmış bir modül.
Başlık: Ynt: FPGA veya CPLD basit proje yardım.
Gönderen: z - 11 Ocak 2012, 01:27:56
FPGA'ye hesaplatacağın matematiksel problem nedir?
Başlık: Ynt: FPGA veya CPLD basit proje yardım.
Gönderen: fatihinanc - 11 Ocak 2012, 02:40:21
FFT
Başlık: Ynt: FPGA veya CPLD basit proje yardım.
Gönderen: z - 11 Ocak 2012, 02:42:05
FPGA'ın şanına yaraşır bir işlem. Peki giriş sinyalimiz hangi aralıkta?
Başlık: Ynt: FPGA veya CPLD basit proje yardım.
Gönderen: fatihinanc - 11 Ocak 2012, 02:51:09
Hocam giriş sinyali DTMF tonlarının frekans aralığı olacak. Yani en yüksek 1633Hz ile 933Hz arasında.
Bitirme projemle ilgili bir konu olduğundan meraktan sormuştum. Yani "ille de en hızlısı benimki olsun" diye değil :)
Başlık: Ynt: FPGA veya CPLD basit proje yardım.
Gönderen: z - 11 Ocak 2012, 02:58:41
Bitirme ödevi ise sorun yok. FPGA için gayet güzel bir konu.

Bu projenin hakkını vermek için hazır toollardan kaçınmak lazım.

(Şimdi ABEL kullan diyeceğim ama Müfit hocamdan korkuyorum.)
Başlık: Ynt: FPGA veya CPLD basit proje yardım.
Gönderen: fatihinanc - 11 Ocak 2012, 03:09:45
:)
Verilog kullanıyorum hocam.
Başlangıçta hazır toollarla kesin çalıştığını gördükten sonra yetişirse inşaallah FFT kısmını kendim tasarlamayı deneyeceğim.