PSoC canavarlarının dikkatine !...

Başlatan aster, 20 Aralık 2005, 12:57:59

aster

@ tatlisukurnazi,

Paralel porttan yaptığın PSoC programlayıcıyı merak ettik bizlerle paylaşırmısın?
PSoC larla ilgili fiyat performans değerlendirmelerini alabilirmiyiz?

Sen daha önce RENESAS M16C serisini parçalamıştın  :)
M16C ile bunu kıyaslarsak sence sonuç nedir?

ve diğer PSoC canavarları, aynı sorular sizlerede

aYe

Öncelikle şu 6 yıldız için teşekkürler, on yıldır internetteyim bu ilk torpilim oldu:) Ben mailimi bile yazmadan nasıl radara girdim onu da halen anlamis değilim ama madem bakanlık emri var cezamizi çekelim:)  

Psoc için paralel porttan çalışan programlayıcı aslında internette bolca mevcut ancak bana göre çok hantaldı (çeyrek programlama/dk);
1) insystem programlama sonrası psoc'un çalışmaya başlaması için mouse ile reset butonuna click yapma zorunluluğu
2) insystem programlama için gereken pinlerin özgürce kullanılamaması (ilgili portta lcd data bus varken her üç programlamadan biri kesin hata veriyodu)
Peki ne yaptik;
1) bir adet 4053 ekledik 2 switch ile sck sda pinlerini özgür biraktik
2) geriye kalan 1 switch , 2 diyot ve kondansatör ile de reset clickinden kurtulduk

Sonuc olarak bütün psoc ailesini programlayabilen 4programlama/dk hızına ulaşmış bir cihaza 10$'i geçmiyicek maliyetle sahip olduk :)
Simdi protel pcb ve schematic dosyalarini ve programin exe'sini, C derleyicisinin şifresini buraya eklemek isterdim ama bir türlü kadiköye gidipte smd 4050 alamadim...
En kisa zamanda tamamlayip buraya gereken dosyalari ekliyicem...

Mitsubishi M16C ve PSoC pek kiyaslanabilecek şeyler değil aslında.. M16C'ye benim yaptığım zulmü hitler yahudilere yapmadi :) Şöyle ki; 500volt 1.8mhz'de çalışan bir epilasyon cihazının hava nüveli çıkış bobinin içine M16C'yi çalışırken yerleştirdim. Ki bu cihaza 30cm yaklasan bir bilgisayar rutin bir şekilde resete gidiyo... Akibetinde bütün I/O lar yüksek seviyeye dönüştü, ben M16C yandı diye düşünüp kartı bobinin içinden çıkartırken (bobinden sadece 2cm uzaklaştı) I/O'lar normale döndü ve M16C çalışmaya devam etti. En ilginç olansa resete dahi gitmemişti yani mcu asla kitlenmedi. Kişisel kanaatim benim gördüğüm en güvenli mcu olduğudur. Bana göre Tricore ARM ve benzerleri gibi üst seviye bir mcu. Psoc'u ise PIC12-16-18 Avr gibi mcu'larla ayni katagorilerde düşünebiliyorum.

Geçelim Psoc nedir kimdir;
Cypress firmasının (www.cypress.com) Mixed-Signal Controllers diye adlandirdiği nedense mcu demekten çekindiği bir ürünü.
A+ aldigi dersler;

1)örnegin 3v pille besleyeceginiz bir devre tasarladiniz ama kartta 1 tane de 5v kompanent var.. Sorun değil Psoc kendi beslemesini bir diyot ve minik bir bobinle 5volta yükseltir hatta bir iki tutumlu arkadaşıyla da paylaşabilir. Bitti mi sayin yolcular?

