Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 25 kwi 2024, o 10:59


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 13 ] 
Autor Wiadomość
PostNapisane: 1 sie 2014, o 10:08 
Offline
Nowy

Dołączył(a): 12 wrz 2013
Posty: 18
Pomógł: 0

Cześć,

próbuję zrobić komunikację rs485 między PC <-> ATmega16 z użyciem ft232.

Wysyłam już pojedyncze znaki w obie strony, ale mam następujący problem/pytanie:

Po wysłaniu wiadomości z PC wiadomość trafia do uC ale i też jest odbierana przez PC, czy to jest normalne?

Przebieg komunikacji wygląda tak:
1. PC wysyła 'A'
2. PC odbiera 'A' / uC odbiera 'A'
3. uC wysyła 'B'
4. PC odbiera 'B'

i nie wiem dlaczego PC odbiera mi to co wysłał czyli 'A'.
odłączyłem zasilanie z max485 i zgodnie z zamiarem uC przestał odbierać sygnał z PC, ale PC w dalszym ciągu odbiera to co wysłał.
Wygląda to tak, jakby PC wysyłał dane do ft232 i je za chwilę odbierał. Czy tak to działa? Czy ja coś źle robię?

Dane wysyłane przez uC nie są odbierane przez uC - czyli jest OK w tą stronę.

Dodam, że soft na PC napisałem w javie, przy pomocy biblioteki jd2xx i mam podejrzenia, że ta biblioteka to powoduje.

Proszę o pomoc, ewentualne wyjaśnienie tematu.
Dzięki.

------------------------ [ Dodano po: 5 minutach ]

Korzystam z tej biblioteki:

http://bleyer.org/jd2xx/



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 sie 2014, o 13:08 
Offline
Użytkownik

Dołączył(a): 12 lut 2014
Posty: 25
Pomógł: 0

Podejrzewam, że masz zwarcie linii po stronie PC, dlatego odbiera to co wysyła.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 sie 2014, o 13:49 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 02 sty 2014
Posty: 116
Pomógł: 9

Masz włączone ECHO po stronie komputera

_________________
"Actum ne agas!"



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 sie 2014, o 14:00 
Offline
Nowy

Dołączył(a): 12 wrz 2013
Posty: 18
Pomógł: 0

Jak to wyłączyć?

Bo odnośnie tego zwarcia to nie mam pomysłu gdzie by mogło być.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 sie 2014, o 14:09 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 02 sty 2014
Posty: 116
Pomógł: 9

a czego używasz do odbioru? Zazwyczaj w ustawieniach terminala albo komendą. A przeszkadza Ci to?

_________________
"Actum ne agas!"



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 sie 2014, o 14:33 
Offline
Użytkownik

Dołączył(a): 12 lut 2014
Posty: 25
Pomógł: 0

Odłącz USB i sprawdź, czy nie masz zwarcia np. między pinem 1. i 5., 15. i 16.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 1 sie 2014, o 16:10 
Offline
Nowy

Dołączył(a): 12 wrz 2013
Posty: 18
Pomógł: 0

Zwarcia nie ma.

Do komunikacji używam biblioteki JD2XX.dll i obsługuję ją javą. Oczywiście dokumentacja znikoma i nic nie mogę znaleźć na temat echa. W sumie mi to nie przeszkadza, ale po co zbędne komunikaty.

Jak działa to echo? skąd bierze się ta odpowiedź?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 3 sie 2014, o 10:06 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 19 cze 2014
Posty: 820
Lokalizacja: Tam gdzie PYRY są
Pomógł: 64

To raczej UC wysyła echo jako potwierdzenie tego co odebrał. Nie wiem jak jest w C ale powinno być coś takiego jak NOECHO albo ECHO OFF

_________________
IntegraMETEO
WordCLOCK
IntegraTOUCH



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 4 sie 2014, o 17:26 
Offline
Nowy

Dołączył(a): 12 wrz 2013
Posty: 18
Pomógł: 0

To nie może być odpowiedź od UC bo odpowiedź dostaję nawet jak odłączę UC. PC sam sobie jakoś odpowiada...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 sie 2014, o 22:07 
Offline
Nowy

Dołączył(a): 12 wrz 2013
Posty: 18
Pomógł: 0

Zrobiłem kolejne testy,
początkowe testy przeprowadzałem na układzie:
PC->ft232->max485=max485->UC

teraz rozłączyłem maxy i mi zostało:
PC->ft232->max485
ft232 i max jest połączony wg schematu:
Obrazek

jeśli odłączę RXD (między max485 a ft232) to wtedy przestaję otrzymywać to co wysłałem, a więc echo wraca mi z max485.
W pierwszym momencie wydawało mi się, że jest coś nie tak ze sterowanie nadawania i odbierania (piny CBUS2 i CBUS3 w ft232) ale,
to działanie wydaje się być całkiem logiczne:
PC wysyła dane, ft232 wyrzuca dane na TXD po czym przełącza się na odbiór, max485 rozsyła dane, które trafiają również do niego samego, a ft232 widzi to na RXD.
Czy dobrze myślę? Czy to jest normalne zachowanie? Pierwszy raz mam styczność z taką komunikacją i chciałem poznać źródło tego echa.

z góry dziękuję za pomoc,
pozdrawiam



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 6 sie 2014, o 22:28 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

To ten schemat to powoduje, bo sterowanie przepływem masz rozdzielone dlatego odbiornik masz stale włączony i odbiera on to co jest akurat nadawane. Jak chcesz pozbyć się echa to odłącz linię sterowania odbiornika od PWREN# i podłącz do TXDEN, gdzie nadajnik już jest podpięty (możesz też pobawić się konfiguracją i na CBUS3 też dać TXDEN).

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 sie 2014, o 17:41 
Offline
Nowy

Dołączył(a): 12 wrz 2013
Posty: 18
Pomógł: 0

Dzięki kolego Krauser, podłączyłem TXDEN na oba piny max485 i nie ma echa:)

Zacząłem sobie testować komunikację i wygląda, że UC ładnie odbiera dane od PC, jednak na PC jakieś 20% wiadomości to krzaki. Zacząłem sprawdzać połączenia i wszystko wygląda dobrze, więc z braku pomysłu wyjąłem rezystory 120 om (2 sztuki) wpięte w linie między max485 tuż przy tych maxach (w tej chwili w układzie mam 2 sztuki max485 - przed PC i UC) i po wyjęciu nie ma błędów, czyli prawidłowo działa mi komunikacja bez tych rezystorów.
Odległość między max485 była jakieś 10cm, myślałem, że może to jest jakiś powód, teraz włożyłem kabel 1m i z rezystorami dalej przekłamuje co którąś odpowiedź, a bez rezystorów jest ok.

Czy może ktoś rozwinąć temat tych rezystorów? (może one są potrzebne dopiero jak jest więcej jak 2 max485?).

Dzięki.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 sie 2014, o 20:59 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

W twoim schemacie z jednej strony linii umieść dodatkowo rezystor 1k Podciągający A do 5V i drugi rezystor 1k ściągający linię B do GND. Pewnie masz stare scalaki i jak nikt nie nadaje to na linii RS485 jest 0V, a to oznacza odbieranie śmieci. Rezystory 120R są potrzebne, ale na bliskich odległościach nie są konieczne.

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 13 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 8 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
cron
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO