Çin malı telefon ekranları

Başlatan serdararikan, 05 Mart 2010, 22:39:33

papylon

Atmel'i ön plana çıkaran en büyük özelliği, hızı.

Şölyle ki, PIC ¼ Fosc oranında çalışırken ATmel 1/1 Fosc ile çalışıyor.

Yani PIC 4MHz kristal ile 1MIPS işlem yapabilirken ATmel aynı kristal frekansı ile 4MIPS işlem yapabiliyor. Yani yaklaşık 4 kat daha hızlı.

fatihinanc

#121
Alıntı yapılan: aykut54 - 20 Eylül 2010, 17:48:16
hocam bu arada benim sorduğum sorunun cevabını biliyormusunuz?

Hocam benim bildiğime göre Atmega8 e 16 Mhz kristal takınca 16 MIPS de çalışıyor.
PIC 16 = 5 MIPS , PIC 18 = 10MIPS....
Kainat dediğimiz kitap, yazıldığı dil ve harfler öğrenilmedikçe anlaşılamaz.  (Galileo Galilei)

serdararikan

sorun sadece hız değil.atmel indexli bir adresleme kullanıyor.picte ise banklı bir sistem var.
cep telefonlarında java işletim sistemi var birde symbian,berryos,windows mobile falan var bilirsiniz.
pic ile avr arasındaki farkta buna benziyor.atmega ya linux yükleyebilirsiniz.ama pic e asla

Elektroemre

#123
@papylon,

Ekrana dokunulmasada bazı değerler okuyordum. X ve Y eksenlerinde köşelere dokunduğunda zaten 0....1023 arası değerler okumuyorsun. Benim devremde 160...1023 arası okunuyordum. Ayrıca touch okuma rutininde ilk önce dokunulup dokunulmadığına bakıyılıp sonra x,y eksen bilgisi alın, eğer ekrana dokunulmamışsa fonksiyonu başarısız diyerek geri gönderin. Doğruluğu artırmak için 8 adet örnek alıp yukarıdan aşağı sıralıyorum ve ortadaki 4 adet değerin ortalamasını alıyorum. Ayrıca olayı volt cinsinden değerlendirmeye hiç gerek yok. Zaten ADC referans voltajını VCC olarak verince ve touch panelinde bir ucuna GND diğer ucuna VCC uygulandığında sistem gerilim bölücü dirençler mantığında çalıştığından VCC=3v olsada 3,3v olsada ekranda bir noktaya dokunulduğunda aşağı yukarı ADC modülünde aynı sayıyı okursunuz (mesela ekranın tam ortasına dokunulduğunda x değeri her iki durumda da ~533).

3,3voltta aslında güvenli çalışma sınırı ~13 Mhz civarı ama 24 MHz'de bile denemişliğim var :)

@aykut54,

Atmel ATmega serileri sadece TFT sürme vb işlemlerde PIC16F ve 18F serilerinde'den üstün değil, her alanda üstün. Bunu sağlayansa mimarisi tabiki. En basitinden 16F serileri 20MHz'de 5 MIPS işlem gücüne sahipken ATmegalar 16MHZ'de ~16MIPS gücüne sahip. Ayrıca ATmega'lar PIC'deki w registerine denk gelen 32 adet r registeri vardırki bunlar bir çok işte inanılmaz öne geçirirler performans olarak.
Komut seti çok daha gelişmiştir. 8bit MCU olmasına rağmen bir çok iş 16bit olarakta yürür arka planda.


Bu arada 6-7 ay önce ATmega64'ü 14 TL'ye almıştım yazıcıoğlundan. Talep olmaya başladıkça sanki malzeme satıcıları fiyatları şişirmeye başladı?

İyi çalışmalar...

Edit: mesajı yazarken diğer arkadaşlar benzer cevabı vermişler:)

fatihinanc

@serdararikan
hocam tam da aklıma bunu söylemek gelmişti. siz tercüman olmuşsunuz :)

Bir de şey var hocam. Atmega8de direk ALU biriminin içinde çarpma işlemlerini yapan bir birim var.
Aritmetik çarpma işlemlerini donanım yaptığı için normal toplama işleminden daha hızlı oluyor.
Kainat dediğimiz kitap, yazıldığı dil ve harfler öğrenilmedikçe anlaşılamaz.  (Galileo Galilei)

papylon

Evvel ki gün basitçe bir deneme yaptım hiç fena değil.

