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

[ATMEGA[BASCOM]RS 485 - nie działa po kilku min.

adambehnke 22 Paź 2010 00:40 2323 7
  • #1 8648709
    adambehnke
    Poziom 24  
    Witam

    Mam następujący problem:

    Posiadam w swojej sieci RS485 kilka pracujących modułów.
    Znajduje się w niej jeden Master i 6 Sleave-ów .

    Problem jest następujący. Jeden z modułów działa prawidłowo zaraz po podłączeniu do zasilania , tzn. odpowiada poprawnie na zapytania Master-a ale po kilku minutach zaczyna krzaczyć. Ale co śmieszniejsze krzaczenie widać na LCD Mastera , ale kiedy jednocześnie podglądam w terminalu na PC co się dzieje w sieci to ów moduł odpowiada jednak poprawnie . Czyli na zapytanie Mastera , dany moduł odpowiada ale w terminalu widzę poprawną odpowiedź a na LCD Mastera widzę krzaki. Nie wiem co jest grane. Zasilanie jest dobrze odfiltrowane i stabilne , przewód na jakim pracują moduły to skrętka UTP , zaterminowana na początku i na końcu (120R) . Czy przyczyną może być to że moduł stwarzający dziwne problemy taktowany jest wewnętrznym oscylatorem ? Czy dołożenie kwarcu może pomóc? Pytam gdyż atmega jaka w nim pracuje to wersja SMD i zanim zacznę przy niej ćwiczyć to wolę zasięgnąć porady bardziej doświadczonych kolegów.

    Tak wygląda procedura odpowiedzialna za wysłanie odpowiedzi na zapytanie Mastera:

     
    
    
       If Uart_flaga = 1 Then
    
        Input #1 , Dane Noecho
        Waitms 3                                              
    
    
    
        'ŻĄDANIE PRZESŁANIA RAPORTU 
        If Dane = "GARAZ_RAPORT" Then
        Gosub Raporter
    
     
           Set Txx
           Waitms 4
               If Len(raport) > 40 Then Print #1 , Raport ; Chr(13);
               If Len(raport) < 41 Then Print #1 , "MODUL SPRAWNY ALE RAPORT NIE KOMPLETNY" ; Chr(13);
           Waitms 5
           Reset Txx
    
    
        End If



    Konfiguracja:
    
    
    Config Serialin = Buffered , Size = 200 , Bytematch = 13  
    
    


    Przerwanie:
    
    Serial0charmatch:
    Uart_flaga = 1                                            
    Return



    Sterowanie kierunkiem nadawania-odbioru:
    Config Portb.0 = Output                                     'kierunek RS485
    Txx Alias Portb.0                                           'KIERUNEK MAX485 -USTAWIONO NA NASŁUCH SIECI
    Reset Txx


    Na tej zasadzie działąją u mnie wszystkie moduły i każdy z nich działa poprawnie poza tym jednym.
    Wszelkie sugestie będą dla mnie cenne.

    inventco.eu - temat poprawiłem - Regulamin forum p.11.1
  • Pomocny post
    #2 8649216
    markosik20
    Poziom 33  
    Namieszałeś :wink:.

    Cytat:
    ...odpowiada poprawnie na zapytania Master-a ale po kilku minutach zaczyna krzaczyć. Ale co śmieszniejsze krzaczenie widać na LCD Mastera , ale kiedy jednocześnie podglądam w terminalu na PC co się dzieje w sieci to ów moduł odpowiada jednak poprawnie


    To co "krzaczy"?
    Master dostaje poprawną odpowiedź i "krzaczy"? Czy Slave wysyła poprawną odpowiedź a mimo to "krzaczy"?
    Cytat:

    .........
    Czy przyczyną może być to że moduł stwarzający dziwne problemy taktowany jest wewnętrznym oscylatorem ? Czy dołożenie kwarcu może pomóc?


    Jak najbardziej przyczyną może być to że taktujesz "to coś" wew. oscylatorem (zwłaszcza przy nieodpowiednich prędkościach przesyłu danych).
    Druga sprawa to taka ,że masz prawdopodobnie źle opracowany protokół komunikacyjny a związku z tym i także sam soft (ideę obsługi transmisji).
  • Pomocny post
    #3 8649422
    xury
    Specjalista automatyka domowa
    Rozumiem, że tych slave'ów jest kilka i tylko z tego jednego krzaczy, a z pozostałych slave'ów wyświetla poprawnie ?
    Jeśli tak to prawdopodobnie stos najeżdża na zmienne w programie mastera.
  • Pomocny post
    #4 8650060
    gts1991
    Użytkownik obserwowany
    Nie łatwiej odpiąć salve i po kolei podłączać co parę min żeby wiedzieć który śmieci? :)
    A może masz coś nie tak z podłączeniem styków? Zamiast UTP lepiej jak byś dał FTP skrętkę z ekranem :)[/code]
  • #5 8650954
    adambehnke
    Poziom 24  
    Krzaczy , to znaczy że dostaje na masterze ciąg znaków ale większość z nich jest nieczytelna , to znaczy że po prostu otrzymuję śmieci. Ale za to na PC (w terminalu mam prawidłowe dane. Wiem który moduł mi śmieci. Linie mam spolaryzowane (spolaryzowałem nawet dla celów testowych bezpośrednio w module który mi śmieci i nadal to samo. Dziwi m,nie że w terminalu widzę poprawne dane a w masterze nie. Zdarza się bardzo często że master nawet nie odbierze nic a terminal tak.
  • Pomocny post
    #6 8652381
    xury
    Specjalista automatyka domowa
    Czy po tych kilku minutach kiedy już krzaczy i zresetujesz to znów kilka minut działa dobrze? Czy już kiedy są "ciepłe" po restarcie już jest to samo ?
    Pierwsze by znaczyło jednak problem ze stosem, a drugie, to że podgrzanemu mikrokontrolerowi na wewnętrznym oscylatorze rozjeżdża się taktowanie.
  • #7 8652981
    adambehnke
    Poziom 24  
    Kiedy jest ciepły to krzaczy cały czas bez względu na resetowanie. Ale wlutowałem wczoraj kwarc do tego modułu i podniosłem taktowanie do 12Mhz i widzę że jak na razie działa poprawnie. Jednak w tej chwili moduł ten mam 1 metr od mastera , ciekawe co będzie kiedy zwiększę odległość o około 120m. Wcześniej moduł krzaczył bez względu na odległość.
REKLAMA