Skocz do zawartości

NodeMCU v3 + LCM1602 - nie działa magistrala I2C


adamZet

Pomocna odpowiedź

Witam. Mam problemy z obsługą I2C na NodeMcu v3.

NodeMCU v3 podłączony z LCM1602 tak jak na schemacie poniżej z tym że LCM1602 dostaje zasilanie 5V zasilacza, a GND z NodeMCU, LCM1602 i zasilacza są połączone razem. LCM1602 docelowo podłączony jest do wyświetlacza 20x4.
node_mcu_v3_lcm1602.thumb.png.67cf4316f8ad59a40c4fd65a35482e61.png


1. Po odpaleniu I2cScanner otrzymuję:

Scanning...
Unknown error at address 0x01
Unknown error at address 0x02
....
No I2C devices found


2. Po odpaleniu I2CexpDiag z https://github.com/duinoWitchery/hd44780 dostaję:

Serial Initialized
--------------------------------------------------------------------
I2CexpDiag - i2c LCD i/o expander backpack diagnostic tool
--------------------------------------------------------------------
hd44780 lib version: 1.3.2
--------------------------------------------------------------------
Reported Arduino Revision: 1.8.16
Arduino Board: ESP8266_NODEMCU_ESP12E
CPU ARCH: ESP8266 - F_CPU: 80000000
--------------------------------------------------------------------
SDA digital pin: 4 (GPIO4)
SCL digital pin: 5 (GPIO5)
--------------------------------------------------------------------
Checking for required external I2C pull-up on SDA - STUCK LOW
Checking for required external I2C pull-up on SCL - STUCK LOW
********************************************************************
ERROR: SDA or SCL stuck pin
********************************************************************
I2C bus not usable

Testowałem również na przypadkach gdzie na dwóch różnych expanderach LCM1602, gdzie nie ma podłączonego wyświetlacza i zasilacza, a zasilanie LCM1602 jest z pinu NodeMCU 3V, korzystałem również z różnych przewodów - efekt ten sam.
Sprawdziłem też piny D1 i D2 - są zdrowe (jest prawidłowe napięcie gdy ustawiony jest stan wysoki, a po podłączeniu diody i odpaleniu testowego programu prawidłowo mruga).

Ponadto sprawdziłem też to samo na innym ESP8266 - tym razem pod postacią Wemos D1 mini - tam sytuacja również jest taka sama.

Czy pominąłem jakiś krok? Jakieś sugestie?

Edytowano przez adamZet
Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Na której płytce? Bo na NodeMCU na 100% nie ma żadnych rezystorów na GPIO4/GPIO5, a jeśli chodzi o konwerter do wyświetlacza to ja się kiedyś już naszukałem dlaczego z UNO działa a z Pro Mini już nie 🙂

 

Link do komentarza
Share on other sites

10 minut temu, ethanak napisał:

O ile pamiętam potrzebne są rezystory podciągające.

Są już zawarte na płytce LCM1602. Gdybym wokorzystywał sam układ PCF8574 to wtedy było by konieczne zastosowanie ich.

Link do komentarza
Share on other sites

20 minut temu, _LM_ napisał:

Jak masz ustawione gpio w node mcu w sensie czy piny sda i scl pokrywają się z tym co jest fizycznie podłączone? 

Tak jak na zamieszczonym schemacie (po to go umieściłem). By rozwiać Twoje wątpliwości poniżej zdjęcie połączonego układu:

 

IMG_20211115_184507.jpg

Link do komentarza
Share on other sites

5 minut temu, adamZet napisał:

Są już zawarte na płytce LCM1602

Wiesz, ja tak z doświadczenia.

Zrobiłem kiedyś próbę na Arduino UNO, działało świetnie. W docelowym układzie podłączyłem Pro Mini - oczywiście zero reakcji ze strony wyświetlacza.[1] Podłączenie rezystorów podciągających 4.7k pomogło od strzału.

Oczywiście LCM1602 z "podobno" rezystorami na pokładzie.

Ja bym spróbował dwa rezystorki podłączyć...

---

[1] Teraz już wiem dlaczego. W UNO podłączane są wewnętrzne pullupy do linii i2c - ot, taka uroda tego co siedzi w "variants"

  • Lubię! 1
Link do komentarza
Share on other sites

52 minuty temu, ethanak napisał:

Wiesz, ja tak z doświadczenia.

Zrobiłem kiedyś próbę na Arduino UNO, działało świetnie. W docelowym układzie podłączyłem Pro Mini - oczywiście zero reakcji ze strony wyświetlacza.[1] Podłączenie rezystorów podciągających 4.7k pomogło od strzału.

Oczywiście LCM1602 z "podobno" rezystorami na pokładzie.

Ja bym spróbował dwa rezystorki podłączyć...

---

[1] Teraz już wiem dlaczego. W UNO podłączane są wewnętrzne pullupy do linii i2c - ot, taka uroda tego co siedzi w "variants"

Po podłączeniu pod 4,7kR na SDA i SCL rezultat jest taki sam.

Link do komentarza
Share on other sites

8 godzin temu, adamZet napisał:

Checking for required external I2C pull-up on SDA - STUCK LOW

Checking for required external I2C pull-up on SCL - STUCK LOW

********************************************************************

ERROR: SDA or SCL stuck pin

Może ja nie umiem czytać ale po mojemu on tu się pruje że pullupy nie są podłączone.

Link do komentarza
Share on other sites

Skoro ten moduł nie chce działać na żadnej z twoich płyt testowych to może oznaczać że jest uszkodzony, dla pewności zamiast tego modułu podłączyłbym coś innego na magistralę czy w ogóle zadziała. Inna opcja to sprawdzić z tym podłączonym modułem napięcia ba sda i scl, czy może któreś nie jest przywarte do masy. 

Link do komentarza
Share on other sites

46 minut temu, _LM_ napisał:

Skoro ten moduł nie chce działać na żadnej z twoich płyt testowych to może oznaczać że jest uszkodzony, dla pewności zamiast tego modułu podłączyłbym coś innego na magistralę czy w ogóle zadziała. Inna opcja to sprawdzić z tym podłączonym modułem napięcia ba sda i scl, czy może któreś nie jest przywarte do masy. 

Tak jak napisałem w pierwszym poście oraz tak jak możesz zobaczyć na pierwszym zdjęciu które dla Ciebie zrobiłem - posiadam dwa moduły LCM1602. Na obu jest taka sama sytuacja.

Link do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.