ana sayfa > Gömülü Sistemler, PSoC > PSoC 5LP Clock İşlemleri

PSoC 5LP Clock İşlemleri

Pazar, 25 Ara 2016 yorum ekle yorumlara git
PSoC 5LP Clock İşlemleri

Merhaba arkadaşlar.

Bu yazımda kısaca PSoC 5LP serisinde osilatör clock işlemleri konusunu anlatacağım. Kısa bir yazı olacak fakat sonraki yazacağım yazılarımda PSoC larda çevre birimleri ile oldukça sık bir şekilde çalışacağımızdan osilatör konusunu iyice bi anlamak gerekiyor. Hangi donanım kullanılırsa kullanılsın temel ayarlardan biri osilatör ayarıdır.

Şimdi ister normal MCU olsun ister FPGA olsun veya PSoC, her biri çalışabilmek için bir saat kaynağına ihtiyaç duyuyor. Bu herhalde bütün programlanabilir yapılar için geçerlidir.

Haliyle Aynı durum PSoC’lar içinde geçerli. PSoC larda bu iş için birkaç alternatif var. Sırayla bunlar üzerine bilgi vermeye çalışacağım.

PSOC’larda birden fazla  seçenek var demiştim bunları listelersek

  • Low Speed ILO Oscillator (1Khz to 100Khz)
  • High Speed IMO Oscillator (3Mhz to 74Mhz)
  • External Crystal Oscillator (4 Mhz to 25Mhz)
  • 32768Hz Crystal Oscillator
  • Digital Signal Input kısaca DSI (0Mhz to 33Mhz)

Bu seçenekleri sıra ile açıklayacağım. Herbirinin kullanımından bahsetmeye çalışacağım. Ama ilk önce PSOC3 ve PSOC5 için clock yayılım diyagramını inceleyelim.

Şekil 1

 Kaynak olarak 5 farklı seçenek var. Bunlar iç yapıda PLL ler kullanılarak katlanabiliyor. Aynı zamanda çeşitli mux’lar ve bölücüler yardımı ile çevre donanımlara dağıtılıyor.

1. ILO Osillator: (Internal Low-Speed Oscillator) ILO düşük hızlı ve düşük güç tüketen bir clock kaynağıdır. Watch Doğ veya Timer gibi sabit fonksiyonlu sayıcıları çalıştırmak için kullanılabiliyor.

ILO Osilatörler IMO osilatörler kadar kararlı değillerdir. Hassas zamanlama gerektiren uygulamalarda kullanılması uygun olmaz. Bununla birlikte ILO osilatörler çok düşük akım tüketirler. Buda düşük enerji tüketimi gerektiren, uyuma ve periyodik olarak uyandırma gerektiren sistemler için ideal bir seçim olmasını sağlar.

2. IMO Oscillator: (Internal Main Oscillator) IMO PSoC 3 ve PSoC 5LP serisinin dahili Ana clock kaynağıdır. PSoC üretilirken fabrikada Fabrikada 3, 6, 12, 24, 48, 62 ve 74 MHz’göre ayarlanır.Fakat bu frekanslar bütün PSoC serisinde kullanılamıyor. Sürümden sürüme değişiyor. IMO larda çalışma frekansı yükseldikçe doğruluğu azalır. Yani düşük frekanslarda hata oranı daha azdır diyebiliriz.

3. External Crystal Oscillator: (ECO) Bu osilatör harici saatkaynağı olarak kristal kullanılmasına olanak sağlar.

 Bunun için iç yapıda dahili bir osilatör devresi bulundurur. Bu sinyal kaynağına 4-25 Mhz arası bir kristal bağlanabilir. ECO ların kararlılığı IMO lara göre daha iyidir. Ve tipik olarak daha doğru bir saat frekansı üretirler. ECO ların doğruluğu doğrudan kullanılacak olan crystal veya rezonatörün doğruluğuna bağlıdır. ECO özellikle Can bus, ,I2S iletişimi ve dijital ses çoğaltma gibi saat frekansının doğruluğunun kritik olduğu uygulamalarda kullanılmalıdır.

 

 

4. 32768Hz Crystal Oscillator: Yapı olarak ECO ile birebir aynıdır. Sadece Saat frekansı üretmek için 32768Hz kristal ile birlikte kullanılır. Bu yapıyla birlikte 1 sn aralıklarla kesme üretmek için ayrılmış 15 bitlik bir sayaç kullanılabilir. PSoC 5 lerde bu birime bildiğimiz RTC deniliyor.

5. Digital Signal İnput: (DSI) Son olarak bu kaynağa değineceğim. DSI yada Dijital sinyal girişi, PSoC 3 ve PSoC 5LP serisine dışarıdan clock uygulanmasına olanak sağlayan bir sistemdir. PSoC 3 ve PSoC 5LP serisi 2 çeşit yapılandırılabilir DSI clock çeşidine sahiptir. İç yapıdaki kullanım için genel amaçlı iki adet DSI bulunmakla birlikte Dijital ve Anaog çevre birimleri için kullanılabilecek 12 adet DSI kullanım olanağı sağlanıyor. Bunların her ikiside dışarıdan uygulanan sinyallerdir. Şekil 1’de DSI’a ilişkin bağlantıları görebilirsiniz.

Sonuç olarak DSI sadece kullanıcı sinyallerini taşır. Bu sinyaller dışarıda herhangi bir osilatör tarafından üretilebilir. Şimdi bu ayarların nasıl yapılacağına değinelim. Şimdi Clock ile ilgili ayarları yapmak için aşağıdaki yolu izliyoruz. Project Workspace bölümünden  Clocks yazan yere çift tıklayarak aşağıdaki sayfayı açıyoruz. Şekil 2’deki gibi bir sayfa açılacaktır.

Şekil 2

Buradaki sarı olanlar sisteme ait sinyal kaynakları Gri olanlar ise Çevre birimlerini besleyen clock üreteçleri’dir. Proje şemasına eklediğiniz donanımlara ait clock’lar burada görünür.

Bunlara ait konfigürasyonları yapmak için Sarı olanlardan bir tanesine çift tıklamanız gerekir. Sonuç olarak alttaki gibi bir sayfa açılacaktır.

Şekil 3

Şekil 3 de Bu kaynaklar görülmektedir. PSoC da projeyi oluşturduktan sonra bu ayarları yapmanız gerekir. Tıpkı diğer mikroişlemcilerde olduğu gibi. Burada XTAL, IMO, ILO gibi birden fazla seçenek var. Bundan sonra kendi kartım üzerinden örnek vererek devam edeceğim.

Kendi deney kartımda(CY8KIT-50) 24Mhz Harici Xtal var. Ben deneysel çalışmalarımda hep bu kaynak üzerinden besledim sistemimi.

Eğer sizde böyle yapacaksanız XTAL üzerine gelip Configüre butonuna basıp açılan sayfada XTAL’için bazı parametreleri girmeniz gerekiyor.

 Şekil 4

Configure butonuna tıkladığınızda Şekil 4’deki gibi bir sayfa açılacaktır. Burada Frequency kısmına Osilatörümüzün çalışma frekansını girmemiz gerekiyor. Benim kartta 24Mhz olduğu için 24Mhz girdim. Burada diğer birçok ayar daha varki bu ayarlarla bağladığınız kristale veya osilatör devresine ince ayar verebiliyorsunuz. Bu gerçekten etkileyici.

XTAL ayarları bu şekilde. Eğer XTAL ile sistemi beslemek istiyorsanız IMO bölümüne gelip Kaynak olarak XTAL seçeneğini aktif etmek gerekiyor. Eğer IMO bölümüde OSC yi seçerseniz Internal Main Oscillator(IMO) aktif oluyor. hemen yan taraftan IMO kaynağının üreteceği sinyali belirliyoruz. Bizim şuan onla işimiz yok. Aynı şekilde DSI’yı de buradan seçebiliyoruz.

PLL: (Sinyal Katlama) PLL olayı tüm birçok programlanabilir yapıda olduğu gibi burada da var. Olmazsa olmaz birşey çünkü yüksek frekanslarda çalışabilmek için PLL kullanmak bir zorunluluk diyebilirim.

PLL birçok kaynaktan beslenebiliyor. Bunlar XTAL, IMO ve DSI şeklindedir.

Şekil 3’de görüleceği üzere ben PLL’i aktif edip kaynak olarak’da XTAL seçeneğini seçmişim. Desired yani istenen frekans bölümüne’de 48Mhz yazdım. Bu şu anlama geliyor. PLL XTAL tarafından 24Mhz ile beslenecek ve uygulanan sinyali 48Mhz’e yükseltecek. Eğer çıkış sinyali giriş sinyalinin katlarından ise PLL tam olarak istenen frekansı verebiliyor . Fakat girilen sinyal örneğin 24Mhz, Çıkış frekansı ise 41Mhz olsun derseniz tam olarak 41Mhz çıkarmıyor.  41.13Mhz gibi küsüratlı değerler üretiyor. Bu yüzden çalışma frekansını 2’nin tam katı seçmenizde fayda var.

