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

Jak podłączyć 3 moduły UART do mikrokontrolera z jednym UART?

yarns 08 Lut 2007 16:49 1872 9
REKLAMA
  • #1 3544440
    yarns
    Poziom 11  
    Posty: 9
    Witam,

    stawiam dopiero pierwsze kroki w dziedzinie mikrokontrolerów i pewnie moje pytanie dla większości z was będzie banalne.
    Otóż mam układ który posiada tylko jedno "wyjście" UART a muszę podłączyć do niego 3 inne moduł właśnie poprzez UART. Jakie rozwiązanie proponujecie?
    Niestety zamiana na ukłąd posiadający więcej UART'ów nie wchodzi w rachubę.

    Pozdrawiam
  • REKLAMA
  • #2 3544495
    wicy
    Poziom 22  
    Posty: 670
    Pomógł: 30
    Ocena: 111
    Spiąć to wszystko razem i obmyślić właściwy protokół transferu.
  • #3 3544691
    Terminator
    Poziom 23  
    Posty: 392
    Pomógł: 65
    Ocena: 12
    kupujesz 2 x MAX232 , po stronie procka podpinasz Rx i Tx do każdego z wejść RS (w sumie 4 uarty będą z tych 2 kostek), a po drugiej stronie (np PC ) masz 4 gniazda DB9.Robisz odpowiedni protokół (np każde urządzenia wysyła w danych swój identyfikator - o Ty go tłumaczysz i odsyłasz także z nr tego urządzenia).
    Nie wiem czy nie będą potrzebne jakieś elementy po stronie procka do max232 (ale powinien uciągnąć z wyjść odpowiednie prądy)
  • REKLAMA
  • #4 3545146
    yarns
    Poziom 11  
    Posty: 9
    Hmm... a co sądzicie o multiplekserze?

    Pozdrawiam
  • REKLAMA
  • #5 3545317
    mirekk36
    Poziom 42  
    Posty: 9195
    Pomógł: 964
    Ocena: 2289
    już dawno wymyślono na to jasny i przejrzysty sposób. To zamiana RS232 na RS485. Wystarczy każdy twój układ podpiąć do magistrali RS485 w której może pracować kilkadziesiąt układów naraz. A sposób zamiany RS232 na RS485 jest bardzo prosty - wystarczy wziąć tani scalaczek SN74175 zobacz sobie jego notę aplikacyjną. Wszystko jest proste jak drut a magistrala w takiej najprostszej postaci składa się tylko z 2 przewodów!!! i co ważne jest o wiele bardzie odporna na zakłócenia niż RS232 co pozwala używać urządzeń na większych odległościach i nawet w warunkach przemysłowych. Jak jeszcze coś to pytaj

    pozdrawiam
  • REKLAMA
  • #6 3545374
    yarns
    Poziom 11  
    Posty: 9
    Sprawa wygląda tak że mam gotowe moduły realizujące określone funkcje... sercem urządzenia będzie moduł posiadający ARM9 i 2x UART, 32 I/O i 2 przetworniki analogowo cyfrowe w zakresie 0V do 2V. Jeden UART będzie wykorzystany do komunikacji z PC via USB. Drugi musi obsłużyć 3 inne układy - GPS, GPRS i Bluetooth. Każdy z nich ma UART'a. To trochę taka zabawa jak klocki lego - tyle że później będę musiał to wszystko oprogramować. Połączenia będą realizowane na płytce - bez gniazd BD9 :D

    Pozdrawiam
  • #7 3547047
    piti___
    Poziom 23  
    Posty: 623
    Pomógł: 67
    Ocena: 9
    Jezeli te 3 uklady nie beda mialy zadnego adresowania przy uart to bedziesz musial uzyc jakiegos przelaczania, pewnie te moduly maja jakis CS co powinno rozwiazac sprawe. Jesli polaczenia na plytce to nie potrzeba zadnych transceiverow.
  • #8 3548691
    genetix
    Poziom 24  
    Posty: 669
    Pomógł: 42
    Osobiście odradzałbym łączenie wyjścc RxD/TxD kilku podzespołów. Ten standard (UART) nie obsługuje połączeń więcej niż 1 do 1 i podejrzewam, że jeśli to wogóle ruszy to mogą się pojawiać "z nikąd" różne błędy wynikające np. z budowy wyjść portów UART.

    Uważam, że najlepiej zrobić multipleksowanie sygnałów i zastosować odpytywanie podzespołów "SLAVE" przez MASTER'a czyli np. główny mikrokontroler.

    powodzenia,
    [GNTX]

Podsumowanie tematu

LABEL_AI_GENERATED
W dyskusji poruszono problem podłączenia trzech modułów UART do mikrokontrolera posiadającego tylko jedno fizyczne UART. Zaproponowano kilka rozwiązań: stworzenie własnego protokołu komunikacji na wspólnej linii UART, zastosowanie multipleksera sygnałów UART, a także konwersję interfejsu RS232 na magistralę RS485, która umożliwia podłączenie wielu urządzeń na jednej linii z lepszą odpornością na zakłócenia. Wskazano, że standard UART nie obsługuje bezpośrednio wielu urządzeń na jednej linii bez dodatkowego adresowania lub multipleksowania. Sugerowano wykorzystanie multipleksowania sygnałów i odpytywania urządzeń jako slave przez mikrokontroler jako master. Wskazano na praktyczne rozwiązania sprzętowe, takie jak użycie układów MAX232 do konwersji poziomów sygnałów, multipleksera CD4052 zamiast trudno dostępnego MAX399 oraz standardowych buforów łącza szeregowego. Autor dyskusji posiada mikrokontroler z ARM9 i dwoma UART-ami, z których jeden jest przeznaczony do komunikacji z PC, a drugi ma obsłużyć moduły GPS, GPRS i Bluetooth, co wymaga odpowiedniego oprogramowania i połączeń na płytce drukowanej.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA