eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaHD44780 i szybkie MCU › HD44780 i szybkie MCU
  • Path: news-archive.icm.edu.pl!news.icm.edu.pl!.POSTED.cdf154.neoplus.adsl.tpnet.pl!no
    t-for-mail
    From: Atlantis <m...@w...pl>
    Newsgroups: pl.misc.elektronika
    Subject: HD44780 i szybkie MCU
    Date: Tue, 23 Jan 2024 17:53:07 +0100
    Organization: ICM, Uniwersytet Warszawski
    Message-ID: <uooqtj$2mrjf$1@news.icm.edu.pl>
    Mime-Version: 1.0
    Content-Type: text/plain; charset=UTF-8; format=flowed
    Content-Transfer-Encoding: 8bit
    Injection-Date: Tue, 23 Jan 2024 16:53:07 -0000 (UTC)
    Injection-Info: news.icm.edu.pl;
    posting-host="cdf154.neoplus.adsl.tpnet.pl:83.30.155.154";
    logging-data="2846319"; mail-complaints-to="u...@n...icm.edu.pl"
    User-Agent: Mozilla Thunderbird
    Content-Language: en-US, pl-PL
    Xref: news-archive.icm.edu.pl pl.misc.elektronika:787795
    [ ukryj nagłówki ]

    Ktoś z was ma doświadczenie z uruchamianiem wyświetlaczy HD44780 na
    (relatywnie) współczesnych mikrokontrolerach?
    Mam urządzenie zbudowane w oparciu o PIC32MX795F512L. Do tej pory
    korzystałem z wyświetlacza HD44780 (4x20) za pośrednictwem ekspandera na
    I2C. Niestety komunikacja była dość wolna - tym bardziej, że układ
    reprezentuje rewizję, która miała hardware'owego buga i na tym
    konkretnym porcie I2C trzeba było ponawiać konfigurację przed każdą
    kolejną transmisją.

    W wolnej chwili postanowiłem więc przeprojektować moduł wyświetlacza i w
    miejscu ekspandera zastosowałem dwukierunkowy translator poziomów
    TXB0108. Dwukierunkowy, bo zamierzam korzystać z funkcji odczytu flagi
    zajętości (była ona również wykorzystywana w wersji z I2C).

    Przepisałem sterownik, wywalając z niego obsługę I2C. Zamiast tego
    komunikację oparłem na na GPIO. Po podpięciu nowej wersji interfejsu LCD
    okazało się, że działa on tylko częściowo. Mianowicie jeśli wyłączę
    obsługę linii RW (i zamiast sprawdzania flagi zajętości dam
    standardowego delay'a 120 us) to wszystko działa zupełnie poprawnie. A
    to oznacza, że GPIO są skonfigurowane poprawnie i komunikacja w stronę
    wyświetlacza działa.

    Problem pojawia się, gdy próbuję włączyć obsługę RW i czytać flagę
    zajętości. Wtedy wyświetlacz niby się inicjuje i nawet jest w stanie
    poprawnie wyświetlić kilka tekstów, ale w chwilę później układ się
    zawiesza (podejrzewam, że własnie na pętli sprawdzania bitu zajętości) i
    zalicza reset WDT. I tak w kółko...

    Próbowałem dodawać delay'e 1-10 us po zmianach stanów linii RW i EN, a
    także po zmianie konfiguracji pinów skaładających się na czterobitową
    magistralę danych (wejście lub wyjście), jednak nie przyniosło to
    żadnego rezultatu.

    Ktoś ma pomysł co może być nie tak?

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: