Glass LCD Sürme Tekniği

Başlatan Mucit23, 25 Mayıs 2020, 00:25:19

Mucit23

Alıntı yapılan: mustafa_cmbz - 25 Temmuz 2020, 09:52:04bu lcd lerden nasıl temin edebiliriz hocam?

Çinde birçok üretici var. Hazır LCD'ler olduğu gibi birkaç yüz dolara özel tasarım bile yaptırırsınız.

@z Abi birkaç fotoğraf aldım. Kafa karışmaması için Sadece SEGMENT0'ı aktif ettim. Resimlerle teker teker açıklayayım.

SEG0 ve COM0 hattında HOLD iconu var. HOLD iconunu kendi başına yakıp söndürebiliyorum. Şuan HOLD iconu aktif.

Görüldüğü gibi alttaki dijitte bazı haneler görülüyor azda olsa. Alltaki Dijitlerin Com0 ile alakası yok Com1 ve COM2 ortak ucları ile sürülüyor. Sistemin çalışma mantığı multiplex display gibi. 4 Adet COM çıkışı var. Ve 9 adet segment çıkışım var. COM çıkışları ile tarama yapılıyor. Segmentler ile data gönderiliyor.

Aşağıdaki resimde SEG0(Sarı) ve SEG1(Mavi) çıkışları görülmekte.


SEG0'a hold iconunu yakmak için data gönderdiğim için ayarladığım bias değerleri ile bir sürme sinyali çıkıyor. Diğer Seg1-Seg9 çıkışlarında ise mavi sinyal var. Ben bu çıkışlara herhangi bir data göndermiyorum. Data gönderirsem Seg0'daki gibi sinyaller görüyorum.

Aşağıdaki resimlerde Osiloskobun Com çıkışları

Com0(Sarı) ve Com1(Mavi)

Com0(Sarı) ve Com2(Mavi)
Com0 ve Com 3'ü almadım kayda. Ama benzer şekilde bir sinyal var
Bu Com sinyalleri LCD init edildikten sonra ve LCD update edildikten sonra sürekli çıkıyor.

Bence sorunun sebebi 2 resimde görüldüğü gibi Data yazmadığım Segment çıkışlarında siyaller görülmesi, Ben Segment0'a veri yazdığım zaman Diğer Segment çıkışlarının(Seg1-Seg9) Sabit olarak lojik 0'da beklemesi lazım. Ama donanım bunu bu şekilde yapmıyor.

Anlamadım niye böyle çalıştığını. Hata yapıyor olmalıyım bir yerlerde.

z

Bana e^st de diyebilirsiniz.   www.cncdesigner.com

sarikayamusa

Alıntı yapılan: Mucit23 - 25 Mayıs 2020, 00:25:19Daha önce Benzer konular forumda açılmıştı. Benimde bu konuda bir çalışma yapmam gerekebilir. Biraz teknik bilgiye ihitacım var.

Bu tip Bir Cam LCD'yi termometre benzeri bir uygulamada kullanmak istiyorum.
(Resim gizlendi görmek için tıklayın.)

  Sadece bu değil aslında bu tarz lcd'ler çok ucuz oluyorlar. Fiyat faktörünün ön planda olduğu çalışmalar için bu tarz LCD'lerden kullanıp proje maliyetlerini düşürebilmeyi hedefliyorum. Ama bu tarz hiçbir kontrolcü bulunmayan LCDler için driver tasarımı nasıl yapılır onu öğrenmek istiyorum. Üzerinde Segment LCD sürebilme yeteneği olan STM32 serisi mcu'lar var. Bunlar ile yapmak elbet kolay olur ama Üzerinde bu tarz bir donanım olmayan bir MCU ile nasıl istediğimiz segmenti yakarız? Fikir verebilecek olan var mı?

LCD'i basit bir şekilde test edebilirmiyim? Kolay bozulur mu bu LCD'ler?

  Ben bu tip custom design lcd kullanarak bir proje gerçekleştirdim. Hayalet görüntü niçin oluşur yorum yapamayacağım çünkü ben böyle birsey ile karşılaşmadım. Projemde 16x4 segment lcd vardı ve bunu sürmek için Holtek firmasının HT1621B sürücüsünü kullandım ve yanında uyduruk bir Atmega168 ile işimi rahatlıkla gördü ucuza maloldu, güzel çalışıyor. Benim lcd zebra lı değildi metal pinli yaptırmıştım ben.

