Film demonstrujący działanie sterownika LCD z tego odcinka kursu: https://youtu.be/6xA3YP8uHJs
Repozytorium autora kursu: https://github.com/leonow32/verilog-fpga
Multipleksację wyświetlacza LED już znamy. Była omawiana w 9 odcinku kursu. Polega na tym, że każda cyfra uaktywniana jest za pomocą osobnej elektrody. Możliwe jest wyświetlanie tylko jednej cyfry jednocześnie, ale dzięki szybkiemu przełączaniu cyfr ludzkie oko widzi wyświetlacz tak, jakby wszystkie cyfry świeciły się jednocześnie. Elektrody odpowiadających sobie segmentów (oznaczonych od A do G oraz segment kropki P) są ze sobą połączone. W tak zorganizowanym wyświetlaczu mamy 8 elektrod segmentów i tyle elektrod wspólnych, ile jest cyfr w wyświetlaczu. Wszystkie elektrody sterowane są stanem niskim lub wysokim i nie ma żadnych stanów pośrednich.
Jak działa multipleksowany wyświetlacz LCD?
Multipleksacja wyświetlacza LCD niestety jest dużo trudniejsza. Na rysunku 1 pokazano schemat połączeń wyświetlacza LCD-S401M16KR, który zastosowano na płytce MachXO2-Mega. Taki układ jest często stosowany w wyświetlaczach cyfrowych LCD wielu producentów, ale niestety nie jest standardem stosowanym przez wszystkich. Pomimo że wyświetlacz ma cztery cyfry i cztery elektrody wspólne COM, to elektrody wspólne nie aktywują pojedynczych cyfr, a grupy segmentów we wszystkich cyfrach. Aby zaczernić segment, musimy uaktywnić elektrodę COM i jednocześnie uaktywnić odpowiadającą mu elektrodę SEG. Na przykład aktywowanie elektrody COM3 sprawia, że możliwe staje się wyświetlenie segmentów A oraz F we wszystkich cyfrach, jeżeli aktywowane są także odpowiadające im elektrody SEG0...SEG7. Taki sposób sterowania sprawia, że moduł wyświetlacza multipleksowanego, jaki opracowaliśmy w 9 odcinku kursu, jest w tym przypadku zupełnie bezużyteczny.
W tym momencie musimy wprowadzić jeden z dwóch kluczowych parametrów wyświetlaczy LCD, jakich używają ich producenci – duty. Parametr ten mówi, przez jaki czas cyklu aktywna jest jedna elektroda wspólna (i jednocześnie ile jest elektrod wspólnych). Typowo stosuje się:
- 1 duty – brak multipleksacji, 1 elektroda wspólna sterująca wszystkimi segmentami,
- 1/2 duty – dwie elektrody wspólne,
- 1/3 duty – trzy elektrody wspólne,
- 1/4 duty – cztery elektrody wspólne,
- i tak dalej…
Sprawę dodatkowo komplikuje fakt, że elektrody większości wyświetlaczy LCD sterować trzeba nie tylko stanem wysokim czy niskim, ale także stanami pośrednimi. Tutaj pojawia się kolejny parametr, czyli bias, określający, jakimi napięciami należy sterować piny wyświetlacza. Możliwe są następujące opcje (gdzie 1 oznacza napięcie zasilania):
- 1 bias – stosowane są tylko dwa stany: 0 oraz 1,
- 1/2 bias – stosowane są trzy stany: 0, 1/2 i 1,
- 1/3 bias – stosowane są cztery stany: 0, 1/3, 2/3 i 1,
- 1/4 bias – stosowanych jest pięć stanów: 0, 1/4, 1/2, 3/4 oraz 1,
- i tak dalej…
Wyświetlacz, jaki będziemy stosować, ma 1/4 duty oraz 1/3 bias, zatem przy napięciu zasilania 3,3 V poszczególne stany będą mieć napięcia 0 V; 1,1 V; 2,2 V oraz 3,3 V. Dla wygody w dalszej części tekstu część ułamkową będziemy zaokrąglać.
Aby było jeszcze trudniej – między każdym segmentem a elektrodami wspólnymi napięcie średnie musi być równe zero. Jeżeli doprowadzimy do tego, że segmenty wyświetlacza będą zasilane napięciem stałym, to po pewnym czasie dojdzie do uszkodzenia ciekłych kryształów. Zatem musimy w bardzo specyficzny sposób naprzemiennie odwracać sygnały sterujące wyświetlaczem w taki sposób, żeby napięcie chwilowe pomiędzy elektrodami COM i SEG było równe +3 V lub –3 V dla segmentów widocznych oraz +1 V lub –1 V dla segmentów niewidocznych.
Zobaczmy teraz, jak wyglądają przebiegi napięć na elektrodach wspólnych COM naszego wyświetlacza. Takie przebiegi muszą występować przez cały czas pracy niezależnie od tego, które segmenty wyświetlacza mają być zaczernione.
Cały cykl sterowania można podzielić na osiem części, które łącznie stanowią jedną ramkę. Każda z tych części trwa 5 milisekund. Części możemy podzielić na dwie grupy:
- W częściach od 1 do 4 – aktywna elektroda COM ma napięcie 3 V, a nieaktywne elektrody COM mają napięcia 1 V.
- W częściach od 5 do 8 – aktywna elektroda COM ma napięcie 0 V, a nieaktywne elektrody COM mają napięcie 2 V.
W ten sposób aktywna jest zawsze tylko jedna z czterech elektrod COM. Natychmiast po zmianie aktywnej elektrody COM musimy aktywować odpowiednie elektrody SEG, aby zaczernić żądane segmenty.
Segment C zaczerniany jest, kiedy aktywna jest para COM1-SEG0, a segment D staje się widoczny po aktywacji pary COM0-SEG1. Dla poprawy czytelności pominięto nieistotne sygnały COM2, COM3 oraz SEG2…7.
Podobnie jak w przypadku sterowaniu elektrodami COM, sterowanie elektrodami SEG możemy podzielić na dwie grupy: