Witam uprzejmie.
Na obrazku przedstawiam przebiegi transmisji RS485 zrealizowanej przez mój układ.
Parametry transmisji: 19200 8N1 Układ posiada separację galwaniczną (3 transoptory dla: odbioru, nadawania, zmiany kierunku). Na wejściach diody Schottky SA16C. Zastosowano układ MAX485ECPA. Mikrokontroler ATmega16. Kabel LAPPKABEL UNITRONIC BUS LD 2x2x0,22 o długości 85 metrów, zwinięty w krąg. Na zaciskach A i B magistrali RS485 założono rezystory 120om, w obu urządzeniach. Podłączono linie A, B i C. Ekran wisi w powietrzu.
Układ działa w ten sposób, że wysyła 83 bajty, a następnie czeka na odbiór (odbiera 8 bajtów). Na przebiegach pokazano moment, gdy wysyłanie kończy się i następuje odbiór danych. Nadawanie danych przebiega prawidłowo (zdalny odbiornik otrzymuje prawidłowo dane, z prawidłową sumą kontrolną).
Problem polega na tym, że odbiornik na początku odbiera niepożądany bajt o wartości 0 (zero), po którym następuje dopiero właściwy ciąg bajtów, rzeczywiście nadany przez zdalny nadajnik.
Na podstawie przedstawionych przebiegów, wydaje mi się, że jest pewna zależność między zmianą nadawania na odbiór, a pojawieniem się stanu niskiego na linii odbioru (co powoduje pojawienie się niechcianego bajtu o wartości zero). Robiłem próbę polegającą na tym, że wprowadziłem pewną zwłokę po otrzymaniu ostatniego bajtu a zmianą nadawania na odbiór -- wtedy też zmianie sygnału przełączającego nadawanie na odbiór towarzyszyło pojawienie się w tym samym monecie stanu niskiego na linii odbiornika. Zatem można mieć chyba pewność, że przełączenie nadajnika na odbiór w jakiś sposób wpływa na linię odbiornika, co jest niekorzystne i powoduje problemy.
Proszę o pomoc w tej sprawie.
Robbo