atmega i lcd + pamiec

Jul 19, 2013 70 Replies

W dniu 2013-07-22 15:10, Grzegorz Niemirowski pisze:

Wlasnie jeszcz eraz sprawdzam...moze nie powinienem brac portow C tylko D jako dane..??

wchpikus snipped-for-privacy@wytnijto.wp.pl> napisa³(a):

Nie chodzi o literkê portu, tylko liczbê dostêpnych pinów i jakie funkcje s± wspó³dzielone. Bo np. PC6 jest wspó³dzielone z RESET, a PC7 w ogóle nie jest wyprowadzone. D wypada tu trochê lepiej o ile nie korzystasz z seriala.

Siet

Wlasnie patrze na pcb, a tam pc7... O ile na plycie jest, to w dokumentacji PC0 - PC6 PD sa wszystkie.. Wiec port danych musi byc na D nie na C.... No i cos juz wiadomu:) Poprzepinam porty, nie zauwazylem ze 7 nie ma...moj blad. Sprawdze jak pozamieniam i dam znac

Chyba uwalony mam ten wyswietlacz, mam jakies glupie paski na ekranie, za chiny nie moge nic dobrze wyswietlic..

Wyglada to tak:

formatting link
Polaczenia sprawdzone, na liniach pojawiaja sie dane, wiec chyba nie tak cos z wyswietlaczem.. Mial ktos podobnie?

W dniu 2013-07-23 15:47, wchpikus pisze:

teraz jest tak, ze dane so na D a sterowanie na C...atmega32 oczywiscie.

wchpikus snipped-for-privacy@wytnijto.wp.pl> napisa³(a):

Ale co Ci mamy powiedzieæ bez kodu ¼ród³owego? Z tego, ¿e co¶ jest na C a co¶ na D nic jeszcze nie wynika. Masz mieæ kod poprawnie implementuj±cy protokó³ komunikacji z wy¶wietlaczem. Nie gwarantujê, ¿e komu¶ bêdzie siê chcia³o na grupie ten kod analizowaæ (nie wiem jak skomplikowana jest komunikacja, bo nie u¿ywa³em tego wy¶wietlacza), ale bez kodu to na pewno nikt Ci nie powie co masz ¼le. I tak jaka pisa³em, mo¿esz przecie¿ poprosiæ tego go¶cia z elektrody o gotowca. Chyba ¿e ju¿ siê do niego zwróci³e¶ i Ci odmówi³?

W dniu 2013-07-23 15:53, wchpikus pisze:

Kod dokladnie taki jak ten, tak samo podlaczone:)

formatting link

wchpikus snipped-for-privacy@wytnijto.wp.pl> napisa³(a):

Config Graphlcd = 240 * 128 u Ciebie chyba powinno byæ 240*64. Poza tym ten kod nie jest na ATmega32.

W dniu 2013-07-23 16:08, Grzegorz Niemirowski pisze:

Oczywiscie, poprawiony tylko na 32 i 240x64..te dwie linijki sa inne, chodzi raczej o to ze jesli juz cos jest nie tak, to nie powinno byc takich dziwnych rzeczy.rozumiem krzaki, jesli predkosci lub czasy sie nie zgadzaja..

Ok doszedlem do tego ze: Wyswietlacz wyswietla ale dziwnie.. mam 30 kolumn i 8 linii.. wysylam do niego znak "1" a wyswietla tak: |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1| |1|

jak wysle "0" to jest |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0| |0|

Nie mam juz pomyslow, sprawdzalem tez inna konfiguracje, reset do + na stale, FS odpinany...sprawdzone kilakrotnie polaczenia, wygenerowalem na zmiane stany portow na wszyskich liniacz danych i sterowania by zobaczyc czy dochodza sygnaly..wyglada ok.. moze jest jakos uszkodzony?

wchpikus snipped-for-privacy@wytnijto.wp.pl> napisa³(a):

Mo¿liwe, mi siê jeden LCD niedawno uszkodzi³. Spróbuj skombinowaæ drugi, np. po¿yczyæ jak masz znajomego elektronika. Nie wiem ile kosztuje taki LCD, ale mo¿e taniej wyjdzie kupiæ drugi ni¿ po¶wiêcaæ Twój czas. A jak testujesz, to na minimalnym kodzie, co wy¶wietla jeden piksel, ³atwiej siê szuka problemu.

W dniu 2013-07-24 14:50, Grzegorz Niemirowski pisze:

