Atlantis
Guest
Thu May 16, 2019 6:13 am
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.
Marek
Guest
Thu May 16, 2019 7:23 am
On Thu, 16 May 2019 08:13:16 +0200, Atlantis <marekw1986NOSPAM@wp.pl>
wrote:
Quote:
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ą.
To migotanie jest jakoś skorelowanee z komunikacją mcu-lcd?
--
Marek
Atlantis
Guest
Thu May 16, 2019 7:49 am
On 16.05.2019 09:23, Marek wrote:
Quote:
To migotanie jest jakoś skorelowanee z komunikacją mcu-lcd?
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.
Janusz
Guest
Thu May 16, 2019 8:18 am
W dniu 2019-05-16 o 09:49, Atlantis pisze:
Quote:
On 16.05.2019 09:23, Marek wrote:
To migotanie jest jakoś skorelowanee z komunikacją mcu-lcd?
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.
Może wd ci go resetuje?
Grzegorz Niemirowski
Guest
Thu May 16, 2019 8:41 am
Atlantis <marekw1986NOSPAM@wp.pl> napisał(a):
Quote:
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.
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.
--
Grzegorz Niemirowski
https://www.grzegorz.net/
Piotr GaĹka
Guest
Thu May 16, 2019 9:34 am
W dniu 2019-05-16 o 08:13, Atlantis pisze:
Quote:
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.
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.
Marek
Guest
Thu May 16, 2019 12:32 pm
On Thu, 16 May 2019 11:34:41 +0200, Piotr
Gałka<piotr.galka@cutthismicromade.pl> wrote:
Quote:
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
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:
https://youtu.be/Npw1RxeizB8
--
Marek
Atlantis
Guest
Thu May 16, 2019 1:17 pm
On 16.05.2019 14:32, Marek wrote:
Quote:
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:
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ę.
5. Właściwie wszystko na tej płytce jest zasilane z 5V: LCD,
podświetlanie, dwie diody LED oraz dwa układy PCF8574.
6. 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...
Atlantis
Guest
Thu May 16, 2019 4:22 pm
On 16.05.2019 17:19, Queequeg wrote:
Quote:
Jeśli do potencjometru, to jest dodatkowo odfiltrowany do masy?
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?
Quote:
Używasz w MCU WDT lub BOD? Może coś resetuje MCU?
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.
Quote:
Czy po odłączeniu magistrali I2C (lub zwarcia do masy) podczas działania
problem nadal występuje?
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.
Quote:
Co pokazuje oscyloskop na liniach zasilających?
Co pokazuje oscyloskop na linii E (pin 6) wyświetlacza?
Tego nie sprawdzałem.
Queequeg
Guest
Thu May 16, 2019 5:19 pm
Atlantis <marekw1986NOSPAM@wp.pl> wrote:
Quote:
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.
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?
Quote:
Chciałem się tylko upewnić, czy to wada spotykana w tego typu
wyświetlaczach
Nigdy się nie spotkałem -- tzn. raz, ale to była wina sterowania
kontrastem, dlatego o to pytam.
--
Eksperymentalnie:
http://facebook.com/groups/pl.misc.elektronika
Queequeg
Guest
Thu May 16, 2019 7:10 pm
Atlantis <marekw1986NOSPAM@wp.pl> wrote:
Quote:
Jeśli do potencjometru, to jest dodatkowo odfiltrowany do masy?
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?
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.
Quote:
Czy po odłączeniu magistrali I2C (lub zwarcia do masy) podczas działania
problem nadal występuje?
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.
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?
Quote:
Co pokazuje oscyloskop na liniach zasilających?
Co pokazuje oscyloskop na linii E (pin 6) wyświetlacza?
Tego nie sprawdzałem.
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?
2. 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?
--
Eksperymentalnie:
http://facebook.com/groups/pl.misc.elektronika