Picproje Elektronik Sitesi

MİKRODENETLEYİCİLER => PSoC Mikrodenetleyici => Konuyu başlatan: Erol YILMAZ - 07 Şubat 2006, 18:47:53

Başlık: PSOC ta İlk Program
Gönderen: Erol YILMAZ - 07 Şubat 2006, 18:47:53
PSOC ta artık programları sadece bir adet C veya BAS kodu ile veremiyorsunuz. Çünkü ayarlanmış bir donanım var yazılım bunun üzerinde. Çalıştırdığım ilk kodu örnek olarak veriyorum ama çok ta fazla birşey ifade etmiyor. Yine de yeni başlayanlara en azından çalışan bir kod olmuş olur. Bir adet 16 bit PWM kullanıldı.

Program 1. pinden 20 Hz de %50 duty cycle ile çıkış veriyor.

#include <m8c.h>        // part specific constants and macros
#include "PSoCAPI.h"    // PSoC API definitions for all User Modules

void GenerateOneThirdDutyCycle(void)  
{
   PWM16_1_WritePeriod(4687);  
   PWM16_1_WritePulseWidth(2343);  
   PWM16_1_DisableInt();  
   PWM16_1_Start();  
   return;
}  

void main()
{
GenerateOneThirdDutyCycle();  
while(1);
}


Donanıma da bir göz atmak isterseniz,
http://www.hemenpaylas.com/download/171632/first.pdf.html (http://www.hemenpaylas.com/download/171632/first.pdf.html)
Başlık: PSOC ta İlk Program
Gönderen: aYe - 07 Şubat 2006, 19:54:07
Selam,

Erol hocam nasil birşeydir bu PSoC? Benim de ilgimi çekmeye başladı.
Hem periyodunuza bakilirsa pwm'i dokuz buçuk bit kullanmışsınız bunun sebebi nedir? Hörmetler...
Başlık: PSOC ta İlk Program
Gönderen: Erol YILMAZ - 07 Şubat 2006, 20:37:10
PSOC u sizden öğreniyoruz hocam,
Bu arada PWM16 bit, Çıkış frekansını tam sayı istediğinizde böyle küsüratlı rakamlarla karşılaşıyorsunuz.

Şimdi de DAC tan 0...5 V genlikli Sinus sinyali elde etmeye çalışıyorum.
Yardımcı olur_musunuz?
Başlık: PSOC ta İlk Program
Gönderen: aYe - 07 Şubat 2006, 20:46:32
Kod'un ve şemanın son halini bir görelim, ona göre sinüs için matematikle arası iyi olan arkadaşların sanıyorum önerileri olucaktır..

Kolay gelsin...
Başlık: PSOC ta İlk Program
Gönderen: Veli B. - 07 Şubat 2006, 21:01:41
Ben mi yanlış yorumladım acaba diye düşünmeye başladım.20 hz için


#include "PWM16.h"
#include <m8c.h>        // part specific constants and macros
#include "PSoCAPI.h"    // PSoC API definitions for all User Modules

void GenerateOneThirdDutyCycle(void)  
{
   PWM16_1_WritePeriod(20);  
   PWM16_1_WritePulseWidth(10);  
   PWM16_1_DisableInt();  
   PWM16_1_Start();  
   return;
}  

void main()
{
  GenerateOneThirdDutyCycle();  
  while(1);
}


değil mi?
Başlık: PSOC ta İlk Program
Gönderen: aYe - 07 Şubat 2006, 21:43:44
Selam,

Evet katana yanlış yorumlamışsınız, şöyle ki;

Bir pwm modülü seçilmiş ve üretilen datasheet'e bakarsak 16bit pwm için clock girişi VC2 prescaller'i. VC2'in girişi VC1 ve onu 4'e bölmüş. VC1'in clock girişi sysClk pll kapalı olduğu için 24mhz ve VC1'de girişi 4'e bölüyor. 16bit pwm'in saat girişi 1.5 mhz olur. Yani 1 clock yaklaşık 0.66us
buna Tclk dersek. Period değeri 4687 girilmiş buna da period value dersek

PWM16 için de formülümüz buysa; Output period=(period value+1)TCLK

(4687+1)x0.66=3094us bu da yaklaşik 3ms eder. Burdan da frekans 333hz civari çıkar.

Bu durumda Erol'a sormak lazim,datasheetdeki degerler ve kod'un bire bir aynımıdır???
Başlık: PSOC ta İlk Program
Gönderen: Veli B. - 07 Şubat 2006, 21:49:04
bu mcu için üretilen datasheete bakmadım.Sadece göz gezdirirken ne nerde acaba diye gözüme çarpmıştı.O formüle tekrar baktım ve ona göre söylemiştim ama elbette işin içine prescaler gibi faktörler girince işlker değişecek.Datasheete bakayım önce.(ilk yapmam gereken şey iken en sona bırakırsak....)

Bu arada tesadüfen, cd içerisinde bir tane Türkçe program buldum(asm).


http://rapidshare.de/files/12765014/blackjack.rar.html (http://rapidshare.de/files/12765014/blackjack.rar.html)
Başlık: PSOC ta İlk Program
Gönderen: aYe - 07 Şubat 2006, 22:27:03
@katana

PSoC diyince datasheet kavramı da biraz degişiyor; modüllerin datasheetleri ve entegrenin datasheet'i olarak iki tip söz konusu.

Ben datasheet derken tasarımcı tarafından dizayn edilen entegrenin datasheet'inden bahsediyorum. Tabi bu da benim anlatım hatam olmuş oluyor, hangi mantıkla kendi varsayımlarımın herkes için geçerli olduğu hissine kapıldıysam  :oops:  :oops:  :oops:

Pek yeterli olmasada başka türkçe kaynaklara bu adresten erişebilirsiniz;
http://www.destekelektronik.com/psoc.htm (http://www.destekelektronik.com/psoc.htm)

Ek: Destek elektroniğin sitesine link kopyalamak için girdiğimde dikkat ettim de PSoC konuşulan forumlara link verilmiş... eee burdan çok PSoC konuşulan yer mi var?
Hani bizim linkimiz?
Başlık: PSOC ta İlk Program
Gönderen: Veli B. - 07 Şubat 2006, 22:34:35
Benim kastımda @Erol' un oluşturduğu mcu için datasheete bakmaktı.Anlatım hatanız sözkonusu değil ama genel anlamda PSoC için bu karışıklığa sebep vermeme adına önerim;
-Modüller için datasheet
-Oluşturulan MCU için ise worksheet demek
Cypress sadece şematik yapılanma için demiş ama olsun:D
Başlık: PSOC ta İlk Program
Gönderen: Erol YILMAZ - 08 Şubat 2006, 00:08:14
20 Hz PWM sinyali nasil elde edildi ?

PWM in osilatoru VC2den alindi.
VC1 ve VC2 prescaler degerleri 16 ve 16 dir :)
yani, 24.10^6 / 16 / 16 = 93.75 Khz
PWM in clock sinyali bu.
93.75kHz / 20 Hz = 4687.5 bulunuyor.  Bunu da aynen;
PWM16_1_WritePeriod(4687);     olarak kullaniyoruz.
Frekansin nereden/nasil geldigi anlasilmistir...

Bu arada olusturulan Config Sheet ilk mesajimda belirtilmistir.

Saygilarimla...
Başlık: PSOC ta İlk Program
Gönderen: aYe - 08 Şubat 2006, 00:25:02
Selam,

@Erol

Tamam dokus buçuk derken bir an dalmışım pwm çözünürlüğün on iki buçukmuş ama ilk verdiğin datasheet'e bir daha bakarsan prescaller'lar bölü 16 değil bölü 4 şeklinde.

İyi çalışmalar...
Başlık: PSOC ta İlk Program
Gönderen: Erol YILMAZ - 08 Şubat 2006, 01:30:41
Ikisinin de 16 oldugu 2 yerde belirtilmis,  
Config Sheet te VC1 ve VC2, 16 olarak yaziyor. Bir onceki mesajimda da 16 olarak belirtildi. Hesapta buna gore yapilmis ve dogru calisiyor.
Buyuk bir ihtimalle yanlis bir hesap yapiyorsunuz.

Ayrica tarafinizdan ADCler ve kullanimi hakkinda ayrintili bilgi talep ediyoruz. Simdiden teşekkürlerimi sunarim.

@tatlısukurnazı,
VC1 ve VC2 değerleri ilk verdiğim linkteki gibidir.
Zaten sen de bu başlığın 6. mesajında bahsettiğin hesabı tutturamamışsın.
20 Hz PWM ve 16-16 prescaler diyorum. Bu sekilde 4687 clock ile periyot sağlanıyor. Bunların  hepsi birbirini sağlıyor.
Siz 1 değişkeni değiştirip ötekini de ona göre yazıyorsunuz.

Ayrıca 4 ve 4 prescaler değeri ve 4687 clock periyot uzunluğu ile 320 Hz sinyal elde edilir.

Daha faydalı konular hakkında yazışmak üzere.
Başlık: PSOC ta İlk Program
Gönderen: aYe - 08 Şubat 2006, 02:00:37
@Erol

Ben download ettikten sonra değerler değişti heralde, ilk gönderdiğiniz halini neyseki silmemişim buyrun;

http://www.hemenpaylas.com/download/173328/first.pdf.html (http://www.hemenpaylas.com/download/173328/first.pdf.html)
Başlık: PSOC ta İlk Program
Gönderen: picusta - 12 Şubat 2006, 15:05:51
Merhaba beyler,
Bende su Psoc'lari merak ettim, burda anlatilanlarin hepsini okudum. Psoc numune istiyecegim, fakat benim merak ettigim su hardware multiplierlardan kaç tane konabiliyor? 16*16 fixed point'mu floating point mu? iki tane yan yana koyup 32 bit islem yapilabiliyormu? Hangi modeli önerirsiniz? (söyle multiplier'i bol, 8 ADC-DAC olan bisi, giris çikis filtreli )
Başlık: PSOC ta İlk Program
Gönderen: aYe - 12 Şubat 2006, 15:43:42
Selam,

Sayin Erol mesajları aynı anda yazdığımız için olucakki ben sizin mesajınızı daha yeni görüyorum.

Alıntı yapılan: "Erol"VC1 ve VC2 değerleri ilk verdiğim linkteki gibidir.

Bu tür soruları msn yerine forumdan sorarsanız cevaplardan herkez faydalanır yorumuma birde dosyaları msn yerine sadece forumdan gönderirseniz karışıklıkta olmaz diye ekleme yapiyorum.

Alıntı yapılan: "Erol"
Zaten sen de bu başlığın 6. mesajında bahsettiğin hesabı tutturamamışsın.
20 Hz PWM ve 16-16 prescaler diyorum. Bu sekilde 4687 clock ile periyot sağlanıyor. Bunların  hepsi birbirini sağlıyor.
Siz 1 değişkeni değiştirip ötekini de ona göre yazıyorsunuz.

Ayrıca 4 ve 4 prescaler değeri ve 4687 clock periyot uzunluğu ile 320 Hz sinyal elde edilir.

Prescaller degerleri VC1=16,VC2=16 iken 24mhz/16/16=10.66666uS eder.
Period 4687 iken 6. mesajımdaki hesaplamaya göre;
(4687+1)x10.66666=49.9ms eder ki bu da yaklaşik 20Hz'dir

Yine aynı yöntemle VC1 ve VC2 değerleri 4 olarak ele alındığında 6. mesajımda belirttiğim üzere yaklaşık olarak 333 çıkar.
Yok ben yanlışlık derken 333 ile 320 arası farkı diyordum dersen; hesapları mesajları yazarken kafamdan yaptığım için detaya girmeden yaklaşık yazıyor ve yaklaşık değer olduğunu belirtiyorum, zaten burda önemli olan rakamsal değil yöntemsel doğruluk.
İllede rakam derseniz gerçek frekans 323,20620555914673561732385261797Hz'dir.
Yani sizin bakış açınızla yanlış hesaplamışsınız.

İyi çalışmalar...
Başlık: PSOC ta İlk Program
Gönderen: aYe - 12 Şubat 2006, 16:23:38
@picusta

Hocam ilgili kısımı pdf dosyasına çevirdim, buyrun inceleyin;

http://www.hemenpaylas.com/download/191227/MAC.pdf.html (http://www.hemenpaylas.com/download/191227/MAC.pdf.html)

İyi çalışmalar.
Başlık: PSOC ta İlk Program
Gönderen: mcan - 30 Aralık 2007, 00:47:58
pwm modülünü yerleştirirken darbe genişliği ve periyodu değerlerini soldaki pencereden ayarlıyoruz,acaba bunlar yazılımla ayarladıklarımızın hali hazırda(default) değerlerimi?

-evet ,onlar halihazırdaki (default) değerleriymiş.

sar6 adc kullanabildim fakat aynı ekilde DELSIG8 adc kullanamadım bi püf noktasınımı kaçırıyorum? pool 1 yapıp prototip fonksiyonları kullanmaya çalıştım fakat yapamadım.birde pga koydum her ikisinde de.