Skocz do zawartości
Zaloguj się, aby obserwować  
Kocisko

Mobot-RCR-V2 (problem)

Pomocna odpowiedź

Witam

Zależało mi na szybkim zrealizowaniu komunikacji radiowej bez specjalnej wczutki. W związku z tym zaopatrzyłem się w polecane przez kilka osób moduły radiowe z Mobota, które miały mi umożliwić błyskawiczne wykonanie połączenia.

No i tutaj klops. Z żalem piszę tego posta, ale coś mi nie działa ten sprzęt :/

Posiadam wersję A (USB) i B(sam moduł), bo docelowo chcę skomunikować komputer z Atmegą.

Wersję A podłączyłem do jednego kompa, a wersję B przez Max232 do drugiego kompa.

W obydwóch kompach skonfigurowałem terminale zgodnie z instrukcją zestawu.

Prędkość 57600, bity danych:8, parzystość: brak, bit stopu:1.

No i jaki wynik?

Na jednym terminalu odbieram zawsze "xxxxxxxx", a na drugim ciąg średników.

Powyższy wynik uzyskałem dla trybu radio.

Przy trybie modem całkowita cisza.

Nie zmieniałem ustawień domyślnych modułów.

Diody LED migają tak jak mają migać, wizualnie wszystko wygląda jak by pracowało.

Jeśli ktoś potrafi pomóc to proszę o poradę 😉

Udostępnij ten post


Link to post
Share on other sites

Jeszcze nie miałem czasu modułów mobot-a uruchomić, ale o ile wiem moduł podłącza się bezpośrednio pod uart. Bez max232. Może dlatego nie działa.

Udostępnij ten post


Link to post
Share on other sites

Przez Max232 podłączam do komputera żeby przesyłać dane przez terminal

Udostępnij ten post


Link to post
Share on other sites

Na początek spróbuj prostego testu - zewrzyj tx z rx modułu podłączanego do max232 - wtedy po usb powinno działać jak echo.

Sprawdź, czy wszystkie podłączenia są ok. Ja na szybko podłączyłem i działa bez problemu. Moduły prosto z pudełka, bez jakiejkolwiek konfiguracji.

[ Dodano: 18 Kwi 10 10:34 ]

Jeszcze jedna sprawa - pamiętałeś, żeby skrosować rx z tx? tzn. podłączyć tx modułu do rx rs-232? Ja często mylę i wtedy ma prawo nie działać.

Udostępnij ten post


Link to post
Share on other sites

kurde właśnie krosowałem go już żeby dostał echo i za każdym razem dostaje "ÓÓÓÓÓÓ", albo średniki (zależy od sesji) czyli lipa...

Przy podłączaniu do procka i do drugiego kompa też próbowałem z krosowaniem i bez... :/

powiedz mi czy masz takie same numery obu modułów czy nie?

Ja mam moduł USB #10-018884, a drugi #10-018847

już łapie się wszystkiego. To bez sensu, ale może numery muszą być takie same? :/

EDIT:

Nie wiem czy to żart autorów tego urządzenia, ale mój egzemplarz nie działa przy prędkości 57600bps... działa przy 9600bps !!!

Udostępnij ten post


Link to post
Share on other sites

Nie wygląda, żeby numery miały znacznie. U mnie USB ma numer #10-018365, a ttl #09-017530.

Myślę, że musisz zacząć od komunikacji PC<->moduł USB - moduł ttl <-loopback

Czyli w module ttl łączysz tx z rx. U mnie to zadziałało od razu.

Jeszcze jedno - jakiego używasz programu do obsługi portu rs? ja używam putty, ważne, żeby w ustawieniach wyłączyć kontrolę przepływu (Flow Control).

[ Dodano: 18 Kwi 10 11:03 ]

Pierwszy test u mnie wyglądał tak:

* moduł A podłączony do komputera przez USB, putty jako terminal

* moduł B podłączony do 5V, pin TX zwarty z RX

Jak piny w module B były zwarte, na terminalu widoczne były kolejno wpisywane znaki. Rozłączenie TX-RX przerywało działanie.

  • Pomogłeś! 1

Udostępnij ten post


Link to post
Share on other sites
Myślę, że musisz zacząć od komunikacji PC<->moduł USB - moduł ttl <-loopback

Czyli w module ttl łączysz tx z rx. U mnie to zadziałało od razu.

dokładnie tak zrobiłem

korzystam w windzie z HyperTerminala, a na Linuxie QSerialPortTerminal

O zgrozo przy powyższym teście sprzęt zadziałał dla prędkości 9600bps chociaż powinien dla 57600bps

