Elektroda.pl
Elektroda.pl
X

Wyszukiwarki naszych partnerów

Wyszukaj w ofercie 200 tys. produktów TME
Kategoria: Kamery IP / Alarmy / Automatyka Bram
Montersi
Proszę, dodaj wyjątek elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Wyświetlacz VFD 05464ASSY35119. Inicjalizacja przez RS232

inspector_electro 14 Mar 2017 17:54 885 38
  • #1 14 Mar 2017 17:54
    inspector_electro
    Poziom 22  

    Witam.

    Jestem w posiadaniu wyświetlacza VFD o symbolach 05464ASSY35119.
    Jest to dwu wierszowy wyświetlacz po 20 znaków. Nie potrafię ogarnąć inicjalizacji.
    Próbuję w BASCOM. Wyświetlacz wyświetla ciągle to samo, mimo wysyłania innych komend. Komendy wysyłam poleceniem Printbin. Wyświetlacz nie reaguje na polecenia. Prawdopodobnie trzeba mu wysłać odpowiednią sekwencję.
    Czy ktoś miał z takim wyświetlaczem styczność?


    Tutaj Koleś poradził sobie z nim, ale ten język programowania jest dla mnie w ogóle nie zrozumiały.
    http://geek-mag.com/posts/257142/
    Manual:

  • #3 14 Mar 2017 20:39
    inspector_electro
    Poziom 22  

    Kompletnie nie znam tego "perl". Wyczytałem na tej stronie że trzeba wyczyścić bufor .

    Kod: perl
    Zaloguj się, aby zobaczyć kod
    .Tylko jak to wysłać przez uart z bascoma?
    Chodzi mi tylko o zainicjowanie, i wyświetlenie prostrgo tekstu. Ale uparcie wyświetla mi krzyżyki.

    Dodano po 1 [godziny] 26 [minuty]:

    Nikt nie pomoże uruchomić tego wyświetlacza?

  • #4 14 Mar 2017 21:07
    namok
    Poziom 24  

    Napisałem przecież:

    namok napisał:
    Dane wysyłane są przez print i printf.
    Czyli interesuje Cię to co jest za tymi poleceniami.
    Kod: perl
    Zaloguj się, aby zobaczyć kod
    Nawet gdybyś miał kłopot z odcyfrowaniem poleceń na podstawie manuala to dla 0x14 opis rosyjski: https://translate.google.pl/#auto/pl/отправляем дисплею программный сброс
    Z resztą chyba już sobie poradzisz.

  • #5 14 Mar 2017 21:21
    inspector_electro
    Poziom 22  

    Albo jestem za tępy, albo to jest zbyt proste :) , albo RS232 w wyświetlaczu jest uszkodzony.
    Wysyłam komendę reset:

    Kod: vbnet
    Zaloguj się, aby zobaczyć kod


    Wyświetlacz pokazuje #### czyli bez zmian.

  • #6 14 Mar 2017 22:05
    namok
    Poziom 24  

    inspector_electro napisał:
    Albo jestem za tępy, albo to jest zbyt proste :) , albo RS232 w wyświetlaczu jest uszkodzony.
    Wysyłam komendę reset:

    Kod: vbnet
    Zaloguj się, aby zobaczyć kod


    Wyświetlacz pokazuje #### czyli bez zmian.

    A dokumentacja na to:
    Cytat:
    Error Indicator If the operating software detects either speed or framing errors during data transmission,
    each error character received is replaced on the display screen with the symbol # (ASCII
    23h).

    Czyszczenie ekranu to kod 0x15.

  • #7 14 Mar 2017 22:07
    soft.sc
    Poziom 16  

    Zgodnie z dokumentacjąVFD połączenie szeregowe powinno być połączone bezpośrednio z PC (poziomy +3 do +15 i -3 do -15) a poziomy TTL tylko na szynie danych. Jeśli masz połączenie szeregowe do J1-14 to właśnie poziomy napięć mogą być problemem.
    Konfiguracja wyświetlacza zworkami (zgodnie z datashet str. 20).
    Z AVR lepiej go użyć w trybie zgodności z HD44780 i po kłopocie (no przynajmniej tak mi się wydaje - nie używałem tego wyświetlacza), albo zastosować konwerter napięć np. MAX232 itp.

  • #8 14 Mar 2017 22:11
    inspector_electro
    Poziom 22  

    Chyba się poddam. Baud mam ustawiony na wyświetlaczu jak i w programie na 9600.

    Dodano po 1 [minuty]:


    soft.sc z MAX232 jest tak samo.

    Dodano po 1 [minuty]:

    Właśnie próbuję uruchomić ten wyświetlacz na HD44780. Ale on ma piny inne niż HD. Ten wyświetlacz to jakaś masakra.

  • #9 14 Mar 2017 22:26
    niveasoft
    Poziom 33  

    Cytat:
    # включаем автоматическое сбрасывание буфера ->wkljuciajem aftomaticieskoje sbrasywanje bufiera :D - no comment
    # на всякий случай - na wsjaki słucziaj :D - na wszelki wypadek
    # выключаем курсор - wkljuciajem kursor :D
    # знак градуса - znak gradusa - znak stopnia :D


    A tak na poważnie to nie widzisz tego poprzedzającego "C" może o to chodzi.

    Kod: vbnet
    Zaloguj się, aby zobaczyć kod


    No i co do Max232 to on odwraca polaryzację

  • #10 14 Mar 2017 22:33
    inspector_electro
    Poziom 22  

    Lipa. Nie rozumiem tego. Powinien ruszyć, a wyświetla:

    ¥¥¥¥¥¥¥¥¥¥¥¥#

  • #11 14 Mar 2017 22:33
    soft.sc
    Poziom 16  

    No to jeszcze jeden pomysł. Czy używasz zewnętrznego kwarcu do AVR-ka. Jeśli nie to konieczna kalibracja zegara wewnętrznego. Kiedyś miałem taki przypadek przy uruchamianiu VFD z kasy fiskalnej, że musiałem zmniejszyć prędkość do 4800 (konfiguracja VFD na to pozwalała) aby uzyskać pewną transmisję RS.

  • #12 14 Mar 2017 22:39
    inspector_electro
    Poziom 22  

    Studiuję tego datasheeta, ale nic nie idzie. Jakakolwiek komenda kończy się hashem.

    Dodano po 3 [minuty]:

    Kwarc jest na zewnątrz 16MHz.
    Właściwie jest 3 ustawienia jeśli patrzyłeś w pdf:
    1200, 9600, 19200 nie ma 4800.

  • #13 14 Mar 2017 22:50
    soft.sc
    Poziom 16  

    inspector_electro napisał:
    Kwarc jest na zewnątrz 16MHz


    Z tym kwarcem każda prędkość powinna działać stabilnie (no może 1200 jest za wolne), chyba że "fusy" są źle ustawione (na zegar wewnętrzny).

  • #14 14 Mar 2017 23:42
    inspector_electro
    Poziom 22  

    Coś w końcu ruszyło. Ustawiłem zworką na wyświetlaczu na 1200. Dałem MAX232. Wywaliłem z programu Baud= 9600. W programie zrobiłem tak:

    Kod: vbnet
    Zaloguj się, aby zobaczyć kod


    Wyświetla "test" w pierwszej linii. W drugiej miga kursor na początku.

    Dodano po 48 [minuty]:

    Nie mogę ustawić kursora w drugiej linii.

  • #15 15 Mar 2017 07:21
    namok
    Poziom 24  

    inspector_electro napisał:
    Nie mogę ustawić kursora w drugiej linii.

    Kod: perl
    Zaloguj się, aby zobaczyć kod

    x=0
    y=1
    Czyli jak dla mnie powinieneś wysłać dwa bajty o wartościach 0x1b i 20.

  • #16 16 Mar 2017 10:12
    inspector_electro
    Poziom 22  

    Tak też robiłem, i powinno się wyświetlać w drugiej linii. Niestety tak nie jest. Próbuję dalej.

    Dodano po 8 [godziny] 51 [minuty]:

    Ale ze mnie CYMBAŁ!
    Podałeś mi na tacy 0x1b i 20. A ja ciągle wpisywałem &H1B i &H20. A wystarczy samo 20 gdzie liczba to kolumna 1 w drugim wierszu. :oops:

    Dodano po 17 [godziny] 21 [minuty]:

    Znowu mam problem. Chodzi o "18h User Defined Character".
    Nie mogę/nie umiem wyświetlić zdefiniowanego znaku. Komendę wpisuję tak:

    Kod: vbnet
    Zaloguj się, aby zobaczyć kod


    Nie mogę tego ogarnąć. Próbowałem na różne sposoby.

  • #17 16 Mar 2017 21:19
    namok
    Poziom 24  

    inspector_electro napisał:

    Znowu mam problem. Chodzi o "18h User Defined Character".
    Nie mogę/nie umiem wyświetlić zdefiniowanego znaku. Komendę wpisuję tak:

    Kod: vbnet
    Zaloguj się, aby zobaczyć kod


    Nie mogę tego ogarnąć. Próbowałem na różne sposoby.

    Dokumentacja:
    Cytat:
    18h User Defined Character
    A 7 byte command which may be used to define up to 10 custom characters. Each character must
    be separately defined and stored in locations F6h – FFh. The command consists of the control
    code 18h, a location code and 5 bytes of character dot data.
    Czyli polecenie ma 7 znaków a u Ciebie jest 5.
    Ma być kod polecenia -18h, adres znaku(f6h-ffh) i 5 bajtów nowego znaku.
    W programie masz kod stopnia celsjusza
    Kod: perl
    Zaloguj się, aby zobaczyć kod

  • #18 16 Mar 2017 21:21
    soft.sc
    Poziom 16  

    inspector_electro napisał:
    Znowu mam problem. Chodzi o "18h User Defined Character".
    Nie mogę/nie umiem wyświetlić zdefiniowanego znaku.

    Wygląda na to, że definicja nowego znaku w tym wyświetlaczu jest mało intuicyjna. Definicja musi składać się z 7-miu bajtów w formacie:
    18 XX PP PP PP PP PP
    gdzie 18 to komenda, XX docelowy adres znaku z zakresu F6 - FF, PP bajty definicji znaków zgodnie z tabelą w datashet str. 30.
    I tak np. koleś z linku w Twoim pierwszym poście zdefiniował znak "°" (stopnie):
    Kod: perl
    Zaloguj się, aby zobaczyć kod

    czyli zgodnie z tabelą zapalił bit 3, 7,9 i 13.
    Rozpisz sobie powyższą definicję binarnie tak jak w tabeli z lewej i przypisz zapalone bity tak jak w tabeli prawej. Myślę że to zrozumiesz.

  • #19 16 Mar 2017 21:23
    inspector_electro
    Poziom 22  

    To też właśnie uczyniłem.

    Kod: vbnet
    Zaloguj się, aby zobaczyć kod


    A na wyświetlaczu ciemno.

  • #20 16 Mar 2017 21:26
    soft.sc
    Poziom 16  

    liczby definiujące znak też muszą być hexadecymalne, albo przeliczone na dec.

  • #21 16 Mar 2017 21:31
    inspector_electro
    Poziom 22  

    Hexadecymalnie też nie idzie:

    Kod: vbnet
    Zaloguj się, aby zobaczyć kod

  • #22 16 Mar 2017 21:35
    soft.sc
    Poziom 16  

    Oczywiście po zdefiniowaniu tego znaku wywołujesz go spod adresu - w tym przypadku 0xf6 ? komenda 0x18 tylko definiuje znak i umieszcza go w pamięci - sama nic nie wyświetla.

  • #23 16 Mar 2017 21:41
    inspector_electro
    Poziom 22  

    Dziękuję w końcu poszło:

    Kod: vbnet
    Zaloguj się, aby zobaczyć kod


    Myślałem że zdefiniowany znak wyświetli się od razu. Ten manual jest słabo opisany. Nie podali żadnych przykładów. Teraz spróbuję okiełznać jasność swiecenia wyświetlacza.

  • #24 16 Mar 2017 22:10
    soft.sc
    Poziom 16  

    Idea komendy 18 jest taka, że umieszczasz w pamięci wyświetlacza do 10 własnych znaków, a potem z nich dowolnie korzystasz.

  • #25 17 Mar 2017 10:16
    inspector_electro
    Poziom 22  

    Zgadza się. Można w ten sposó zdefiniować 10 znaków w adresach od F6h do FFH.

    Dodano po 50 [sekundy]:

    Dobrej nocy. Jutro znowu z nim powalczę.

    Dodano po 12 [godziny] 1 [minuty]:

    soft.sc napisał:

    Rozpisz sobie powyższą definicję binarnie tak jak w tabeli z lewej i przypisz zapalone bity tak jak w tabeli prawej.

    Mógłbyś podać przykład tak, żebym to zrozumiał? nic nie kumam z tej tabeli z lewej strony.

  • #26 17 Mar 2017 14:14
    soft.sc
    Poziom 16  

    Tabela z lewej to 5 bajtów definiujących znak, rozpisanych na poszczególne bity, a liczby wpisane przy każdym bicie to numery pikseli, które zapalą się po ustawieniu bitu. I tak rozpisując nasz przykład:
    bajt 3 00000000
    bajt 4 00000100
    bajt 5 01000100
    bajt 6 01000000
    bajt 7 00000000
    jeśli zerkniesz na tabelę z lewej to ustawione bity odpowiadają liczbom: 13 w bajcie 4; 7 i 9 w bajcie 5 oraz 3 w bajcie 6.
    Teraz zerknij na tabelę z prawej. To kolejno numerowane piksele znaku. Piksele 13, 7, 9 i 3 tworzą znak stopni.

  • #27 17 Mar 2017 19:52
    inspector_electro
    Poziom 22  

    A skąd się wzięło 13 w bajcie 3, skoro BIN to same zera? Dalej nie czaję. Czego dotyczą te liczby w lewej tabeli, pikseli?

  • Pomocny post
    #28 17 Mar 2017 21:25
    soft.sc
    Poziom 16  

    Tak, to mój błąd. Przyzwyczajony jestem liczyć bajty od zera i zmieniłem liczebniki bajtów i to w jednym poście. Już poprawiłem. Liczby w lewej tabeli to numery pikseli. Abyś dobrze to zrozumiał dodam do znaku piksele w taki sposób, aby znak stopni składał się z 8 zapalonych pikseli.
    Dla takiego znaku muszą być zapalone piksele 2,3,4,7,9,12,13, i 14 (patrz tabela prawa).
    Do tej pory wyglądał tak jak z lewej a nowy tak jak z prawej (jeden znak to 7 linii i 5 kolumn):
    00100 - 01110
    01010 - 01010
    00100 - 01110
    00000 - 00000
    00000 - 00000
    00000 - 00000
    00000 - 00000
    i zapis zmienionego znaku:
    b3 00000000 - 0x00
    b4 00010101 - 0x15 zapalam piksel 12, 13 i 14
    b5 01000100 - 0x44 zapalam piksel 7 i 9
    b6 01010000 - 0x50 zapalam piksel 3 i 4
    b7 00000001 - 0x01 zapalam piksel 2

  • #29 19 Mar 2017 11:24
    inspector_electro
    Poziom 22  

    Dziękuję serdecznie. Kliknąłem "pomógł". W razie czego pewnie jeszcze będę pisał.

    Dodano po 19 [godziny] 48 [minuty]:

    Nie mogę opanować SCROOLINGU. Wpisuję komendy:

    Kod: vbnet
    Zaloguj się, aby zobaczyć kod


    I nic się nie dzeje. Czy trzeba dopisać jakiś.... czas?

    Dodano po 15 [godziny] 6 [minuty]:

    Pomóżcie proszę drodzy forumowicze. Jak wpisywać te komendy, bo nie mam już siły. Nie działa mi ani scroll ani dimming, ani miganie znakiem. Czy ja źle wpisuję?
    Np. dla dimmingu wpisuję tak:

    Kod: vbnet
    Zaloguj się, aby zobaczyć kod


    Gdzie wg. datasheeta 30H to Dimming, FFH to wszystkie kolumny, i 07 to poziom jasności. CO JA ROBIĘ NIE TAK?
    Czy to jest nie ta kolejność, czy czegoś brakuje? HELP PLEASE!

  • #30 19 Mar 2017 17:51
    soft.sc
    Poziom 16  

    inspector_electro napisał:
    Nie mogę opanować SCROOLINGU. Wpisuję komendy:

    Kod: vbnet Rozwiń Zaznacz wszystko

    Printbin &H1B ; 20 ; &h13 ;


    I nic się nie dzieje. Czy trzeba dopisać jakiś.... czas?

    Może trzeba wpisać jakiś tekst, aby było co przewijać. Ustawiasz kursor na początku drugiej linii i wydajesz polecenie przewiń, ale co?

    Jeśli chodzi o komendy z grupy 0x3x to ich wartość koliduje z tabelą znaków i być może trzeba poinformować wyświetlacz sprzętowo, że to komenda
    Cytat:
    [A0 (RS) = High for the following Control Codes]

Szybka odpowiedź lub zadaj pytanie
Dziękuję Ci. Ta wiadomość oczekuje na moderatora.
 Szukaj w ofercie
Wyszukaj w ofercie 200 tys. produktów TME