Jak sprawdzic wyświetlacz 3310 ?

To forum jest dla wszystkich pasjonatów mikrokontrolerów AVR Atmela. Wymiana doświadczeń i pomoc dla początkujących w pisaniu programów zarówno w C, Asemblerze jak i BASCOM. Zapraszam znawców tematu, aby pomogli wszystkim początkującym!
Awatar użytkownika
Aro
Użytkownik
Posty: 677
Rejestracja: 30 paź 2006, 18:49
Lokalizacja: Świerczyniec | Wrocław
Kontakt:

Jak sprawdzic wyświetlacz 3310 ?

Post autor: Aro » 06 sty 2007, 9:45

Czy da się odpalic ten wyświetlacz bez procka? żeby dawał jakiekolwiek oznaki "życia". I czy przetwornica napięcia pracuje od razu po włączeniu zasilania? Tzn. czy na 1u powinno byc wtedy ujemne napięcie.

Awatar użytkownika
marcing
Użytkownik
Posty: 869
Rejestracja: 14 lut 2006, 14:13
Lokalizacja: z pociągu...
Kontakt:

Post autor: marcing » 06 sty 2007, 12:08

Aro pisze:Czy da się odpalic ten wyświetlacz bez procka?
Nie - chyba, że jesteś na tyle "szybki", by odpowiednio wysterować wyświetlacz...

Co do przetwornicy - powinna uruchomić się od razu. Jednak nie wiadomo, jak pomiar napięcia wpłynie na jej pracę...
A według posiadanych materiałów napięcie wynosi od 6 do 9V (dodatnie - chociaż źródła te nie podają tego precyzyjnie)

Awatar użytkownika
Aro
Użytkownik
Posty: 677
Rejestracja: 30 paź 2006, 18:49
Lokalizacja: Świerczyniec | Wrocław
Kontakt:

Post autor: Aro » 06 sty 2007, 12:38

Z moim jest tak: pobiera 600µA prądu a powinien 2 razy mniej, a na przetwornicy jest tylko 2,40V przy napięciu zasilania 3V. Coś jest chyba nie tak.

[ Dodano: 2007-01-06, 13:01 ]
Drugi wyświetlacz zachowuje się identycznie.

Pi
-
Posty: 12
Rejestracja: 29 gru 2006, 14:12

Post autor: Pi » 10 sty 2007, 16:00

Da sie sprawdzic - podlaczajac do portu LPT kompa. Opis jak to zrobic jest tu: http://www.mod-planet.com/index.php?mod ... pageid=196

Awatar użytkownika
Koppel
Użytkownik
Posty: 500
Rejestracja: 24 lip 2005, 18:05
Lokalizacja: Gliwice

Post autor: Koppel » 11 sty 2007, 8:20

Nie powinno się uruchamiać wyświetlacza w taki sposób. Natychmiast po włączeniu zasilania wyświetlacz należy wyzerować. W dokumentacji sterownika można znaleźć informacje jaki jest maksymalny czas jaki może upłynąć od włączenia zasilania do zerowania. Dzieje się tak ponieważ po uruchomieniu stan wszystkich rejestrów sterownika jest nieokreślony. W skrajnym przypadku może to doprowadzić do zniszczenia modułu wyświetlacza (to rzadki przypadek, ale z tego co się orientuję, chodzi o niewłaściwe skonfigurowanie przetwornicy napięcia). Z powodu tej niewłaściwej konfiguracji układ może właśnie pobierać więcej prądu niż powinien.

Awatar użytkownika
Aro
Użytkownik
Posty: 677
Rejestracja: 30 paź 2006, 18:49
Lokalizacja: Świerczyniec | Wrocław
Kontakt:

Post autor: Aro » 11 sty 2007, 13:21

:cry: to niedobrze, mam nadzieje że jeszcze będą działac. :???: No nic , narazie muszę dac sobie z tym spokój i od podstaw nauczyc się C. ...Trochę to potrwa.

Awatar użytkownika
Koppel
Użytkownik
Posty: 500
Rejestracja: 24 lip 2005, 18:05
Lokalizacja: Gliwice

Post autor: Koppel » 11 sty 2007, 21:29

Aro pisze::cry: to niedobrze, mam nadzieje że jeszcze będą działac. :???: No nic , narazie muszę dac sobie z tym spokój i od podstaw nauczyc się C. ...Trochę to potrwa.
Raczej będzie. Sytuacja taka, że w odpowiednich rejestrach wpisane zostaną wartości powodujące uszkodzenie wyświetlacza jest mało prawdopodobna (ale możliwość taka istnieje). Musiałby zostać ustawiony wysoki kontrast, niekrzystka krzywa kompensacji temperaturowej oraz sam wyświetlacz musiałby zostać włączony. To troszkę bitów w odpowiedniej, niekorzystnej konfiguracji :)

Tomekk
-
Posty: 7
Rejestracja: 11 lut 2007, 17:59

Post autor: Tomekk » 11 lut 2007, 18:11

A ja mam następujący problem. Wyświetlacz działa (sprawdzałem LCDHype), konwerter napięć i stabilizator 3,3V też działa. Całość podłączałem do komputera przez LPT i jest ok. Natomiast po podłączeniu do ATmegi16 nie ma żadnego efektu - tak jakby nie następowało zainicjowanie wyświetlacza. Wykorzystywałem źródła z 13. części kursu C. Procesor jest sprawny, port do którego przyłączam też działa (zresztą próbowałem zmienić - bez efektu). Po dwóch dniach walki nie mam pomysłu na to gdzie szukać błędu, więc zarejestrowałem się na Forum EdW.

Pozdrawiam,
Tomek

