Debug RX linije MAX485 modula

Vse v zvezi z vašimi samogradnjami, popravili, idejami,....

Debug RX linije MAX485 modula

OdgovorNapisal/-a Nimfrod6 » 05 Mar 2023, 14:24

Za potrebe pametne hiše razvijam neko lastno rešitev, ki vključuje modbus relay module (image 4 na imgur linku).
Da ESP32 lahko komunicira s tem modulom uporabljam MAX485 TTL-to-RS485 (image 6), v katerem tudi tiči težava. Težava je namreč, da ESP ne more prebrati povratnih informacij, ker napetostni nivo RO pina MAX485 modula ne pade nižje od 2,88V (image 3).

Glede na shemo (image 8) bi moral biti RE pin LOW, ko ESP32 bere podatke, kar tudi je. Zakaj torej napetostni nivo RO pina ne pade dovolj?
Edino kar mi pade na pamet, da bi morda bil vzrok, je to, da naj bi ta MAX485 modul deloval s 5V, ampak LOW je 0V pri 3.3V ali 5V..? :_dunno


priloge na https://imgur.com/a/K8m46hM
Pri slikah osciloskopa je rumeni graf kanal 1, vijolični pa kanal 2
Nimfrod6
 
Prispevkov: 7
Pridružen: 29 Nov 2021, 13:20
Zahvalil se je: 3 krat
Prejel zahvalo: 0 krat
Uporabnika povabil: miharix
Število neizkoriščenih povabil: 0

Re: Debug RX linije MAX485 modula

OdgovorNapisal/-a Nimfrod6 » 05 Mar 2023, 15:54

Prispevek s slikami
TL;DR: napetost RO pina TTL-RS485 modula ne pade pod 2,88V, ko modul prejema podatke in jih zatorej ESP32 krmilnik ne razbere

Za potrebe pametne hiše razvijam neko lastno rešitev, ki vključuje modbus relay module.
relay modbus module.jpg
Slika 1: Relay modul v uporabi.


Da ESP32 lahko komunicira s tem modulom uporabljam MAX485 TTL-to-RS485, v katerem tudi tiči težava.
RS485 module.png
Slika 2: TTL - RS485 modul v uporabi.


Težava je namreč, da ESP ne more prebrati povratnih informacij, ker napetostni nivo RO pina zgornjega MAX485 modula ne pade nižje od 2,88V.
RO A+ - Copy.png
Slika 3: kanal 1, rumen, je RO pin RS485 modula, kanal 2, vijoličen, je A+ modbus povezave. Kot je razvidno rumeni kanal se ne spusti nižje od 2,88V.


Glede na shemo MAX485 čipa bi moral biti RE pin LOW, ko ESP32 bere podatke, kar tudi je.
MAX485 IC schematic.png
Slika 4: shema MAX485 čipa v uporabi.


Na grafu je najprej pošiljanje zahteve nato sledi odgovor. Ko je odgovor prisoten je RE pin LOW, kar pomeni na RS485 modulu prejemanje, a kot rečeno tekom tega prejemanja napetost na RO ne pade dovolj.
RE B-.png
Slika 5: kanal 1, rumen, je RE pin RS485 modula, kanal 2, vijoličen, je B- modbus povezave



Zakaj torej napetostni nivo RO pina ne pade dovolj? Težav pri TX ni, relay module deluje zanesljivo, samo povratne informacije ESP ne more dobiti
Edino kar mi pade na pamet, da bi morda bil vzrok, je to, da naj bi ta MAX485 modul deloval s 5V, ampak LOW je 0V pri 3.3V ali 5V..? :_dunno
Napetost napajanja modula je konstantna
VCC DI.png
Slika 6: kanal 1, rumen, je VCC pin RS485 modula, kanal 2, vijoličen, je DI pin RS485 modula


Pri TX težave ni, DE pin je HIGH, DI linija lepo preklaplja med 0V in 3.6V
DE DI.png
Slika 7: kanal 1, rumen, je DE pin RS485 modula, kanal 2, vijoličen, je DI pin RS485 modula


Še samo vezje TTL-485 modula. Je možno, da je težava v tem, da je napajanje 5V, krmiljenje pa 3.3V? Načeloma je RE pin LOW (0V) v obeh primerih.. :_dunno
RS485 module schematic.png
Slika 8: Kot dodatek še vezje samega TTL-RS485 modula
Nimfrod6
 
Prispevkov: 7
Pridružen: 29 Nov 2021, 13:20
Zahvalil se je: 3 krat
Prejel zahvalo: 0 krat
Uporabnika povabil: miharix
Število neizkoriščenih povabil: 0

Re: Debug RX linije MAX485 modula

OdgovorNapisal/-a Sigi » 05 Mar 2023, 18:28

Meni zgleda kot da ti ena od rs485 enot ne gre v sprejem, ampak je na oddaji in ne sprosti parice. 3.3V CMOS nivoji gredo s ttl nivojsko običajno lepo skupaj, preveri le, če je vhod na 3,3V cmos strani 5V kompatibilen
...
Sigi
 
Prispevkov: 451
Pridružen: 23 Jan 2015, 01:57
Kraj: Kamnik
Zahvalil se je: 363 krat
Prejel zahvalo: 271 krat
Uporabnika povabil: s54mtb
Število neizkoriščenih povabil: 57

Re: Debug RX linije MAX485 modula

OdgovorNapisal/-a lojzek » 05 Mar 2023, 19:38

neumno mogoče, ampak nisem zasledil v postih, da imaš dva max485 v uporabi? Enega pri sprejemniku, enega pri oddajniku...
Kajti dva max-a med sabo po A-B linijah komunicirata "diferenčno", torej nivo signala med njima ni pomemben (0-5V). Šteje potencialna razlika - predznak signala med A-B linijama na oddajniku in sprejemniku.
Na drugih straneh obeh max-ov pa imaš šele TTL nivoje.
lojzek
 
Prispevkov: 306
Pridružen: 25 Feb 2015, 14:18
Zahvalil se je: 9 krat
Prejel zahvalo: 77 krat
Uporabnika povabil: Proteus
Število neizkoriščenih povabil: 7

Re: Debug RX linije MAX485 modula

OdgovorNapisal/-a Nimfrod6 » 05 Mar 2023, 21:16

V sistemu je samo en MAX485 modul, relay modul ima že svoj vgrajen modbus čip. Nisem preveril terminacije na relay modulu, MAX485 čip jo ima, hkrati je povezava zelo kratka (cca 10cm) in tudi ni videti šuma ipd. na osciloskopskih posnetkih.

esp32_to_relay_module_schematic.png
"ESP na Modbus relay module" shema


Nisem izrecno posnel A+ in B- parici skupaj, sta pa invertirani in obe skačeta med 0,64V in 4,64V, tako da na modbus povezavi ne bi rekel, da gre za napako.

PS: pina D25 in D26 ESP32-ke sta krmiljena skupaj - ko je en LOW je tudi drugi LOW, ko je en HIGH je tudi drugi HIGH. Ko ESP pošilja komando sta HIGH, ko želi prejeti odgovor sta LOW.
PPS: 5V pin ESP32 ni dejansko 5V ampak 4.6V, zaradi diode med USB napajanjem in tem 5V pinom, iz česar sledi, da ima TTL-RS485 modul na VCC pinu 4.6V
Nimfrod6
 
Prispevkov: 7
Pridružen: 29 Nov 2021, 13:20
Zahvalil se je: 3 krat
Prejel zahvalo: 0 krat
Uporabnika povabil: miharix
Število neizkoriščenih povabil: 0

Re: Debug RX linije MAX485 modula

OdgovorNapisal/-a forest70 » 05 Mar 2023, 22:25

Nimfrod6 je napisal/-a:V sistemu je samo en MAX485 modul, relay modul ima že svoj vgrajen modbus čip. Nisem preveril terminacije na relay modulu, MAX485 čip jo ima, hkrati je povezava zelo kratka (cca 10cm) in tudi ni videti šuma ipd. na osciloskopskih posnetkih.

esp32_to_relay_module_schematic.png


Nisem izrecno posnel A+ in B- parici skupaj, sta pa invertirani in obe skačeta med 0,64V in 4,64V, tako da na modbus povezavi ne bi rekel, da gre za napako.

