Aktyw Forum
Zarejestruj się na forum.ep.com.pl i zgłoś swój akces do Aktywu Forum. Jeśli jesteś już zarejestrowany wystarczy, że się zalogujesz.
Sprawdź punkty Zarejestruj sięGraficzny LCD + ARM Atmela - problem
Moderatorzy:Jacek Bogusz, procesorowiec, Moderatorzy
Witajcie,
czasami wydaje mi się że elektronika to świat takiej magii że sam Cooperfield by się nie połapał... Ale do rzeczy;)
Mam 2 wyświetlacze graficzne 240x128 z wbudowanym sterownikiem T6963C. Zmontowałem sobie płytkę testową i podłaczyłem wyświetlacz bezpośrednio do płytki z At91sam7s256 (płytkę z procesorem mam z PROPOXu). Regulację podświetlania mam zrobioną przez podłaczenie linii VOUT do VO przez potencjomentr 47k + rezystor 51k ustawiony w tym momencie na max. Zdarzyło mi się już 2 razy że po dłuższym nieuzywaniu wyświetlacza (np. przez noc) rano nie mogłem go odpalić. Do tej pory udawało mi się odpalić wyświetlacz kombinując z regulacją kontrastu (np. demontując rezystor a następnie montując go spowrotem). Jak już mi się udało go odpalić to potem przez cały dzień mi działał (jednak nie było jakiejś dłuższej chwili bez zasilania go). Dzisiaj rano znowu mam ten sam problem: to oprogramowanie, które działało mi popołudniu, nie działa mi rano. Specjalnie zostawiłem popołudniu działające oprogramowanie, żeby to sprawdzić...
Czy ktoś z kolegów mógłby mi coś zasugerować?? Z góry dzięki za wszelkie sugestie;)
Pozdrawiam,
Tomek
czasami wydaje mi się że elektronika to świat takiej magii że sam Cooperfield by się nie połapał... Ale do rzeczy;)
Mam 2 wyświetlacze graficzne 240x128 z wbudowanym sterownikiem T6963C. Zmontowałem sobie płytkę testową i podłaczyłem wyświetlacz bezpośrednio do płytki z At91sam7s256 (płytkę z procesorem mam z PROPOXu). Regulację podświetlania mam zrobioną przez podłaczenie linii VOUT do VO przez potencjomentr 47k + rezystor 51k ustawiony w tym momencie na max. Zdarzyło mi się już 2 razy że po dłuższym nieuzywaniu wyświetlacza (np. przez noc) rano nie mogłem go odpalić. Do tej pory udawało mi się odpalić wyświetlacz kombinując z regulacją kontrastu (np. demontując rezystor a następnie montując go spowrotem). Jak już mi się udało go odpalić to potem przez cały dzień mi działał (jednak nie było jakiejś dłuższej chwili bez zasilania go). Dzisiaj rano znowu mam ten sam problem: to oprogramowanie, które działało mi popołudniu, nie działa mi rano. Specjalnie zostawiłem popołudniu działające oprogramowanie, żeby to sprawdzić...
Czy ktoś z kolegów mógłby mi coś zasugerować?? Z góry dzięki za wszelkie sugestie;)
Pozdrawiam,
Tomek
Czary z mleka
Dziwna sprawa... tu raczej winne są jakieś niestykające styki, które w czasie nocy (odstawiasz układ na półkę czy leży tak jak leżał gdy działa?) tracą styk. Zarówno ARM Atmela jak i wyświetlacz na T6963 dziajają u mnie niezależnie od czasu gdy pozostają bez zasilania. Piszesz że wyświetlacz zadziałał, gdy zdemontowałeś i zamontowałeś spowrotem rezystor od kontrastu - może podczas tych operacji poruszyłeś jakiś kabelek który wcześniej nie kontaktował i zadziałało? Innej możliwości nie widze.
Dziwna sprawa... tu raczej winne są jakieś niestykające styki, które w czasie nocy (odstawiasz układ na półkę czy leży tak jak leżał gdy działa?) tracą styk. Zarówno ARM Atmela jak i wyświetlacz na T6963 dziajają u mnie niezależnie od czasu gdy pozostają bez zasilania. Piszesz że wyświetlacz zadziałał, gdy zdemontowałeś i zamontowałeś spowrotem rezystor od kontrastu - może podczas tych operacji poruszyłeś jakiś kabelek który wcześniej nie kontaktował i zadziałało? Innej możliwości nie widze.
Tak dla ścisłości, to mój wyświetlacz ma wbudowany sterownik SAP1024B, który (wg informacji od dystrubutora) jest dokładnym odpowiednikiem sterownika T6963C... Więc steruje nim wg dokumentacji do sterownika T... Dokumentacji do SAP... w sieci nigdzie nie znalazłem.
Jeśli chodzi o styki to sprawdzałem połączenie pomiedzy złączem na wyświetlaczu i złączem od procesora. Wszystkie przejścia są prawidłowe. Wyświetlacz stoi pionowo w złączu GOLDPIN. Spróbuję jeszcze wyeliminować to połaczenie i pionową pozycję. ..
Mój ARM daje na wyjścia sygnały o poziomach 0 - 3v3. W dokumentacji do sterownika T wynika, że to wystarczy.
Teraz pojawił się kolejny objaw, dla mnie niespotykany w LCD: po wpisaniu samych 0xff na pierwsze 200B pamięci obrazu, oraz wpisaniu jakiegoś tekstu i właczeniu trybu Graphic + Text, mój tekst pojawia się i znika z częstotliwościa 1Hz... Z czymś takim jeszcze się nie spotkałem... Masz jakiś pomysł co to może być???
Tomek
Jeśli chodzi o styki to sprawdzałem połączenie pomiedzy złączem na wyświetlaczu i złączem od procesora. Wszystkie przejścia są prawidłowe. Wyświetlacz stoi pionowo w złączu GOLDPIN. Spróbuję jeszcze wyeliminować to połaczenie i pionową pozycję. ..
Mój ARM daje na wyjścia sygnały o poziomach 0 - 3v3. W dokumentacji do sterownika T wynika, że to wystarczy.
Teraz pojawił się kolejny objaw, dla mnie niespotykany w LCD: po wpisaniu samych 0xff na pierwsze 200B pamięci obrazu, oraz wpisaniu jakiegoś tekstu i właczeniu trybu Graphic + Text, mój tekst pojawia się i znika z częstotliwościa 1Hz... Z czymś takim jeszcze się nie spotkałem... Masz jakiś pomysł co to może być???
Tomek
zasada jest prosta: im wiecej podasz danych tym wieksze prowdopodobienstwo, ze ktos ci pomoze - na poczatek:Tak dla ścisłości, to mój wyświetlacz ma wbudowany sterownik SAP1024B, który (wg informacji od dystrubutora) jest dokładnym odpowiednikiem sterownika T6963C... Więc steruje nim wg dokumentacji do sterownika T... Dokumentacji do SAP... w sieci nigdzie nie znalazłem.
Jeśli chodzi o styki to sprawdzałem połączenie pomiedzy złączem na wyświetlaczu i złączem od procesora. Wszystkie przejścia są prawidłowe. Wyświetlacz stoi pionowo w złączu GOLDPIN. Spróbuję jeszcze wyeliminować to połaczenie i pionową pozycję. ..
Mój ARM daje na wyjścia sygnały o poziomach 0 - 3v3. W dokumentacji do sterownika T wynika, że to wystarczy.
Teraz pojawił się kolejny objaw, dla mnie niespotykany w LCD: po wpisaniu samych 0xff na pierwsze 200B pamięci obrazu, oraz wpisaniu jakiegoś tekstu i właczeniu trybu Graphic + Text, mój tekst pojawia się i znika z częstotliwościa 1Hz... Z czymś takim jeszcze się nie spotkałem... Masz jakiś pomysł co to może być???
Tomek
1. typ wyswietlacza
2. układ zasilania napiecia kontrastu ( ile tego napiecia)
dla matryc LCD z T6963 najczesciej musisz miec napiecie kontrastu ok -13V wzgledem napiecia VCC, czyli -9V wzgledem masy. Jakos metnie opisałes jak zasilasz napiecie kontrastu - piszesz cos o podswietlaniu??? . Nie znamy typu wyswietlacza to jak mamy cos wiecj wiedzec?
pzdr
T.
Już uściślam informacje:zasada jest prosta: im wiecej podasz danych tym wieksze prowdopodobienstwo, ze ktos ci pomoze - na poczatek:
1. typ wyswietlacza
2. układ zasilania napiecia kontrastu ( ile tego napiecia)
dla matryc LCD z T6963 najczesciej musisz miec napiecie kontrastu ok -13V wzgledem napiecia VCC, czyli -9V wzgledem masy. Jakos metnie opisałes jak zasilasz napiecie kontrastu - piszesz cos o podswietlaniu??? . Nie znamy typu wyswietlacza to jak mamy cos
Mój wyświetlacz to 240 x 128, sterownik SAP1024B (podobno odpowiednik 1:1 T6963C), białe podświetlanie LED, negatyw.
http://www.artronic.pl/o_produkcie.php?id=753?
Zasilanie do niego: +5V, takie samo do podświetlania.
Wyświetlacz sam generuje napięcie ujemne, pojawia się ono na pinie Vout = -15,4V. Pomiędzy pin Vout i V0 (3 i 4) podłączyłem szeregowo rezystor 51k i potencjometr 47k. W ten sposób na pinie V0 mam -12,5V.
Czy coś jeszcze dodać?
http://www.avantsemi.com.tw/lcd_control ... r_list.htmTak dla ścisłości, to mój wyświetlacz ma wbudowany sterownik SAP1024B, który (wg informacji od dystrubutora) jest dokładnym odpowiednikiem sterownika T6963C... Więc steruje nim wg dokumentacji do sterownika T... Dokumentacji do SAP... w sieci nigdzie nie znalazłem.
--
MDz
-sprawdz napiecia zasilajace i ew zablokuj napiecie zasilajce wysiwtlacz - masz w nim przetwornice to moze ona "szarpie" i cos sie dzieje na zasilaniu (oscyloskop). Kiedy wysietlacz "nie stertuje" to na Vout jest napiecie ujemne?
- jezlei napiecia sa ok, to raczej sprawa programu.
-jak sterujesz wyswietlacz: emulujesz magistrale portami uC? Pomiedzy kolejnymi zminami na liniach wstawiaj niewielkie programowe opoznienia.
- jezlei napiecia sa ok, to raczej sprawa programu.
-jak sterujesz wyswietlacz: emulujesz magistrale portami uC? Pomiedzy kolejnymi zminami na liniach wstawiaj niewielkie programowe opoznienia.
Dzięki za ten link. W moich wynikach z google były tylko chińskie napisy
[ Dodano: 27-06-2007, 15:27 ]
Zasilanie +5V wygląda w porządku - sprawdzałem na oscyloskopie. Są tylko małe impulsy 50mVpp. Dołozyłem nawet kondensator niskoimpedancyjny 470u / 25V.
Na V0 pojawiają się dodatnie impulsy 400mVpp o czasie trwania ok. 200us powtarzające się co ok. 14ms. Zbocze wygląda jakby podłączenie napięcia do kondensatora a następnie rozładowywanie tego kondensatora.
Dodałem też opóźnienia pomiędzy wystawianiem kolejnych linii sterujących, ale nadal mam taki sam objaw czyli migający napis, który mu zapisuje do pamięci...
Właśnie wpadłem na jeszcze jedną rzecz: Jak ustawiam pointer jak niżej
SET_ADDR_PTR(GRAPHIC_AREA_START+400);
to mi napis nie miga, jak jak tak:
SET_ADDR_PTR(0);
To mi miga... GRAPHIC... jest ustawiony na 0.
Musze to jeszcze dokladnie przegladnac...
Nie wiem, ale moze cos sie dzieje z regulacja kontrastu w LCD...
Jak tak dalej pojdzie do odesle ten wyswietlacz do dystrybutora, zeby go sprawdzili...
[ Dodano: 27-06-2007, 15:27 ]
Zasilanie +5V wygląda w porządku - sprawdzałem na oscyloskopie. Są tylko małe impulsy 50mVpp. Dołozyłem nawet kondensator niskoimpedancyjny 470u / 25V.
Na V0 pojawiają się dodatnie impulsy 400mVpp o czasie trwania ok. 200us powtarzające się co ok. 14ms. Zbocze wygląda jakby podłączenie napięcia do kondensatora a następnie rozładowywanie tego kondensatora.
Dodałem też opóźnienia pomiędzy wystawianiem kolejnych linii sterujących, ale nadal mam taki sam objaw czyli migający napis, który mu zapisuje do pamięci...
Właśnie wpadłem na jeszcze jedną rzecz: Jak ustawiam pointer jak niżej
SET_ADDR_PTR(GRAPHIC_AREA_START+400);
to mi napis nie miga, jak jak tak:
SET_ADDR_PTR(0);
To mi miga... GRAPHIC... jest ustawiony na 0.
Musze to jeszcze dokladnie przegladnac...
Nie wiem, ale moze cos sie dzieje z regulacja kontrastu w LCD...
Jak tak dalej pojdzie do odesle ten wyswietlacz do dystrybutora, zeby go sprawdzili...
To jest mój kod którym inicjalizuje wyswietlacz:
(tak dla usciślenia: f-cja clr oznacza ustawienie w stan nieaktywny czyli 'H', a set działa odwrotnie )
//**********************************
void lcd_init(void)
{
long i;
clr_ce();
clr_rst();
set_dat();
clr_rd();
clr_wr();
for (i = 2000000; i != 0; i-- ); // wait 1s
// reset the controller
set_rst();
for(i=0; i<10000; i++); /* delay for the reset time = 5ms */
clr_rst();
SET_GRAPH_ADDR_START(GRAPHIC_AREA_START);
SET_GRAPH_LINE_WIDTH(LINE_WIDTH);
SET_TEXT_ADDR_START(TEXT_AREA_START);
SET_TEXT_LINE_WIDTH(LINE_WIDTH);
SET_ADDR_PTR(0);
clr_graphic_area();
clr_text_area();
}
[ Dodano: 28-06-2007, 09:58 ]
Chyba znalazłem przyczyne Przez moje "spaczenie" mikrokontrolerami gdzieś błędnie zakodowałem sobie, że rejestry w sterowniku przyjmują jakieś domyslne wartości. A wygląda na to że jednak przyjmują przypadkowe wartości.
Mój błąd polegał na tym, że w inicjalizacji wyświetlacza nie ustawiałem modu wyswietlacza (OR, EXOR). Jak dodałem linijke ustawiającą tryb na OR od razu mi ruszyło... Będę to jeszcze testował, ale wygląda że to jest to...
Dziękuję wszystkim za pomoc i sugestie
Tomek
(tak dla usciślenia: f-cja clr oznacza ustawienie w stan nieaktywny czyli 'H', a set działa odwrotnie )
//**********************************
void lcd_init(void)
{
long i;
clr_ce();
clr_rst();
set_dat();
clr_rd();
clr_wr();
for (i = 2000000; i != 0; i-- ); // wait 1s
// reset the controller
set_rst();
for(i=0; i<10000; i++); /* delay for the reset time = 5ms */
clr_rst();
SET_GRAPH_ADDR_START(GRAPHIC_AREA_START);
SET_GRAPH_LINE_WIDTH(LINE_WIDTH);
SET_TEXT_ADDR_START(TEXT_AREA_START);
SET_TEXT_LINE_WIDTH(LINE_WIDTH);
SET_ADDR_PTR(0);
clr_graphic_area();
clr_text_area();
}
[ Dodano: 28-06-2007, 09:58 ]
Chyba znalazłem przyczyne Przez moje "spaczenie" mikrokontrolerami gdzieś błędnie zakodowałem sobie, że rejestry w sterowniku przyjmują jakieś domyslne wartości. A wygląda na to że jednak przyjmują przypadkowe wartości.
Mój błąd polegał na tym, że w inicjalizacji wyświetlacza nie ustawiałem modu wyswietlacza (OR, EXOR). Jak dodałem linijke ustawiającą tryb na OR od razu mi ruszyło... Będę to jeszcze testował, ale wygląda że to jest to...
Dziękuję wszystkim za pomoc i sugestie
Tomek
Kto jest online
Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 2 gości