Bitmedi...
2)24 mipslik (8 bacaklisi bile 24mhz)bu arkadas icin yana yana osilator aramak zorunda değilsiniz zira icinde var. Ayrica pll ile 48mhz'yi cpu harici bloklarda kullanabilirsiniz. Yine ek olarak dahili 32768 kristali de eklemekte fayda var. Ve yine içinde mevcut 3 prescallerin her biri için 24mhz,Pll,32768,I/O,Timer,Diger bir prescaller veya veya veya'yı giriş olarak seçip istediginz şekilde bölerek istediginiz yerlere clock olarak atayabilirsiniz.Bitti mi sayin yolcular?

Bitmedi...
3)6'dan 14 bite kadar degişik tipte ve adetlerde pwm modülünü donanıma ekleyebilirsiniz high low mosfet drive için çıkışı iki pine rahatlıkla bölebilir hatta dead time'i da istediginiz kadar ayarlarsınız. 8 tane DAC 8 tane ADC modülünü  aynı anda sadece 28pin bir entegreye donanım olarak ekleyebilisiniz. Size alçak geçiren filtre, yüksek geçiren filtre opamp comparator,voltage referance mi lazim? Sorun yok onlardan da beher miktar ekleye bilirsiniz. Timerlar zaten 8 den başlıyo 32 ye kadar var.. Bitti mi sayin yolcular?

Bitmedi....
4)Size dmtf dialer lazım hemde telefon hattı üzerinden seri data iletişimi yapıcaksınız onunda modulleri var ekleyin 28pin psoc'a, i2c, irda, yada 4 tane rs mi lazim? Onlarıda eklemek mümkün. Birde üzerinde dahili sicaklik sensoru var ds1820 gibi ama protokol biraz daha zor; isiyi okumak için x= FlashTemp_cGetData(); gibi uzun bir kod yazmaniz lazim.CRC16 modulunu de donanım olarak ekleye bilirsiniz, uzun crc kodları yazmanıza yine gerek yok. Bitti mi sayin yolcular?

Bitmedi....
5)Her pini ayrı ayrı; input,output,analog giriş,analog çıkışı, open drain high,open drain low, pull up, pull down seçip her biri için interrupt tanimlayabilirsiniz. Bir I/O ile pwm cikisini and'leyip bir comparator çıkışıyla exor yapıp alçak geçiren filte çıkışıyla or'layarak sonucu diger bir I/O'ya yönlendire bilirsiniz tabiki donanım olarak bunun için kod yazmanız gerekmiyo şemayı çizin oldu... Bitti mi sayin yolcular?

Bitmedi....
6)32K flash 2K ram e sahip bu entegreyi arrow elektronikten parakende 3.5 dolara rahatlıkla satin alabilirsiniz(CY8C29466-24PXI), kendimden biliyorum... 100 pin olanıda sanirim 5 dolar civarlarında. Ayrıca 2minik bobin ve 2 kondansator gibi minimize edilmiş eklemelerle rf usb olabilen tipleri ve daha fazlası da mevcut. Bitti mi sayin yolcular?

Ee bitti:) en azından aklıma şimdilik başka bişey gelmiyo...

D- aldığı dersler;
1) Emulator olmadan simulasyona izin vermiyen bir editore sahip ve emulator 950milyon lira.. hatali kod yazdiginizda cok yorulabilirsiniz.
2) 100pin olan tiplerinde dahi maksimum 32kb hafiza olmasi

Bunlara kafa yormaktan türkçe öğrenmeye vaktim olmadı. Psoc'u da 1 aydir kullanmaya başladım tam olarak biliyorum diyemem. Anlatim hataları, eksik, fazla, yanlış kısımlar olabileceğinden şimdiden affınıza sığınıyorum...
Dünyada iki şey sonsuzdur. İnsanın aptallığı ve evren. Ancak ikincisinden o kadar emin değilim... (Einstein)

refik1

tatlisukurnazi kardeş

seni nerelerdeydin şimdiye kadar şu psoc u bir anlatan olsada dinlesek diyordum.

