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

Implementacja sterowania wyświetlaczem LCD w układzie CPLD

Kubald 06 Mar 2013 22:29 13392 0
REKLAMA
  • Implementacja sterowania wyświetlaczem LCD w układzie CPLD

    Autor przygotował już kilka artykułów dotyczących sposobów sterowania wyświetlaczem LCD 16x2 ze sterownikiem HD44780, jednakże do tej pory nie miał okazji zająć się sposobem łączenia z programowalnymi układami logicznymi (CPLD czy FPGA) i implementowania obsługi wyświetlacza w języku Verilog czy VHDL. W niniejszym artykule zostanie więc pokazane, jak rozpocząć „współpracę” wyświetlacza LCD i programowalnego układu logicznego – zarówno ze strony sprzętowej jak i programowej.

    Demonstrację działania przykładowej implementacji obsługi wyświetlacza w układzie CPLD można zobaczyć na poniższym nagraniu:





    W urządzeniu pracuje układ CPLD taktowany sygnałem zegarowym 25,175 MHz, a opis połączeń logicznych przygotowano w języku VHDL.

    Jako programowalny układ logiczny wybrano układ CPLD EPM71288LC od Altery.

    Schemat całości można zobaczyć poniżej. Do zaprogramowania układu CPLD potrzebny będzie programator, np. ByteBlasterMV. Jako generator sygnału zegarowego wybrano oscylator 25,175 MHz, ale każdy, o częstotliwości większej od 10 MHz, nada się do tego urządzenia.

    Implementacja sterowania wyświetlaczem LCD w układzie CPLD

    Oczywiście układ CPLD nie steruje wyświetlaczem bezpośrednio, lecz poprzez wysyłanie odpowiednich komend do kontrolera HD44780. Pełna lista komend widnieje poniżej (jest ich jedynie 11):

    Implementacja sterowania wyświetlaczem LCD w układzie CPLD

    Wyświetlacz może być sterowany dwojako (co wynika z powyższej tabeli), stosując szynę danych o długości 4 bądź 8 bitów. Dzięki komendzie „Function set” można ustalić długość szyny danych, ilość pracujących linii wyświetlacza i zestaw czcionek. Większość pozostałych komend jest wykorzystywana sporadycznie.

    Ponieważ komendy muszą być wysyłane kolejno, jedna po drugiej, wykorzystana będzie maszyna stanów – unikalny termin wprowadzony na potrzeby układów CPLD/FPGA.

    Implementacja sterowania wyświetlaczem LCD w układzie CPLD

    Obraz powyżej pokazuje, jakie będą kolejne kroki „programu” napisanego w VHDL. Każdy z 32 stanów odpowiada albo komendzie sterującej wyświetlaczem albo przesłaniu do wyświetlacza danych dotyczących znaku, który ma się na nim pojawić.

    Do testów urządzenie zostało zmontowane na płytce uniwersalnej, z wykorzystaniem połączeń owijanych.

    Implementacja sterowania wyświetlaczem LCD w układzie CPLD

    Kod w VHDL składa się z dwu części – pierwszej, odpowiedzialnej za wysyłanie komend sterujących do wyświetlacza i drugiej – odpowiedzialnej za wysyłanie danych dotyczących znaków do wyświetlenia.

    Kod wysyłający dane sterujące pokazany jest poniżej. Dane są przekazywane w momencie podania opadającego zbocza na wyprowadzenie ENABLE wyświetlacza. Układ komunikuje się z wyświetlaczem LCD za pomocą 8-bitowej szyny danych. Jak widać, wysyłanie danych przy użyciu równoległej szyny danych do wyświetlacza jest bardzo proste.

    Kod: VHDL
    Zaloguj się, aby zobaczyć kod


    Kod przesyłający dane dotyczące wyświetlanych znaków również nie jest złożony:

    Kod: VHDL
    Zaloguj się, aby zobaczyć kod


    Szybkość wyświetlania znaków została specjalnie obniżona, aby móc obserwować progres działania maszyny stanów.

    Więcej szczegółów dotyczących projektu, a także spakowane kody w języku VHDL można znaleźć na stronie źródłowej.

    Fajne? Ranking DIY
    O autorze
    Kubald
    Poziom 15  
    Offline 
    Specjalizuje się w: spektroskopia exafs/xanes, uc, it
    Kubald napisał 188 postów o ocenie 112. Mieszka w mieście Kraków. Jest z nami od 2004 roku.
  • REKLAMA
REKLAMA