Picproje Elektronik Sitesi

DİJİTAL & ANALOG ELEKTRONİK => Malzeme Bilgisi => Konuyu başlatan: esdevhk - 30 Haziran 2018, 15:29:56

Başlık: ssd1306 hakkında yardım
Gönderen: esdevhk - 30 Haziran 2018, 15:29:56
(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 >> ??
Başlık: Ynt: ssd1306 hakkında yardım
Gönderen: 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
Başlık: Ynt: ssd1306 hakkında yardım
Gönderen: devrecii - 01 Temmuz 2018, 18:27:43
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)

 

Başlık: Ynt: ssd1306 hakkında yardım
Gönderen: esdevhk - 01 Temmuz 2018, 22:05:09
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?
Başlık: Ynt: ssd1306 hakkında yardım
Gönderen: esdevhk - 01 Temmuz 2018, 22:09:50
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ı?
Başlık: Ynt: ssd1306 hakkında yardım
Gönderen: ipek - 02 Temmuz 2018, 00:08:36
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.....
Başlık: Ynt: ssd1306 hakkında yardım
Gönderen: MC_Skywalker - 02 Temmuz 2018, 09:56:31
Oled için kullandığınız lib SPI rutinleri içermiyor olabilir.

kullandığım lib ---> http://elektronark.org/index.php?topic=672.0

Başlık: Ynt: ssd1306 hakkında yardım
Gönderen: esdevhk - 02 Temmuz 2018, 10:04:48
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.
Başlık: Ynt: ssd1306 hakkında yardım
Gönderen: MC_Skywalker - 02 Temmuz 2018, 10:57:00
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.
Başlık: Ynt: ssd1306 hakkında yardım
Gönderen: esdevhk - 02 Temmuz 2018, 11:01:41
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ı?
Başlık: Ynt: ssd1306 hakkında yardım
Gönderen: algorist - 26 Mart 2019, 15:57:16
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?