Archive for the ‘PIC Mikrodenetleyicileri’ Category

Spi ile PIC’ler Arası Haberleşme

Merhaba arkadaşlar;
Bu yazımda Spi Haberleşme Protokolü ile ilgili edindiğim tecrübeleri paylaşacağım.
Haberleşme protokollerinde amaç, bilginin bir birimden, mikro denetleyiciden veya cihazdan başka bir birime, mikro denetleyiciye veya cihaza iletilmesini sağlamaktır.
Haberleşme protokolleri ile ilgili daha detaylı bilgiye buradan ulaşabilirsiniz.

Öncelikle “Spi nedir ?” sorusundan başlamak gerektiğini düşünüyorum.
Spi ( Serial Peripheral Interface), dilimize  “Seri Çevresel Arayüz” olarak çevrilmektedir. İsminden de anlaşıldığı üzere Spi bir seri haberleşme protokolüdür. Spi haberleşme protokolünü, Motorola firması kendi mikro denetleyicileri için geliştirmiş, sonrasında ise bir standart olarak benimsenerek diğer mikro denetleyici üreten firmalar tarafından da kullanılmaya başlanmıştır.

Spi haberleşme protokolünde cihazlar arasında Master-Slave ilişkisi vardır. Master cihaz Slave cihazları yönetmek ve onlara işlemler yaptırmak ile yükümlüdür. Slave cihaz ise Master cihazdan gelen bilgilere göre işlem yapmak ile yükümlüdür. Bir master cihaza birden çok slave cihaz bağlanabilir. Ama aynı anda Slave cihazlardan sadece bir tanesi aktif olarak Master cihaz ile bilgi alışverişi gerçekleştirir.

Aynı anda veri alıp gönderebilen ( senkron haberleşme ) sistemlere full duplex sistemler denir. Spi protokolü de full duplex bir haberleşme protokolüdür.Yani Master mikro denetleyici spi haberleşmesini başlattığı anda hem bilgi gönderir, hem de bilgi alır. Aynı durum Slave mikro denetleyici için de geçerlidir.

Tek Slave Spi Haberleşmesi

Tek Slave Spi Haberleşmesi

Yukarıdaki resimde Tek Slave Spi Haberleşmesinin kullanıldığı bir sistem verilmiştir. Bu sistemin davranışını belirleyen pinlere ait lojik diyagram ise aşağıda verilmiştir.

Spi Haberleşmesinin Lojik Diyagramı

Spi Haberleşmesinin Lojik Yapısı

SS/CS: Slave Slect/Chip Slect
Spi’da Master cihazdan Slave cihaza bilgi aktarabilmek için Slave cihazın yetkilendirilmesi gerekmektedir. Slave cihazın yetkilendirilmesi için SS pininin lojik sıfır seviyesine çekilmesi gerekir. Master mikro denetleyicideki Slave Slect pinin sayısı Slave cihaz sayısına eşittir. Birden fazla Slave cihaz varsa, bilgi gönderilmek istenen Slave cihaz kendine bağlı olan SS pini ile seçilir ve haberleşme yapılır. Böylelikle gönderilen bilgiler sadece haberleşmek istenen cihaza iletilir.

SCLK: Serial Clock
Saat darbesi verilerin lojik olarak iletilmesini sağlar.
Slave cihaz yektilendirildikten sonra haberleşmenin başlayabilmesi için saat darbesine ihtiyaç vardır. Saat darbesi Master mikro denetleyici tarafından sağlanır ve SCLK üzerinden Slave mikro denetleyiciye aktarılır.

MOSI: Master Output Slave Input
Master cihazdan Slave cihaza MOSI pini üzerinden bilgiler aktarılır. Bu bilgilerin aktarılması için Master mikro dentleyici SS pinini lojik sıfır seviyesine çekmeli ve SCLK üzerinden saat darbesi üretmelidir.

MISO: Master Input Slave Output
Slave cihazdan Master cihaza MISO pini üzerinden bilgiler gönderilir. Bu bilgilerin aktarılması için Master mikro dentleyici SS pinini lojik sıfır seviyesine çekmeli ve SCLK üzerinden saat darbesi üretmelidir.

Çoklu Slave Spi Haberleşmesi

Çoklu Slave Spi Haberleşmesi

Yukarıdaki resimde ise Çoklu Slave Spi Haberleşmesi gösterilmektedir. Daha önce söylendiği üzere hangi mikro denetleyici ile haberleşileceği master cihaz tarafından belirlenir.

Şimdi ise Spi Protokolünün mantığını anlamak için yaptığım basit bir uygulamayı paylaşacağım. Burada iki mikro denetleyici üzerinde haberleşme yapılacağı için Slave Select pinine ihtiyaç yoktur. Yalnız uygulamanın simülasyon ortamında çalışması için bir SS pini tanımlanıp, Spi Debugger’a bağlanmıştır.
Şekilde görüldüğü gibi Master mikro denetleyiciye bağlı 7 tane butonun Spi haberleşme protokolü ile Slave mikro denetleyicide ki 7 ledi yakması sağlanmıştır.

Master Mikro Denetleyici

Master Mikro Denetleyici

Master Mİkro Denetleyici Butonları

Master Mİkro Denetleyici Butonları

Slave Mikro Denetleyici

Slave Mikro Denetleyici


Kodlar ve Benzetim Dosyası

Selametle …

Kaynaklar:
1-Wikipedia
2-Pic Proje
3-Ramazan Sural
4-İstanbul Teknik Üniversitesi

Reklamlar

PWM Duty Cycle Değerini Ayarlama

Merhaba arkadaşlar;

Bugün sizlere Pic mikro denetleyicilerinden 16f877a ile PWM sinyalinin nasıl ayarlandığını göstereceğim. Öncelikle sizlere PWM sinyalinden biraz bahsetmek istiyorum. PWM, Pulse Width Modulation ingilizce kelimelerinin kısaltmasıdır. Türkçede ise bu Darbe ( Dalga ) Genişlik Modülasyonu ( Farklılaşması/Değiştirilmesi ) anlamına gelir. Burada amaç bir sisteme giden gücün sinyal ile kontrol edilmesidir. PWM sinyalinde lojik 1 5 Volt, lojik 0 ise 0 Volt’tur. Bir sistemin kontrolünde sisteme kontrol voltajı olarak 5 Volt uygularsanız sisteminiz çekebildiği gücü çekerek sürekli çalışır. Sisteme kontrol voltajı uygulamazsanız sisteminiz durur. Öyle bir kontrol voltaj değeriniz olmalı ki sisteminiz istediğiniz gibi davransın. Mikro denetleyicinizin yada kurduğunuz kontrol devresinin çıkışı, sabit bir gerilim elde edebilmenizi sağlıyor. Ya analog çıkış oluşturmanız gerekecek ( ama oluşturduğunuz voltaj değeri kontrol ettiğiniz elemanları çalıştırabilecek voltaj değerinde olmalı !!! ), yada en basit yol ile PWM sinyali kullanacaksınız. PWM sinyalinin avantajı Duty Cycle ( görev çevrimi ) süresince lojik 1 ( 5 V ), periyodun kalan kısmında ise lojik 0 ( 0 Volt ) olarak çıkışa bağladığımız elemanları sürmemizi / kontrol etmemizi sağlar. Ayrıca sistemimizin istediğimiz şekilde çalışması için gereken voltaj değerini ortalama değer ile elde etmemizi sağlar. Anlattıklarımın daha iyi anlaşılması için bir örnek vereyim.

Pwm

Kontrol sinyalinizin frekansından bağımsız olarak ( sinyal periyodik olarak kabul edildiğinde bir periyot için geçerli olan hesaplama diğer periyotlar içinde geçerlidir.) , bir periyotta Duty Cyle değeriniz %40 ise sinyalinizin %40’ı 5 V iken %60’ı 0 volttur. Ama bizim sistemimiz için önemli olan değer ortalama değerdir. Yani 5*(40/100)*1= 2 Volt’tur. Sisteme ortalama değer olarak 2 Volt vermiş oluruz. Bu bizim kontrolünü yaptığımız sistemin istediğimiz gibi davranabilmesi anlamına geliyor.

PWM sinyali motor sürücüler ve led aydınlatmada kullanılan dimmerlar, güç elektroniği uygulamaları ve daha birçok alanda kullanılmaktadır.

PWM sinyalinin Pic 16f877a mikro denetleyicisinde  nasıl üretildiğini açıklayan bir video hazırladım. Ayrıca yaptığım uygulamanın simülasyon dosyasını ve kodlarını aşağıda paylaşıyorum. İyi çalışmalar …

Kodlar ve Benzetim Dosyası

PIC 16F877a ile 220 V Kontrol

Merhaba Arkadaşlar ;

Bugün başlıktan da  anlaşılacağı gibi PIC mikro denetleyici ailesinden olan 16f877a ile 220 V kontrolünü anlatacağım. Öncelikle bu uygulamada kullanılan kodları ve benzetim dosyasını sizinle aşağıdaki linkte paylaştım. Ayrıca devrenin bilgisayar ortamında ve gerçekte nasıl yapıldığını aşağıdaki videoda paylaştım.
Şimdi size kısaca otomasyonun ve kontrolün gerekliliğinden bahsedeceğim. Ülkemizde ve dünyada birçok alanda kullanılan otomasyon teknolojileri, temelinde kontrol mühendisliğinin yattığı bir alandır. Kontrol mühendisliği denilince akla en başta gelen şeyler ise otomatik kontrol konularıdır. Buna kısaca makinelerin başka makineleri ve sistemleri kontrol etmesi diyebiliriz. En basitinden birçok fabrikada insan emeğinin çok sınırlı bir alt seviyeye düşürüldüğü günümüzde, yapılması gereken işlemlerin birçoğunu makineler yapmaktadırlar. Örneğin bir araba fabrikasında arabanın kaportasından, kaynaklarının yapılmasına ve boyanmasına kadar birçok işlemi artık fabrikalardaki makineler yapmaktadır. İnsan faktörü bu makinelerde sadece gerekli parametrelerin girilmesine müdahale eder.

Bu noktada her şey aslında akıllı makinelerin ( mikro denetleyici, PLC, bilgisayar vb. ), diğer makineleri kontrol etmesi ile başlar. Bende bu yazımda anlattığım kontrol olayını en basit mertebede gözünüzde canlandırmak için bir video hazırladım. Bu video sadece bir lambayı bilgisayardan kontrol ediyor. Ama aslında temsil edilen bir lamba yerine bir elektrik makinesi olan bir motoru veya başka bir bileşeni düşünebilirsiniz.

Umarım aşağıdaki bilgiler faydanıza olmuştur.

Kodlar ve Benzetim Dosyası