PS: pina D25 in D26 ESP32-ke sta krmiljena skupaj - ko je en LOW je tudi drugi LOW, ko je en HIGH je tudi drugi HIGH. Ko ESP pošilja komando sta HIGH, ko želi prejeti odgovor sta LOW.
PPS: 5V pin ESP32 ni dejansko 5V ampak 4.6V, zaradi diode med USB napajanjem in tem 5V pinom, iz česar sledi, da ima TTL-RS485 modul na VCC pinu 4.6V

ESP32 ni 5V tolerant, zato lako tu tiči problem. Uporabi uporove delilnike .
If you pay in bananas, you got monkeys.
Uporabniški avatar
forest70
 
Prispevkov: 2812
Pridružen: 14 Jan 2015, 01:11
Kraj: Koper
Zahvalil se je: 496 krat
Prejel zahvalo: 653 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 134

Re: Debug RX linije MAX485 modula

OdgovorNapisal/-a Nimfrod6 » 07 Mar 2023, 11:50

Ko sem dodal uporovni delilnik sem opazil, da na R0 pinu v resnici lepo preklaplja med 4,6V in 0V, na D2 pinu (RX Serial1 od ESP32) pa je napetost bila, še vedno, konstantnih 3,3V.
esp32_to_relay_module_schematic_serial2.png
Dodan uporovni delilnik na RX linijo in sprememba iz Serial1 na Serial2


Sem prestavil komunikacijo na Serial2 (pina D16 in D17 na ESP32) in sedaj deluje brez problem.

TL;DR: napaka v resnici na ESP32 Serial1. Kaj točno ne vem, je pa prestavitev na Serial2 odpravila težavo.

Hvala vsem za odgovore!
Nimfrod6
 
Prispevkov: 7
Pridružen: 29 Nov 2021, 13:20
Zahvalil se je: 3 krat
Prejel zahvalo: 0 krat
Uporabnika povabil: miharix
Število neizkoriščenih povabil: 0

Re: Debug RX linije MAX485 modula

OdgovorNapisal/-a VolkD » 07 Mar 2023, 13:31

ESP32 ni 5 volt tolerant. Prej nisi imel uporovnih delilnikov - obstaja možnost, da imaš Serial1 hardversko pokurjen, zato ti ni delalo.
Dokler bodo ljudje mislili, da živali ne čutijo bolečine, bodo živali čutile, da ljudje ne mislijowww.S5tech.net
Uporabniški avatar
VolkD
Administratorji strani
 
Prispevkov: 62022
Pridružen: 29 Dec 2014, 20:49
Kraj: Kačiče (Divača)
Zahvalil se je: 17360 krat
Prejel zahvalo: 9514 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 255

Re: Debug RX linije MAX485 modula

OdgovorNapisal/-a dejko1 » 07 Mar 2023, 14:21

Po shemi pinouta boarda meni izgleda, da sta pina označena z D2, D3 priklopljena na onboard flash in zato nista uporabna za druge namene?
dejko1
 
Prispevkov: 442
Pridružen: 12 Feb 2015, 13:47
Kraj: Ljubljana
Zahvalil se je: 60 krat
Prejel zahvalo: 165 krat
Uporabnika povabil: gumby
Število neizkoriščenih povabil: 165

Re: Debug RX linije MAX485 modula

OdgovorNapisal/-a Nimfrod6 » 07 Mar 2023, 15:51

ESP32 ni 5 volt tolerant. Prej nisi imel uporovnih delilnikov - obstaja možnost, da imaš Serial1 hardversko pokurjen, zato ti ni delalo.

Možno, na Serial1 sem že iz prve zvezal direktno na RO brez delilnikov.. :_silent Če bom imel viška časa bom vrnil na Serial1 skupaj z uporovnim delilnikom in novim ESP.. pa da vidimo.. :D

Po shemi pinouta boarda meni izgleda, da sta pina označena z D2, D3 priklopljena na onboard flash in zato nista uporabna za druge namene?

Potemtakem tudi TX ne bi deloval?
Nimfrod6
 
Prispevkov: 7
Pridružen: 29 Nov 2021, 13:20
Zahvalil se je: 3 krat
Prejel zahvalo: 0 krat
Uporabnika povabil: miharix
Število neizkoriščenih povabil: 0


Vrni se na Pametne hiše

Kdo je na strani

Po forumu brska: 0 registriranih uporabnikov in 1 gost