Awatar użytkownika
Aro
Użytkownik
Posty: 677
Rejestracja: 30 paź 2006, 18:49
Lokalizacja: Świerczyniec | Wrocław
Kontakt:

Post autor: Aro » 11 lut 2007, 22:06

w hardref i makefile pozmieniałeś tak jak należy? hardref-piny, makefile- atmega16 i kwarc. Kompilator masz odpowiednią wersję? Jak to wszystko jest ok to pozostaje sprzęt, bo cudów nie ma.

Tomekk
-
Posty: 7
Rejestracja: 11 lut 2007, 17:59

Post autor: Tomekk » 11 lut 2007, 22:16

Aro pisze:w hardref i makefile pozmieniałeś tak jak należy?
Tak, dzieckiem nie jestem a i to nie mój pierwszy program.
Aro pisze:Kompilator masz odpowiednią wersję?
Mam 20050214, ale ścieżki do bibliotek zmieniam ręcznie. Czy są jeszcze jakieś inne różnice, które mogą ujawnić się w tym momencie?

Awatar użytkownika
Aro
Użytkownik
Posty: 677
Rejestracja: 30 paź 2006, 18:49
Lokalizacja: Świerczyniec | Wrocław
Kontakt:

Post autor: Aro » 12 lut 2007, 19:38

Tomekk pisze:Czy są jeszcze jakieś inne różnice, które mogą ujawnić się w tym momencie?
napewno w wersji 20060125 są troche inne biblioteki niż w 20050214, i musiałem modyfikowac niektóre programy żeby wogóle można było skompilowac. Specjalistą nie jestem, więc innych różnic nie zauważyłem. Warto spróbowac z tą nowszą wersją.

Tomekk
-
Posty: 7
Rejestracja: 11 lut 2007, 17:59

Post autor: Tomekk » 12 lut 2007, 20:08

Aro pisze:Warto spróbowac z tą nowszą wersją.
Jak zainstaluję nową wersję, i skompiluję, to dam znać. Aczkolwiek nie wydaje mi się aby tu tkwił problem.

Awatar użytkownika
Aro
Użytkownik
Posty: 677
Rejestracja: 30 paź 2006, 18:49
Lokalizacja: Świerczyniec | Wrocław
Kontakt:

Post autor: Aro » 13 lut 2007, 9:25

Co do różnicy między wersjami też nie mam całkowitej pewności, ale mnie LCD odpalił bez żadnych problemów z kodami z części 13. Tak się jeszcze zastanawiam czy ma to coś wspólnego z budową procesora, w sumie atmega16 i atmega162 się zbytnio pod tym względem nie różnią. Ja pracuje na atmedze8.

Awatar użytkownika
robson
Użytkownik
Posty: 226
Rejestracja: 22 sty 2006, 19:51
Lokalizacja: S.M.
Kontakt:

Post autor: robson » 02 lip 2010, 13:18

Z góry przepraszam za odkopywanie dinozaurów, ale problem na podobnej płaszczyźnie.

Otóż złożyłem sobie układ, w którym mikrokontroler MEGA32 steruje wyświetlaczem LCD z nokii 3310. Kody źródłowe pochodzą z kursu programowania procesorów AVR w języku C autorstwa Pana Radosława. Układ działa tak, że po włączeniu zasilania obrazek (buźka i napis Kurs AVR GCC) mignie i właściwie tylko tyle go widać. Jeśli program okroję do samej inicjalizacji, to samo dziej się z wyświetleniem losowych "krzaczków" - jedynie szybko migną.
Jedyna różnica jaka ma miejsce, to taka, że w kursie z EdW na płytce AVT-3505 jest procek MEGA162 a ja mam MEGA32. Rozkład wyprowadzeń (przynajmniej ten odpowiedialny za transmisję danych do LCD) jest taki sam. Z reszą wykluczam błędny montarz. Prototyp znajduje się na płytce stykowej.

Z góry dziękuje za propozycję:)

Awatar użytkownika
kayron
Użytkownik
Posty: 2073
Rejestracja: 21 wrz 2008, 12:53
Lokalizacja: Poland
Kontakt:

Post autor: kayron » 02 lip 2010, 14:42

Bo pewnie masz wyświetlacz made in china, który ma nieco zmodyfikowany kontroler na pokładzie i aby poprawnie pracował wymaga podczas inicjacji wysłania dwóch dodatkowych komend.
Tu masz procedurę inicjacji, ja co prawda piszę w Bascom, ale jest tam ta poprawiona inicjacja.

Kod: Zaznacz cały

Sub Lcd_ini
   Local J As Word
   Reset Lcd_cs            'wybierz wyświetlacz
   Reset Lcd_dc            'przesyłanie komend
   Call Lcd_out(&H21)      'komendy rozszerzone
   Call Lcd_out(&H05)<->'poprawia błąd w podróbach N3310
   Call Lcd_out(&Hc8)      'ustawienie VOP (kontrastu)
   Call Lcd_out(&H06)      'korekta temperatury
   Call Lcd_out(&H13)      'współczynnik multipleksowania
   Call Lcd_out(&H20)      'komendy standardowe - adresowanie poziome
   Call Lcd_out(&H01)
   Call Lcd_out(&H0c)      'tryb wyświetlania standard mode
   Call Lcd_out(&H40)      'zerowanie licznika wierszy
   Call Lcd_out(&H80)      'zerowanie licznika kolumn
   Reset Lcd_cs
   Set Lcd_dc              'zapis do RAM
   Set Lcd_cs              'ponowny wybór wyświetlacza
   Reset Lcd_cs
   For J = 1 To 612        'zerownie pamięci wyświetlacza
     ' X = Lookup(j , Ascii)
      Call Lcd_out(&H00)
   Next J
   Set Lcd_cs              'odłączenie wyświetacza
 End Sub

ODPOWIEDZ