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 przesyłać dane z komputera do wielu mikrokontrolerów przez MAX232?

07 Sty 2008 08:03 3867 22
REKLAMA
  • #1 4666625
    Konto nie istnieje
    Konto nie istnieje  
  • REKLAMA
  • #2 4668371
    dzemik8
    Poziom 16  
    Posty: 148
    Pomógł: 8
    a myślałeś jak rozwiązać problem wykrywania komunikatów procka o błędach będziesz miał śmietnik (masz w takim połączeniu magistralę równoległa a jak rozwiążesz adresowanie abyś wiedział kto co???)
  • REKLAMA
  • #3 4670257
    Konto nie istnieje
    Konto nie istnieje  
  • #4 4670297
    arturt134
    Poziom 27  
    Posty: 792
    Pomógł: 76
    Ocena: 24
    Lepiej wykorzystaj RS485, nie będziesz miał problemów.
  • #5 4670422
    Konto nie istnieje
    Konto nie istnieje  
  • #6 4670440
    arturt134
    Poziom 27  
    Posty: 792
    Pomógł: 76
    Ocena: 24
    Jak to za wolna? A RS232 to jest niby szybszy? RS485 może chodzić z naprawdę dużymi prędkościami...
  • REKLAMA
  • #7 4677434
    pidorek
    Poziom 15  
    Posty: 131
    Pomógł: 20
    Ocena: 1
    Co więcej rs485 pozwala osiągnąć większe prędkości od rs232 zwłaszcza ze wzrostem odległości,a także większe odległości.
  • #8 4689436
    gothye
    Poziom 33  
    Posty: 2421
    Pomógł: 183
    Ocena: 60
    pidorek napisał:
    Co więcej rs485 pozwala osiągnąć większe prędkości od rs232 zwłaszcza ze wzrostem odległości,a także większe odległości.


    proszę nie zanizaj poziomu elektrody ,rs486 ma max bitrate 9600 na kazdej długości lini ,która nie moze przekraczać 2km ,niektóre transmitery rs485 chodzą z bitrate 4800 poniewarz mogą na szynie posiadać wiekrzą ilość nadajników/odbiorników
  • #9 4692010
    arturt134
    Poziom 27  
    Posty: 792
    Pomógł: 76
    Ocena: 24
    Prędkość i odległość, na którą się transmituje są ze sobą powiązane. Zależność jest oczywiście taka, że im większa odległość, tym mniejsza prędkość maksymalna (wraz ze wzrostem odległości wzrasta pojemność obciążenia, na którą pracuje nadajnik).
    Maksymalna prędkość transmisji jest rzędu Mbps. Np. MAX485 ma maksymalną prędkość 2,5 Mbps.

    Z własnego doświadczenia mogę powiedzieć, że podłączyłem kiedyś urządzenie działające z prędkością 38400bps na ok. 1000m kabla. Działało bezbłędnie.
  • #10 4692014
    pidorek
    Poziom 15  
    Posty: 131
    Pomógł: 20
    Ocena: 1
    Gothye jak już ktoś zaniża poziom to chyba Ty. Ja też podłączałem kiedyś urządzenia na ok 100m i chodziło z prędkością powyżej 100kbps bez problemów.
  • #11 4692324
    Konto nie istnieje
    Konto nie istnieje  
  • #12 4692531
    arturt134
    Poziom 27  
    Posty: 792
    Pomógł: 76
    Ocena: 24
    root-5: A dlaczego nie wyciągniesz? Max. prędkość MAX485, jak pisałem wyżej, to 2,5Mbps (megabita na sekundę!!!) .
  • #13 4692695
    Konto nie istnieje
    Konto nie istnieje  
  • #14 4692702
    arturt134
    Poziom 27  
    Posty: 792
    Pomógł: 76
    Ocena: 24
    To sobie kup konwerter ethernet->RS485.
  • #15 4694533
    Konto nie istnieje
    Konto nie istnieje  
  • #16 4699216
    marek_Łódź
    Poziom 36  
    Posty: 3103
    Pomógł: 208
    Ocena: 66
    root-5 napisał:
    Witam. Mam pytanie. Potrzebuję przesyłać dane z komputera do kilku mikrokontrolerów naraz za pośrednictwem MAX232. Czy mogę zrównoleglić UART-y mikrokontrolerów i podłączyć je razem do max-a? Pozdrawiam
    Jeśli Twój protokół zagwarantuje programowe odłączanie linii nieaktywnych (wprowadzanie w stan wysokiej impedancji) TAK, normalnie nadawcze linie pracującego UARTA są w stanie aktywnym 0-1 więc będą sobie przeszkadzać, chyba że dasz diody separujące (zbudujesz funktor logiczny na szynie), ewentualnie odseparujesz się tranzystorami OC, tak jak to jest robione chociażby w magistrali LIN.
  • #17 4705436
    scal12
    Poziom 19  
    Posty: 489
    Pomógł: 1
    Ocena: 52
    Przyłącze sie do tematu,mam podobny problem jak kolega ' root5", podpiołem dwie atmegi16 i PC ze sobą za pomoćą rs232gdy są podłaczone równolegle ze sobą te trzy urzadzenia transmisja sie nie odbywa gdy odłącze jedno z nich pozostałe sie komunikuja,zasada przesyłania danych w moim projekcie jest taka że jedno nadaje pozostałe dwa maja nasłuchiwać,odległość miedzy nimi to max 1m.Pytanie do kolegi"marek_Łódz"jak mozna podpiąć diody do lini aby ta transmisja ruszyła,nie ingerując w program?Za odpowiedz serdeczne dzięki
  • REKLAMA
  • #18 4707508
    Konto nie istnieje
    Konto nie istnieje  
  • #19 4708064
    scal12
    Poziom 19  
    Posty: 489
    Pomógł: 1
    Ocena: 52
    Ja myśle jeszcze nad zastosowaniem przejsciówki rs232<-->rs485,lub za pomocą tranzystorów zrobic połaczenie atmeg
  • #20 4711295
    marek_Łódź
    Poziom 36  
    Posty: 3103
    Pomógł: 208
    Ocena: 66
    Funktor AND lub OR "na szynie"

    Trzeba tylko zagwarantować ten sam stan na wyjściach wszystkich nadajników, gdy nie nadają.

    Jak przesyłać dane z komputera do wielu mikrokontrolerów przez MAX232?

    Układ można zastosować zarówno w obszarze UART/TTL, jak i na samym RS232. Swego czasu bodajże w "Elektronice Praktycznej" widziałem jakiś interfejs 232, w którym przy pomocy diody i zwory tworzono układ umożliwiający połączenie kilku takich elementów jednocześnie i którą to zworkę nieco na wyrost nazwano "RS485".
  • #21 4711761
    scal12
    Poziom 19  
    Posty: 489
    Pomógł: 1
    Ocena: 52
    Wpiełem diody i układ ruszył,teraz z jednego interfejsu PC moge sterować atmegami,wielkie dzięki za zainteresowanie i pomoc.
  • #22 4721093
    Konto nie istnieje
    Konto nie istnieje  
  • #23 4721933
    marek_Łódź
    Poziom 36  
    Posty: 3103
    Pomógł: 208
    Ocena: 66
    root-5 napisał:
    Nie rozumie po co te diody na tym powyższym schemacie ? Przecież one nic nie dają w tym układzie...


    Najprostszy...
    marek_Łódź napisał:
    funktor AND

    Diody separują wyjścia UARTA, dopuszczając tylko te aktywne (na których pojawia się zero). Ten sam efekt można uzyskać ustawiając programowo linię TX w stan wysokiej impedancji (lub jako wejście), tyle że wymaga to rozbudowy procedur obsługi sprzętu, a czasem i samego sprzętu (na liniach przychodzących z MAX232).

    Natomiast na liniach interfejsu RS232 (po stronie PC) nie ma możliwości ustawienia wysokiej impedancji, więc funktor diodowy jest najprostszym (żeby nie powiedzieć jedynym) sposobem ich separacji.

    Diody najlepiej Shottky dla minimalizacji spadku napięcia. Protokoły chodzące na 485, na takiej magistrali lokalnej też pójdą (oczywiście tylko te w halfduplexie).

