Migotanie HD44780

Do jednego ze swoich projektów dodałem ostatnio płytkę z wyświetlaczem

2x16 na HD44780. LCD jest podłączony do MCU przez PCF8574 na magistrali I2C. Na pierwszy rzut oka wszystko działa - zarówno sprzęt jak i kod ruszył od razu. Jednak po chwili dostrzegłem delikatne migotanie/przygasanie obrazu na ekranie. Efekt występuje z częstotliwością około 1Hz i trwa przez ułamek sekundy. Wygląda to tak, jakby ekran był wtedy czyszczony i zapisywany od nowa tą samą treścią. Tyle tylko, że w kodzie nic takiego nie ma miejsca.

Na początku sądziłem, że może to być winą przygasania podświetlania, ale efekt występuje również gdy jest ono zgaszone.

Zasilanie jest chyba dość dobrze filtrowane (kondensator 220uF przy złączu zasilania płytki + 100uF przy pinach podświetlania + kondensatory

100nF przy zasilaniu LCD i układów scalonych). Dodatkowo zmniejszyłem nieco prąd podświetlania, dodając rezystor 10 omów.

Objaw aż tak bardzo mi nie przeszkadza - zwłaszcza, że wyświetlacz i tak nie pokazuje niczego, w co trzeba by się wpatrywać godzinami. ;) Chciałem się tylko upewnić, czy to wada spotykana w tego typu wyświetlaczach, czy na pewno nie mogę jeszcze czegoś z tym zrobić (poza wymianą na inny egzemplarz) i czy przypadkiem nie jest to zwiastunem poważniejszych problemów.

Reply to
Atlantis
Loading thread data ...

To migotanie jest jakoś skorelowanee z komunikacją mcu-lcd?

Reply to
Marek

Nie wygląda na to. Obecnie zawartość ekrany jest zmieniania raz na cztery sekundy i wtedy za jednym razem zmienia się cała jego zawartość. Pomiędzy tymi transmisjami żadne informacje nie są wysyłane do wyświetlacza i to właśnie wtedy obraz przygasa.

Reply to
Atlantis

Atlantis snipped-for-privacy@wp.pl napisał(a):

Możesz w trakcie pracy zupełnie odłączyć linie sterujące i danych wyświetlacza. Jeśli miganie będzie nadal, to problem jest w wyświetlaczu. Poza tym możesz wymienić wyświetlacz na inny egzemplarz.

Reply to
Grzegorz Niemirowski

W dniu 2019-05-16 o 08:13, Atlantis pisze:

Czy z tą częstotliwością twoje urządzenie robi cokolwiek innego. Miałem kiedyś problem z bardzo denerwującym migotaniem podświetlenia wyświetlacza graficznego. Okazało się, że przyczyną były tętnienia na zasilaniu 3V3 na poziomie

10mV. W wyświetlaczu była przetwornica z tych 3V3 zasilająca prądowo (napięcie chyba koło 20V) podświetlanie wyświetlacza. Myślałem, że taka przetwornica pracująca na setkach kHz i regulująca prąd potrafi skompensować wahania napięcia zasilania rzędu 0,3% z częstotliwością kilku Hz. Się okazało, że nie potrafi :( P.G.
Reply to
Piotr Gałka

Może też być taki przypadek, że Chińczyk użyje translatory poziomów

5->3.3 , które nie akceptują Vioin (5V) > Vcc LCD (3.3) co powoduje przenikanie 5V z io wejściowego translatota przez diode w strukturze portu do 3.3V po stronie LCD, co z kolei powoduje tętnienia widoczne w podświetleniu podczas komunikacji:

formatting link

Reply to
Marek

Nie używam chińskich translatorów napięć. Całą płytkę zaprojektowałem samodzielnie. Wygląda to miej więcej tak:

  1. Moduł przyjmuje dwa napięcia zasilania z płytki bazowej: 5V i 3,3V. To drugie jest pobierane z LDO zasilającego mikrokontroler na płytce bazowej, ale służy tylko do podciągnięcia rezystorów w level shifterze.
  2. Na liniach SCL i SDA znajdują się wspomniane level shiftery, bodajże na tranzystorach BSS123. Konwertują one sygnały z MCU na poziomie 3,3V do 5V, używanych przez cała resztę.
  3. Właściwie wszystko na tej płytce jest zasilane z 5V: LCD, podświetlanie, dwie diody LED oraz dwa układy PCF8574.
  4. Pierwszy PCF8574 steruje wyświetlaczem (cztery linie danych + trzy linie sterujące + jedna linia niewykorzystana). Drugi służy do włączania podświetlania, migania dwiema wspomnianymi diodami oraz odczytywania stanów na czterech przełącznikach. Tu także jedna linia nie jest wykorzystywana.

W gruncie rzeczy... Chyba spróbuję wymienić wyświetlacz na inny egzemplarz...

Reply to
Atlantis

Jak masz podłączony kontrast (pin 3)? Do potencjometru czy sterujesz nim z MCU, czy jeszcze inaczej?

Jeśli do potencjometru, to jest dodatkowo odfiltrowany do masy?

Używasz w MCU WDT lub BOD? Może coś resetuje MCU?

Czy po odłączeniu magistrali I2C (lub zwarcia do masy) podczas działania problem nadal występuje?

Co pokazuje oscyloskop na liniach zasilających?

Co pokazuje oscyloskop na linii E (pin 6) wyświetlacza?

Nigdy się nie spotkałem -- tzn. raz, ale to była wina sterowania kontrastem, dlatego o to pytam.

Reply to
Queequeg

Tak, pin sterujący kontrastem jest podłączony do potencjometru - raczej dość precyzyjnego potencjometru wieloobrotowego. Nie ma żadnego kondensatora filtrującego. Prawdę mówiąc nigdy nie spotkałem się z takim rozwiązaniem na żadnym schemacie. Faktycznie tutaj może leżeć przyczyna? Standardowy 100nF będzie ok?

To zdecydowanie odpada. Zauważyłbym chociażby o tym, że ekran zostałby wyczyszczony i wyświetliłby się na nim przez chwilę komunikat powitalny. Poza tym zmieniłaby się wyświetlana zawartość, bo maszyna stanów potrzebuje trochę czasu na zebranie danych z czujników.

Nie próbowałem - eksperyment utrudniony ze względu na "zwartą"konstrukcję urządzenia. Może jednak połączę płytki jumper wire'ami i zobaczę co się stanie po odpięciu I2C podczas pracy.

Tego nie sprawdzałem. :)

Reply to
Atlantis

Też nigdy nie widziałem, ale spróbować nie zaszkodzi, nawet w pająku, tym bardziej jeśli na zasilaniu mogą być jakieś szpilki. 100 nF będzie OK.

Spróbuj, będzie wiadomo czy to zasilanie czy faktycznie jakaś dziwna komunikacja leci.

A w ogóle -- developujesz to urządzenie i tak było od samego początku, jak tylko uruchomiłeś wyświetlacz, czy zaczęło się dziać po jakichś zmianach?

Jeśli masz dostęp do oscyloskopu to spróbuj, może być pomocne.

Jeszcze dwie rzeczy:

  1. Czy po zatrzymaniu procesora (trzymanie pinu RESET w stanie aktywnym) problem ustępuje?

  1. Wyświetlacz bez komunikacji powinien pokazać jedną linię znaków z samymi zapalonymi pikselami i drugą pustą. Jeśli podłączysz sam wyświetlacz do zasilania, to tak się dzieje? Jeśli nie, to czy jak dołączysz do szyny zasilającej procesor (ale bez linii I2C), to się zaczyna?

Reply to
Queequeg

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.