dijital

 

Son günlerde RFID ile ilgili modüller üzerine çalışıyorum. Piyasada bulunan çoğu RFID okuyucusu, SPI protokolünü kullanıyor.  Aynı zamanda  bir çok EEPROM da, SPI protokolünü kullanmakta.

 

SPI protokolü, I²C protokolü gibi senkron seri habeleşme protokolüdür ve en az hat kullanılarak daha fazla cihazın haberleşmesini sağlamak amacı ile geliştirilmiştir. I²C protokolünü Philips, SPI protokolünü ise Motorola firması geliştirdi. Protokoller kullanışlı olduğu için bir çok donanım da kendi mimarisinde bu protokolleri baz almıştır.

Aşağıda tek bir master cihaz ile tek bir slave cihazın SPI bağlantısını görüyorsunuz.

spi_interface_1

Burada;

SDO—>Seri Data Çıkış Pini

SDI—>Seri Data Giriş Pini

SCK—> Senkron Sinyal Pini(Belli bir frekansta kare dalga üretir)

SS/CS—> Slave cihaz seçme pinidir ama tek bir slave ve tek bir mater cihaz kullanıldığında bu pine ihtiyaç duyulmuyor genellikle.

 

Aslında SPI protokolünün I²C protokolünden çok da farkı yok. İkisi de senkron seri haberleşme protokolüdür. Fakat I²C protokolünde, cihazdan çıkan ve giren data aynı hattı kullanır. SPI protokolünde ise input ve output hatları farklıdır.  Bir de SPI protokolünde modlar vardır.  Bu modlar, data gönderiminin, clock sinyalinin(SCK) alçalan kenarda mı yoksa yükselen kenarda mı olacağını (yani kare dalganın 0 volttan 5 volta geçerken mi datanın okunacağı yok sa 5 volttan 0 volta geçerken mi okunacağını belirler) ve  iletişim yokken clock sinyali pininin(SCK) 0 voltta mı yoksa 5 voltta mı kalacağını belirler.  Aşağıda görüldüğü gibi;

sample_spi_modes

 

CPOL, datanın yükselen kenarda mı yoksa alçalan kenarda mı gönderileceğini belirtir.CPHA ise clock sinyalinin yani SCK pininin iletişim yokken bekleme durumunu belirtir.

CPOL=0, CPHA=0 iken  data iletimi clock sinyalinin yükselen kenarda ve iletim yokken SCK pininin sürekli 0 voltta olacağı belirtilir.

CPOL=0, CPHA=1 iken  data iletimi clock sinyalinin düşen kenarda ve iletim yokken SCK pininin sürekli 5 voltta olacağı belirtilir.

CPOL=1, CPHA=0 iken  data iletimi clock sinyalinin düşen kenarda ve iletim yokken SCK pininin sürekli 0 voltta olacağı belirtilir.

CPOL=1, CPHA=1 iken  data iletimi clock sinyalinin yükselen kenarda ve iletim yokken SCK pininin sürekli 5 voltta olacağı belirtilir.