| Author |
Message
|
Freddie Chopin Poziom 25

Joined: 12 Dec 2005 Posts: 6723 Location: Zawiercie
|
#1
08 Jan 2008 15:34 [PIC24H][C+ASM] Kontroler do LCD mono 640x480 (S1D13705) |
|
|
|
idea jest skonstruowanie sterownika do matrycy LCD. matryca wymaga cialego odswiezania. dlatego na obecna chwile sklaniam sie do uzycia w projekcie ukladu sterownika z pamiecia SED1375 / S1D13705, ktory bedzie obslugiwany przez procesor PIC24HJ256GP210 (40MIPS, 100 pin).
Idea jest taka, zeby sterownik ten odbieral i przetwarzal komendy (znak, linia, kolko, kwadrat, bmp, itd.) od urzadzenia nadrzednego poprzez RS232 albo SPI (tryb transmisji wybierany przy uzyciu jumpera przed uruchomieniem ukladu). po ich przetworzeniu wrzucalby to do pamieci sterownika. uzycie samego procesora i pamieci SRAM jest niemozliwe, poniewaz symulacje pokazuja, ze dla tego LCD procesor mialby wolne przez cale 8 instrukcji miedzy kolejnymi przerwaniami wyrzucajacymi dane na LCD - o ile to by jeszcze dalo rade w miare, jesli chodzi o obliczenia, problemem bedzie konflikt zapisu i odczytu do RAMu, ktorego nie da sie tak prosto rozwiazac /; stad moja decyzja o tym sterowniku.
w skrocie wiec procesor robi za posrednika miedzy hostem, a ukladem sterownika. jest to potrzebne, poniewaz sterownik ten wymaga podlaczenia chyba ze 40 linii, co raczej zablokowaloby zwykly procesor (brak I/O). dodatkowo - magistrala RS232 lub SPI pozwoli na uzycie tego w dowolnym projekcie - zarowno mikroprocesorowym jak i bezposrednio z PC.
idea wydaje sie prosta dosyc - uklad po skonfigurowaniu go tona rejestrow zajmuje sie najgorszym, tzn wyrzucaniem danych na LCD, a procek pozwala dorzucac dowolne funkcje rysunkowe. mam juz w glowie zarys ciekawego protokolu komunikacji tych dwoch urzadzen ze soba.
moze na wstep tyle wystarczy. jesli ktos jest zainteresowany wspoluczestnictwem w tym projekcie, to zapraszam. czekam tez na komenty do tej sprawy, bo na pewno cos pominalem, co sprawia, ze projekt ten jest super skomplikowany i na pewno sie nie uda.
[powyzszy text przekleilem z drobnymi zmianami z innego forum, moze wiec brzmiec troche dziwnie [; ]
schemat tegoz potwornego urzadzenia, ponizej mozna obejrzec wstepny projekt glownej czesci plytki (nie zgadzaja sie designatory, brak czesci zasilajacej jak i linii zasilania i masy, traktujcie to pogladowo...)
na schemacie brakuje oczywiscie wyjscia na sam panel LCD, ale to detal - wyjscie jest za buforami HCT ktore sa skrajnie po prawej. nie zdecydowalem sie jeszcze jak to polaczyc z tym panelem. brakuje tez jumperka od wyboru transmisji, bo to rowniez detal chwilowo [;
fajnie by bylo, gdyby ktos poprzegladal co tam wymodzilem i znalazl ewentualne bledy, ktore sprawia, ze bedzie cos nie tak. chcialbym tego uniknac w miare mozliwosci, bo uklad sterownika kosztuje 60zl i troche ciezko go przylutowac, nie mowiac juz o tym, ze jeszcze ciezej jest go odlutowac. (nie wspominajac juz w ogole o tym, ze nie wiadomo, czy hurtownia mi sprowadzi ten uklad, mam nadzieje ze to zrobia [; ). sam schemat wydaje sie extremalnie prosty, gorzej z PCB, ktore jest extremalnie trudne (raster 0.25mm, sciezki 0.25mm [procesor i sterownik maja footprinty milimetrowe, a nie milsowe, dlatego tez cale PCB jest zaprojekowane milimetrowo]). projekt po zakonczeniu oczywiscie planuje udostepnic - schemat, plytke, kod, wrzuty do procka, dokumentacje protokolu.
ktos ma jakies dobre komentarze do tego projektu? z gory dzieki za wszelkie przydatne komentarze
0x41 0x56 0x45!!
|
|
| Back to top |
|
 |
Freddie Chopin Poziom 25

Joined: 12 Dec 2005 Posts: 6723 Location: Zawiercie
|
#2
10 Jan 2008 20:11 Re: Kontroler do matrycy LCD mono 640x480 (PIC24H + S1D13705 |
|
|
|
czyzby brak zainteresowanych / znajacych sie na temacie?
0x41 0x56 0x45!!
|
|
| Back to top |
|
 |
Pijopic Poziom 15

Joined: 29 Apr 2007 Posts: 208 Location: Toruń
|
#3
10 Jan 2008 21:24 Re: Kontroler do matrycy LCD mono 640x480 (PIC24H + S1D13705 |
|
|
|
Tez mam taki wyswietlacz i kiedys planuje go wykorzystac, ale troche brak czasu na zajecie sie nim :( Moja koncepcja jest troche inna, polega ona na adresowaniu przez mikrokontroler pamieci w ktorej bylo by wszystko co ma byc wyswietlane, pozwoli to wykorzystac znacznie slabszy mikrokontroler przy takich samych parametrach, ale to narazie tylko pomysl, a kiedy sie do tego dbiore to jest dopiero zagadka :D
|
|
| Back to top |
|
 |
Freddie Chopin Poziom 25

Joined: 12 Dec 2005 Posts: 6723 Location: Zawiercie
|
#4
10 Jan 2008 21:26 Re: Kontroler do matrycy LCD mono 640x480 (PIC24H + S1D13705 |
|
|
|
no tak, tez to zauwazylem [;
niemniej jednak moze ktos sie zna, przeciez bascomuszki siedza tutaj, bo ktos im pomaga, wiec ten ktos musi sie znac.
EDIT:
wszystko fajnie - mozna tak zrobic, problemy zaczynaja sie dopiero wtedy gdy chcesz do tej pamieci cos zapakowac, uprzednio cos odczytawszy. tutaj ten slabszy kontroler po prostu NIE WYROBI aby wpasowac sie w okienko podczas ktorego pamiec ma wolne, dlatego tak istotna jest szybkosc... pozatym takie rozwiazanie jest o wiele bardziej skmplikowane [; potrzebne sa wylaczane bufory, jakies zatrzaski, nie mowiac juz o skomplikowanym kodzie (oczywiscie nie musze mowic, ze wszelkie bascomy czy c nie wchodza w ogole w rachube). zastanow sie czy warto tak kombinowac [;
0x41 0x56 0x45!!
|
|
| Back to top |
|
 |
Pijopic Poziom 15

Joined: 29 Apr 2007 Posts: 208 Location: Toruń
|
#5
10 Jan 2008 22:31 Re: Kontroler do matrycy LCD mono 640x480 (PIC24H + S1D13705 |
|
|
|
Tylko ze ja nie chce nic zapisywac w pamieci, tylko i wylacznie korzystac z tego co w niej bedzie zapiosane na wstepje, a to juz bardzo prosta sprawa. Oczywiscie ogranicza to ogromnie mozliwosci ale jak upraszcza sprawe.
|
|
| Back to top |
|
 |
Freddie Chopin Poziom 25

Joined: 12 Dec 2005 Posts: 6723 Location: Zawiercie
|
#6
10 Jan 2008 22:32 Re: Kontroler do matrycy LCD mono 640x480 (PIC24H + S1D13705 |
|
|
|
no tak w istocie - to jest juz bardzo proste [;
0x41 0x56 0x45!!
|
|
| Back to top |
|
 |
Ch.M. Poziom 20

Joined: 05 Apr 2006 Posts: 983 Location: Białystok
|
#7
11 Jan 2008 10:13 Re: Kontroler do matrycy LCD mono 640x480 (PIC24H + S1D13705 |
|
|
|
Witaj
Na wstępie delikatne upomnienie, by nie wrzucać linków do allegro: mogłeś od razu do spec. technicznej.
Myślę, że jeśli jeszcze nie kupiłeś tej matrycy to tego nie rób. Sterowanie jej jest bardzo upierdliwe ze względu na fakt podziału na górną i dolną część, a także inne aspekty typu konieczność odświerzenia danych (obrazu). Z tego co widzę to jest to demontaż ze starych laptopów i jakość wyświetlanego obrazu pewnie będzie budzić spore zastrzezenia. Jeśli jesteś ambitny to zrób i oprogramuj sterownik do kolorowej matrycy np. na procku AVR32, bo podejrzewam ze najmocniejsza wersja (taz z wbudowanym cashem RAM) jest w stanie sobie z tym poradzić.
Pozdrawiam
|
|
| Back to top |
|
 |
Freddie Chopin Poziom 25

Joined: 12 Dec 2005 Posts: 6723 Location: Zawiercie
|
#8
29 Jan 2008 16:12 Re: Kontroler do matrycy LCD mono 640x480 (PIC24H + S1D13705 |
|
|
|
[11 Sty 2008 11:10]
matryce juz kupilem [; moj kolega ma taka i wyswietla na niej staly obraz - jest calkiem dobrej jakosci, wiec tym sie nie martwie. kolorki nie sa potrzebne, czarno bialy obraz do mojego zastosowania w zupelnosci wystarczy, kolorowy bylby juz przesada [; Upierdliwosc sterowania rozwiazana jest przez modul sterownika S1D13705 - on zajmuje sie wszystkim, wlacznie z podzialem na dwa ekrany.
________________
[15 Sty 2008 14:52]
oto zabaweczka [;
teraz tylko skonczyc te projekty glupie i mozna sie wreszcie zabrac za cos ciekawego...
_______________
oto link do schematu i wzoru plytek - jesli komus rzucaja sie w oczy jakies mocne bledy, to prosze o info - jutro chcialbym to wytrawic (czy tam sprobowac wytrawic <: )
http://www.speedyshare.com/884767226.html
z gory dzieki
0x41 0x56 0x45!!
|
|
| Back to top |
|
 |
asembler Poziom 22

Joined: 16 Sep 2007 Posts: 2131
|
#9
29 Jan 2008 22:03 Re: Kontroler do matrycy LCD mono 640x480 (PIC24H + S1D13705 |
|
|
|
Ja przymierzam się do sterowania takiego wyświetlacza za pomocą ATMEGI128 z zewnętrzną pamięcią. Na razie wyliczyłem ze spokojnie da sobie radę. Oczywiscie załozyłem ze matryca ma 8 bitową magistralę.
Jeszcze 25% czasu zostanie na inne pierdółki
|
|
| Back to top |
|
 |
Freddie Chopin Poziom 25

Joined: 12 Dec 2005 Posts: 6723 Location: Zawiercie
|
#10
29 Jan 2008 22:37 Re: Kontroler do matrycy LCD mono 640x480 (PIC24H + S1D13705 |
|
|
|
ja natomiast wyliczylem, ze 40mipsowy PIC24H nie da rady [; nie wiem wiec jak to policzyles <: . symulacja pokazala mi, ze pomiedzy przerwaniami od wyrzucania danych, procesor ma cale 7 wolnych taktow... czyli ogolnie to nic bardziej skomplikowanego nie jest w stanie zrobic raczej.
naprawde wiec nie wiem jak to wyliczyles dla ATMEGI, ktora pewnie ma z 16mipsow... [;
0x41 0x56 0x45!!
|
|
| Back to top |
|
 |
Google

|
#
29 Jan 2008 22:37 |
|
|
|
|
|
| Back to top |
|
 |
asembler Poziom 22

Joined: 16 Sep 2007 Posts: 2131
|
#11
29 Jan 2008 22:48 Re: Kontroler do matrycy LCD mono 640x480 (PIC24H + S1D13705 |
|
|
|
pętla głowna która potrafi załadowac dwa bajty na ekran składa sie z 11 taktów
Wyswietlanie jednej lini to 80 bajtów
mamy do wyswietlenia 240 linii bo równolegle wyswietlamu górna i dolna czesc ekranu
zakladajac 40 Hz na poczatek
liczmy 40z 240x80x11=9 000 000 taktów
w ciagu sekundy mozna miec 16 mips
Oczywiscie tam jeszcze przychodza dodatkow przyjecia przerwan ale to jest około 200x240x40 i to w wersji maksymalnej czyli jakie 5 mips
8+5=13 <16Mips 3/16= około 20% wolnego czasu
Zresztą zobacz
http://www.elektroda.pl/rtvforum/viewtopic.php?t=927255&highlight=
a sterowanei jest półbajtowe i na jeden bajt zuzywam 22 takty
a w tym 640x480 na dwa bajty 11 taktów
|
|
| Back to top |
|
 |
Freddie Chopin Poziom 25

Joined: 12 Dec 2005 Posts: 6723 Location: Zawiercie
|
#12
29 Jan 2008 23:06 Re: Kontroler do matrycy LCD mono 640x480 (PIC24H + S1D13705 |
|
|
|
w twoim liczeniu znajduje sie lekka pomylka jak dla mnie - wyswietlenie jednej linii na takim wyswietlaczu to 160 bajtow (bo w istocie wyswietlasz 2 linie).
w kazdym razie moja wersja obliczen:
wyswietlanie po 8b na raz (4 na dolna i 4 na gorna linie), po 160 na kazda z linii, po 240 linii. daje to conajmniej 38k przerwan na jedna klatke obrazu. biorac teraz twoje dane - daje to 17MIPSow.
tak w ogole to moje pierwsze obliczenia dla PICa pokazywaly, ze z pamiecia da rade, jednak zauwaz, ze (zakladajac 60Hz dla dobrego obrazu) dla procesora o 16MIPSach konieczne jest wywolanie przerwania co 6 instrukcji (2.3M przerwan na sekunde)... to jest po prostu niewykonalne <:
0x41 0x56 0x45!!
|
|
| Back to top |
|
 |
asembler Poziom 22

Joined: 16 Sep 2007 Posts: 2131
|
#13
29 Jan 2008 23:15 Re: Kontroler do matrycy LCD mono 640x480 (PIC24H + S1D13705 |
|
|
|
Nie wiem z jakim ty sie spotkałes wyswietlaczem ja mam kilka not wyswietlaczy 640x480 i kazy ma dwie oddzielne magistrale 8 bitowe na dolna i na górną połówkę. A przerwania przy 40hz następuja 10 000 na sekunde nich ci bedzie ze 60Hz to sie troszkę atmegę podkręci:-)przy 60Hz 14 400 na sekunde. Czyli nie tak jakos bardzo wyzyłowane.
Ten mój wyswietlacz ma duzy czas reakcji weic nawet przy 32HZ bie za bardzo miga.
Program w przerwaniu ma wysłąc 80 bajtów równolegle na dolna i górną połowke czyli 11x80 =880 taktów wiec nei ma pomyłki. teraz przelicz sobie ile trwa przerwanie a ile czas miedzuy przerwaniami. Wyjdzie ze mnóstwo czasu:-)
|
|
| Back to top |
|
 |
Freddie Chopin Poziom 25

Joined: 12 Dec 2005 Posts: 6723 Location: Zawiercie
|
#14
29 Jan 2008 23:21 Re: Kontroler do matrycy LCD mono 640x480 (PIC24H + S1D13705 |
|
|
|
ja za to nie wiem z jakimi ty sie spotkales, bo pierwsze slysze o takich, ktore by mialy 16 linii danych. moj wyswietlacz (i setki innych tego typu) ma 8 linii danych - 4 linie od gornej polowy i 4 linie od dolnej polowy
zaden z widzianych przezemnie sterownikow scalonych nie obsluzylby wyswietlacza o ktorym mowisz, bo np ten ktory ja mam ma maksymalnie 11 linii danych, co i tak nic nie znaczy, bo po prostu nie istnieja wyswietlacze tego typu (pasywne, podwojne), ktore mialyby 16 linii danych.
0x41 0x56 0x45!!.
|
|
| Back to top |
|
 |
asembler Poziom 22

Joined: 16 Sep 2007 Posts: 2131
|
#15
29 Jan 2008 23:28 Re: Kontroler do matrycy LCD mono 640x480 (PIC24H + S1D13705 |
|
|
|
Otóż istnieją. Nie wiem jak to zrobic bo plik troche długi ale go zamieszce
To jeden z nich 5.7 cala LM10V332
| Description: |
|
 Download |
| Filename: |
datasheetarchive.pdf |
| Contents: |
|
| Filesize: |
1.13 MB |
| Punkty: |
0 |
|
|
| Back to top |
|
 |
Freddie Chopin Poziom 25

Joined: 12 Dec 2005 Posts: 6723 Location: Zawiercie
|
#16
29 Jan 2008 23:53 Re: Kontroler do matrycy LCD mono 640x480 (PIC24H + S1D13705 |
|
|
|
w istocie - przyznaje racje [; niemniej jednak to niezbyt popularna sprawa.
0x41 0x56 0x45!!
|
|
| Back to top |
|
 |
asembler Poziom 22

Joined: 16 Sep 2007 Posts: 2131
|
#17
04 Feb 2008 19:37 Re: Kontroler do matrycy LCD mono 640x480 (PIC24H + S1D13705 |
|
|
|
| Freddie Chopin wrote: |
uzycie samego procesora i pamieci SRAM jest niemozliwe, poniewaz symulacje pokazuja, ze dla tego LCD procesor mialby wolne przez cale 8 instrukcji miedzy kolejnymi przerwaniami wyrzucajacymi dane na LCD - o ile to by jeszcze dalo rade w miare, jesli chodzi o obliczenia, problemem bedzie konflikt zapisu i odczytu do RAMu, ktorego nie da sie tak prosto rozwiazac /; stad moja decyzja o tym sterowniku.
|
Idea jest tak dopuki ktoś nie napisze lepszego programu niż ten na którym ty symulowałes to bedziesz miał racje. mówisz 8 taktów?
Juz w tej chwili obsługa dwóch lcd 400x160 z róznymi obrazami i pomiar z czujników DS18b20 dodatkowo obsługa klawiszy i głosniczka nie stanowi problemu i to przy kwarcu 11 Mhz. Mam nadzieję z optymalizowac na tyle program, że obsłuzy on kazdą matryce nawet 640x480.
Symulacja juz mi pokazała ze bedzie sie to dało zrobic stosując kwarz 8MHz Vsync 50Hz.
Mam zamiar pokusic zastąpić uklad SED w całości razem ze symulacją sterowania. Jakie to da możliwości to chyba sobie mozna samemu dopowiedzieć.
Pozdrawiam
|
|
| Back to top |
|
 |
Freddie Chopin Poziom 25

Joined: 12 Dec 2005 Posts: 6723 Location: Zawiercie
|
#18
04 Feb 2008 19:54 Re: Kontroler do matrycy LCD mono 640x480 (PIC24H + S1D13705 |
|
|
|
no to moze zamiast sie ciagle chwalic co to ty nie zrobiles to powiesz niby na czym to polega? bo LCD to ja moge nawet 10 obslugiwac, za to z matrycami juz jest problem. czyzbys odkryl ameryke i postanowil zrobic bezposrednie polaczenie miedzy pamiecia a matryca, a kontroler tylko steruje adresami? nic nowego - wymaga przeokropnie skomplikowanej plytki i kupy dodatkowych ukladow (buforow).
programu lepszego do symulacji nie napisze nikt, bo to MPLAB od microchipa. skoro zgodnie z prostymi obliczeniami przerwanie musialoby byc wywolywane co 17 cykli, a wejscie i wyjscie z przerwania troche trwa (tak jak i samo przerwanie), to nawet nie trzeba symulowac, zeby sobie na palcach obliczyc ile wolnego zostanie. no i procentowo to piekna sprawa ogolnie - w koncu az 50% wolnego czasu w zasadzie, tylko co z tego, skoro jest nieziemsko poszatkowany.
0x41 0x56 0x45!!
|
|
| Back to top |
|
 |
asembler Poziom 22

Joined: 16 Sep 2007 Posts: 2131
|
#19
04 Feb 2008 20:08 Re: Kontroler do matrycy LCD mono 640x480 (PIC24H + S1D13705 |
|
|
|
Dlaczego co 17 cykli?
U mnie przerwanie jest zgłaszane 8000 / sek w przerwaniu obsługiwana jest cała jedna linia. Przy taki przerwaniu mam 1750 taktów na obsługę.
Spróbuj teraz zasymulowac
|
|
| Back to top |
|
 |
Freddie Chopin Poziom 25

Joined: 12 Dec 2005 Posts: 6723 Location: Zawiercie
|
#20
04 Feb 2008 20:27 Re: Kontroler do matrycy LCD mono 640x480 (PIC24H + S1D13705 |
|
|
|
no mozna i tak, zgodze sie.
tylko juz nie przesadzajmy z cudownoscia tego rozwiazania, bo jednak po pierwsze pamiec tez za darmo nie jest, a po drugie wciaz jest to BARDZO DUZY problem, zeby rozwiazac sprawe arbitrazu zapisu i odczytu do pamieci. uklady S1D zalatwiaja ten problem [; w twoim rozwiazaniu przez pewien dlugi czas (1750 taktow) nie ma mozliwosci zapisu niczego do pamieci, a tym czasie uklad nadrzedny musi czekac...
moze tez sie kiedys pokusze o zrobienie tego w ten sposob, na razie zostane przy S1D, bo nie mam czasu zbytnio na proby. projekt musi byc gotowy najszybciej jak to tylko mozliwe.
0x41 0x56 0x45!!
|
|
| Back to top |
|
 |
Google

|
#
04 Feb 2008 20:27 |
|
|
|
|
|
| Back to top |
|
 |
asembler Poziom 22

Joined: 16 Sep 2007 Posts: 2131
|
#21
04 Feb 2008 20:41 Re: Kontroler do matrycy LCD mono 640x480 (PIC24H + S1D13705 |
|
|
|
Do tego twojego układu tez musisz pamiec dać no i dodtkowo procesor.
Pamiec 128KB kosztuje 4.20zł
A co do tego konfliktu to nie ma zadnego problemu.
Po pierwsze wchodząc w przerwanie natychmiast w odblokowywuje pozostałę przerwania, wiec układ komunikacji działa sobie niezależnie jak ten inne układy w tym głośnik (byłoby słychac w głośniku ze wyświetlana jest informacja na ekranie.
Po drugie układ komunikacji nie musi zapisywać akurat do tego samego obszaru w pamieci.
W rzeczywistosci to wygląda tak ze trzeba dbac tylko o to zeby podczas obsługi przerwania danej linii nie nastąpił zapis z zewnątrz do tej linii co mozna załątwic w prosty sposób tworzac dodatkowy bufor o długosci jednej linii czyli ok 80 bajtów max.
|
|
| Back to top |
|
 |
Freddie Chopin Poziom 25

Joined: 12 Dec 2005 Posts: 6723 Location: Zawiercie
|
#22
04 Feb 2008 22:33 Re: Kontroler do matrycy LCD mono 640x480 (PIC24H + S1D13705 |
|
|
|
S1D13705 ma wbudowane 80k pamieci [;
0x41 0x56 0x45!!
|
|
| Back to top |
|
 |
Google

|
#
04 Feb 2008 22:33 |
|
|
|
|
|
| Back to top |
|
 |
asembler Poziom 22

Joined: 16 Sep 2007 Posts: 2131
|
#23
04 Feb 2008 22:38 Re: Kontroler do matrycy LCD mono 640x480 (PIC24H + S1D13705 |
|
|
|
No to jesteśmy 4.20 do przodu
Tylko z niej nie skorzystasz:) korzysta zniej tylik S1 a tu masz 128kB z którymi możesz zrobic co zechcesz.
Zresztą nie o to chodzi co jest lepsze, a co tansze. To co ja proponuje jest o wiel tańsze pewnie ze 3 razy. Miałem ten układ w ręku raczej tego nie dałbym radę zlutować chyba ze pod mikroskopem:)
|
|
| Back to top |
|
 |
Freddie Chopin Poziom 25

Joined: 12 Dec 2005 Posts: 6723 Location: Zawiercie
|
#24
17 Feb 2008 18:26 Re: Kontroler do matrycy LCD mono 640x480 (PIC24H + S1D13705 |
|
|
|
(dawno temu)
e tam, nie przesadzaj - dzis odlutowalem ARMa7 i potem przylutowalem jeszcze raz, a to dokladnie ten sam raster - 0.25mm (TQFP64). pamieci do niczego innego w zasadzie nie potrzebuje w moim zastosowaniu... pozatym - mozesz skorzystac z pamieci - S1D zachowuje sie jak pamiec - mozesz zapisac i odczytac co chcesz i gdzie chcesz. do wyswietlania obrazu mono wystarczy 39kB, wiec pozostale 41 jest dla ciebie.
jutro robie plytke - juz opracowalem metode, ktora mozna uzyskac sciezki o szerokosci 0.25mm, wiec mam nadzieje, ze moze juz jutro uda sie uruchomic sama elektronike, bo jeszcze nie mam przejsciowki do samej matrycy <:
twoje rozwiazanie jest tansze, ale o wiele bardziej skomplikowane. a jak juz powiedzialem - mnie tu zalezy bardzo na czasie, bo taki wyswietlacz jest tylko czescia mojej magisterki, a nie jej zasadnicza trescia. dlatego mam nadzieje zrobic go szybko i bezbolesnie.
niemniej jednak moze kiedys chetnie bym zrobil i projekt wg twojego pomyslu [; (tyle ze na 16b PICu [; )
__________________________________________________
EDIT (06.02.2008):
plytka zrobiona! procki przylutowane - jeszcze tylko kilkanascie przelotek i ze 3 kondensatory do przylutowania zostaly. co wiecej - procesor glowny DZIALA [; i juz udalo mi sie do migania dioda uzyc 40mipsow (LOL [; ).
| Code: |
Connecting to MPLAB ICD 2
...Connected
Setting Vdd source to target
Target Device PIC24HJ256GP210 found, revision = Rev 0x3002
...Reading ICD Product ID
Running ICD Self Test
...Passed
MPLAB ICD 2 Ready
|
tutaj pare hi-res fotek:
http://freddie-chopin.fotosik.pl/albumy/365035.html
EDIT:
uklad S1D na 99% rowniez dziala [;
___________________________________
(edit: 17.02.2008)
w koncu udalo sie odpalic ta matryce <: po ciezkich przebojach z roznymi rzeczami (sprzetowymi i programowymi) matryca odpowiedziala <: (az dziw, ze do tej pory nie poszla z dymem)
teraz musze troche powalczyc z faktem dziwacznie pracujacej przetwornicy (odpowiadajacej za kontrast), ktora - nie wiedziec czemu - po prostu czasem sie wylacza i do tej pory nie wiem co z nia poczac... czasem pomaga jej wylaczenie zasilania, czasem trzeba wszystko porozlaczac, czasem wystarczy reset procka, czasem nic nie pomaga i trzeba poczekac az jej przejdzie... ktos ma pomysl na co zwrocic uwage? mozliwe, ze sie spsula podczas calego procesu (podlaczylem raz odwrotnie wszystkie sygnaly <: ) jednakze dziwi mnie to, ze jednak przez wiekszosc czasu dziala, tylko czasem ... sie wylacza i tyle.
nie wiem tez, czy to przez ta wlasnie przetwornice, z ktora cos jest nie tak jest taki slaby kontrast, czy moze jakis inny powod powinienem znalezc. moze to juz sprawa samej matrycy, nobody knows.
anyway - tutaj kilka mniejszych fotek jak to wyglada w kupie i upragniony obraz <: czyli jedna pozioma kreska - troche slabo widac, tra wytezyc oczy (tak w okolo 3/4 wysokosci) [; przyczynia sie do tego fakt, ze trudno w sumie sfotografowac matryce, a do tego jeszcze ten kontrast jest naprawde kiepski...
http://freddie-chopin.fotosik.pl/albumy/373646.html
edit: jeszcze jedna - lepsza fotka
0x41 0x56 0x45!!
|
|
| Back to top |
|
 |
DoctorC Poziom 3

Joined: 12 May 2007 Posts: 6 Location: Warszawa
|
#25
21 Feb 2008 15:54 Re: Kontroler do matrycy LCD mono 640x480 (PIC24H + S1D13705 |
|
|
|
Płytka super wygląda.
Zdradzisz technikę wykonania takich ścieżek?
A gdzie można kupić S1D13705?
Pozdrawiam,
Enrico
|
|
| Back to top |
|
 |
Freddie Chopin Poziom 25

Joined: 12 Dec 2005 Posts: 6723 Location: Zawiercie
|
#26
21 Feb 2008 18:41 Re: Kontroler do matrycy LCD mono 640x480 (PIC24H + S1D13705 |
|
|
|
plytka robiona zelazkiem - termotransfer. sekretem jest papier kredowy i drukarka z dobrym pokryciem. trawione w b327.
uklad kupilem we wroclawskiej hurtowni proton.
a tutaj takie cos:
linie oczywiscie generowane przez algorytm na podstawie wsporzednych poczatku i konca. kilkanascie linijek w assemblerze, ale ile siedznia bylo nad tym [;
0x41 0x56 0x45!!
|
|
| Back to top |
|
 |
Samuraj Poziom 22

Joined: 08 Oct 2002 Posts: 1923 Location: Szczecin
|
#27
22 Feb 2008 23:16 Re: Kontroler do matrycy LCD mono 640x480 (PIC24H + S1D13705 |
|
|
|
Mógłbyś coś więcej napisać o rejestrach tego kontrolera. Napisałeś że z zewnątrz można go traktować jako zwykła pamięć RAM i tak też ją adresować. Niestety link do schematu jest nie aktualny tak więc więcej się domyślam z Twoich wypowiedzi niż z tego co przedstawiłeś.
Sam mam w głowie pewien projekt z matrycą LCD lecz bez kontrolera nie mogę ruszyć dalej. Swojego czasu widziałem płytki prototypowe z typowym wyjściem. Było by to dobre rozwiązanie dla zainteresowanych tym układem. Odpada nam konieczność projektowania płytki z takim małym resterem. Wystarczy przylutować kontroler do płytki a dalej już można eksperymentować (i tak też chcę uczynić).
|
|
| Back to top |
|
 |
Freddie Chopin Poziom 25

Joined: 12 Dec 2005 Posts: 6723 Location: Zawiercie
|
#28
23 Feb 2008 01:23 Re: Kontroler do matrycy LCD mono 640x480 (PIC24H + S1D13705 |
|
|
|
uklad ten ze strony procesora dziala jak najzwyklejsza pamiec SRAM. posiada on 17 linii adresowych, 16 linii danych, 2 linie Read Enable, 2 linie Write Enable oraz garsc linii sterujacych (chip select, reset, itp.).
Ze strony procesora widziany jest on wiec jak najzwyklejsza pamiec. mozna zaadresowac 128kB tej pamieci, z tym, ze obszar od 80kB do ~128kB nie istnieje i jak sie tam cos zapisuje, to dzieja sie dziwne rzeczy [; w kazdym razie dolne 80kB pamieci to wlasnie obszar, ktory jest 'odtwarzany' na matrycy, natomiast ostatnie 32b przestrzeni adresowej (~128kB do 128kB) to sa rejestry kontrolne, w ktorych ustawia sie parametry matrycy i sterownika.
moje minimalistyczne podejscie do sprawy pozwolilo wykorzystac do komunikacji CPU <=> kontroler 'tylko' 37 linii [; uklad adresuje 16-to bitowo, czyli najnizszy bit adresu jest zawsze rowny 0, rowniez pary Read Enable i pary Write Enable sa ze soba polaczone - pozwala to na prace calkowicie 16-to bitowa. poniewaz procek jest 16-to bitowy, to tak bylo tez wygodniej [; . dodatkowo linia Chip Select jest na stale dopieta do masy.
jesli chcesz, to moge wrzucic raz jeszcze schemat.
dzis nie mam zadnej nowej fotki, bo walcze z optymalizacja algorytmow rysowania linii wszelakich i z bledami ktore w nich goscily... niemniej jednak uwazam, ze sprawa linii moze zostac zamknieta - wszystko jest juz super optymalne i tym samym totalnie nieczytelne <:
mala probka assemblerowej extremy w moim wykonaniu (wciaz sie ucze, wiec prosze o ewentualna wyrozumialosc)
| Code: |
;———————————————————————————————————————————————————————————————————————————————;
; f_gfx_line_sloped ;
; ;
; this functions puts a sloped line from (X1_REG,Y1_REG) to (X2_REG,Y2_REG). ;
; valid positions are: x: (0,639), y: (0,479). the line mustn't be vertical! ;
;_______________________________________________________________________________;
.global f_gfx_line_sloped
.text
f_gfx_line_sloped:
push.d X2_REG ; store the ending cooridinates on the stack
lnk #8 ; allocate a memory frame for local variables
cpsgt X1_REG,X2_REG ; if x1>x2 - exchange the coordinates pairs
bra 1f
exch X1_REG,X2_REG
exch Y1_REG,Y2_REG
1: sub X2_REG,X1_REG,GFX_REG0 ; the horizontal distance
mov #40,GFX_REG1
mov GFX_REG1,[w14] ; positive increment
sub Y2_REG,Y1_REG,GFX_REG1 ; the vertical distance
bra NN,2f ; if y2<y1 ...
sub Y1_REG,Y2_REG,GFX_REG1 ; ... calculate the vertical distance again
neg [w14],[w14] ; negative increment
2: push [w14] ; store that for a while
clr [w14++] ; accumulator
mov GFX_REG0,[w14++] ; half of integer
sl GFX_REG0,[w14++] ; integer
mov GFX_REG1,Y2_REG ; keep the vertical distance for tests
sl GFX_REG1,[w14--] ; fractional part
sub #4,w14
rcall f_gfx_address ; calculate the address of the first pixel
rcall f_gfx_px_pos ; calculate the first pixel's position
pop GFX_REG1 ; restore the positive/negative increment
3: mov [w14+6],GFX_REG0 ; get the fractional part
add GFX_REG0,[w14],[w14] ; and add it to accumulator
4: rcall f_s1d_or ; print a pixel
cp0 Y2_REG ; if all line changes were made - skip the...
bra Z,5f ; next block
mov [w14++],GFX_REG0 ; get accumulator
cp GFX_REG0,[w14--] ; accumulator > (0.5*)integer ?
bra LTU,5f ; if not - just skip the line change block
sub GFX_REG0,[++w14],[--w14] ; decrease the acc. by (0.5*)integer
mov [w14+4],GFX_REG0 ; get the integer
mov GFX_REG0,[w14+2] ; replace half of integer with integer
dec Y2_REG,Y2_REG ; decrement the number of line changes left
add S1D_ADR_REG,GFX_REG1,S1D_ADR_REG ; change the line
bra N,5f ; (safety)
mov [w14++],GFX_REG0 ; get accumulator
cp GFX_REG0,[w14--] ; is the accumulator still bigger than int.?
bra GEU,4b ; print a pixel just above/below
5: inc X1_REG,X1_REG ; increase x
swap S1D_DATA_REG
rrc S1D_DATA_REG,S1D_DATA_REG ; increase the pixel
bra NC,6f ; next word?
rrc S1D_DATA_REG,S1D_DATA_REG ; yes -> insert the pixel to next word
inc S1D_ADR_REG,S1D_ADR_REG ; and increase the address
6: swap S1D_DATA_REG
cp X1_REG,X2_REG ; is the line over?
bra LEU,3b ; if not - continue with the loop
ulnk ; release the allocated memory frame
pop.d X2_REG ; restore end coordinates
return ; return to parent |
0x41 0x56 0x45!!
|
|
| Back to top |
|
 |
Samuraj Poziom 22

Joined: 08 Oct 2002 Posts: 1923 Location: Szczecin
|
#29
23 Feb 2008 11:37 Re: Kontroler do matrycy LCD mono 640x480 (PIC24H + S1D13705 |
|
|
|
Schemat rzeczywiście by się przydał, choć po to aby podejrzeć jak podpiąć się do procesora.
Piszesz że kontroler matrycy jest 16bitowy, potwierdza to szyna danych. W związku z tym mam pytanie jak wygląda mapa pamięci przy 16bitowej szynie.
Czy każdy kolejny bit danej odpowiada za kolejny pixel :?: w przypadku matrycy mono.
Jeśli zastosuje małą matryce kolorową (320x240) to dane do matrycy muszą być wysyłane w formacie RGB RGB RGB itp. Czy w takim przypadku pierwsza komórka pamięci (16bitów) będzie odpowiadać za pierwsze 5 pixeli,i R 6 pixelu :?:
Czy ten kontroler ma możliwość pracowania z zewnętrzną pamięci danych, lub czy znasz podobny który mógłby pracować z matrycą 640x480 color :?:
Wiele pytań ale chyba łatwiej zadawać je komuś kto przetarł już szlaki niż samemu siedzieć godzinami i kombinować.
|
|
| Back to top |
|
 |
Freddie Chopin Poziom 25

Joined: 12 Dec 2005 Posts: 6723 Location: Zawiercie
|
#30
23 Feb 2008 12:30 Re: Kontroler do matrycy LCD mono 640x480 (PIC24H + S1D13705 |
|
|
|
ok - oto schemat : http://www.speedyshare.com/667632294.html
kontroler matrycy jest ... uniwersalny - przy wykorzystaniu wszystkich 17tu linii adresowych (adresacja 17to bitowa) i 8 linii danych jest mozliwa obsluga stricte 8mio bitowa. ja wybralem opcje 16to bitowa, bo moj procek jest 16to bitowy, wiec tak bylo szybciej i wygodniej. mapa pamieci jest konfigurowalna poprzez te 32 rejestry z konca - zasadniczo jednak konfigurujesz sobie po prostu obszar, w ktorym znajduje sie twoj obraz, poprzez takie parametry jak wybor adresu poczatku, wybor offsetu (pozwala wygenerowac 'szerszy' obraz virtualny i przesuwac go na boki), wybor ekranu (bo obslugiwane sa 2 obszary pamieci, mozna je tez ze soba mieszac). jesli jednak wszystko zrobi sie domyslnie, to w istocie od poczatku pamieci mamy poczatek obrazu na matrycy.. co do koloru - niestety wiele ci nie powiem, odsylam do datasheeta ukladu ( http://vdc.epson.com/index.php?option=com_docman&task=doc_download&gid=1428&Itemid=99 ), ktory mozna znalezc na stronie producenta ( http://www.epson.jp/device/semicon_e/product/lcd_controllers/index.htm ) - nie wiem wiele o tym, bo sam patrzalem tylko na tryby czarnobiale. zasadniczo jednak w datasheecie rozrysowane sa tez przebiegi dla kolorowych paneli i chyba jest wlasnie tak jak mowisz [;
co do pamieci zewnetrznej - ta seria S1D137xx - pracuje tylko z wewnetrzna pamiecia. dostepne sa modele z pojemnoscia do 1MB. seria S1D135xx obsluguje natomiast pamieci zewnetrzne o pojemnosciach do 64mb. lista ukladow jakie tam maja do znalezienia na stronce producenta ( http://www.epson.jp/device/semicon_e/product/lcd_controllers/index.htm ). problemem jest tylko dostepnosc tego w polsce. troche tego maja dostepnego we wroclawskim protonie (na zamowienie, ale sprowadzaja faktycznie, moj sprowadzili w jakies 2 tygodnie), troche jest w TME (na zamowienie), chyba wlasnie ten jeden jest tez na liscie w maritexie (nie wiem jaki jest stan magazynowy)
czekam na dalsze pytanka jakby co, ale nie bralbym siebie za specjaliste od tych ukladow, bo sam wiem o nich niewiele. moge powiedziec o tym swoim tylko tyle, ze jest calkiem przyjemny i prosty! na stronie producenta jest do zassania programik, w ktorym wybieramy sobie to co chcemy miec, a on nam powie jakie bedzie odswiezanie i jak skonfigurowac wszystkie rejestry. potem tylko wrzucic rejestry do jakiejs tablicy, 5 linijek w assemblerze i cala taka tablice wyrzucamy do kontrolera - konfiguracja gotowa [;
nawet jednak bez takich zabaw uruchomienie go nie jest szczegolnie trudne. jednak w necie jest o nim bardzo bardzo malo, wiec zawsze jest ryzyko, ze jak cos bedzie nie tak, to ciezko znalezc pomoc. dodam jeszcze, ze zadawalem pytania dzialowi technicznemu EPSONa przez ich stronke i otrzymywalem bardzo szybko odpowiedzi, jednak z typowa przypadloscia, tzn jak zadalem wiecej niz 2 pytania na raz, to otrzymywalem odpowiedz tylko na ostatnie [;
0x41 0x56 0x45!!
|
|
| Back to top |
|
 |