ben yeni kullanmaya başladım eskiden aldığım bir cy3205 emulatorunü vardı şindiye kadar bir uygulama yapma şansım olmamıştı şimdi yeni bir projeyle uğraşıyorum

analog modüllerin nasıl kullanıldığıgibi bazı örneklere ihtiyacım var
ingilizcem iyi deyil yabancı sitelerden birşeyler indirdim ama dediğimgibi
acemilik

bu konuda sayın yöneticilerden rica etsekde bir başlık açsalar diyeceğim ama daha psoc ismi nerdeyse yeni geçiyor sitede umarım zamanla oda olur.

yardımların için şimdiden teşekkürler.

Tenir

Bu psoc lar oldukça iyiye benziyor. Türkiye distribütörü destek elektronikmiş. Sayfasında türkçe uygulama notlarıda var.  www.destekelektronik.com/psoc.htm

aYe

Merhaba refik1

Hocam eğer asm yazmak istiyosanız benden de kocaman bir 0 sadece C ile bişeyler yazıyorum ki o da C'nin çok basit ve evrensel olması nedeniyle. Analog kisimlarini biraz kullandim. Halen uğraştığım bir projem var 2 tane half bridge smps, kapasitemetre, ve AC +-5A akım ölçme vs. gibi birçok misyonu 28 bacaklı bir PSoC'un sirtina yüklemeye çalışıyorum, bu esnada da comparator 14bit adc gibi analog kısımlardan bazilarini kullandım.

Kısaca bildiklerimi aktarıyım;
Öncelikle PSoC Designer 4.2'nin "Device Editor" bölümündeki "Global Resources" kısmındaki analog la ilgili ayarlardan bahsediyiyim;

Analog Power = SC On/Ref High
Psoc pilli devreler gibi uygulamalarda düşük güç tüketimi için modüllerin kullanacağı güçlerin ayarlanabilmesini de mümkün kılmış tabi düşük güçlerde işlem süresi ve hassasiyet sapmaları mümkün olabilir kanısındayım. Ama ben pilli bir devre yapmadığım için hiç kurcalamadım o kısımları. O yüzden gereken ayarları anlatırken sizede "HIGH POWER" olarak varsayıcam.

Ref Mux = ((Vdd/2)+-(Vdd/2))
Psoc besleme voltajının tam yarısını 0 kabul eden bir yapıya sahip (external agnd ve external vref seçeneği seçilmemişse) agnd ve avcc yi ise agnd+-besleme/2 veya agnd+-bandgap vs. şeklinde seçebiliyosunuz.
Yukardaki seçimde gnd'ye göre -V=0v Agnd=2.5v  +V=5v değerlerini aliyo.

AGndBypass = Disable

Op-Amp Bias = High

A_Buff_Power = High

Analog modüllerin bir çoğu 8mhz nin üstüne çıkamıyo bu yüzden clock girişlerini 8mhz nin üzerinde olmayacak şekilde ayarlanmış bir prescaller ile vermeye özen göstermeniz lazım zira 48mhz bile girseniz derleyici hata vermiyo tabiki sonuç baya bir hata veriyo.

Bu ayarlar yapıldıktan sonra  kullanmak istediginiz modülü seçip eklemeniz lazim. Örneğin bir comparator eklediniz;
PGA_1_Start(PGA_1_HIGHPOWER);
şeklindeki satır comparator'un calismaya baslamasi icin yeterli.

Elinizde bulunan cy3205 kiti sanirim yeni cy8c29 serisini kapsamıyo bir süre beklerseniz buraya ekleyecegim programmer ile kullanirsiniz. Analog kısımları genel olarak biraz anlatmaya çalıştım, malesef bende de ingilizce yok kurcalayarak bişeyler bulmaya çalışıyorum.
Dünyada iki şey sonsuzdur. İnsanın aptallığı ve evren. Ancak ikincisinden o kadar emin değilim... (Einstein)

refik1

alıntı
Hocam eğer asm yazmak istiyosanız benden de kocaman bir 0

aslında bu sıfırı sitedeki bazı arkadaşlar çokdan vermişdide bakalım biz halen direniyoruz :)

C için bakalım siteden bazı arkadaşların sağolsunlar gayretleri var öğreneceğiz ama benim projeler nedense hep acil oluyor

o yüzden şimdilik 1-2 ay daha asm ile yazmam gerekiyor
artık bende kabul etdim C öğrenilecek.

psoc da analog önerilerin için teşekkürler biraz uğraşayım bakalım ne çıkrtacağız.

aYe

C ile program yazan biri ASM için bunları söylese belki anlarım olayı idrak edemeye bilir 2 ay sürede anca öğrenebilir. Ama asm yazan biri için Cye geçmek 3 günü geçmez diye düşünüyorum ki ben 3 günde ckitabi.pdf diye nette dolaşan bir dosyadan baka baka yazmaya başlamıştım. Hem madem işiniz acele C ye geçmek için daha ne bekliyosunuz? C ye geçmeden önce 32K asm programı 1 senede bitirdim, aynı kodu C de çok daha gelişmiş şekilde (200K lik bir program) yazdım 3 günde bitti :) Aceleniz yoksa ASM ile devam edin bence.
Dünyada iki şey sonsuzdur. İnsanın aptallığı ve evren. Ancak ikincisinden o kadar emin değilim... (Einstein)

refik1

tatlisukurnazi kardeş
seni anlıyorumda ben biraz eski kafalıyım ,kafamdaki acele işi bitirip
iyce tartacağım bolca örnek toplayacağım falan.
amam muhakkak öğreneceğim C yi

şimdi senin pcoc tecrübenden biraz faydalanabilirmiyiz şöyle bir problem var gibi ....

60 volt seri aküden 3 faz asansör motorunu 3... 10 herz arası sürmem gerekiyordu
Bunun için 3 adet pwmdb8 in PulseWidth genişliğini tablodan sırası ile değiştirerek motoru sürdüm normal şalışıyor.

Torku artırmak için araştırma yaparken şu dikkatimi çekti
Atıyorum R fazının üst kenarı çıkış verdiğinde S veya T fazlarının alt kenarlarının bazen çıkış vermediğini dijital skopla gözledim.

bence sorun
Tablodan aldığım değere göre PulseWidth genişliğini değiştirirken  önce 1. pwm sonra 2.pwm sonrada 3.pwm i değiştirirken arada geçen zanandan kaynaklandığını tahmin ediyorum

acaba bu 3 adet pwmdb8 lerin PulseWidth genişliklerinin değişimini aynı anda başlatamazmıyım.

mümkünse şimdilik ASM

şimdiden teşekkürler.

aYe

Hocam inanin ASM sifir. Bakinca arapca gibi geliyo.
Lakin şöyle bir 3phase motor uygulamasında
void h3p_isr()
{
			
	// system timer
	timer++;
	
	// load new velocity if request is active
	if(index_step_flag)
	{
		index_step = new_index_step;
		index_step_flag=0;
	}
		
	// advance NCO phase
	index += index_step;
	
	// extract sample index
	indexb = ((BYTE *)&index)[1];

	// set multiplier to output gain
	MUL_Y = ((BYTE *)&gain)[0];
	
	// load 8-bit samples into duty registers, scaled by output gain
	MUL_X = wavelut[indexb];
	
	PWM_PH_A_PULSE_WIDTH_REG = DEAD_TIME + (MUL_DH << 2);

	indexb += WAVESTEP;
	
	MUL_X = wavelut[indexb];

	PWM_PH_B_PULSE_WIDTH_REG = DEAD_TIME + (MUL_DH << 2);

	indexb += WAVESTEP;
	
	MUL_X = wavelut[indexb];

	PWM_PH_C_PULSE_WIDTH_REG = DEAD_TIME + (MUL_DH << 2);
			
}