problem jest w tym, ze cokolwiek chce wyswietlic mam kolumny:( wyglada na padake..szkoda, zakupie drugi

wchpikus snipped-for-privacy@wytnijto.wp.pl> napisa³(a):

Ewentualnie mo¿esz skorzystaæ z biblioteki napisanej w C. Mia³em kiedy¶ przypadek wy¶wietlacza, któremu siê te Bascomowe funkcje nie podoba³y, a dzia³a³ ze znalezion± w necie bibliotek± napisan± w C. Pewnie by³ wybredny co do czasów sygna³ów czy co¶. Oczywi¶cie móg³ te¿ byæ b³±d po mojej stronie, ale jak mi zadzia³a³o z C to ju¿ nie docieka³em.

W dniu 2013-07-24 15:06, Grzegorz Niemirowski pisze:

Szukam wlasnie takiej, a moze znajdzie sie caly kod testowy..

Znalazlem cos takiego:

formatting link
Zmienilem porty i nadal to samo..zamawiam drugi wyswietlacz:(

W dniu 2013-07-25 11:41, wchpikus pisze:

Z tej strony tez nie dziala:

formatting link
dokladnie taki sam objaw..ehh.. musialem go jakos uwalic.

W³a¶nie ukoñczy³em obs³ugê GLCD 480x272. Wnioski mam takie:

1) U¿y³em 32 bitowego procesora z pamiêci± 0,5MB i 128kB RAM 2) Wy¶wietla³em 3 rodzaje grafiki: a) 480x272 24 bity na pixel b) 240x136 24 bpp c) 240x136 1 bpp monochromatyczna i tylko czarno-bia³a.

Najbardziej czasoch³onne okaza³o siê wy¶wietlanie grafiki monochromatycznej, ale obraz zajmowa³ najmniej miejsca. W jednym s³owie 32-bitowym s± 32 pixele.

Kolory 24bpp kodowa³em tak, ¿e w trzech s³owach 32-bitowych mam 4 pixele. Podczas wy¶wietlania mogê nawet co¶ jeszcze wcisn±æ w NOPy.

Przy wyswietlaniu 1 bpp nie moge nic ju¿ wcisn±æ, bo wy³uskanie bitu, jego przesuniêcie i odpowiednie wystawienie 24 bitów na dwóch portach zajmuje czas na max.

Piszê w asm. Linia trwa od 40 do 80 us

Gdybym zastosowa³ kompresjê 1 Bit RLE czas by³by silnie uzale¿niony od zawarto¶ci. Niektóre grafiki s± specjalnie tak kodowane, aby "1" i "0" by³y w miarê równomiernie roz³o¿one. W zwi±zku z powy¿szym d³ugo¶ci trwania poszczególnych linii do¶æ znacznie by siê ró¿ni³y w ramach jednego obrazu. Nie s±dzê, ¿e by³by to du¿y problem, ale nie sprawdza³em w praktyce. My¶la³em o tym kodowaniu, ale w³a¶nie mia³em wy¶wietlaæ kody QR, gdzie ta metoda kompresji nic nie da, a one akurat du¿o pamiêci nie zabiera³y. Dekodowanie to kilka instrukcji tcy=12,5 ns wiêcej na pixel.

W dniu 27.07.2013 22:42, Sylwester Łazar pisze:

W trybie 24bpp i 1bpp lepiej by się chyba sprawił cortex-M3/4 z zewnętrzną szyną do pamięci. Można by połączyć trzy mechanizmy: mapowanie LCD na adresy w zewnętrznej pamięci, adresowanie bitowe w SRAMie i DMA. I miałbyś czas na coś więcej niż tylko wyświetlanie obrazu.

W wątku była mowa o wyświetlaczu z _własną_ pamięcią i kompresji obrazów, żeby wlazły do flasha.

Ten te¿ ma pamiêæ zewnêtrzn± PARALLER MASTER PORT i 4 kana³y DMA, ale zrobi³em ju¿ p³ytkê tak, ¿e nie da siê u¿yæ PMP. Poza tym jest tylko 16-bitów danych przy tym rodzaju transferu, a ja mam 24 bity. Tak wiêc musia³bym jeszcze te 8 bitów te¿ obs³u¿yæ przez DMA i zsynchronizowaæ. A mo¿e samo DMA tylko zapis do portu? Czy w tym CM4 to mo¿na wys³aæ 24 bity na raz i wpisaæ ? No w³a¶nie, ten 32MX/MIPS wydaje siê, ¿e nie ma zwyk³ego po¶redniego, adresowania bitowego.

Czasu mi starcza na wszystko inne ze spokojem, bo w czasie gdy nie nadaje danych bity zegarowe impulsów H iV s± wysy³ane sprzêtowo, a obs³uga klawiszy i przygotowanie obrazu statycznego to niewiele mi teraz zajmuje. S.

Tak wiem. Autor w±tku musia³by spróbowaæ zamieniæ grafikê w arkuszu kalkulacyjnym chocia¿, aby sprawdziæ, czy dla niego ta kompresja wystarcza. My¶lê, ¿e bêdzie O.K., ale tylko my¶lê :-)

W dniu 29.07.2013 10:04, Sylwester Łazar pisze:

Nie da się. Dopiero jak napisałem posta, to przypomniałem sobie że wyświetlacze muszą dostać wszystkie kolory jednocześnie a nie np. 3 *

8-bitów. Trzeba by ograniczyć paletę kolorów do 16 bitów.

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required