Sürmeyle alakalı soruların olursa bilgim dahilinde cevap vermeye çalışırım.

Mucit23

Alıntı yapılan: z - 25 Temmuz 2020, 13:14:09Matrisi de cizebilirmisin?

Abi ekranın Matris yapısı bu şekilde

Seg0 1nolu pine
Seg1 2nolu pine
.
.
Seg9 9nolu pine bağlı.

ecunnu

LCD nin gerilimini internal mı external mı kullanıyorsun? Yani işlemcinin VLCD bağlantısını nasıl yaptın?
Eğer internal kullanıyor isen kontrastını değiştirmeyi denedin mi?
LCD ler genelde belli bakış açılarına göre üretilirler. Benim kullandığım LCD ler 60 derecelik ti yani LCD ye 60 derece açıyla baktığında en güzel görüntüyü alıyordum. Custom LCD üreticileri istediğin açıya göre LCD üretebiliyorlar.

OG

Böyle bir iş üzere çalışmadım ama,
eskilerde elimize yeni bir şeyin geçtiğinde, bu neymiş, içinde ne var merakı ile sökerdik.

Kol saatini söküp de düzgün toplayamadığımızı hatırladım, benzer durumlar oluşurdu.
pinleri yerine oturtasıya kadar da canımız çıkardı.
FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

Mucit23

Şuan yanlış hatırlamıyorsam internal olarak seçili. Vlcd ise 3.3v'a bağlı. Kontrast level yanlış hatırlamıyorsam 5 olarak seçili ama bu değeri değiştirince lcd donanımı init olmuyor. Kontrast ile mi alakalı emin değilim ama 90 derece açıyla bakınca rakamlar hep bir birine giriyor. Kabul edilebilir gibi değil. Sebebi ve çözümünü öğrenmek istiyorum.

Aslında zebra konnektör den bende şüpheleniyorum.. Şuan lcd yi ve zebra konnektörü göz kararı hizaladım. Ama baya uğraştım bundan iyisini bulamadım zaten biraz sağa sola fazla kaydırınca bu sefer segment ler komple gidiyor.

ecunnu

Vlcd ye 3.3 volt verir isen internal regülatörü kullanamazsın. Eğer kullanırsan MCU yu bozma ihtimalin var. Kontrast 5 in altına inmemenin sebebide bu. Benim tavsiyem VLCD nin 3.3v ile bağlantısını kes ve 1uf civarında bir kapasite bağla. Daha sonra kontrastla oynayarak doğru ayarı bul. Gölgelenmeler büyük ölçüde azalacaktır.

z

#23




Hocam seni ugrastiracagim ama;

Scop goruntulerini su sekilde verebilirmisin.

A kanali 1 nolu Pinde sabit kalsin.
B kanali ise

1. goruntude Com1
2. goruntude Com2
3. goruntude Com3
4. goruntude Com4

olacak sekilde 4 ekran gorunsu olmali.

Hold segmenti aktif iken hayalet goruntu veren segmentler 1F, 1E ve 1D

Bu olcumler sonucunda hayalet goruntuye neden olan voltaj mi varm yoksa
zebra konnektorden kaynaklanan bir sey mi var anlama sansimiz olacak.

Bir de cipin LCD konusunun ve registerlerinin anlatildigi dokumanin linkini yazabilirmisin?

Senin LCD nin altinda zebra konnnektor goremedim dogru mu bu?

 
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

Mucit23

#24
Alıntı yapılan: ecunnu - 26 Temmuz 2020, 01:58:26Vlcd ye 3.3 volt verir isen internal regülatörü kullanamazsın. Eğer kullanırsan MCU yu bozma ihtimalin var. Kontrast 5 in altına inmemenin sebebide bu. Benim tavsiyem VLCD nin 3.3v ile bağlantısını kes ve 1uf civarında bir kapasite bağla. Daha sonra kontrastla oynayarak doğru ayarı bul. Gölgelenmeler büyük ölçüde azalacaktır.