C bilmesek bile açıkca belli oluyoki değerleri pwm modüllere aynı anda değilde sirasıyla atılmış ancak hesaplamada (sanırım hız kazanmak için)donanım multiplier kullanılmış, dead time ve output gain şeklindeki değerler de hesaba katılmış.

mod notu: kod vereceğimiz zaman # ikonuna 2 kere basıyoruz ve çıkan 2 code tırnakları arasına kodu yapıştırıyoruz, nasıl olduğunu anlamak için msj ın alıntı butonuna tıklayıp nasıl olduğuna bakınız
Dünyada iki şey sonsuzdur. İnsanın aptallığı ve evren. Ancak ikincisinden o kadar emin değilim... (Einstein)

aYe

Merhaba arkadaşlar,

PSoC'ları kullanmak isteyen arkadaşların öncelikle ücretsiz psoc designer 4.2'yi cypress'in web sitesinden indirip bilgisayarına kurması gerekiyor. Assembler kod yazicaksaniz sorun yok, derleyici ücretsiz. C kod yazicaksaniz bu linkten serial'i indirerek bi parça yaramazlık yapmak zorundasınız.
Daha önce yazdığım mesajımda bahsettiğim (üzerinde biraz oynadığım) Cyp programmer'in semasi ve protel pcb dosyasını indirip kartınızı yapın. Sanirim maliyeti 10YTL yi geçmez.Cyp.exe nin setings ayarları da resim'de gösterdiğim şekilde olucak. Size de arrow'a telefon açıp sample istemek kalıyor. "CY8C29466" ile başlamanızı tavsiye ederim. Kolay gelsin...
Dünyada iki şey sonsuzdur. İnsanın aptallığı ve evren. Ancak ikincisinden o kadar emin değilim... (Einstein)

mahoaga

C derleyici ve linkerler çok güzel olabilir ancak sorun bu entegre fazla anonim olmamış olmaması. Temin edilmesinde büyük sıkıntılar olacak sanırım. Arrow dan 1 tepsi almaya kalkmak oldukça pahalı olsa gerek. Numune istesek bile sonradan isememiz gerekn min adet yüklüdür sanırım. Hem C derleyicisinin Trace etmeye izin vermemesi ( Development board yokken) de büyük bir sorun. Cpu nun içerisinde çok miktarda peribheral donanımın gömülü olması gerçekten harika ama diğer sorunlar Cpuya olan isteğimizi köreltiyor.

OG

@tatlisukurnazi

PIC'ı tam öğrenemeden PSoC hayranı yaptın beni. Bu konunun devamı gelir ve gelişir ümid ediyorum. Belki de insanların PIC'e yönelmeleri kod zenginliğindendir. PIC konusunda uzmanlaşmış arkadaşlarımız durumu farketseler eminim ki konu daha hızlı gelişir.
FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

aYe

mahoaga yukarıda yazdığım diger mesajları okursan orda da belirtmiştim yine de tekrarlayım arrow psoclari stoklarda bulunduruyo ben sahsen gittim 4 tane aldim para bile almadılar ve pic ile kıyaslarsak fiyatları komik derecede ucuz.. yari fiyata 100 kati özellik sunuyo. dahili 24mhz kristali olan 28 bacakli 32k flash 2k ram bir psoc parakende 3.5 dolar civarı.
Og eger bilmiyorsan C öğrenmelisin, işlemci ögrenilmez kullanılır. tek dil bütün işlemcileri kullanırsın.. Önce C ye yogunlas döküman istersen bir pdf dosyası var gönderiyim bende ordan bakip öğrenmiştim. Saygilar..
Dünyada iki şey sonsuzdur. İnsanın aptallığı ve evren. Ancak ikincisinden o kadar emin değilim... (Einstein)

OG

tatlisukurnazi
Gönderebilirsen sevinirim, pm ile adres verdim. Teşekkürler.
FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

refik1

biryerlere atabilirsen bizlerde faydalanırız.