ssd1306 hakkında yardım

Başlatan huseyink, 30 Haziran 2018, 18:29:56

huseyink

30 Haziran 2018, 18:29:56 Son düzenlenme: 30 Haziran 2018, 18:31:34 huseyink



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 >> ??

muhittin_kaplan

#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

iboibo

01 Temmuz 2018, 21:27:43 #2 Son düzenlenme: 01 Temmuz 2018, 21:29:17 iboibo
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)

 


huseyink

02 Temmuz 2018, 01:05:09 #3 Son düzenlenme: 02 Temmuz 2018, 01:06:22 huseyink
Alıntı yapılan: iboibo - 01 Temmuz 2018, 21: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?

huseyink

Alıntı yapılan: muhittin_kaplan - 01 Temmuz 2018, 21: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ı?

ipek

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.....

MC_Skywalker

Oled için kullandığınız lib SPI rutinleri içermiyor olabilir.

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

Comodore C64 ve/veya Amiga 500 bağışlarınız kabul edilir. https://www.pcbway.com/setinvite.aspx?inviteid=47459 Bir işsize kitap bağışlamak istermisiniz ---> http://a.co/cuyqkBx   https://instagram.com/mc6810p10

huseyink

Alıntı yapılan: MC_Skywalker - 02 Temmuz 2018, 12: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.

MC_Skywalker

LCD'nin bulunduğu kartın üzerinde gerekli değişiklikler yapılmış.



Adafruit in kütüpanesinde I2C ve SPI tanımlı onu kukllana bilirsiniz.
Comodore C64 ve/veya Amiga 500 bağışlarınız kabul edilir. https://www.pcbway.com/setinvite.aspx?inviteid=47459 Bir işsize kitap bağışlamak istermisiniz ---> http://a.co/cuyqkBx   https://instagram.com/mc6810p10

huseyink

Alıntı yapılan: MC_Skywalker - 02 Temmuz 2018, 13:57:00LCD'nin bulunduğu kartın üzerinde gerekli değişiklikler yapılmış.



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ı?

algorist

Alıntı yapılan: huseyink - 02 Temmuz 2018, 14: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?
e-e-e