Problem z driverem RS485 75176

Witam! Mam taki dziwny problem z 75176. Podlaczam kilka urzadzen do jednej szyny RS485 za pomoca tego drivera. Stan "0" jest aktywny, wymuszany za pomoca drivera, natomiast stan "1" jest recesywny, wymuszany przez terminator linii. Sam driver jest podlaczony tak, ze jego nadajnik na stale podlaczony jest do "0", a transmisja "0" polega na jego uaktywnieniu, natomiast transmisja "1" polega na zablokowaniu nadajnika. W zasadzie to dziala tak jak chce. Ale obserwowalem sobie na oscyloskopie jak to wyglada i zauwazylem niepokojace zjawisko. Wystawiam "0" i linia ustawia sie w stanie "L", jednak kiedy wystawiam "1" (blokuje nadajnik) to uklad sie tak zachowuje, jakby na chwile (ok.

4us) wystawial silna "1", co powoduje, ze magistrala na chwile wchodzi w stan "H". Daje to przykry efekt - kiedy np. dwa urzadzenia wymuszaja na magistrali "0" i jedno z nich przestaje, to na owe niecale 4us magistrala przechodzi w stan "1" i natychmiast wraca do stanu "0". Podobnie jesli magistrala przechodzi z "L" do "H" (wszystkie nadajniki sa blokowane) to widze na narastajacym zboczu sygnalu szpilke (jakies 1-2us) do prawie 5V (normalnie stan "H" to ok. 2,84V utrzymywany za pomoca rezystorow terminujacych). Czy spotkal sie ktos z takim problemem? Moze ten driver, ktory stosuje ma taki feler, ze blokowanie nadajnika powoduje przejsciowe wystawienie "1"? Za wszelka pomoc dziekuje, mam pod reka tez zrzuty z oscyloskopu, gdyby ktos z mojego metnego opisu nie polapal sie o co mi chodzi:) Pozdrawiam, T.M.F.

P.S. Jak na dwukanalowym oscyloskopie obserwowac sygnal roznicowy? Robilem to tak, ze podlaczam do jednego kanalu linie "A", do drugiego "B", a w oscyloskopie ustawiam MATH i wyswietlanie A-B. Ale moze da sie prosciej?

Reply to
T.M.F.
Loading thread data ...

Używasz ukladu niezgodnie ze standardem. Niestety nie mozesz w takich warunkach miec zadnych wymagan. Na pewno nie jest to feler ukladu, tylko zalozen. Pozostaje ci tylko modlitwa.

Reply to
mokule

Niby dlaczego niezgodnie ze standardem? Opisz jasniej to moze zrozumie moj problem lepiej. Po prostu wylaczam nadajnik ukladu, w szczegolnosci wylaczone sa wszystkie nadajniki, a odpowiednia polaryzacje linii A i B rozwiazuje wtedy terminator. Standard RS485 dopuszcza przeciez wylaczenie wszystkich nadajnikow. Moj problem dotyczy tylko tego, ze w chwili wylaczania (blokowania) nadajnik z ukladu 75176 zachowuje sie tak jakby na chwile przed wylaczeniem dawal na szyne stan logiczny "1" co IMHO jest zupelnie bez sensu i bledne. Bo spodziwealbym sie, ze blokujac nadajnik on natychmiast sie wylaczy. No chyba, ze moje szpilki biara sie z czegos innego, no ale z czego?

Pozdrawiam, T.M.F.

Reply to
T.M.F.

Taka "1" to zadna "1". Nie zapewnia zadnych parametrow szybkosciowych. Ten stan nie powinien byc uzwany jako przesylanie informacji a tylko dla wygody, kiedy wszystkie nadajniki sa wylaczone.

To nie ma prawa się zdarzyć. A jeśli juz wystapilo to i tak transmisja musi byc anulowana i nalezy zastosowac arbitraz pozwalajacy nadawac tylko 1 urzadzeniu.

Reply to
mokule

Na oscyloskopie mam szybkosc narastania zbocza z 0 do 1 calkiem niezla, a w kazdym razie duzo szybsza niz wymaga moja transmisja. Niech powrot nawet trwa 500ns (a z pomiarow mam o wiele krotszy czas) to mnie to zupelnie zadowala. Dlatego do moich zastosowan takie rozwiazanie jest ok.

Jesli daje silne "1" to masz racje. Ale ja wlasnie dlatego nie daje silnej "1" bo chce wykorzystac wired and. I podczas normalnej transmisji taka sytuacja sie nie zdarza, zdarza sie tylko podczas wyszukiwania urzadzen (wtedy kilka urzadzen wystawia bit, a nastepnie zanegowany bit, jesli odczytam 0 i 0 to wiem, ze na danej pozycji mam konflikt i wiecej niz jedno urzadzenie). Ale wracajac do problemu - problemem nie jest transmisja, standardy itd. Problem jest prosty - nadajnik z ukladu 75176 podczas wylaczania zachowuje sie tak jakby przez ok. 2us dawal na wyjsciu "1" zanim przejdzie w stan wysokiej impedancji, pomimo, ze jego wejscie jest wysterowane na "0". I pytanie - czy ten typ drivera tak ma, czy ktos zaobsrwowal podobna rzecz, ew. czy wymiana drivera na inny rozwiaze problem? Poczytalem o nadajnikach glitch-free, ale to chyba dotyczy tylko zachowania nadajnika przy wlaczaniu zasilania.

Pozdrawiam, T.M.F.

Reply to
T.M.F.

Rozumiesz chyba jednak, ze ona jest niezla tylko i wylacznie dlatego, ze wymuszana jest mocna "1".

Reply to
mokule

Mozliwe. Ale jak pisalem, szybkosc narastania nie jest dla mnie parametrem krytycznym. Natomiast wystawienie silnej jedynki przez blokowany driver jest. W sumie moge softwarowo te glitche usunac, ale wolalbym rozwiazac problem definitywnie. Zreszta nie wiem nawet czy to rzeczywiscie driver ja wystawia, czy moze pochodzenie tej szpilki jest z innego zrodla - tylko z czego - one sie pojawiaja w ukladzie z 3 driverami rs485 i dwoma terminatorami.

Reply to
T.M.F.

T.M.F. napisał:

czyli zgodnie z notą katalogową dajesz na wyjście nadajnika stan wysokiej impedancji; aby wysłać "1" to powinieneś na wejściu "D" nadajnika wystawić "1" i potem wyłączać nadajnik.

chyba nie tędy droga.

nie sprawdzałem oscyloskopem, ale "1" w transmisji szeregowej jest stanem "ciszy" - bity startu to "0", a stopu to "1", więc wszystko wydaje się logiczne; zresztą jakoś nigdy nie miałem z tym driverem problemu, co więcej okazuje się bardziej odporny na przepięcia niż scalaki MAXa (co mnie lekko dziwi).

może napisz dokładniej na jakiej zasadzie robisz to wyszukiwanie urządzeń, bo coś mi tu nie pasuje w założeniach

pozdrawiam Robert

Reply to
robmac

Wstaw po prostu diode.

Reply to
Bogdan Gutknecht

Oj, chyba jednak niezbyt precyzyjnie opisalem moj problem. Ja wlasnie nie chce aby nadajnik wysylal silna "1",bo wtedy inne nie moglyby wymusic "0". W moim projekcie szyna jest stale utrzymywana w stanie "1" przez terminatory, takze urzadzenia nadaja wylacznie "0", jesli chca nadac "1" to po prostu nie nadaja nic. A "0" nadaje w ten sposob, ze na wejscie D podaje stale "0", natomiast nadaje je poprzez odblokowanie nadajnika. I tu pojawia sie problem, bo jak blokuje transmitter to on na jakies 2us wystawia mi silna "1".

Ale ja nie nadaje tak jak w RS232. Pomijajac to zreszta, mowie tylko o warstwie fizycznej protokolu.

Ech, to byl tylko przyklad. Zasadnicz to mi wszystko dziala, tylko zaobserwowalem na oscyloskopie te glitche i mnie to zaniepokoilo. A co do wyszukiwania - robie to dokladnie tak jak opisali w 1-wire, z tym, ze zamiast szyny 1-wire mam RS485.

Pozdrawiam, T.M.F.

Reply to
T.M.F.

Bogdan Gutknecht napisał(a):

To proste rozwiazanie, niestety uklady juz gotowe i wolalbym tak nie robic. Moze jakis inny nadajnik zastosowac? Chcialbym, jesli mozna prosic, zeby ktos potwierdzil moje obserwacje dotyczace tego nadajnika. Ostatecznie zamowie kilka roznych kosci i sprawdze czy wszystkie sie tak zachowuja.

Reply to
T.M.F.

Użytkownik "T.M.F." snipped-for-privacy@nospam.mp.pl> napisał w wiadomości news:eemcdu$k7c$ snipped-for-privacy@nemesis.news.tpi.pl...

Próbujesz 'ręcznie' zrobić CANa. Nie wiem, ale oprócz gotowych driverów CANa zawierających cały arbitraż itp, może są dostępne proste drivery załatwiające tylko warstwę fizyczną. Kto wie, może nawet układ nóżek byłby zbliżony do driverów RS485. P.G.

Reply to
Piotr Gałka

Oj nie. CAN to jednak troche inna rzecz (pomijam juz warstwe logiczna protokolu). Natomiast ja chcialbym uzyskac odpowiedz tylko na jedno pytanie - czy to normalne, ze nadajnik drivera 75176 przy wylaczaniu wystawia na chwile (owe 2-4us) logiczna jedynke na wyjsciu i czy inne drivery RS485 zachowuja sie podobnie. Caly protokol mi dziala (nawet pomimo tego wkurzajacego zachowania

75176), urzadzenia sie komunikuja i wszystko jest ok. Gdyby nie oscyloskop to pewnie zylbym szczesciwy, a tak mnie to gryzie.

Na rysunku

formatting link
widac wlasnie to o czym pisze. Na linii sa 3 drivery 75176, jeden ma zablokowany nadajnik, tylko odbiera, dwa pozostale daja "0" na szyne, pod koniec nadajnik jednego z nich zostaje zablokowany, co wywoluje krotkotrwala "1" na szynie, po czym rzeczywiscie sie blokuje i na szynie mamy ponownie "0" pochodzace z drugiego nadajnika.

Na tym rysunku

formatting link
widac to jeszcze lepiej. Idac od lewej mamy "0" na szynie, nastepnie na krotko szyna wraca do stanu "1" - wszystkie nadajniki sa zablokowane, a "1" jest wymuszane przez terminatory. Nastepnie mamy ponownie "0", po ok.

60us wylaczam jeden z nadajnikow i widzimy krotki glitch do "1", po czym szyna wraca do stanu "0" na kolejne 60us, az do zablokowania drugiego nadajnika. Widac wtedy ponownie glitch, tym razem do prawie 5V generowany przez blokowany nadajnik, a nastepnie powrot magistrali do poziomu wymuszanego terminatorami. Moje pytanie dotyczy tylko tych glitchy - czy one sa typowa cecha nadajnikow rs485, czy tez 75176 po prostu tak ma. Pozdrawiam i dzieki za konstruktywne uwagi.
Reply to
T.M.F.

Użytkownik "T.M.F." snipped-for-privacy@nospam.mp.pl> napisał w wiadomości news:eemsk6$1vr$ snipped-for-privacy@nemesis.news.tpi.pl...

Moim zdaniem są następujące możliwości:

  1. On faktycznie tak ma (inne może też, a może nie). To by niczemu nie szkodziło, bo drivery w RS485 włącza/wyłącza się gdy są w stanie '1'.
  2. To są odbicia z linii (nie wiem na jakim połączeniu to mierzysz).
  3. Błąd w programie sterującym, który najpierw wystawia jedynkę, a potem dopiero Hi-Z, lub robi to równocześnie (drivery mają krótszy czas propagacji stanu niż wyłączenia).
  4. Inne

