logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

RS485 master i 2 slave problem z komunikacja

bosman49 10 Cze 2009 17:13 4098 12
REKLAMA
  • #1 6639440
    bosman49
    Poziom 10  
    Prezegladnalem kilka postow dotyczacych rs485 ale rozwiazania nie znalazlem. Moj uklad to PC z przejsciowka do rs485 i dwa atmega 32. Kiedy podlacze jeden slave uklad smiga bez problemow lecz kiedy podlacze drugi slave komunikacja siada ( nic nie gada w zadna strone). Dodam ze ramka zawiera numer slave i odpowiada tylko jeden ( sprawdzalem z jednym slave) obydwa slave sa identycznie takie same Atmega 32 8Mhz taktowanie, 4800, 120 omow na obu koncach A i B do + i - przez 1k rezystor. Odpytywanie z VB6 przez mscomm. Atmega32 - Bascom.
  • REKLAMA
  • #2 6641358
    sinuh3
    Poziom 17  
    Oki, a jak się zachowują kombinacje: najpierw jeden slave, potem drugi?
  • REKLAMA
  • #3 6641428
    bosman49
    Poziom 10  
    Troche nie lapie jakie kombinacje. Czy chodzi o odpytywanie? Chyba rozumiem. Inaczej troche. Aplikacja w VB6 odpytuje tylko jeden. Pierwszy lub drugi. Nawet wylaczylem nadawanie kompletnie jednego ze slaves i dalej nie gada z drugim . Dodam ze w tym momencie slave maja wspolne zasilanie. Do PC-ta wracaja jakies smieci i zawsze te same.
  • #4 6641445
    sinuh3
    Poziom 17  
    Najpierw podłącz jeden, potem go odłącz, następnie podłącz drugi. Oczywiście zakładam, że jeden z slave'ów nie działa jak powinien.
  • #5 6641451
    bosman49
    Poziom 10  
    Nie sprecyzowalem. Obydwa slave odpowiadaja masterowi w ukladzie master-slave. Dopiero w momencie jak podlacze dwa slave i master komunikacja siada.
  • REKLAMA
  • #6 6641458
    sinuh3
    Poziom 17  
    Pytanie z gatunku oczywistych: Czy numery slaveów wgrane w atmegi są napewno różne?
  • #7 6641464
    bosman49
    Poziom 10  
    Tak i sprawdzilem z jednym slave. POdlaczam slave Id1. Jezeli jest odpytywany slave 1 to dostaje potwierdzenie, jezeli dwa to nie dostaje ( bo jest nie podlaczony). I tak samo sprawdzilem drugi. I dodam ze poaza tym atmegi nic nie dostaja od mastera. A master nadaje bo widze na terminalu rs 232. Ciekawe co?
  • #8 6641470
    sinuh3
    Poziom 17  
    NO to nie kumam:/ Bez obejrzenia na oscyloskopie co się dzieje na linii będzie ciężko. Jedyne podejrzenie jakie mam, to, że przejściówka Ci prądowo nie wyrabia, ale to musiały być kopnięte albo obwody wejściowe albo te rezystory 1k o których pisałeś.
  • #9 6641473
    bosman49
    Poziom 10  
    Ok ja to sprawdze na oscyoskopie tylko co powwino byc? Ja tez mysle ze cos jest nie tak z samym torem rs485. Sprobuje zmienic te rezystory na 2,2 k. gdzies czytale ze takie tez daja.
  • #10 6641478
    sinuh3
    Poziom 17  
    Jeżeli komunikacja z jednym slavem CI działa, to najpierw obejrzyj jak ona wygląda. Powinny być tam dwie paczki danych pierwsza to pytanie z kompa, druga po kilkunastu milisekundach to odpowiedź z slave'a. Zapewne będą o delikatnie różnej amplitudzie i trochę z innym offsetem, ale to naturalne.
    Potem podłącz drugiego slave'a i zobacz co się dzieje wtedy z sygnałem. Wynikami pochwal się tutaj:)
  • REKLAMA
  • #11 6641481
    bosman49
    Poziom 10  
    tak tez zrobie. Dzieki
  • #12 6642216
    hotdog
    Poziom 26  
    IMO masz coś zepsute przy przełączaniu między transmisją a nadawaniem. Czy masz to rozwiązane automatycznie - np przeze timer NE555, czy przez linie ustawioną na wyjście. Najlepiej tą linię podciągnąć przez rezystor 10K do gnd (ja używam 4,7k - bardziej odporne na zakłócenia), wtedy podłączając urządzenie nie zakłóci się transmisji nim uC się ustawi, ale to już off top.

    Teraz tak, niezależnie czy masz tak czy inaczej połącz linie /RE i DE i ustal na nich stan GND (podłącz do masy przez rezystor, lub bezpośrednio) na jednym z urządzeń. Wtedy będzie ono cały czas odbierało dane (bez możliwości nadawania) i podłącz drugie urządzenie w normalny trybie. Jeżeli komunikacja zadziała no to wiesz już gdzie leży błąd z drugim urządzeniem no to wszystko działa. Możesz też wtedy sprawdzić z pierwszym urządzeniem np mrugając diodą jeżeli zapytanie wysłane do niego. Możesz też oba ustawić na odbiór i mrugnąć diodką jeżeli zapytanie wysłane do urządzenia.

    Generalnie transmisja będzie działać bez rezystorów rzędu 1K do + i -. Tak samo bez 120Ω na końcach, które z tego co wiem są istotne przy długich kablach.

    Przedstaw jeszcze swój protokół, bo jest on w sumie istotne żeby było jakieś crc, adresowanie i preambuła pakietu.

    Pozdrawiam hot-dog
  • #13 6645174
    bosman49
    Poziom 10  
    No znalazlem przyczyne. Te rezystory 1k. Usunalem z jednego ze slave ( mialy obydwa) i dziala. Dzieki za pomoc.
REKLAMA