Podsumowanie tematu

✨ Dyskusja dotyczy możliwości przesyłania danych z komputera do wielu mikrokontrolerów jednocześnie za pomocą interfejsu UART i układu MAX232. Poruszono problem zrównoleglenia linii UART mikrokontrolerów, co prowadzi do konfliktów sygnałowych i trudności w adresowaniu urządzeń. Zalecane jest stosowanie magistrali RS485 ze względu na lepszą obsługę wielu urządzeń i większe prędkości transmisji, jednak autor potrzebuje prędkości co najmniej 115200 bps i musi korzystać z konwertera Ethernet->RS232, co ogranicza zastosowanie RS485. Wskazano, że standard RS232 nie pozwala na podłączenie więcej niż dwóch urządzeń bez dodatkowych układów separujących. Rozwiązaniem jest zastosowanie diod separujących (najlepiej Schottky) na liniach TX, które zapobiegają konfliktom sygnałowym, umożliwiając współdzielenie linii UART przez kilka mikrokontrolerów. Alternatywnie można programowo ustawiać linie TX w stan wysokiej impedancji, ale wymaga to modyfikacji oprogramowania i sprzętu. Prędkości transmisji RS485 mogą sięgać nawet 2,5 Mbps, a w praktyce działają bezbłędnie na odległościach do 1000 m przy 38400 bps. Jednak w przypadku konieczności użycia RS232 i wielu urządzeń, diody separujące są najprostszym i skutecznym rozwiązaniem.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA