logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[atmega8][avr-gcc] Problem z wyświetlaczem od nokii 3310

y0yster 22 Wrz 2009 14:22 6397 19
REKLAMA
  • #1 7045279
    y0yster
    Poziom 19  
    Witam,

    Dzisiaj zacząłem się bawić wyświetlaczem z nokii 3310.
    Wszystko fajnie, ale nie mogę tego w ogóle uruchomić.

    Na czym konkretnie polega problem:
    Schemat połączenia lcd z uC zaczerpnąłem, z któregoś numeru EP, w którym był opisywany owy display.

    Kod do uruchomienia wyświetlacza zaczerpnąłem z dwóch źródeł, aby mieć pewność, że działa. Tutaj zaczynają się schody, bo wyświetlacz w ogóle nie reaguje :/. Dodam, że częstotliwość zegara to 4MHz, więc nie powinno być problemów.

    Mam jeszcze jedno pytanko, jaki powinien być efekt jeśli podłączy się tylko samo zasilanie? Czy coś powinno się na nim wyświetlić, może cały czarny ekran?

    Szukałem na elektrodzie podobnych tematów ale nić zbytnio nie znalazłem.

    Jeśli byłby ktoś na tyle łaskawy wrzucić sam wsad do uC (Atmega8) wraz z wyprowadzeniami, abym mógł sprawdzić, czy LCD, w ogóle reaguje i nie jest spalony.

    Pozdrawiam.

    Także mam prośbę do was
  • REKLAMA
  • #2 7045303
    zdebel
    Poziom 15  
    Może Ty pokaż jak podłączyłeś (nie mam niestety pod ręką swojej biblioteki teraz, jest na lapku który faila zaliczył). Po podłączeniu do napięcia powinien się cały obszar aktywny MINIMALNIE ściemnić. Patrz dokładnie bo to mała różnica, ale jest.
  • #3 7045350
    y0yster
    Poziom 19  
    Oto sposoby w jakie podłączyłem wyświetlacz do uC. Próbowałem obydwu, żaden nie działa :(.

    [atmega8][avr-gcc] Problem z wyświetlaczem od nokii 3310

    Niestety jak podłączam zasilanie to nic, a nic się nie zmienia :/, albo zmiany są tak małe, że ich nie dostrzegam.
  • REKLAMA
  • #5 7045392
    y0yster
    Poziom 19  
    Mam właśnie tak połączone?

    Powyższe schematy zapewniają konwersję z 5V na 3,3V. Reszta jest jak podałeś na tym schemacie. Dalej nic nie działa.
  • #6 7045397
    arnoldziq
    VIP Zasłużony dla elektroda
    Sprawdź tę stronkę. Kiedyś to wykonałem i działało bez pudła :

    LCD 3310 + ATMEGA AVR
  • #7 7045399
    zdebel
    Poziom 15  
    Nie wiem czy są one prawidłowe... To z diodami nie powoduje, że się faza sygnałów o 180 odwraca? Ja tam olałem jakąkolwiek konwersję i bezpośrednio podłączam. Ewentualnie można samo zasilanie dać na 3v3.
  • #8 7045418
    y0yster
    Poziom 19  
    arnoldziq napisał:
    Sprawdź tę stronkę. Kiedyś to wykonałem i działało bez pudła :

    LCD 3310 + ATMEGA AVR


    Podałeś tą samą stronę co kolega wyżej.

    Co do podłączenia wyświetlacza to wolę nie podłączać bezpośrednio ponieważ można uszkodzić wyświetlacz. O ile już nie jest uszkodzony.
    Chętnie sprawdziłbym na samym 3,3V, ale Atmega tego nie pociągnie (Nie jest to wersja 'L')
    Możliwe jest to aby podczas lutowania styków przegrzała się ta płytka i nie ma zwarcia?

    --edit

    Podłączyłem wyświetlacz bezpośrednio, ale ani drgnie :/.
  • #9 7045681
    M. S.
    Poziom 34  
    LCD Nokii jest bardzo kapryśne. Sprawdź napięcie na 7 końcówce (tej z kondensatorem). Jak nie osiąga ok. 7V to wewnętrzna przetwornica nie działa, a wyświetlacz jest martwy.
  • REKLAMA
  • #10 7045689
    y0yster
    Poziom 19  
    Napięcie na tej nóżce jest równe prawie 0V :/.
    Używałem tam 2 kondensatory elektrolit 4,7uF (na tym sprawdzałem) i 1uF tantalowy.

    Co pozostaje mi zrobić, czy to może być wynikiem przegrzania podczas lutowania, czy może napięcie 5V?

    Pozdrawiam.
  • #11 7045881
    michalko12
    Specjalista - Mikrokontrolery
    [atmega8][avr-gcc] Problem z wyświetlaczem od nokii 3310


    Schemat z diodami jest zły!
    Diody powinny być odwrotnie! Jeśli tak podłączyłeś istnieje jakieś prawdopodobieństwo że uszkodziłeś wyświetlacz, chociaż w notach kontrolera jest że wytrzymuje on 5V.
  • #12 7045890
    Piotrek_P
    Poziom 18  
    A nie możesz dać poprostu dzielników na rezystorach? Oczywiśćie jeżeli to ma być "profi" to wypadało by zastosować bufor 74LVC245, ale jest on trudno dostępny. Ja w swoim projekcie mam dzielniki 1,8k do masy i 1k szeregowo do procka, LCD od N3310 chodzi już ponad 2 lata.

    P.S. Acha, o ile dobrze kojarzę to był też jakiś numer z programową inicjalizacją LCD. Ktoś chyba tu pisał o przypadkach uszkodzenia LCD po braku/niewłaściwej inicjalizacji, ale ja nigdy nie miałem żadnych problemów więc nie potwierdzę.
    Jest w tym dziale megawątek na temat tego wyświetlacza więc chyba warto poczytać.

    Link

    Pozdrawiam
    Piotrek
  • #13 7046700
    y0yster
    Poziom 19  
    Dziękuję za odpowiedzi.

    Mam jeszcze pytanie co do podłączenia wyświetlacza poprzez dzielniki napięcia.

    Czy takie coś mogę zastosować do wszystkich pinów? :

    [atmega8][avr-gcc] Problem z wyświetlaczem od nokii 3310

    Na wyjściu powinienem mieć ok. 3,3V.
  • #14 7047621
    M. S.
    Poziom 34  
    Cytat:
    Napięcie na tej nóżce jest równe prawie 0V

    No właśnie. Masz zatem zerowy kontrast. Nawet jak sterownik podaje odpowiednie dane na matrycę to ona nie jest w stanie nic wyświetlić. Jeśli napięcie się nie podniesie, na co masz mały wpływ, to pozostanie śmietnik. Doprowadzenie napięcia z zewnątrz nie zapewni stabilności wyświetlania bo napięcie to zależy od temperatury, ale w ostateczności spróbować można. Eksperymentowałem z tymi wyświetlaczami i z kilku sprawnie działa jeden. Pozostałe padły od razu lub po nawet długim czasie. Niektóre potrafiły nawet na jakiś czas ożyć :D. Wolę obecnie wyświetlacze z S65 - z nimi nie ma takich problemów.
  • #15 7048731
    y0yster
    Poziom 19  
    Testowałem już 3 wyświetlacze i żaden ani drgnie. Co może być nie tak?

    Podczepiłem tak jak zasugerował Piotrek_P. Tylko, że zastosowałem 1k i 0,5k, mam 3V, ale dalej nic nie chce się ruszyć. Co może być w takim razie nie tak?
  • #16 7048887
    Piotrek_P
    Poziom 18  
    Napisz może jak masz obecnie podpięty ten LCD (które sygnały pod które piny procka) to może coś się wymyśli. Ja do obsługi wyświetlacza używam biblioteki z linka poniżej.

    Link

    Pozdrawiam
    Piotrek
  • REKLAMA
  • #17 7048997
    y0yster
    Poziom 19  
    Ja używam do obsługi tego wyświetlacza bibliotek zaczerpniętych z EdW, gdzie był kurs avr-gcc. Tam też są przedstawione 2 opcje sterowania wyświetlaczem. Poprzez sprzętowy SPI oraz bez niego.

    Symuluję sobie program w Proteusie i dla programowej obsługi lcd wszystko jest ok, ale dla hardware'owej już nie :/. Oczywiście zmieniłem rozmieszczenie pinów dla opcji sprzętowej, ale nie chce się ruszyć.

    Tak, mam zdefiniowane piny:

    
    #ifdef LCD_HARDWARE_SPI
    
    	#define LCD_PORT	PORTB
    	#define LCD_DDR		DDRB
    	#define LCD_RES		1	
    	#define LCD_SCK		5	
    	#define LCD_SD		3	
    	#define LCD_DC		0	
    	#define LCD_SCE		2	
    
    #else
    
    	#define LCD_PORT	PORTB
    	#define LCD_DDR		DDRB
    	#define LCD_RES		2
    	#define LCD_SCK		7
    	#define LCD_SD		5
    	#define LCD_DC		3
    	#define LCD_SCE		4
    
    #endif
    


    Może po prostu gdzieś mam błąd w konfiguracji linii. Jak na razie sprawdzałem tylko programową konfigurację, ale niestety działa ona tylko w symulatorze, a w normalnych warunkach już nie :/.

    --edit

    A może to wina kondensatora, który powinien znaleźć się przy wyświetlaczu. Używałem dwóch: 1uF tantalowy i 4,7uF elektrolit, ale bez żadnych efektów.

    --edit

    Doszedłem do wniosku, że chyba najlepszym rozwiązaniem będzie sprawdzenie przez Was, czy kod działa. Wrzucam tutaj wsad do obsługi wyświetlacza nokia 3310 i proszę o przetestowanie, czy program działa. Powinien wyświetlić się napis "ala ma kota". Dodam, że jadę na oscylatorze wewnętrznym 4MHz.

    Oto wyprowadzenia:

    
    	#define LCD_RES		2
    	#define LCD_SCK		7
    	#define LCD_SD		5
    	#define LCD_DC		3
    	#define LCD_SCE		4
    


    Czyli takie ja podałem wyżej dla programowej obsługi wyświetlacza.
  • #18 7049422
    Piotrek_P
    Poziom 18  
    A czy przypadkiem definicje sygnałów nie powinny wyglądać następująco :?:
    
       #define LCD_PORT   PORTB 
       #define LCD_DDR      DDRB  
       #define LCD_RES      PINB2 
       #define LCD_SCK      PINB7 
       #define LCD_SD        PINB5 
       #define LCD_DC        PINB3 
       #define LCD_SCE      PINB4 
    

    W bibliotece której używam (w pliku drm3310.h) jest to mniejwięcej tak to zadeklarowane.

    P.S. Acha, jak byś przygotował HEX'a pod ATMega32 to mogę wgrać i sprawdzić ten program na mojej płytce testowej, ale w nastepującej konfiguracji

    8MHz internal osc.

    Pinologia:
    SCK PINB7
    MOSI PINB5
    DC PINB0
    CE PINB1
    RES PINB3


    Pozdrawiam
    Piotrek
  • #19 7049857
    y0yster
    Poziom 19  
    Piotrek_P napisał:
    A czy przypadkiem definicje sygnałów nie powinny wyglądać następująco :?:
    
       #define LCD_PORT   PORTB 
       #define LCD_DDR      DDRB  
       #define LCD_RES      PINB2 
       #define LCD_SCK      PINB7 
       #define LCD_SD        PINB5 
       #define LCD_DC        PINB3 
       #define LCD_SCE      PINB4 
    

    W bibliotece której używam (w pliku drm3310.h) jest to mniejwięcej tak to zadeklarowane.


    Jest to to samo, co ja mam, tylko nie ma tam nazw.
    W pliku nagłówkowym do uC:
    PINB2 jest zdefiniowany jako 2, więc nie ma problemu.

    Co do wsadu na Atmegę32, oto on (zgodnie z pinologią; 8MHz):
  • #20 7053199
    Piotrek_P
    Poziom 18  
    Wgrałem wsad do M32 i... ala ma kota :D .Chyba masz coś skopane w połączeniach bo u mnie ładnie wyświetla.

    A te Twoje wyświetlacze to jakie mają styki :?:. Ja mam blaszki, a są też na klejoną taśmę, może tu jest problem, nie wiem...

    Pozdrawiam
    Piotrek
REKLAMA