logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

BTM222 z Mega128 przez RS232 - błędne ramki i nieprawidłowe dane

nsvinc 12 Mar 2008 16:23 3382 7
REKLAMA
  • #1 4900860
    nsvinc
    Poziom 35  
    Posty: 2870
    Pomógł: 262
    Ocena: 88
    Czy ktos sie bawił juz modułem BTM222? W internecie informacji praktycznie brak, i dzieją się FENOMENY w postaci:
    ustawiam procka na USART0, 19200,8,N,1
    czyli dokladnie tak jak ma domyslnie ten moduł
    Moduł nie odpowiada na transmisje...:/
    Zamiast tego wysyła sam z siebie jakis smietnik składający sie głównie z błędnych ramek...
    A jak juz uda mu sie cos wyslac bez bledu (a czasami mu sie udaje)
    to są to liczby najczęsciej 0 lub 255....i pare razy zdarzylo sie 224 :/ Ja juz wymiekam....
  • REKLAMA
  • #2 4901682
    crazy_phisic
    VIP Zasłużony dla elektroda
    Posty: 2244
    Pomógł: 278
    Ocena: 131
    A może Kolega zamieści sposób podłączenia do uP, wróżeniem z fusów się nie zajmujemy ;).
  • REKLAMA
  • #3 4901758
    nsvinc
    Poziom 35  
    Posty: 2870
    Pomógł: 262
    Ocena: 88
    Podłączenie po RS232, pomiedzy modułem a prockiem są dwa konwertery 74lvc4245 5>3.3 i 3.3>5 odpowiednio TDX(mega), RXD(mega)
    Chyba przy 19200bd nie jest az tak istotna predkosc transmisji...
    Teraz po przekombinowaniu ukladu mam efekt nastepujacy:
    Wysylam cos najprosztszego zaczerpniętego z datasheeta do modułu, komende AT:
    ATN?[cr][lf]
    dostaje w odpowiedzi 10 bajtów zawierających ZERA.
    Błędów ramki nie ma, czyli wygląda na to ze moduł umyślnie wysyła mi te zera :/
    Oczywiscie podłączyłem piny sterujące handshakingiem RTS/CTS do procka i wymusilem na CTS permanentna mase (odczyt bajtów obsługuje przerwanie, więc nie widze konieczności handshakingu)
    Moze trzeba wprowadzić moduł w stan "komend AT"?
    I gdzie szukać dokumentacji do komend SPP AT? Nigdzie w internecie nie znalazlem...:/
  • REKLAMA
  • #4 4901901
    crazy_phisic
    VIP Zasłużony dla elektroda
    Posty: 2244
    Pomógł: 278
    Ocena: 131
    Przecież zestaw poleceń jest zawarty w dokumentacji, co moduł odpowiada na "Z?" ?
  • #5 4901945
    Fyszo
    Poziom 37  
    Posty: 3987
    Pomógł: 223
    Ocena: 115
    Do testów podłącz pod terminal Windy i sprawdź czy ci moduł poprawnie działa. Możliwy problem w napięciach.

    Zjedź zasilaniem procka na niższe napięcie i wtedy popróbuj.
  • REKLAMA
  • #6 4902012
    nsvinc
    Poziom 35  
    Posty: 2870
    Pomógł: 262
    Ocena: 88
    Raczej nie ma problemu w napięciach, wszystkie stany są prawidłowo przetwarzane z 5v na 3.3 i na odwrót, miernik za 300 złotych nie kłamie :)
    Pusciłem polecenie ATZ?[cr][lf]
    Odpowiedź = 00 00, dokladnie dwa bajty odebrał i oba są zerami. Ciekawa zależność: jeśli procesor zgłasza błąd ramki podczas odbioru paczki informacji od BT, to pojawia sie tam [cr] lub [lf] (0A,0D)
    Tego to juz wogóle nie rozumiem :/ Mam datasheeta i przeczytalem go juz ze 100x i nadal...wysylam komendy na które otrzymuje odpowiedź w postaci zer....:(
  • #7 4903765
    Fyszo
    Poziom 37  
    Posty: 3987
    Pomógł: 223
    Ocena: 115
    nsvinc napisał:
    ... wszystkie stany są prawidłowo przetwarzane z 5v na 3.3 i na odwrót, miernik za 300 złotych nie kłamie :)...


    To niczego nie dowodzi. Dziwne że akurat masz albo 0 (brak napięć) albo FF (pełne napięcie). Jeśli moduł może pracować bez handshakingu to kup kabel com do telefonów komórkowych. Utnij wtyczke od telefonu i podłącz pod moduł. Te kable pracują na 3,3V i z terminala z PC możesz przetestować. Bo możliwości jest kika. Po kolei je wykluczysz, wiedząc że moduł pracuje poprawnie. Teraz to wiadomo tylko że nie działa całość.
  • #8 4904281
    H0miczek
    Poziom 20  
    Posty: 219
    Pomógł: 55
    Ocena: 8
    Odpalone ;)
    i nie chodzilo o napiecia tylko drobne bledy w kodzie

    temat do zamkniecia

Podsumowanie tematu

LABEL_AI_GENERATED
Dyskusja dotyczy problemów z komunikacją modułu Bluetooth BTM222 z mikrokontrolerem Mega128 przez interfejs RS232. Użytkownik ustawił USART0 na 19200 bps, 8 bitów, brak parzystości, 1 bit stopu, zgodnie z domyślnymi ustawieniami modułu, jednak moduł nie odpowiada poprawnie na wysyłane komendy AT, a zamiast tego generuje błędne ramki i nieprawidłowe dane (głównie 0, 255, czasem 224). Połączenie realizowane jest przez konwertery poziomów logicznych 74LVC4245 (5V do 3.3V i odwrotnie). Pomimo braku błędów ramki, odpowiedzi modułu to często ciąg zer. Użytkownik podłączył także linie RTS/CTS, wymuszając CTS na stałe do masy, ale problem pozostał. Próby testów z terminalem PC i zmiana napięć zasilania nie przyniosły efektu. Wskazano, że problem może leżeć w błędach w kodzie mikrokontrolera, a nie w sprzęcie czy konfiguracji. Ostatecznie autor potwierdził, że drobne błędy w oprogramowaniu były przyczyną problemów i temat został zamknięty.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA