06-12-2012, 20:56
Leszku, jak masz podłączone interfejsy do magistrali, piny A obu interfejsów pod jeden przewód, oba piny B pod drugi przewód ?
Leszku, teoretycznie masz rację, zmiana kierunku interfejsu RS485 powinna następować po zakończeniu nadawania ostatniego znaku ramki, tak przynajmniej wynika z teorii i tak podpowiada intuicja przy oglądaniu Twoich oscylogramów.
Jednak mimo zbyt wczesnej zmiany kierunku portu komunikacja przez RS485 pracuje poprawnie. Jak to możliwe ?
Komunikacja pracuje poprawie dlatego, że ramka nadawana z konsoli jest dłuższa o dwa znaki aby zachować zgodność z ramką odbieraną z terminala. Te dwa znaki [CR,LF] nie niosą żadnej informacji dlatego procesor skrzynki eATU je ignoruje a ich brak nie "rozwala" całej komunikacji.
Aby jednak wszystko było zrobione zgodnie z dobrą inżynierską praktyką poprawiłem sposób sterowania kierunkiem w konsoli i w skrzynce.
Dziękuję Leszkowi za wykrycie błędu w oprogramowaniu i rozpracowanie problemu.
(06-12-2012, 12:52)SP5MNL napisał(a): Dopiero po podłączeniu oscyloskopu okazało się że impuls przełączający nadawanie jest krótszy niż ramka danych.
Leszku, teoretycznie masz rację, zmiana kierunku interfejsu RS485 powinna następować po zakończeniu nadawania ostatniego znaku ramki, tak przynajmniej wynika z teorii i tak podpowiada intuicja przy oglądaniu Twoich oscylogramów.
Jednak mimo zbyt wczesnej zmiany kierunku portu komunikacja przez RS485 pracuje poprawnie. Jak to możliwe ?
Komunikacja pracuje poprawie dlatego, że ramka nadawana z konsoli jest dłuższa o dwa znaki aby zachować zgodność z ramką odbieraną z terminala. Te dwa znaki [CR,LF] nie niosą żadnej informacji dlatego procesor skrzynki eATU je ignoruje a ich brak nie "rozwala" całej komunikacji.
Aby jednak wszystko było zrobione zgodnie z dobrą inżynierską praktyką poprawiłem sposób sterowania kierunkiem w konsoli i w skrzynce.
Dziękuję Leszkowi za wykrycie błędu w oprogramowaniu i rozpracowanie problemu.
73 Adam

