Mikrodenetleyiciler

PIC16F877 Mikrodenetleyici ile I2C haberleşmesi

PIC16F877 kullanarak I2C protokolü kullanma

PIC mikrodenetleyicisi bir çok gömülü sistemde kullanılan güçlü ve uygun bir denetleyici türüdür. Geniş uygulama alanı olsada, hiçbir mikrodenetleyici tüm faaliyetleri tek başına gerçekleştiremez. Bir zaman diliminde, bilgi paylaşmak için diğer cihazlarla iletişim kurması gerekir, bu bilgileri paylaşmak için birçok farklı iletişim protokol türü vardır, ancak en çok kullanılanları USART, IIC, SPI ve CAN’dır. Her iletişim protokolünün kendi avantaj ve dezavantajı vardır. Bu yazımızda I2C protokülüne değineceğiz.

I2C İletişim Protokolü Nedir?

IIC terimi, “Entegre Devreler” anlamına gelmektedir. Normalde I2C veya I C kare, hatta bazı yerlerde 2 kablolu arabirim protokolü (TWI) olarak ifade edilir, ancak hepsi aynı anlama gelir. I2C, senkronize bir iletişim protokolü anlamına gelir; her iki bilgiyi paylaşan cihazların ortak bir zaman sinyalini paylaşması gerekir. Bir clock sinyali için veri göndermek ve almak için kullanılan sadece iki yol kullanır.

I2C İletişim nasıl çalışır?

I2C iletişimi ilk olarak Phillips tarafından tanıtıldı. Burada bir aygıta server, diğer aygıta da client adı verilir. İletişim iki Master ve Slave arasında gerçekleşmeli ve gerçekleşmelidir. I2C iletişiminin avantajı, birden fazla clientin bir sunucuya bağlanabilmesidir.

PIC16F877 Mikrodenetleyici ile I2C haberleşmesi 2

Komple iletişim, SCL ve SDA olarak adlandırılan bu iki tel üzerinden gerçekleştirilir.

SCL: Master tarafından üretilen saat sinyalini client ile paylaşır

SDA: Master ve slave arasında bu verileri gönderir.

Herhangi bir zamanda yalnızca bir iletişim kurabilir. Veriyolunda birden fazla client bulunduğundan, ana ünitenin her cliente farklı bir adres kullanarak başvurması gerekir. Yalnızca bu adrese sahip olan salve ele alındığında, diğerlerinden ayrılmaya devam ederken bilgilerle geri cevap verecektir. Bu şekilde aynı veri yolunu birden fazla cihazla iletişim kurmak için kullanabiliriz.

XC8 Derleyicisini kullanarak PIC16F877a Mikrodenetleyici ile I2C

Artık bir I2C iletişiminin nasıl çalıştığını öğrendiğimize göre, kullanacağımız ve I2C satırlarına bazı değerler yazacağımız basit bir program yapalım. Daha sonra bu programı simüle edeceğiz.

Her zaman olduğu gibi, program Yapılandırma bitlerinin ayarlanması ve saat frekansının 20 MHz olarak ayarlanması ile başlayalım.

Bir sonraki adımda önceden tanımlanan PIC16F877a_I2C.h başlık dosyasını projemize include ederek uygulamamıza I2C bağlantısı için gerekli tanımları otomatik tanıtmış oluruz. PIC16F877a_I2C.h dosyasına yazının altında bulunan indirme linki yardımı ile ulaşabilirsiniz.

PIC16F877 Mikrodenetleyici ile I2C haberleşmesi 3

Başlık dosyasını eklemek için :

While döngüsünün içinde I2C iletişimine başlayacağız, I2C veriyoluna birkaç rastgele değer yazacağız ve sonra I2C iletişimini sonlandıracağız. Seçtiğim rastgele değerler D0, 88 ve FF’dir. İstediğiniz değerleri girebilirsiniz. Fakat bu değerleri, simülasyonumuzda doğrulayacağımızdan hatırlayın.

Programımızı derleyip Proteus ile similasyonu yapalım.

Mikrodenetleyici
Mikrodenetleyici

Hex dosyamızı oluşturup Proteus yardımıyla oluşturduğumuz similasyona yükleyelim. Hex dosyamızı yüklediğimiz similasyonumuzu çalıştıralım ve mikrodenetleyicimizin pinlerini kontrol edelim.

Yazılan değerlere baktığımızda programda belirtiğimiz değerler D0, 88 ve FF’dir. Değerler her 1 saniyede bir yazılmıştır.

Etiketler
Daha Fazla Göster

MeK

Pamukkale Üniversitesi Elektrik Elektronik Mühendisliği ni 2018 yılında bitirdim. 2018 yılında Yüksek Lisansa Karatekin Üniversitesi Elektrik Elektronik Mühendisliğine başladım. Programlamayı seviyorum Delphi, C# , C , PHP dillerine hakimim ARM ile uğraşıyorum bunların yanında web tasarım ve sunucu yönetimi ile hobi olarak uğraşıyorum. Sizlere Kodmek sayfamda hakim olduğum diller ve öğrenmek istediğim konularda yardımcı olmaya çalışacağım

Bir cevap yazın

Başa dön tuşu
Kapalı