Haberler:

Eposta uyarılarını yanıtlamayınız ( ! ) https://bit.ly/2J7yi0d

Ana Menü

Yazılımsal SPI

Başlatan baran123, 06 Mart 2015, 20:27:33

baran123

İyi akşamlar, OLED lcd ile uğraşırken SPI ile tanıştım biraz geç oldu ama çok sevdim bu iletişimi hız olsun pin sayısı olsun bayağı iyi çalışıyor ama işin doğrusu SPI iletişimin çalışma mantığını tam olarak anlayamadım.Ccs de yazılımsal SPI örneği mevcut mu ? Birde D/C pini tam olarak ne iş yapar ? bu SPI olayını 2 pine indiremez miyiz ?

Bu kodun bölümlerini açıklama şansımız var mıdır ? Birde SPI da master slave ilişkisini çözemedim.Bide bir MCU dan bir den fazla cihaza paralel olarak bilgi gönderiliyor galiba CS pini idi sanırım doğru mudur ?
setup_spi(SPI_MASTER | SPI_CLK_DIV_16| SPI_L_TO_H | SPI_XMIT_L_TO_H | SPI_SAMPLE_AT_END);

sadogan

D/C pini D=data c=komut

stm

ccs derleyicisi ile proje oluştururken spı seçeneği var ordan temel kodları oluşturup sonra projene göre değişiklik yapabilirsin.



baran123

D/C pini D=data c=komut
hocam data ve komut tam olarak ne iş yapar burada ?

stm

spi pinleri

SCK saat sinyali
SDO giden data
SDI  gelen data
CS  cihaz seçmek için, her cihaz için ayrı CS pini gerekli

her saat sinyali ile bir data gönderilir.

daha önce 74HC595 kullandıysanız aynı mantık.
shift register.




sadogan

#5
Lcd nin her hangi bir satırına yazmak istiyorsun,
Yazmak istediğin adrese erişmek için lcd ye gönderdiğin
veriler komut oluyor, Yazamak istedigin adrese yazığın ise data oluyor.
Bunları LCD D/C pininden anliyor.

baran123

O zaman I2C, SPI dan yavaş çünkü 2 pin ile hem adres hem veri gönderiliyor doğru mudur ?

sadogan

#7
Yanlız şunu karıştırma D/C SPI la ilgisi yok
LCD ile ilgisi var.

mesaj birleştirme:: 06 Mart 2015, 22:25:26

SPI ın master yada slave olması clock kaynağı ile ilgili
clock üreten master oluyor.

baran123

anladım o zaman dc yi 1 yapınca data 0 yapınca adres gibi mi gidiyor

sadogan


baran123

son bir şey daha sorayım:) SS pini ne için kullanılıyor ?

Gökhan BEKEN

Birden fazla spi slave olabileceği için hangisiyle haberleşeceğini o pin ile seçiyorsun. Datasheet'ten incelendiğinde GND verince mi aktif yoksa VCC verdiğinde mi aktif olduğunu öğrenir ona göre ayarlarsın pini. Genelde gnd oluyor...
CS:chip select, SS slave select, yani ikisi de aynı
Özel mesaj okumuyorum, lütfen göndermeyin.