Fakat yine yardımlarınıza ihtiyacım var.


  • Birincisi, şu kalibrasyon işinin nasıl yapılacağını tam olarak anlayamadım.


  • İkincisi, ekrana bir şeyler yazıp çizmek için kalemle her ilk dokunduğum anda,  ekranın dokunduğum yerle hiç alakası olmayan bölgelerinde parazit pikseller oluşuyor.
    Daha sonra kalemi ekran üzerinden kaldırmadan çizmeye devam ettiğinizde herhangi bir problem yok.
    Kendimce basit bir şekilde sorunu epeyce hallettim fakat yine de var. Aşağıdaki fotoğrafta pek belli olmasa da 8-10 adet kadar var.


  • Üçüncüsü, ADC'den gelen ham değerlere göre ekranı nasıl haritalandıracağım? Ben çok kabaca basit bir şekilde yapıp ekrana şekilleri çiziyorum ama tam olması gereken piksel değerleri değil.

Bu konuda yardımcı olursanız çok sevinirim.

Ayrıca ilgilenen arkadaşlar için LCD ekran kütüphanesi, bir iki adet font ve Touch screen için yaptığım deneme programı. TFT8K1231 Deneme


Yaptığım denemeye ait bir görüntü. Fotoğraf makinem olmadığı için cep telefonu ile çektim onun için pekiyi çıkmadı.



serdararikan

@papylon

güzel çalışma olmuş.işlemcin nedir?

Elektroemre

#127
Selamlar,

@papylon,
Güzel bir çalışma olmuş ellerinize sağlık. Kodunuza göz attım, mantık olarak çok güzel. Ancak daha iyi sonuçlar elde etmek için ayrı touch fonksiyonu tanımlayın, daha sonra;

>     X ve Y değerlerini okumaya başlamadan önce ekrana dokunulup dokunulmadığını kontrol edin. Rastgele noktacıklar büyük ihtimalle bu yüzden. Bu işlem için X- ve X+ ya aynı anda VCC yani 1 seviyesine alın. Y- veya Y+ kanallarından VCC'ye yakın bir değer okuyorsanız ekrana dokunulmuştur ve asıl okuna kısmına geçebilirsiniz, yok değilse fonksiyon başarısızdır ve geri gönderin.

> Esas değerleri okuma rutininde doğruluğu artırmak için X ve Y için 8'er adet örnek alıyorum. Daha sonra bu örnekleri en küçükten en büyüğe sıralayarak ortadaki 4 değeri topluyorum. (kısacası basit bir filtre)

>Daha sonra köşelere dokunarak X ve Y'in kalibrasyonu için KXmax,KXmin,KYmax,KYmin  değerlerini biryere not alıyoruz.

>X için 320 pixelimiz oluğu için 0...319 arası pixel bilgisine ihtiyacımız var. Elimizde ise Ksample 0...4092 (dört adet örneğin toplamı maximum bu kadar) ve kalibrasyon için Kmin, Kmax değerleri (mesela benim devremde KXmin=640 , KXmax =4092 idi) var.

> Tam pixel bilgisi için:
X=((KXsample-KXmin)*320) / (KXmax - KXmin)
(bu kısımda bazı değişkenler long cinsinde tanımlanmalı)

Kısaca min değeri offset olarak düşünüp çıkarıyoruz ve geriye kalan değeri ayırmak istediğimiz parçacık kadar dilimliyoruz.

Kolay gelsin...




serdararikan

@Elektroemre

SD kart ile ilgili birkaç gündür araştırma yapıyorum.şuan için kafamda uygulamaya yönük fikirler oluşmadı.sen nasıl bir kütüphane kullandın?microchip in uygulama notlarında bir kütüphane kullanılmış.sende onumu kullandın?

Elektroemre

Alıntı yapılan: serdararikan - 24 Eylül 2010, 22:52:31
@Elektroemre

SD kart ile ilgili birkaç gündür araştırma yapıyorum.şuan için kafamda uygulamaya yönük fikirler oluşmadı.sen nasıl bir kütüphane kullandın?microchip in uygulama notlarında bir kütüphane kullanılmış.sende onumu kullandın?

Küçük sistemlerde Japon üstad Chan'in kütüphanesinin üstüne tanımam.
FatFs ve Petit Fatfs adında 2 kütüphanesi var. İkisinide kullandım.
Yer problaminiz yoksa FatFs kullanın daha hızlı ve çok özellikli.

FatFs        :http://elm-chan.org/fsw/ff/00index_e.html
Petit FatFs:http://elm-chan.org/fsw/ff/00index_p.html

Ayrıca sitede AVR'ler ve bir çok konu üzerine çok güzel çalışmalar var inceleminizi tavsiye ederim.

İyi çalışmalar....

serdararikan

şuan avr kullanmıyorum ama ilgin için teşekkür ederim.inceleyeceğim.

papylon

@serdararikan,
Teşekkür ederim, İşlemci olarak ATmega32 kullandım ve sınırlarını biraz zorlayıp, 3v3'de 20MHz ile sürüyorum.

@elektroemre,
Teşekkür ederim.

Yazdıklarınız doğrultusunda programda tekrar gerekli düzenlemeleri yapıp deneyeceğim.

Yanlış hatırlamıyorsam konuyu @serdararikan başlatmıştı, ardından @Ahmet2004, ben yaptım işte bunlarda resimleri deyince konuyu iyice coşturdu, sizde TouchScreen ile ilgilenince konu daha güzel bir hal almaya başladı.

Bir gelişme oldukça yine paylaşırım. Hem de konuya ilgi duyup da yapmaktan çekinen arkadaşlara örnek teşkil etmiş olur.

Bu arada parazitlerin oluşmaması için 8 örnek almam gerektiğinden bahsetmişsiniz, fakat ben 16 örnek alıp ortada kalan 8 örneği toplayıp kullandığım halde müthiş derecede çok parazit piksel oluşuyor. Ve programda dikkat ettiyseniz, buna ek olarak eğer kalemin ekrana her ilk dokunuşunda 20ms'lik gecikme sağlayan basit bir filtre daha yaptım. Bunun çok büyük etkisi oldu ama yinede tamamen çözüm olmadı.

serdararikan

Alıntı yapılan: papylon - 24 Eylül 2010, 23:12:01
@serdararikan,
Teşekkür ederim, İşlemci olarak ATmega32 kullandım ve sınırlarını biraz zorlayıp, 3v3'de 20MHz ile sürüyorum.

@elektroemre,
Teşekkür ederim.

Yazdıklarınız doğrultusunda programda tekrar gerekli düzenlemeleri yapıp deneyeceğim.

Yanlış hatırlamıyorsam konuyu @serdararikan başlatmıştı, ardından @Ahmet2004, ben yaptım işte bunlarda resimleri deyince konuyu iyice coşturdu, sizde TouchScreen ile ilgilenince konu daha güzel bir hal almaya başladı.

Bir gelişme oldukça yine paylaşırım. Hem de konuya ilgi duyup da yapmaktan çekinen arkadaşlara örnek teşkil etmiş olur.

Bu arada parazitlerin oluşmaması için 8 örnek almam gerektiğinden bahsetmişsiniz, fakat ben 16 örnek alıp ortada kalan 8 örneği toplayıp kullandığım halde müthiş derecede çok parazit piksel oluşuyor. Ve programda dikkat ettiyseniz, buna ek olarak eğer kalemin ekrana her ilk dokunuşunda 20ms'lik gecikme sağlayan basit bir filtre daha yaptım. Bunun çok büyük etkisi oldu ama yinede tamamen çözüm olmadı.

ADS7846 nın datasheetinde  X-,X+,Y-,Y+ uçları ile şase arasına 10nF lık kondansatör bağlamış bir şema vardı.bende de aynı sorun var bazen atlama oluyor.bu şekilde kondansatör bağlayarak deneyip sonucu bizimle paylaşırmısın?

Elektroemre

#133
Benim devremdede arasıra oluyor öyle rastgele atlamalar ama çok nadir.

@papylon,
Güç kaynağı olarak ne kullanıyorsun? Çok parazit varsa düşük bi ihtimalde olsa besleme voltajındaki parazitlerden kaynaklabilir.
Seçtiğiniz ADC referans kaynağına göre AREF bacağına uygun kapasite bağlamanız gerekebilir.
Ek olarak kullandığımız ekranın alt tarafı komple metal kaplı, o kısmı şaseleyip deneyin.

@serdararikan,
Hocam konuyu başlattığınız için ayrıca teşekkür ederim. Hep TFT'lerle çalışmak istemişimdir.
Açtığınız konu vesilesiyle bu günlere kısmetmiş :)

İyi çalışmalar...

papylon

@serdararikan, söylediğinizi şu anda hemen denedim fakat sonuç maalesef olumsuz.

Ve daha da berbat oldu, ben ekrana bir çizgi çiziyorum zebranın üzerindeki çizgiler gibi 2şer 3er 5er tane yan yana çizgiler oluşuyor ve daha büyük sıçramalar oluyor.

Bende farklı bir uygulamada X+ Y- ve Y+ X- arasına kapasitör atıldığını görüp denemiştim fakat sonuç yine aynı şekilde hüsran olmuştu.