V tomto příspěvku si dovolím zveřejnit svou knihovnu pro ovládání alfanumerických LCD s driverem HD44780 nebo ST7066 či dalších ekvivalentů. Než začnete číst, dovolím si vás odkázat na poznámku o zapojeních která by vám měla udělat jasno v problematice "3V vs 5V".
/ Vlastnosti knihovny |
využívá zapojení "3+4", tedy 3 kontrolní linky (RS, RW, E) a 4-bitovou datovou sběrnici (D4,D5,D6,D7)
každá linka se pomocí maker mapuje individuálně a může být na libovolném pinu
podporuje 1,2 a 4 řádkové displeje
má implementované čtení "busy" vlajky (proto používá RW linku)
umí komunikovat pomocí open-drain a push-pull výstupů a umožňuje tak komunikovat "3V" MCU s "5V" displejem
obsahuje funkci pro zápis uživatelských symbolů
má podporu pro low-power aplikace (nulování pullup proudů v LCD)
knihovna vyžaduje přítomnost _delay_us() funkce (pro STM8 přiložena v delay.h)
Vnitřní pullup "rezistory" (jimiž jsou vybaveny piny RS,RW,D0..D7) dodávají proud 20-200uA. Pro snížení spotřeby je vhodné po dobu kdy s displejem nekomunikujeme držet tyto piny v úrovni H. V takovém stavu tyto proudy netečou a to může mít zásadní vliv na spotřebu (k tomu jsou v knihovně funkce lcd_bus_sleep() a lcd_bus_wakeup().
Například displej v ilustračním obrázku RC2001A-FHY má klidovou spotřebu (při zobrazování s 5V napájením a 50k trimrem na kontrast) 1mA a "pullup proudy" tak mohou jeho spotřebu zvednout až o 60%.
Nebo displej ED16250 TRH má ve stejné situaci spotřebu 0.55mA, v jeho případě pak "pullup proudy" mohou hrát dominantní roli.
Home | V1.02 6.7.2020 / | By Michal Dudka (m.dudka@seznam.cz) /