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

Kilka układów na jednym rs232

decompiled 06 Mar 2009 17:32 4501 30
  • #1 6244636
    decompiled
    Poziom 10  
    Witam

    Potrzebuję podpiąć do jednego portu rs232 kilka µc. Mam problem z sygnałem wychodzącym z jednego z podpiętych układów, nie wiem dlaczego ten sygnał zanika i nie dociera do komputera. Gdy komputer nadaje wszystko jest w porządku. Poszczególne kontrolery mogą porozumiewać się tylko z komputerem.

    Z góry dziękuję
  • #2 6244679
    Freddie Chopin
    Specjalista - Mikrokontrolery
    masz kolizje na magistrali i nie da sie tego rozwiazac programowo, a jedynie sprzetowo, bo nie mozesz wymusic jednym ukladem stanu niskiego na linii utrzymywanej w stanie wysokim przez pozostale uklady.

    4\/3!!
  • #3 6244705
    wd40
    Poziom 21  
    RS232 nie obsługuje kilku nadajników.
    Spróbuj użyć protokołu RS485.
    Procesory PIC Microchipa obsługują jeszcze protokół LIN identyczny z RS232 ale z wieloma nadajnikami (może tam znajdziesz rozwiązanie?)
  • #5 6244777
    decompiled
    Poziom 10  
    Myślałem o sprzętowym przerywaniu sygnału gdy transmisja dotyczy innego układu ale nie wiem jak to najprościej zrobić.
  • #7 6244904
    wd40
    Poziom 21  
    RS485 jest oczywiście standardem a nie protokołem.

    Nie zmienia to jednak faktu, że na każdej linii danych RS232 może być tylko jeden nadajnik, czyli ew. zwiększenie liczby nadajników wiązałoby się z izolacją galwaniczną pozostałych na czas transmisji. Reasumując do zastosowania opisanego przez założyciela wątku RS232 raczej się nie nadaje. Stosując go do pracy z kilkoma nadajnikami narazić się można nie tylko na problemy natury logicznej ale nawet elektrycznej.

    Balu przeczytaj sobie specyfikację RS232.

    decompiled napisał:
    Myślałem o sprzętowym przerywaniu sygnału gdy transmisja dotyczy innego układu ale nie wiem jak to najprościej zrobić.


    Najprościej: główny (MASTER) nadajnik (ten w komputerze) odpytuje po kolei mikrokontrolery czy mają coś do nadania. W jednej chwili nadawać może więc tylko jeden z mikrokontrolerów nazywanych SLAVE.
  • #8 6245073
    Freddie Chopin
    Specjalista - Mikrokontrolery
    co nic nie zmieni, bo na RS-232 FIZYCZNIE nie jest mozliwe nadawanie jakiegokolwiek urzadzenia jesli na tej samej linii jest wiecej nadajnikow... to musi byc zupelnie inaczej rozwiazane ukladowo. kropka.

    4\/3!!
  • #9 6245139
    wd40
    Poziom 21  
    Freddie Chopin napisał:
    co nic nie zmieni, bo na RS-232 FIZYCZNIE nie jest mozliwe nadawanie jakiegokolwiek urzadzenia jesli na tej samej linii jest wiecej nadajnikow... to musi byc zupelnie inaczej rozwiazane ukladowo. kropka.

    4\/3!!


    Rozwiązanie elektryczne jest proste: "podciągasz" do stanu nieaktywnego wejście odbiornika w komputerze przez bardzo dużą oporność - min 10k. A jako drivery/bufory przy mikrokontrolerach nie stosuje się std MAXy tylko takie ze strobem. Nadajniki w mikrokontrolerach i bufory są standardowo wyłączone, włączane są strobem i nadają tylko po uzyskaniu zezwolenia MASTERA.
    Transmisja jest wolniejsza niż pozwala na to standard i radykalnie zmniejsza się zasięg takiej sieci ale nie występują kolizje.
    Rpzwiązanie takie działa ale ze względu na łamanie standardu RS232 nie polecam autorowi wątka.
    Można oczywiście próbować pętli prądowej, 1 wire, i2c i innych krótkozasięgowych rozwiązań, ale najlepsze rozwiązanie to RS485. Zresztą cały przemysł na tym chodzi, więc poco wyważać drzwi?
  • #10 6245258
    Dar.El
    Poziom 41  
    Witam
    Można wyłączyć nadawanie w atmedze i pin ten skonfigurować jako wejście, nie będzie wtedy przeszkadzać. Po odebraniu własnego adresu uP włącza nadawanie a na koniec z powrotem musi wyłączyć. Można to zrobić bez dodatkowych elementów.
  • #11 6245281
    decompiled
    Poziom 10  
    Skoro na każdej lini może być tylko jeden nadajnik to pozostałe można na czas transmisji odłączyć.
    Z tego co sprawdziłem to odbiorników może być kilka.
    Według mnie wystarczy odłączyć niepotrzebne w danej chwili nadajniki i tu mam problem, bo na elektronice słabo się znam a przekaźnik to raczej kiepskie rozwiązanie.
  • #12 6245338
    Dar.El
    Poziom 41  
    Nadajnik wyłączasz programowo w środku ATMegi.
  • #13 6245390
    wd40
    Poziom 21  
    Za nadajnikiem Atmegi to jest bufor/driver konwertujący z poziomu napięć mikrokontrolera do poziomu napięć RS232 i tu jest problem bo standardowych układów nie da się odłączyć.

    Przekaźniki nie nadają się głównie z powodu drgań styków.
    Natomiast zdadzą egzamin układy MAX 225, 245-249. Jednak biorąc pod uwagę ich cenę, taniej będzie przejść na RS485.
  • #14 6246196
    decompiled
    Poziom 10  
    A jak wyłączyć programowo nadajnik w atmedze w bascomie??
  • #15 6246349
    Konto nie istnieje
    Poziom 1  
  • #16 6246432
    Dar.El
    Poziom 41  
    Na początku topicu jest pytanie:
    Cytat:
    Potrzebuję podpiąć do jednego portu rs232 kilka µc.

    Nie ma tu nic o podpinaniu kilku RS232 do 1 portu w PC.
  • #17 6246468
    Konto nie istnieje
    Poziom 1  
  • #19 6251323
    asembler
    Poziom 32  
    freedii chopin mowi ze sie nie da mimo ze zrobilem kilkanoascie takich instalacji w Polsce , więc chyba sie nie da.
  • #20 6251812
    Freddie Chopin
    Specjalista - Mikrokontrolery
    asembler napisał:
    Mozna bez problemu rozwiazac to programow. [...] przy kazdym procesorze był uklad petli pradowej.


    to ciekawe. jak sie robi petle pradowa programowo, bo jeszcze tego nie wiem?

    4\/3!!
  • #21 6253472
    wd40
    Poziom 21  
    Pętla prądowa to pętla prądowa a RS232 to RS232.
    Zupełnie inna zasada transmisji i niemożliwość pracy w Full Duplexie.
    Też popełniłem sporo instalacji z pętlą i niestety muszę stwierdzić, że pomimo bardzo dużej ilości zalet ma zasadnicze dwie wady - bardzo utrudnioną diagnostykę i podatność na uszkodzenia, które roawalają całą sieć.
  • #22 6253519
    Konto nie istnieje
    Poziom 1  
  • #23 6253739
    wd40
    Poziom 21  
    Na RS-ie odbiornik i nadajnik mogą pracować jednocześnie. W pętli końcówka albo nadaje albo odbiera.
  • #24 6253752
    Konto nie istnieje
    Poziom 1  
  • #25 6253810
    Freddie Chopin
    Specjalista - Mikrokontrolery
    bo w RS232 masz dwa kable, a do petli pradowej potrzeba 2 przewody na jedna, wiec musialbys dolozyc 2 kolejne i wtedy masz full duplex. troche kiepskie rozwiazanie, jesli masz miec na przyklad 500m kabla [;

    4\/3!!
  • #26 6254858
    Konto nie istnieje
    Poziom 1  
  • #27 6255148
    wd40
    Poziom 21  
    Atom1477 a nie słyszałeś o pętli prądowej CLO?
    - pozwala na 2 liniach (używa tylko 2 żył) łączyć kilka końcówek nadawczo-odbiorczych, kosztem duplexu, zasilania i konieczności stosowania końcówek z "inteligencją" (raczej do pracy muszą mieć jakiś procek w sobie).

    Po drugie: pętla prądowa to nie taki bajer, bo pozwala zasilić końcówkę, a ponadto izoluje urządzenia i jest mniej czuła na zakłócenia - wystarczy porównać zasięgi.
    Po trzecie: W klasycznej pętli 4-20mA do duplexu potrzeba 4 przewodów, czyli o 33% więcej niż w RS232.

    Podejrzewam, że zastosowanie pętli CL 4-20mA tylko skomplikowałoby projetk autora wątku.

    Wątek już dosyć bardzo odbiegł od tematu. Niech autor napisze dokładnie co już ma i co chciałby mieć. (a pewnie i tak wyjdzie, że będzie musiał stosować rs485 :) )
  • #28 6255640
    Konto nie istnieje
    Poziom 1  
  • #29 10927471
    riddyk
    Poziom 20  
    Witam,

    aktualnie wykonałem połączenie 2 atmeg8A i PC na ft232rl, za pomocą równoległego rs232 w TTL.
    Program działa w ten sposób, że PC odpytuje każdą z nich i jeśli uC ma coś do powiedzenie to mówi w tym czasie.
    Połączenie wymaga aby atmegi które nie jest odpytywana miała zablokowane nadawanie.
    Dodatkowo wymagane jest aby w linię TX wpiąć przy każdym uC mały rezystor, ja dałem 47Om.

    Docelowo będę chciał podłączyć 26 Atmeg8A równolegle do RS232.

    Na tym temat powinien zostać rozwiązany.
  • #30 10927490
    Konto nie istnieje
    Poziom 1  
REKLAMA