Bu tür LCD'lerle çalışmadan önce STM32l152C Discovery kartından almıştım. Bu kart üzerinde de Glass LCD var. Tabi kendi devre şemamı çizmeden önce Bu kartın şemasına bakıp fikir edinmeye çalışmıştım. Şöyle ki Bu kartın şemasında VLCD pini 0R direnç ile 3.3V'a bağlı olduğu görünüyordu. Ama şimdi kartın üzerine baktım 0R monte edilmemiş. Dolayısıyla aynen dediğiniz gibi VLCD pinine sadece 1uF kapasite bağlı.  Bunu bende yapıcam ama elimde 1uF yok, 0805 10uF 6.3V kapasitörlerden var. Bu kapasitenin internal VLCD regülatörüne bağlı baypass kapasitesi olduğunu düşünüyorum. Bir daha sipariş beklememek için 10uF bağlamanın bir sakıncası olurmu?

Veyahut LCD_VOLTAGESOURCE_INTERNAL; yerine EXTERNAL yapıp donanıma hiç müdahale etmesem sakıncası olur mu? Anladığım kadarıyla Kontrast VLCD pinindeki voltaja göre ayarlanıyor. Dolayısıyla External yapılırsa vs 3.3V stabil olmazsa kendi kendine kontrast değişecek. 

Edit: Voltage Source External yapıp kontrast değeri ile oynamak sonucu pek değiştirmiyor. Ama Kontrast level değerini değiştirmemle artık  init esnasında hard faulta düşmüyorum.

@z abi atölyeye geçince dediğini yapacağım.

ecunnu

Alıntı YapBunu bende yapıcam ama elimde 1uF yok, 0805 10uF 6.3V kapasitörlerden var. Bu kapasitenin internal VLCD regülatörüne bağlı baypass kapasitesi olduğunu düşünüyorum. Bir daha sipariş beklememek için 10uF bağlamanın bir sakıncası olurmu?

Doğrudur internal regülatörün kapasitesi 10uf çok sorun yaratacağını düşünmüyorum. Denemedim ama belki Startup zamanı biraz uzar.

Alıntı YapVeyahut LCD_VOLTAGESOURCE_INTERNAL; yerine EXTERNAL yapıp donanıma hiç müdahale etmesem sakıncası olur mu? Anladığım kadarıyla Kontrast VLCD pinindeki voltaja göre ayarlanıyor. Dolayısıyla External yapılırsa vs 3.3V stabil olmazsa kendi kendine kontrast değişecek.

EXTERNAL olarak kullanırsan bir sorun olmaz devrede. Ama kontrastı ayarla değiştiremezsin bir etkisi olmaz. VLCD ile 3.3v arasına 200k lık bir pot koyarsan kontrast ayarını yapmak mümkün olabilir ve bu seçenektede devre değişmiş olur. Bununla birlikte dediğin gibi giriş gerilimin sabit 3.3V değil ise zamanla örneğin 2.5V a düşer ise kontrastında düşer. Internal regülatorde böyle bir sorun olmaz.

MC_Skywalker

LCD'nin çalışma gerilimi ne?

Bu da önemli olabilir ben statik 5V LCD'yi 3.3V FPGA ile çalıştırmıştım. Senin LCD 5V ise VLCD girişinden 5V vermen gerekebilir ama STM MCU bunu destekliyormu?

Mucit23

Alıntı yapılan: ecunnu - 26 Temmuz 2020, 14:18:39Doğrudur internal regülatörün kapasitesi 10uf çok sorun yaratacağını düşünmüyorum. Denemedim ama belki Startup zamanı biraz uzar.

EXTERNAL olarak kullanırsan bir sorun olmaz devrede. Ama kontrastı ayarla değiştiremezsin bir etkisi olmaz. VLCD ile 3.3v arasına 200k lık bir pot koyarsan kontrast ayarını yapmak mümkün olabilir ve bu seçenektede devre değişmiş olur. Bununla birlikte dediğin gibi giriş gerilimin sabit 3.3V değil ise zamanla örneğin 2.5V a düşer ise kontrastında düşer. Internal regülatorde böyle bir sorun olmaz.
Birkaç gündür işlerim dolayısıyla yazamadım. Dediğiniz Gibi VLCD pinini +3.3V VCC geliriminden ayırdım. Şuanda Kontrast ayarlanabiliyor Yani kontrast az da olsa değişiyor bunu görebiliyorum. Ama gölgelenmeler yine var hiç bir şey değişmedi gibi. Video çektim. 0-9 sarası sayım yapıyorum.


Çözemiyorum. Sanki hizalama düzgün yapılamıyor gibi ama bundan iyisini de bulamıyorum. Birçok kombinasyonu denedim. LCD'yi kaydırıyorum Zebra konnektörü kaydırıyorum. Ya görüntü komple gidiyor yada bu şekilde oluyor.

Osiloskop ile görüntü alacağım seğment ve com ucları için.

Sebep sizce hizalama ma mı? Yoksa yazılımsal sorunlar mı?

Mucit23

Sorunu hala çözemedim.

@z abi biraz geç oldu kurura bakma aslında iki gündür bende uğraşamadım. Şimdi dediğini yaptım.

Öncelikle şunu diyim. Daha önce bu LCD'lerle çalışmaya başlamadan Önce STM32L152C Discovery Kartından satın almıştım. Sadece LCD driver donanımını anlamak için kullandım.

https://www.st.com/en/evaluation-tools/32l152cdiscovery.html

Bu kart üzerinde de Glass LCD var. Fakat Zebra konnektör yerine LCD üzerine doğrudan bağlı olan pimler le karta monte edilmiş. Ben bu Kart üzerinde Sadece SEG0'ı yakacak kod yazdım. Ve SEG0-COM0, SEG0-COM1, SEG0-COM2 ve SEG0-COM3 görüntülerini Aldım. (Sarı kanal SEG0, Mavi kanal COMx)


Sinyaller keskin görünüyor. Sonra aynı şekilde SEG0'ı yakacak kodu kendi kartıma gömüyorum. Benim MCU STM32L053C8

Çıkış sinyallerim aşağıdaki gibi.

Görüldüğü gibi benim mcu'dan çıkan sinyaller diğerindeki gibi keskin değil. Hayalet görüntü ancak SEG0'ın ortak olarak kullanıldığı COM1, COM2 ve COM3 pinlerindeki segmentlerde çıkıyor dolayısıyla bunlarda bir karışma var. Sinyaller niye böyle bozuk çıkıyor anlamıyorum.

Segment LCD init ayarlarım aşağıdaki gibi.
  LCDHandle.Instance              = LCD;
  LCDHandle.Init.Prescaler        = LCD_PRESCALER_1;
  LCDHandle.Init.Divider          = LCD_DIVIDER_31;
  LCDHandle.Init.Duty             = LCD_DUTY_1_4;
  LCDHandle.Init.Bias             = LCD_BIAS_1_3;
  LCDHandle.Init.VoltageSource    = LCD_VOLTAGESOURCE_INTERNAL;
  LCDHandle.Init.Contrast         = LCD_CONTRASTLEVEL_5;
  LCDHandle.Init.DeadTime         = LCD_DEADTIME_0;
  LCDHandle.Init.PulseOnDuration  = LCD_PULSEONDURATION_4;
  LCDHandle.Init.BlinkMode        = LCD_BLINKMODE_OFF;
  LCDHandle.Init.BlinkFrequency   = LCD_BLINKFREQUENCY_DIV32;
  LCDHandle.Init.MuxSegment       = LCD_MUXSEGMENT_ENABLE;
  /* Initialize the LCD */

Bu ayarlar STM32L152 discodaki ayarların birebir aynısı

Alıntı yapılan: z - 26 Temmuz 2020, 05:01:39Bir de cipin LCD konusunun ve registerlerinin anlatildigi dokumanin linkini yazabilirmisin?

https://www.st.com/resource/en/reference_manual/dm00095744-ultra-low-power-stm32l0x3-advanced-arm-based-32-bit-mcus-stmicroelectronics.pdf

Abi Acaba mcu pinleri arasındaki Lehim kalıntılarımı buna sebep oluyor diye düşünmeye başladım. Kartı lehimledikten sonra selülozik tinerle iyice fırçalıyorum ama emin olmadım.

M.Salim GÜLLÜCE

#29
Ba
Alıntı yapılan: Mucit23 - 30 Temmuz 2020, 10:06:57Sorunu hala çözemedim.

@z abi biraz geç oldu kurura bakma aslında iki gündür bende uğraşamadım. Şimdi dediğini yaptım.

Öncelikle şunu diyim. Daha önce bu LCD'lerle çalışmaya başlamadan Önce STM32L152C Discovery Kartından satın almıştım. Sadece LCD driver donanımını anlamak için kullandım.

https://www.st.com/en/evaluation-tools/32l152cdiscovery.html

Bu kart üzerinde de Glass LCD var. Fakat Zebra konnektör yerine LCD üzerine doğrudan bağlı olan pimler le karta monte edilmiş. Ben bu Kart üzerinde Sadece SEG0'ı yakacak kod yazdım. Ve SEG0-COM0, SEG0-COM1, SEG0-COM2 ve SEG0-COM3 görüntülerini Aldım. (Sarı kanal SEG0, Mavi kanal COMx)
(Resim gizlendi görmek için tıklayın.)

Sinyaller keskin görünüyor. Sonra aynı şekilde SEG0'ı yakacak kodu kendi kartıma gömüyorum. Benim MCU STM32L053C8

Çıkış sinyallerim aşağıdaki gibi.
(Resim gizlendi görmek için tıklayın.)
Görüldüğü gibi benim mcu'dan çıkan sinyaller diğerindeki gibi keskin değil. Hayalet görüntü ancak SEG0'ın ortak olarak kullanıldığı COM1, COM2 ve COM3 pinlerindeki segmentlerde çıkıyor dolayısıyla bunlarda bir karışma var. Sinyaller niye böyle bozuk çıkıyor anlamıyorum.

Segment LCD init ayarlarım aşağıdaki gibi.
  LCDHandle.Instance              = LCD;
  LCDHandle.Init.Prescaler        = LCD_PRESCALER_1;
  LCDHandle.Init.Divider          = LCD_DIVIDER_31;
  LCDHandle.Init.Duty             = LCD_DUTY_1_4;
  LCDHandle.Init.Bias             = LCD_BIAS_1_3;
  LCDHandle.Init.VoltageSource    = LCD_VOLTAGESOURCE_INTERNAL;
  LCDHandle.Init.Contrast         = LCD_CONTRASTLEVEL_5;
  LCDHandle.Init.DeadTime         = LCD_DEADTIME_0;
  LCDHandle.Init.PulseOnDuration  = LCD_PULSEONDURATION_4;
  LCDHandle.Init.BlinkMode        = LCD_BLINKMODE_OFF;
  LCDHandle.Init.BlinkFrequency   = LCD_BLINKFREQUENCY_DIV32;
  LCDHandle.Init.MuxSegment       = LCD_MUXSEGMENT_ENABLE;
  /* Initialize the LCD */

Bu ayarlar STM32L152 discodaki ayarların birebir aynısı

https://www.st.com/resource/en/reference_manual/dm00095744-ultra-low-power-stm32l0x3-advanced-arm-based-32-bit-mcus-stmicroelectronics.pdf

Abi Acaba mcu pinleri arasındaki Lehim kalıntılarımı buna sebep oluyor diye düşünmeye başladım. Kartı lehimledikten sonra selülozik tinerle iyice fırçalıyorum ama emin olmadım.
Bana öyle geliyorki.. (Aslında LCD lerle hiç ilgilenmedim) Float alanlarda gerekli olan COM pinleri dışında kalanları sloat bıraksan faydası olurmu diye düşünüyorum. HI yada LOW olmasın. LCD ler mikro kapasiteler gibi çalışıyor diye düşünüyorum. Temelde de bir sıvı havuzundan ibaret. Havuzda belirli alanlar arasına gerilim uygulanınca kristaller hizalanıyor. aşırı voltaj ve sıvının eriştiği diğer elektrotlara da kapasitif etkisi olacak. O halde kapasite olan pinleri sarhoş (boş) bırakmak gerekir diye düşünüyorum.
Örnek bir çalışan LCD nin pinlerindeki sinyalleri incelemekte fayda var zannımca.