Najpierw sprawdź jeden driver obciążony tylko rezystorami i sterowany prostokątem (z generatora, a nie procesora) tylko na jednym pinie, potem można dopiero dyskutować jak zachowuje się driver. P.G.

Reply to
Piotr Gałka

Tak mogloby byc, tyle, ze przegladajac tony pdfow z driverami nigdzie nie natrafilem na uwage, ze nalezy je wylaczac wylacznie wtedy kiedy wystawiaja "1". Co wiecej w tabeli prawdy dla 75176 pokazana jest sytuacja kiedy na D jest "0", nadajnik jest blokowany i dla tej kombinacji jest Z, bez jakichkolwiek uwag.

Linie sa zaterminowane z obu stron. Zreszta gdyby to bylo odbicie to pojawialoby sie chyba tez przy przejsciu z "1" do "0"? No i towarzyszylyby temu kolejne oscylacje o mniejszych amplitudach?

Niemozliwe. Wylaczenie drivera nastepuje jedna instrukcja. Nawet gdyby byl blad to mialbym caly czas wystawiona silna "1".

Nie moge tego niestety w tej chwili sprawdzic.

Pozdrawiam, T.M.F.

Reply to
T.M.F.

Użytkownik "T.M.F." snipped-for-privacy@nospam-mp.pl napisał w wiadomości news:eeo902$3ps$ snipped-for-privacy@news.onet.pl...

Ale w praktyce tak się robi (wyłącza się po wysłaniu bitu stop, a przy włączeniu nie chce się wygenerować impulsu '0' który byłby odebrany jako początek bitu startu). Więc taki 'błąd' w driverze mógłby być niezauważony.

Nigdy dokładnie nie przyglądałem się odbiciom, ale zero masz silne, a jedynkę słabą. Silne zero może nie pozwolić na zobaczenie odbić. Poza tym w RS485 normalnie tylko jeden jest włączony (ma małą impedancję wyjściową - nie dopasowaną do linii). Zbocza z niego lecą w dwie strony i się nie odbijają bo końce dopasowane. Jak masz kilka włączonych to masz jakby zwarcia w linii, które mogą odbijać.

Może już za małe, aby zaobserwować.

Nie cały czas. Jeżeli jedna instrukcja powoduje jednoczesne ustawienie '1' i Hi-Z to miałbyś przez chwilę silną jedynkę, a potem Hi-Z

Jedno z praw Marphiego (jeśli tak się go pisze) mówi, że błąd jest zawsze tam, gdzie się go najmniej spodziewamy. P.G.

Reply to
Piotr Gałka

Trudno mi sie z tym zgodzic. Sugerujesz zrobienie czegos w sylu RS232 over RS485. Podczas gdy standard RS485 definiuje wylacznie warstwe fizyczna protokolu, bez jakiejkolwiek specyfikacji formatu przesylanych danych. No nic, kupie kilka driverow roznych producentow i zobacze czy zachowuja sie podobnie. W sumie ten 75176 to najtanszy jest, w dodatku mam jakiegos producenta noname wiec moze to jest problemem.

To mozliwe. I to byloby bardzo smutne, gdyby okazalo sie prawdziwe:)

Nie, mam na D caly czas podane "0", a owa jedna instrukcja blokuje wylacznie nadajnik. Przy D nic nie mieszam. Wykorzystuje nadajnik tylko jako - nadajemy "0" lub zablokowany.

Oj, pewnie tak. No nic, pobawie sie jeszcze i moze dojde co jest grane. Poki co, jak mowilem, na szczescie nie za bardzo mi to przeszkadza.

Reply to
T.M.F.

Użytkownik "T.M.F." snipped-for-privacy@nospam-mp.pl napisał w wiadomości news:eeobg4$d08$ snipped-for-privacy@news.onet.pl...

A czym wygodniej sterować transmisję szeregową jak po prostu UARTem ?

P.G.

Reply to
Piotr Gałka

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.