Peki Max Frekansımız ne olabililir?

Bunu teknik dökümanlardan öğrenebilirsiniz aslında ama örnek verecek olursak Şuan kullandığım CY8C5868 serisi PSoC Max. 67Mhz’de çalışıyor. 80Mhzde çalışanlar ise CY8C5888 serisi gibi sondan ikinci rakamı 8 ile biten PSoC lardır. Max frekansı 67Mhz olan bir PSoC için PLL frekans çıkışını 67Mhz’den fazla yapmak istediğinizde PSoC derleyici hata veriyor. Kodunuzu derleyemiyorsunuz. Dolayısıyla OverClock gibi işlemler pek mümkün olmuyor anladığım kadarıyla.

Clock Configuration işlemleri bu kadar.

Şimdi diğer clock işlemlerine bakalım. 

PSoC’da bir donanımı çalıştırmak için dışarıdan clock uygulamak gerekiyor. Dışarıdan dediğim yanlış anlaşılmasın PSoC’ın içerisinde gerçekleşiyor bu olaylar.

Örneğin SPI modülü olur, I2C olur veya uart olur. Bu modüllerin çalışabilmesi için PSoC içerisinden o birime bir saat sinyali uygulamak gerekiyor.

Bunu CLOCK Modülü ile yapıyoruz. Component Catalog’da arama bölümüne Clock yazarak bulabilirsiniz. Bunu şema kısmına taşıyarak kullanıma hazır hale getirebilirsiniz. Daha sonra hat çekerek istediğiniz donanıma bağlayabilirsiniz.

Son olarak bu modüle dair bir örnek verip modülün özelliklerini anlatmaya çalışacağım. Bu örnekte dijital bir pinden 2Mhz Clock siyali üretelim.

Bu durumda yapacağımız bağlantı aşağıdaki gibi olacaktır :)

Şekil 5

Dijital pin atamasının nasıl yapılacağını bir önceki yazımda anlatmıştım. Bu sebeble ilk kez bu yazıyı okuyanların o konuyada bi göz atmaları iyi olur.

Clock ayarlarına gelince aslında son derece basit. Şemaya eklediğiniz Clock Modülüne çift tıklayınca Ayarların yapılacağı bir pencere açılacaktır.

Şekil 6

Burada Clock Type, Source gibi ayarlar var. Eğer Clock Type’ı New seçerseniz Yukarıda olduğu gibi istediğiniz frekansta sinyaller alabilirsiniz. Fakat Existing seçerseniz sadece 3 kaynağınız olur. Frekans ayarınız olmaz.

Eğer Existing seçili ise ILO, XTAL32Khz ve son olarak BUSCLK dediğimiz ana çalışma frekansının olduğu hattı kendinize kaynak olarak seçebilirsiniz. BUS CLK doğrudan çalışma frekansıdır.

Mesela XTAL32Khz seçili ise ve RTC vs kullanıyorsanız harici olarak bağlamış olduğunuz 32.768Hz kristalin ürettiği sinyali herhangi bir dijital pinden çıkarıp skop ile görüntüleyebilirsiniz. Buna benzer örnekler verilebilir.

Eğer Clock Type değeriniz New olarak seçili ise daha geniş bir clock ayarlama imkanınız olur. Frequency kısmına elde etmek istediğiniz frekansı yazmanız yeterli. Eğer Source kısmı otomatikte ise PSoC sizin istediğiniz frekansı elde etmek için en uygun kaynağı otomatik olarak seçecektir.

Belki bilirsiniz. Bazı mikroişlemcilerde Özellikle MCO donanımları blunur dışarıya clock çıkarmak için. Pinleri belirlidir ve genellikle o pinler değiştirilemez. PSoC’un güzel yanı istediğiniz pini bu amaçla kullanabiliyor olmanız. Bu yüzden tasarım aşamalarında programcıya çok büyük esneklik sağlıyor. Bu yüzden PSoC’ları çok sevdim.

Evet Clock işlemleri ile ilgili anlatacaklarım bu kadar. Bir sonraki yazımda yavaş yavaş çevre birimlerini anlatmaya çalışacağım.  Sorularınız olursa yorum bırakabilirsiniz.

  1. şimdilik yorum yok.
  1. şimdilik geri bağlantı yok