(http://i.hizliresim.com/zM5maj.jpg)
Arkadaşle iyi günler,
Elimde 6pin 0.96" 12864 Oled Ekran var. Direnç .net den aldım bu ekranı. SPI uyumlu olarak aldım. Piyasada ki cogu 6pin ekranların pin adları farklı kafam karıştı benim de. Datasheet i detaylı inceledim fakat DC pinine ne bağlayacağımı anlamadım. Kullanan varsa aranızda yardım edebilir mi?
Araştırdığım kadarıyla
D0 >> SCL
D1 >> MOSI
RES >> 0~Reset / 1~Normal Mode
DC >> ??
#define SSD1306_RES_ON GPIO_WriteBit(GPIOA,GPIO_Pin_0,Bit_SET); //RC0
#define SSD1306_RES_OFF GPIO_WriteBit(GPIOA,GPIO_Pin_0,Bit_RESET);
#define SSD1306_DC_ON GPIO_WriteBit(GPIOA,GPIO_Pin_1,Bit_SET); //RC4
#define SSD1306_DC_OFF GPIO_WriteBit(GPIOA,GPIO_Pin_1,Bit_RESET);
#define SSD1306_CS_ON GPIO_WriteBit(GPIOA,GPIO_Pin_2,Bit_SET); //RC5
#define SSD1306_CS_OFF GPIO_WriteBit(GPIOA,GPIO_Pin_2,Bit_RESET);
yapmışım ben.
ssd1306.c içerisinde
DC pinine Eğer 0 verirsen Komut gönderirsin
DC pinine Eğer 1 verirsen Data gönderirsin
C dosyası içinde setcommand yazan yerlere gpio ilgili pinini reset yap senddata ise reset yap fonksiyon ilk başta içince.
Bir de CS (CardSelect) pini olması lazım Cs pinini direk negatife bağla yada bir gpio ya CS 0 ise bu module bilgi gider. (Galiba CS pini yok direk negatifde demekki)
Alıntı yapılan: iboibo - 01 Temmuz 2018, 18:27:43DC pinine Eğer 0 verirsen Komut gönderirsin
DC pinine Eğer 1 verirsen Data gönderirsin
C dosyası içinde setcommand yazan yerlere gpio ilgili pinini reset yap senddata ise reset yap fonksiyon ilk başta içince.
Bir de CS (CardSelect) pini olması lazım Cs pinini direk negatife bağla yada bir gpio ya CS 0 ise bu module bilgi gider. (Galiba CS pini yok direk negatifde demekki)
Hocam aldığım sitede SPI uyumlu yazıyordu. Slave select pini göremeyince acaba I2C mi diye şüphelendim. I2C ile yapmayı denedim. Dediğiniz gibi eğer DC pini low çekilirse command gönderiyorsun ve ona göre de slave adress değişiyor çünkü datasheet okuduğumda I2C mode da DC pini SA0 pini oluyor ve slave adress bitlerinden biri SA0 tarafından belirleniyor yazıyor. Aynı şekilde DC pinini high çekersek de pixel datası gönderiyoruz. Yine buna göre de slave adress de değişiklik olmaz mı? Ben indirdiğim kütüphane de buna göre bir ayar çektim. Fakat OLED bir türlü çalışmadı.
Bu OLED SPI ile de çalışıyor mudur yani dediğini gibi CS pini gömülü olarak 0 da mıdır?
Alıntı yapılan: muhittin_kaplan - 01 Temmuz 2018, 18:15:53#define SSD1306_RES_ON GPIO_WriteBit(GPIOA,GPIO_Pin_0,Bit_SET); //RC0
#define SSD1306_RES_OFF GPIO_WriteBit(GPIOA,GPIO_Pin_0,Bit_RESET);
#define SSD1306_DC_ON GPIO_WriteBit(GPIOA,GPIO_Pin_1,Bit_SET); //RC4
#define SSD1306_DC_OFF GPIO_WriteBit(GPIOA,GPIO_Pin_1,Bit_RESET);
#define SSD1306_CS_ON GPIO_WriteBit(GPIOA,GPIO_Pin_2,Bit_SET); //RC5
#define SSD1306_CS_OFF GPIO_WriteBit(GPIOA,GPIO_Pin_2,Bit_RESET);
yapmışım ben.
ssd1306.c içerisinde
Hocam ben I2C ile çalıştırmaya çalıştım CS pini olmayınca.
I2C modunda DC pininin SA0 olduğunu yazıyordu datasheet de. Slave adress bitlerinden birini de SA0 belirlediği için bende Command gönderilen yerlerde DC pininin ilgili gpio pinini low a çektim. Aynı şekilde data gönderdiğimiz yerlerde ilgili pini high yaptım. Yine aynı şekilde high/low durumuna göre slave adress değiştim. Bir yanlışlık var mı?
aynı yerden 4 pin .96 i2c aldım kusursuz çalıştı,görüntü biraz ufak tatmin edici değil, paraya kıyıp 1.3 4 pin i2c olanı aldım,hiç çalışmadı,baya araştırdım onun çipi SH1106 imiş ,ulen şunu satarken söylesenize.....
Oled için kullandığınız lib SPI rutinleri içermiyor olabilir.
kullandığım lib ---> http://elektronark.org/index.php?topic=672.0
Alıntı yapılan: MC_Skywalker - 02 Temmuz 2018, 09:56:31Oled için kullandığınız lib SPI rutinleri içermiyor olabilir.
kullandığım lib ---> http://elektronark.org/index.php?topic=672.0
peki hocam fotoğraftaki oled aldığım sitede SPI uyumlu yazıyordu. Fakat CS pini bulunmuyor. Gömülü olarak toprağa çekilmişmidir? SPI uyumlu değilse de I2C ye göre attığınız kütüphanenin aynısını denedim fakat bir sonuç alamadım.
LCD'nin bulunduğu kartın üzerinde gerekli değişiklikler yapılmış.
(https://s19.postimg.cc/v5ct7yt6r/IMG_2078.jpg)
Adafruit in kütüpanesinde I2C ve SPI tanımlı onu kukllana bilirsiniz.
Alıntı yapılan: MC_Skywalker - 02 Temmuz 2018, 10:57:00LCD'nin bulunduğu kartın üzerinde gerekli değişiklikler yapılmış.
(https://s19.postimg.cc/v5ct7yt6r/IMG_2078.jpg)
Adafruit in kütüpanesinde I2C ve SPI tanımlı onu kukllana bilirsiniz.
Hallettim teşekkürler. OLED ekranım SPI uyumlu sadece. Kütüphanede gerekli değişiklikleri yaptım SPIa göre.
Bir sorum olucak sadece benim şuanki OLED üzerinde CS pini bulunmamakta vede SPI_Transmit fonk'da herhangi bir control adress göndermemize gerek yok mu? Direkt gerekli komutları transmit ile yolladığımda çalışmalı mı?
Alıntı yapılan: huseyink - 02 Temmuz 2018, 11:01:41Hallettim teşekkürler. OLED ekranım SPI uyumlu sadece. Kütüphanede gerekli değişiklikleri yaptım SPIa göre.
Bir sorum olucak sadece benim şuanki OLED üzerinde CS pini bulunmamakta vede SPI_Transmit fonk'da herhangi bir control adress göndermemize gerek yok mu? Direkt gerekli komutları transmit ile yolladığımda çalışmalı mı?
Kullandığınız kütüphaneyi paylaşabilir misiniz?