Elektroda.pl
Elektroda.pl
X
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 19 Mar 2017 18:01 873 38
  • #31 19 Mar 2017 18:01
    inspector_electro
    Poziom 22  

    Podałem tylko przykład jak wpisuję komendę scrollingu. Natomiast do scroolu wpisuję cokolwiek czyli:

    Kod: vbnet
    Zaloguj się, aby zobaczyć kod

    Po tej operacji, pod warunkiem że umieszczę to w pętli DO LOOP, i dam opóźnienie
    waitms 500, wtedy coś tam scrolluje, ale co kilka znaków. W dodatku przesuwa to na pierwszą linię. Wyczytałem że domyślnie po włączeniu VFD, jest ustawione m.in
    VERTICAL scroll. Żeby go wyłączyć, trzeba użyć komendy 20H. Próbowałem,ale to nic nie daje. Myślałem że Vertical koliduje z Horizontal. Jeśli chodzi o A0-RS, to zwiera się ten pin do masy, przestawiając zworkę na LCD MODE.
    Walczę także z dimmingiem, z marnym skutkiem.

  • #32 19 Mar 2017 21:56
    soft.sc
    Poziom 16  

    inspector_electro napisał:
    Wyczytałem że domyślnie po włączeniu VFD, jest ustawione m.in VERTICAL scroll. Żeby go wyłączyć, trzeba użyć komendy 20H. Próbowałem,ale to nic nie daje. .


    Vertikal scroll rzeczywiście włączony domyślnie, ale nie ma komendy 20h bo to znak spacji (0d 20h to znaki ascii). Wygląda na to, że opis tego wyświetlacza jest nieco uproszczony.
    Być może do wyłączenia tej funkcji może posłużyć komenda 10h z argumentem FFh

    inspector_electro napisał:
    Jeśli chodzi o A0-RS, to zwiera się ten pin do masy, przestawiając zworkę na LCD MODE.

    Tryb wyświetlacza to co innego. LCD włącza zgodność z Hitachi. Przy komunikacji szeregowej wyświetlacz powinien pracować w trybie INTEL, a przed opisem grup komend jest:
    Dla komend z zakresu 00h ÷ 1Fh [A0 (RS) = Low for the following Control Codes] i [A0 (RS) = High for the following Control Codes] dla komend z zakresu 30 ÷ 3Fh.
    A0 (RS) to pin J1-19. Tylko nie wiem czy to zadziała w trybie transmisji szeregowej.
    Poza tym po każdej próbie lepiej resetować ustawienia wyświetlacza komendą 14h, aby wcześniejsze błędy nie miały wpływu na jego pracę.

  • #33 19 Mar 2017 22:18
    inspector_electro
    Poziom 22  

    Tak masz rację z 10h, pomyliłem się. Intela mam włączonego czły czas.
    Komenda 10h z argumentem FFh nic nie wnoisła. Resetowanie wyświetlacza mam ustawione na początku programu. Piszesz że "opis tego VFD jest NIECO uproszczony. Za mało powiedziane :).
    Czyli mam rozumieć na logikę, że pin A0-RS mam zwierać do masy, lub +5V w zależności od komend.
    Sterowanie poziomami jasności też nie działa, albo źle składam polecenia.

    Kod: vbnet
    Zaloguj się, aby zobaczyć kod


    Miganie znakiem też nie działa.

  • #34 19 Mar 2017 22:33
    niveasoft
    Poziom 33  

    Na pierwszym diagramie widać szarą przerywaną linię i napis iż sterowanie linią A0 nie dotyczy trybu Serial

    Cytat:
    Not used in Serial Mode


    Dalej można przeczytać, że programowo nie można jasności ustawić wyżej niż jest zduszona sprzętowo. Podobno pin DIMMING jest wewnętrznie podciągnięty przez rezystor 10K a do regulacji jasności zaleca się potencjometr 100K
    Może masz już najniższą jasność poprzez jakieś sprzętowe połączenia.

    Komendą &H3E można go poprosić o przeprowadzenie SELF TEST i podczas testu podobno zaprezentuje też wszystkie poziomy jasności jak i będzie mrugał z trzema różnymi częstotliwościami.

  • #35 19 Mar 2017 22:42
    inspector_electro
    Poziom 22  

    On ma dimming na full czyli &H00-domyślnie. &H07 to najniższa. Hardwareowo działa dimming, ale nie rusza softwareowo. Na razie potencjometr jest odpięty, i nie idzie. Komenda &H3E też nie działa. Działa za to przestawienie zworki na self test. Pokazuje że działa dimming, miganie znakami w 3 trybach częstotliwości i inne.

  • #36 19 Mar 2017 23:36
    niveasoft
    Poziom 33  

    Poczytałem sobie o tym "Pack"
    Jest to funkcja która zamienia poszczególne bajty na string. Dodatkową ważną informacją jest, że jak to w stringu bywa, każdy taki string będzie zakończony NULL`em czyli wartoscią 0.
    Taki string terminator.

    Bascom oczywiście też kończy stringi zerem. Kiedy więc wysyłasz :

    Cytat:
    Print "test wyswietlacza" ;

    To na końcu wyświetlacz widzi NULL

    Proponuję: Zakończyć na próbę komendy zerem czyli coś na wzór:
    Cytat:
    Printbin &H30 ; &HFF ; &H07 ; &H00 ' <-dodane zero


    Być może wyświetlacz czeka zawsze na znak NULL ;)

  • #37 19 Mar 2017 23:58
    inspector_electro
    Poziom 22  

    Uparte dziadostwo... no nie idzie za cholerę.

  • #38 20 Mar 2017 20:31
    soft.sc
    Poziom 16  

    Komenda 30h jest opisana w nocie i nie ma czego pomieszać. Powinna działać.
    A ponieważ nie działa, proponuję usystematyzować wiedzę.
    Jak rozumiem komendy z zakresu 10h ÷ 1Fh działają trochę lepiej, albo gorzej. Jest natomiast problem z komendami z drugiego zakresu 30h ÷ 3Fh.
    Tu nie działa nic. Proponuję eksperyment:
    Wysłać po kolei komendy;
    14h - reset
    16h - home cursor
    wysłać dowolny tekst kilka znaków.
    poczekać kilka sekund (trzeba zobaczyć tekst)
    potem wysłać komendy:
    33h - wyłącz ekran
    poczekać 2-3sekundy
    34h - włącz ekran
    To komendy jednobajtowe i powinny zadziałać jeśli niczego nie pominęliśmy.
    1. Jeśli komendy są rozpoznawane prawidłowo, po wyświetleniu tekstu ekran powinien zgasnąć na 2-3 sek. i ponownie się zapalić.
    2. Jeśli zamiast wygaszenia ekranu zaraz za tekstem pojawią się cyfry 3 i 4 - wyświetlacz nie rozpoznaje komend 3xh
    3. Jest jeszcze inna możliwość. Po wyświetleniu tekstu nic więcej się nie stanie i to najgorsza z nich bo nadal będziemy w punkcie wyjścia. Wyświetlacz wie że to komenda ale nie reaguje.
    W przypadku punktu 2 można spróbować ze zmianą stanu A0 na dodatni przy wysyłaniu komend 3xh (najlepiej dołączyć A0 do wolnego portu procesora i zmieniać stan w zależności co wysyłamy - wiem że nota nie każe jej używać w trybie serial, ale spróbować można)
    Jeśli chodzi o NULL to gdzieś jest napisane, że ten stan jest ignorowany.

  • #39 21 Mar 2017 07:21
    inspector_electro
    Poziom 22  

    Wyśiwetlacz nie rozpoznaje komend 3xh. Ale nie pokazują się dwie cyfry, tylko jedna po napisie "3".
    A jeśli chodzi o podanie HIGH na A0, to trzeba pewnie go podać w odpowiednim czasie. Niestety nie mogę tego doczytać.
    Podłączyłem na razie na stałe A0 do +5V, ale bez efektu. Nie działa żadna z komend 3xh.