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

UART do modułu Bluetooth - problem z komunikacją z Atmegą8 i konwerterem RS232

wonderland 12 Lip 2007 22:35 5041 7
REKLAMA
  • #1 4076620
    wonderland
    Poziom 11  
    Posty: 5
    Mam problem z komunikacją UARTA -> moduł bluetooth. 3 sytuacje :

    1. Wyjście Tx Konwertera RS232->UART (max232) podpinam na wejście Rx UARTA w module i wysyłam komendę AT ... działa

    2. Wyjście Tx UARTA Atmegi8 podłączam na wejście Rx UARTA w module i wysyłam tą samą komendę ... nie działa

    3. Wyjście Tx UARTA Atmegi zwieram z wyjściem Tx konwertera RS232->UART i podpinam do wejścia Rx modułu. Komendę wysyłam z Atmegi (t.j. w punkcie 2) ... działa ...

    Wygląda mi, że wyjścia są na tych samych poziomach napięć ( wspólne zasilanie wszystkich bloków)...

    AAAA. PS oba wyjścia są na 5V a wejście na 3,3 więc mamy dzielnik
    rezystancyjny 22k / 33k (GND)

    Będę wdzięczny za odpowiedź ...
    Pozdrawiam
  • REKLAMA
  • #2 4076671
    gufiak
    Poziom 21  
    Posty: 444
    Pomógł: 15
    Ocena: 2
    Nie wiem czy trafię, ale stwierdziłeś w innym temacie, że brakowało 0x0D (czyli w C '\r') na końcu komendy, a czy w Atmedze też wysyłasz ten znacznik na końcu? Posprawdzaj też czy UARTa skonfigurowałeś tak samo jak w PC, czyli czy ta sama prędkość, bity parzystości itp.
  • REKLAMA
  • #3 4076724
    wonderland
    Poziom 11  
    Posty: 5
    Tego szukłem ... Ale :

    3. Wyjście Tx UARTA Atmegi zwieram z wyjściem Tx konwertera RS232->UART i podpinam do wejścia Rx modułu. Komendę wysyłam z Atmegi (t.j. w punkcie 2) ... działa ...

    Świadczy, że komendę AT wysyłam poprawnie i parametry transmisji też są ok...
  • REKLAMA
  • #4 4076770
    gufiak
    Poziom 21  
    Posty: 444
    Pomógł: 15
    Ocena: 2
    Aj, nie doczytałem tego trzeciego punktu. Tylko czemu zwierasz atmegę z maxem? Jakie jest napięcie na Tx w maxie? Generalnie nie powinno się wyjścia z wyjściem łączyć. Teoretycznie dzielnik napięciowy jest ok, ale mogą być za duże wartości rezystorów i w rezultacie płynie za mały prąd. Trudno mi jedynie stwierdzić jaki w tym udział ma max. Jedynie może być tak, że na wyjściu maxa masz pełne 5V, a na wyjściu atmegi przy ustawieniu logicznej jedynki masz niższe napięcie.
  • REKLAMA
  • #5 4078745
    bolszy188
    Poziom 16  
    Posty: 261
    Pomógł: 5
    Ocena: 55
    Witam

    Ja łączeyłem wyjście modułu BT do wejscia atmegi i wejscie BT z wyjsciem atmegi ZADNEGO MAXA nie dajesz macx jest do kompa a nie do mikrokontrolerów wurzuc go i ma działać. Aha jeszcze jedno być może twój modył BT (tak jak mój) nie ma buforu wieć musisz wysyłać pojedyncze znaki !!!!!! jak chcesz wysłać coś dłuższego stwórz sobie bufor ptogramowy :)
  • #6 4079316
    crazy_phisic
    VIP Zasłużony dla elektroda
    Posty: 2244
    Pomógł: 278
    Ocena: 131
    Co to za moduł BT? Każdy bufor (na RS-ie) neguje sygnał, więc jak sprawdzasz bez bufora musisz w programie zanegować sygnał wyjściowy.
  • #7 4079841
    BoskiDialer
    Poziom 34  
    Posty: 1530
    Pomógł: 353
    Ocena: 42
    jeśli sygnał z mikrokontrolera wprowadzasz na wejście rs232 w max232, to prawdopodobnie działa on w takim układzie jako inwerter - niestety nieda się zanegować sygnału z uartu sprzętowego bezpośrednio w uC, więc możesz spróbować z zewnętrznym inwerterem lub tranzystorem npn w układzie wspólnego emitera (+3 oporniki - ograniczający prąd bazy, ściągający bazę do emitera oraz pullup kolektora) działającego jako inwerter.
    Jeśli sygnał z procka wprowadzasz na max232 na wejście cyfrowe, a wyjście +-12V dajesz na układ, to sprawdź jaki jest zakres przelączania wejść tego układu.
    w obu przypadkach max232 będzie działał jako inwerter - rs232 działa w logice zanegowanej (napięcie ujemne to logiczna prawda, napięcie dodatnie to logiczny fałsz)
  • #8 4079973
    kamyczek
    Poziom 38  
    Posty: 3994
    Pomógł: 394
    Ocena: 573
    Widze zę koledzy tu pidszą o modulach BT może ktoś napisze gdzie można kupić w przystępnych cenach takie zabaweczki ;)

Podsumowanie tematu

✨ Problem dotyczy komunikacji UART pomiędzy mikrokontrolerem Atmega8 a modułem Bluetooth, gdzie sygnał z Tx Atmegi nie jest poprawnie odbierany przez moduł, mimo że sygnał z konwertera RS232->UART (max232) działa prawidłowo. Sygnały Tx Atmegi i max232 mają wspólne zasilanie 5V, a wejście modułu Bluetooth jest na 3,3V, zastosowano dzielnik rezystancyjny 22k/33k. Wskazano, że łączenie wyjść Tx Atmegi i max232 jest niezalecane, gdyż max232 działa jako inwerter sygnału RS232, co może powodować problemy z poziomami logicznymi. Zalecane jest sprawdzenie, czy na końcu komendy AT jest znak końca linii (0x0D), oraz czy parametry UART (prędkość, bity, parzystość) są zgodne. Moduły Bluetooth mogą nie mieć bufora, co wymaga wysyłania pojedynczych znaków i ewentualnego programowego buforowania. Sugerowano użycie zewnętrznego inwertera lub tranzystora NPN w układzie wspólnego emitera do poprawnego dopasowania sygnału. Wskazano, że max232 odwraca logikę sygnału, co należy uwzględnić w układzie i oprogramowaniu.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA