Elektroda.pl
Elektroda.pl
X
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

PIC 17C42 - próba podejrzenia RS485

sundayman 27 May 2009 14:38 1430 1
NDN
  • #1
    sundayman
    Level 25  
    Witam

    Mam taki problem...
    Otóż, próbuję "podejrzeć" transmisję RS485 pomiędzy modułami pewnego systemu. Jest to centralka + panel dotykowy LCD + moduły sterujące oświetleniem (ściemniacze).

    Całość jest już dość wiekowa (ok 2000 roku), oparta na PIC 17C42.
    Transmisja jest zrobiona standardowo , na USART + SP483. Czyli normalne RS485. Ale, nie znam ani szybkości transmisji, ani formatu.

    Co do szybkości, wzór jest dość prosty: Fosc / (64 * (n+1)), gdzie Fosc to częstotliwość kwarcu (16Mhz(, a n=0 do n=255.

    Czyli maksymalnie to jest 250kbit, potem 125kbit, 62.5kbit itp.

    PIC 17C42 nie obsługuje sprzętowego liczenia parzystości (można softwareowo), poza tym zapewne standard (8 bit + stop).

    No,czyli wydawało by sie prosto ale.... nie bardzo :)

    Żeby podejrzeć transmisję, zrobiłem sobie konwerter RS485<>RS232. Z optoizolacją (3 transoptory : dokładnie ten https://obrazki.elektroda.pl/67_1191014176.jpg).

    Program docklight 1.9

    niestety, ponieważ RS232 w komputerze nie daje wybrać dowolnie szybkości, musiałem zastosował jeszcze przelotkę USB<>RS232.
    No i wszystko cacy. Program mi łapie transmisję, daje też wysyłać.

    No, ale pozostaje kwestia szybkości i formatu.

    Mam tutaj tylko oscyloskop analogowy i to raczej z niższej półki :), i trudno mi coś sensownie złapać, ale wyglądało by mi, że transmisja jest raczej w górnym zakresie szybkości (czyli 250 albo 125 kbit).
    Co do ramki za cholerę nie idzie zobaczyć, albo wygląda dziwnie...

    Zatem, zrobiłem sobie "przelotkę" do LPT i podejrzałem programem Digitrace, co się pojawia (już na wyściu konwertera RS485 > RS232).

    Próbkowanie mam ok. 500 khz, więc powinno jakoś dać się zobaczyć.

    Ale - wyniki są dość dziwne.

    tutaj http://www.savefile.com/projects/808769424 umieściłem plik z Digitrace i dwa zrzuty ekranowe w JPG.

    (zauważyłem, że przy pobieraniu ten serwer dodaje do rozszerzenia "htm", więc trzeba to usunąć...)

    W każdym razie - za cholerę nie widzę w tym sensownej transmisji RS - żadnego bitu startu - ani czegoś co wygląda na ramkę...I jeszcze w dodatku ten "pojedynczy bit" po całej sekwencji.

    Można by sądzić, że to przechwytywanie po LPT coś nie bardzo działa - ale na oscyloskopie to wygląda podobnie - długa "sekwencja" + pojedynczy "pik".

    Żadne ustawienia w programie Docklight nie dają sensownie wyglądających danych - w sumie cokolwiek bym ustawił, to program mi wyrzuca jakieś na oko bezsensowne dane.

    Sprawdziłem loopbackiem interfejs USB<>RS i na 250kbit działa ok, czyli to raczej nie jest problemem...

    Macie jakiś pomysł ?
  • NDN
  • #2
    Szymon Tarnowski
    Level 27  
    Ja bym podłączył choćby oscyloskop i od ręki można zobaczyć jaka jest prędkość transmisji.