Elektroda.pl
Elektroda.pl
X
Elektroda.pl
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Bluetooth BTM-222 równolegle z FT232R + uP

13 Mar 2010 23:33 3659 7
  • Poziom 19  
    Mam układ z ARM LPC2148 z którym komunikuje się przez wbudowany konwerter USB-RS232 na układzie FT232R, a chciałbym także przez moduł bluetooth BTM-222. Osobno oba rozwiązania działają poprawnie, ale jeśli je połącze równolegle tak jak na poniższym rysunku to jest problem z linią TX w FT232R - uP nie widzi wysyłanych danych przez USB, tylko je odbiera, a z BTM-222 poprawnie działa
    Macie pomysł jak najprościej połączyć te trzy moduły i dopasować napięcia na lini Tx ?


    Bluetooth BTM-222 równolegle z FT232R + uP
  • Poziom 25  
    Nie działa, gdyż są konflikty na połączonych liniach TX FT232 oraz BTM. Aby to działało, musi być to układ master-slave, czyli uP musiałby kontrolować dostęp do magistrali przez poszczególne urządzenia podrzędne. W zaprezentowanym połączeniu urządzenia mogą nadawać jednocześnie, w przypadkowej chwili. W obecnym układnie raczej nie da się tego zrobić, gdyż o ile kojarzę te urządzenia nie mają takiej możliwości kontroli urządzeń.
    Można dołożyć po dodatkowym uP do każdego z urządzeń i połączyć je w sieć np RS485, SPI lub I2C, ale pojawia się problem buforowania danych w momencie oczekiwania na dostęp do magistrali.

    PS. BTM ma interface SPI
  • Poziom 36  
    Trzeba zastosować multiplexer, np. jeden kanał z 74HC157, 74HC257, ewentualnie można coś kleić na bramkach z wyjściami trójstanowymi 74HC368, 4503 itp...
    W obu przypadkach konieczne będzie wprowadzenie z mikroprocesora sygnału wyboru układu sterującego multiplexerem.
    Można też próbować separować te sygnały diodami (and/or "na szynie"), ale jest to rozwiązanie słabsze ze względu gorsze właściwości zakłóceniowe. Oczywiście procesor musi w tych układach pełnić funkcje arbitra (MASTER), wpuszczając układy transmisji, lub (w ostatnim rozwiązaniu) wykrywając i usuwając konflikty.

    Jeśli dopuszczamy niekontrolowany (współbieżny) dostęp układów transmisji, nie obejdzie się bez dodatkowych procesorów albo chociaż rozdzielenia linii TX na samym procesorze (np. przez realizację dodatkowego, wejścia TX "UARTA" emulowanego programowo ).
  • Poziom 25  
    Minimalne rozwiązanie to multiplekser lub bufor trójstanowy. Separacja diodami nie rozwiąże problemu, gdyż nie ma co spowodować, aby dane urządzenie "odpuściło" magistralę - nadawanie na magistralę wciąż poza kontrolą.
    Jeżeli jednak chcesz korzystać z obu interface'ów "jednocześnie" masz problem utraty danych, gdyż w momencie transmisji pomiędzy np BTM a uP, FT232 będzie nadawał "w próżnię". Aczkolwiek w przypadku FT232 można wykorzystać dodatkowe linie modemowe (chyba CTS). Oczywiście wtedy oprogramowanie na PC musi to obsłużyć, ale wtedy PC dostanie informację, że linia jest zajęta i trzeba poczekać/zbuforować dane. Sygnał sterujący mux'em musi być jednocześnie podłączony pod CTS.
  • Poziom 36  
    Od strony organizacji transmisji rozwiązanie z diodami jest tak samo dobre jak multiplexer, bo w obu przypadkach i tak procesor musi pełnić funkcję arbitra zezwalającego urządzeniu na transfer (przy diodach programowo, w przypadku multipleksera sprzętowo i ewentualnie programowo). Podstawową wadą tego rozwiązania jest nizsza tolerancja zakłóceniowa, a zaletą brak dodatkowej linii sterującej wyborem kanału (procesor po prostu "wie" kogo wpuścił na linię). Zresztą w wersji "bezportowej" multiplexer może być sterowany z linii modemu (BTM-222 lub FT232RL - RTS), więc i w tym przypadku można by uniknąć dodatkowego portu sterującego.
    W drugą stronę można połączyć port wyjściowy sterujący multiplekserem z liniami (DSR, czy CTS) sterującymi modem unikając konieczności wysyłania ramki zezwolenia na dostęp do linii, ale chyba prościej programowo odpytać wywoływany układ.

    Alternatywą jest wyżej wspomniane powieszenie układu BTM-222 na interfejsie SPI.
  • Poziom 19  
    Na chwilę obecną wykluczam możliwość równoczesnej transmisji przez USB i Bluetooth. Połączenie uP z laptopem będzie albo przez USB albo bluetooth i chce tylko dopasować napięcia, aby dwie linie Tx były spięte razem. Czyli mam zrobić bramkę AND na diodach + rezystor podciągający ?

    Po Waszych wypowiedziach wybieram pomysł z multiplekserem - będę go sterował z USB, domyślnie będzie wysterowany na Tx z bluetooth, a po wpięciu kabla USB pojawi się napięcie 5V i wysteruje go na USB, ale to dopiero po przeprojektowaniu płytki. Znacie jakiś mały multiplekser 2x1 ?
  • Pomocny post
    Poziom 36  
    tomj7 napisał:
    Na chwilę obecną wykluczam możliwość równoczesnej transmisji przez USB i Bluetooth. Połączenie uP z laptopem będzie albo przez USB albo bluetooth i chce tylko dopasować napięcia, aby dwie linie Tx były spięte razem. Czyli mam zrobić bramkę AND na diodach + rezystor podciągający ?
    Jak się zwał, tak się zwał. Jeśli aktywnym stanem jest Vcc, to będzie bramka OR z rezystorem podciągającym do masy. Zresztą można też wstawić zwykłą bramkę OR (zakładam, że linie nieaktywne są na zerze, a stanem aktywnym jest Vcc tak, jak zwykle po stronie TTL.

    tomj7 napisał:
    Po Waszych wypowiedziach wybieram pomysł z multiplekserem - będę go sterował z USB, domyślnie będzie wysterowany na Tx z bluetooth, a po wpięciu kabla USB pojawi się napięcie 5V i wysteruje go na USB, ale to dopiero po przeprojektowaniu płytki. Znacie jakiś mały multiplekser 2x1 ?
    Można zastosować analogowy klucz np. DG419
  • Poziom 19  
    po wpięciu dwóch diód BAT43 jako bramka AND układ działa poprawnie, dziękuje za pomoc.