EDIT:

Moduł B (nie usb) działa dla 57600bps czyli ok

Chyba producent strzelił gafe :/

W każdym razie problem się rozwiązał, chociaż wcale nie jestem zadowolony

Udostępnij ten post


Link to post
Share on other sites

Czyli jak: jeden moduł ustawiasz na 9600 a drugi na 57600? I działa? 🤯

Na pewno ustawiłeś dobrze bity stopu, flow control i parity?

Udostępnij ten post


Link to post
Share on other sites

prędkości ustawiane dotyczą komunikacji pomiędzy komputerem, lub procesorem, a modułem radiowym. Same moduły standardowo komunikują się między sobą z prędkością 40000bps i można ją sobie zmienić na inną z zakresu 1000 - 56000 bps.

W moim przypadku najprawdopodobniej producent zaprogramował procesor w module A(usb) do transmisji z prędkością 9600bps. Dziwne, ale poza napisaniem maila do Mobota, chyba nic na to nie poradze 🙂

Udostępnij ten post


Link to post
Share on other sites

Witam,
Podepnę się pod temat. Zakupiłem te moduły z Mobotu, generalnie spisywały się dobrze, ale chciałem je trochę podrasować, czyli zmieniłem ilość przesyłanych bajtówz 8 na 2 i prędkość z 40000bps na 56000bps i....moduły przestały się prawidłowo komunikować. Czy ktoś miał problemy z ustawianiem parametrów w tych modułach? Czy da się jakoś w prosty sposób wrócić do ustawień fabrycznych?

Pozdrawiam!

Udostępnij ten post


Link to post
Share on other sites
zmieniłem ilość przesyłanych bajtówz 8 na 2
Po pierwsze, chyba bitów, a po drugie niby jak? Minimalna ilość bitów danych w standardzie UART to 5. Nie wnikam też w jaki sposób to miało podrasować komunikację 😋

Ogólnie, to proponuję wrócić do 8 bitów danych - powinno wystarczyć.

Udostępnij ten post


Link to post
Share on other sites

Właśnie bajtów a nie bitów. Odsyłam do dokumentacji: http://www.mobot.pl/download/MOBOT_RCR_v2-instrukcja_obslugi_10.2009.pdf

Moduł wysyła dane po wystąpieniu jednej, z dwóch możliwości:

1). W buforze znajdzie się ustawiona liczba bajtów

2). Minie czas 50ms od pojawienia się pierwszego bajtu w buforze nadawczym

Tak więc jest sens zmniejszania ilości bajtów w jednej paczce.

Teraz jest problem taki, choć nie rozumiem z czego to wynika(wysyłam dwa bajty), że wysyłając np. liczbę 0x43 odbiera mi np. C3 (3 jest odebrana prawidłowo). W drugim przypadku, gdy wysyłam 0x44 odbiera mi E4 (4 jest odebrana prawidłowo). Nie wiem na jakiej podstawie odbiera pierwszą część.

Udostępnij ten post


Link to post
Share on other sites

A masz dobrze ustawioną ilość bitów stopu i parzystość?

Udostępnij ten post


Link to post
Share on other sites

Tak jest. W obu przypadkach 8 bitów danych, 1 bit stopu, brak bitu parzystości. Problem w tym, że nie znalazłem możliwości "resetu" do ustawień fabrycznych a teraz, aby zmienić liczbę bajtów należy podać ciąg bajtów - jak w instrukcji. W pierwszy bajt należy wpisać 0x43, a nie jestem w stanie tego zrobić, bo mi odbiera 0xC3....

Udostępnij ten post


Link to post
Share on other sites

Też się z czymś takim spotkałem ostatnio walcząc z USARTem i komunikacją z komputerem PC. Do każdego przesyłanego bajtu dodawane było 0x80. Milion razy sprawdzałem ustawienia konfiguracyjne i jestem pewny że wszystko jest ok. Problem leży gdzie indziej tylko nie wiem gdzie.

Moje rozwiązanie problemu pewnie cię nie usatysfakcjonuje bo było prowizorką aby oddać projekt na zaliczenie w trakcie sesji i zależało mi bardziej aby się wyrobić niż żeby to idealnie działało. Postanowiłem po prostu od każdego otrzymanego bajtu odejmować tą liczbę i jakoś działało. Tym bardziej, że z górnego zakresu wartości bajtów praktycznie nie korzystałem

Udostępnij ten post


Link to post
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Gość
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

Zaloguj się, aby obserwować  

×
×
  • Utwórz nowe...