EP 2006_05.pdf
(
36207 KB
)
Pobierz
663584970 UNPDF
VGA44780 – znakowa karta wideo do systemów mikroprocesorowych
VGA44780 – znakowa
karta wideo do systemów
mikroprocesorowych
AVT–940
Ewolucja mikroelektroniki
znajduje swoje odbicie w dążeniu
do udoskonalania sposobów
interakcji człowieka z maszyną.
Tendencja ta sprawia, że
nowoczesne urządzenia – choć
coraz bardziej wyrafinowane
– są proste w obsłudze
i przyjazne użytkownikowi.
Interfejs użytkownika ma
bowiem niemałe znaczenie
– sprzyja konkurencyjności danej
technologii i poszerza grono jej
odbiorców.
Rekomendacje:
artykuł polecamy Czytelnikom,
którzy odczuwają brak dużych,
a przy tym tanich urządzeń
wyświetlających. Zainteresować
powinien on również osoby,
stosujące układy programowalne.
Produkowany przez firmę Hitachi
sterownik alfanumerycznych wyświe-
tlaczy ciekłokrystalicznych HD44780
to układ, który wszyscy świetnie
znamy. Wbudowujemy go w postaci
modułu LCD w wielu urządzeniach.
Jego poważną zaletą jest prosta ob-
sługa i niska cena. Praktyka pokazu-
je, że wyświetlacze alfanumeryczne
LCD i VFD mają ograniczone moż-
liwości prezentacji informacji, a ich
większe wymiarami wersje są dro-
gie. Co więcej, typowe wyświetlacze
LCD są monochromatyczne, a kształ-
ty wyświetlanych znaków są stałe
(ich zbiór może być co prawda po-
szerzany, ale w bardzo ograniczonym
zakresie). Choć jeszcze do niedaw-
na eksponowany na płycie czołowej
wyświetlacz LCD o organizacji 2x16
znaków świadczył o „inteligencji” da-
nego urządzenia, to dzisiaj odczucia
mogą być wręcz przeciwne.
tor ten posiada wejście 14–pinowe,
stanowiące interfejs zgodny z tym,
do jakiego przyzwyczaiły nas mo-
duły oparte na HD44780. Myślimy
„niemożliwe”? A jednak!
W artykule przedstawiamy projekt
urządzenia, pozwalającego zamienić
monitor CRT w wyświetlacz, który
możemy podłączyć do systemu mi-
kroprocesorowego zamiast modułu
LCD. Urządzenie o nazwie VGA-
44780 charakteryzuje się identycz-
nym interfejsem fizycznym i bardzo
zbliżonym protokołem komunikacji
do protokołu jego przodka – ste-
rownika HD44780.
PODSTAWOWE PARAMETRY
PODSTAWOWE PARAMETRY MODELU HDL
• Język opisu: VHDL
• Wysoka zgodność logiczna z HD44780
• Wiele funkcji dodatkowych względem
HD44780
• Tryb VGA: 640x480, 60 Hz
• Liczba dostępnych kolorów: 8
• Format znaków: 5x8 pikseli
• Objętość pamięci: 128x64 znaki
• Obszar wyświetlania: 106x48 lub 53x24
znaki
• Wersja szablonów znakowych: europejska
• Wbudowane polskie znaki
• Częstotliwość taktowania: 50 MHz
• Liczba zajętych slice–ów FPGA: 350 (18%
XC3S200)
Forma projektu
Omawiane urządzenie zostało
opisane w języku VHDL i można
je zaimplementować w dowolnym
układzie FPGA z rodziny Spartan 3
firmy Xilinx (dla innych układów
wymagane mogą być pewne mody-
fikacje). Takie „miękkie” podejście
do projektowania układów jest od
wielu lat standardem w przemyśle
elektronicznym. Obecnie, czy się
nam to podoba czy nie, metody
stosowane dawniej tylko do pro-
jektowania układów scalonych roz-
PODSTAWOWE PARAMETRY OBWODU
AVT–940
• Napięcie zasilania: 5 V
• Średni pobór prądu: 65÷75 mA
• Kompatybilność napięciowa interfejsu:
3,3 V i 5 V
• Wymiary PCB: 120x70 mm
Znany interfejs, większy ekran
Spójrzmy na standardowy, ko-
lorowy monitor VGA, jaki stoi na
naszym biurku. Pomyślmy, jak duży
jest w jego przypadku stosunek ilo-
ści wyświetlanej informacji do ceny.
A teraz wyobraźmy sobie, że moni-
10
Elektronika Praktyczna 5/2006
P R O J E K T Y
VGA44780 – znakowa karta wideo do systemów mikroprocesorowych
Rys. 1. Uproszczony schemat blokowy układu VGA44780
przestrzeniają się na układy cyfro-
we w ogóle. Wygląda więc na to,
że jako elektronicy wkrótce będzie-
my musieli pogodzić się z faktem,
że najważniejszym etapem projek-
towania urządzeń będzie ich opis
w języku HDL i komputerowa symu-
lacja. Kto wie, być może i projekto-
wanie obwodu drukowanego będzie
w przyszłości polegać głównie na
tworzeniu jego opisu?
Chwilowo jednak zejdźmy na
ziemię i zajmijmy się możliwymi
„ciałami” opisywanego urządzenia.
Projekt można bowiem zbudować
na wiele sposobów, z których omó-
wione zostaną dwa:
– w oparciu o dedykowany obwód
AVT–940,
– z użyciem dowolnej płyty uru-
chomieniowej dla układów
FPGA.
ekranu (
DCRAM
). Układ generacji
obrazu ma natomiast za zada-
nie wytwarzać sygnały koloru (R,
G i B) i synchronizacji (HS i VS)
w oparciu o zawartości wymienio-
nych pamięci. Zarówno moduł
CTRL_LOGIC
, jak i
DISP_CTRL
mają dostęp do wszystkich pamię-
Rozwiązania układowe
Na strukturę blokową VGA44780
składają się trzy zasadnicze czę-
ści (
rys. 1
): układ sterujący pracą
urządzenia (
CTRL_LOGIC
), bloki pa-
mięciowe i układ generacji obrazu
(
DISP_CTRL
). Urządzenie taktowane
jest sygnałem zegarowym o często-
tliwości 50 MHz (
clock_50MHz
),
a sygnałem zerującym jest !reset.
Układ sterujący udostępnia in-
terfejs zgodny z HD44780, służący
do komunikacji z urządzeniem nad-
rzędnym. W blokach pamięciowych
przechowywane są szablony zna-
ków (
CGRAM
), aktualna zawartość
pamięci ekranowej (
DDRAM
) i in-
formacja o kolorach przyporządko-
wanych poszczególnym pozycjom
Rys. 2. Domyślna zawartość pamięci CGRAM układu VGA44780
Elektronika Praktyczna 5/2006
11
VGA44780 – znakowa karta wideo do systemów mikroprocesorowych
Rys. 3. Schemat karty graficznej
12
Elektronika Praktyczna 5/2006
VGA44780 – znakowa karta wideo do systemów mikroprocesorowych
ci układu, ale tylko ten pierwszy
ma możliwość modyfikacji ich za-
wartości. Przy tym układ sterujący
może wpływać na pracę modułu
generacji obrazu za pośrednictwem
sygnału
disp_mode
.
Zawartość pamięci CGRAM przygotowała dla
nas siostra autora – Kasia.
poziomej, to jednocześnie wyświe-
tlanych może być 106x48 znaków.
Moduł
DISP_CTRL
odpowiada
również za wyświetlanie kursora,
przeprowadzanie operacji przesuwa-
nia obrazu i jego powiększanie (funk-
cja dodatkowa względem HD44780).
Funkcje te kontrolowane są przez
CTRL_LOGIC
za pośrednictwem sy-
gnału rekordowego
disp_mode
.
Moduł
CTRL_LOGIC
Układ sterujący pracuje w cią-
głym oczekiwaniu na rozkazy i da-
ne. W tym celu obserwuje on linie
specjalne interfejsu (
bus_RS
,
bus_
RW
i
bus_E
), a po wykryciu odpo-
wiednich stanów przejściowych od-
biera lub przesyła wartości poprzez
dwukierunkową magistralę
bus_DB
.
Po każdej transmisji nadchodzącej
zachodzi dekodowanie odebranej
informacji i uruchamiany jest po-
tok przypisanych jej działań (np.
zapis do pamięci DDRAM – jeśli
przesyłane były dane; czyszczenie
ekranu – jeśli przesyłane były roz-
kazy itp.).
Za wykonanie tej żmudnej i mało efektownej
pracy dziękujemy wraz z autorem projektu!
Poza eliminacją konieczności do-
łączania zewnętrznych układów sca-
lonych, implementacja pamięci we-
wnątrz układu FPGA daje dodatko-
we korzyści. Pamięć typu
blockRAM
ma bardzo cenną właściwość – daje
możliwość określenia jej zawartości
początkowej. Dzięki temu możemy
przykładowo predefiniować kody
szablonów znakowych i sprawić, że
znajdą się one w pamięci CGRAM
już w trakcie konfiguracji układu
FPGA (czyli automatycznie, zaraz
po włączeniu zasilania). W efekcie
moduł
CGRAM
projektu zawiera nie
tylko opis strukturalny tej pamięci,
ale i definicje wszystkich zawartych
w niej szablonów znakowych. Po-
dobnie, pamięć
DDRAM
jest wypeł-
niana początkowo znakami pustymi
(0x20 – spacja), a
DCRAM
– kodami
koloru białego (0x7).
Funkcje dodatkowe
Przyjrzyjmy się teraz różnicom
funkcjonalnym między VGA44780
a jego przodkiem. Najpoważniejszą
zmianą jest oczywiście powiększe-
nie obszaru wyświetlania. Pociągnę-
ło to za sobą konieczność adreso-
wania położenia kursora w osiach X
i Y. Również konstrukcja instrukcji
przesuwu kursora i obrazu została
zmodyfikowana tak, że oś przesuwu
musi być w jej przypadku dodatko-
wo określana.
W układzie HD44780 pamięć sza-
blonów znakowych miała postać pa-
mięci ROM, a tylko 8 pierwszych
szablonów (czyli 64 komórki pamię-
ci) mogło być zapisywane z pozio-
mu interfejsu. VGA44780 rozszerza
tę możliwość na cały obszar pamięci
CGRAM, ponieważ jest ona w jego
przypadku w całości pamięcią typu
RAM. Problemem jest jednak fakt,
że bezpośrednio zaadresować można
wyłącznie 8 początkowych szablonów
(tj. 64 początkowe bajty CGRAM, co
jest ograniczeniem wynikającym z pro-
tokołu). Jednak, korzystając z mecha-
nizmu autoinkrementacji adresu przy
zapisie do pamięci, można nadpisać
dowolnie długi obszar CGRAM, pod
warunkiem rozpoczęcia od jednej
z 64 początkowych komórek. Innym
rozwiązaniem jest wstępna inkremen-
tacja adresu CGRAM do pożądanej
wartości poprzez kolejne operacje od-
czytu tej pamięci.
Jak już wspomniano, domyślną
zawartość CGRAM stanowią kody
szablonów znaków. Odwzorowują
one szablony zawarte w HD44780
wersji europejskiej (patrz
rys.
2
).
Przy tym zawartość 16 początko-
wych komórek CGRAM stanowią
szablony polskich znaków diakry-
tycznych, które zebrano w
tab.
1
.
Funkcją dodatkową jest możli-
wość używania kolorów. Aby z niej
skorzystać, wystarczy wybrać aktu-
alny kolor pisania (domyślnie biały)
– jest on pamiętany aż do chwili
jego zmiany. Informacja o kolorach
poszczególnych pozycji ekrano-
Moduły pamięciowe
Projekt wymaga trzech osob-
nych, szybkich (20 ns), dwupor-
towych bloków RAM o organizacji
2x8 kb, 8x8 kb i 8x3 kb. Gdzie
szukać tak nietypowych elemen-
tów? Otóż są one na wyciągnięcie
ręki w postaci pamięci
blockRAM
implementowanej w układach FPGA
firmy Xilinx. Układ XC3S200 ma
wbudowanych 12 dwuportowych
bloków pamięci RAM o pojemności
2 kB każdy. Jedyne, co należy zro-
bić, to odpowiednio połączyć sie-
dem z nich – połączenia te są opi-
sywane w modułach
CGRAM
,
DDRAM
i
DCRAM
projektu.
Moduł
DISP_CTRL
Działanie modułu generacji obra-
zu sprowadza się do zliczania im-
pulsów sygnału zegarowego o czę-
stotliwości 25 MHz i generacji sy-
gnałów synchronizacji obrazu oraz
sygnałów wizji. Chwilowa wartość
licznika pikseli informuje o aktu-
alnej pozycji plamki na ekranie,
a zatem i o numerze znaku, który
powinien być w danej chwili wy-
świetlany. Na podstawie tej infor-
macji, z pamięci
DDRAM
pobierany
jest kod znaku, a informacja o jego
kolorze – z
DCRAM
. Kod pobrany
z
DDRAM
stanowi z kolei adres sza-
blonu znakowego w pamięci
CGRAM
.
Odnaleziony w ten sposób szablon
wraz z informacją pobraną z
DCRAM
determinuje, czy i które linie obrazu
(R, G, B) mają zostać uaktywnione
(ustawione w stan wysoki).
Generowany przez moduł obraz
jest zgodny ze standardem VGA.
Posiada on rozdzielczość 640x480
i jest odświeżany z częstotliwością
60 Hz. Ponieważ znaki mają roz-
miar 5x8 pikseli i zastosowano 1
piksel interlinii pionowej oraz 2
Tab. 1. Predefiniowane polskie znaki
diakrytyczne w pamięci CGRAM
Adres
w CGRAM
Znak
0x00
Ą
0x01
Ć
0x02
Ę
0x03
Ł
0x04
Ń
0x05
Ó
0x06
Ś
0x07
Ż
0x08
ą
0x09
ć
0x0A
ę
0x0B
ł
0x0C
ń
0x0D
ó
0x0E
ś
0x0F
ż
Elektronika Praktyczna 5/2006
13
Plik z chomika:
avs2
Inne pliki z tego folderu:
EP 2006_01.pdf
(55455 KB)
EP 2006_02.pdf
(41918 KB)
EP 2006_03.pdf
(73096 KB)
EP 2006_04.pdf
(45496 KB)
EP 2006_05.pdf
(36207 KB)
Inne foldery tego chomika:
• Monitory LCD schematy
• Odtwarzacze CD audio
• Schematy spawarek
• Schematy TV LCD i plasma
• TV LCD i plasma schematy
Zgłoś jeśli
naruszono regulamin