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

[Atmega32] - Komunikacja z modemem GSM i konfiguracja z PC przez 1 uart

pch 02 Kwi 2013 18:26 1995 11
  • #1 12145119
    pch
    Poziom 15  
    Moje urządzenie transmituje i odbiera dane poprzez modem GSM. Potrzebuję sporo pinów więc m32 pasuje mi pod każdym względem i wolałbym pozostać przy tym procku. Jak rozwiązać jednoczesną transmisję z modemem i komputerem? Najbardziej zależy mi na monitorze pracy urzadzenia. Modem ma pełnego uarta więc mogę przyblokować RTS-em ale jak rozwiązać arbitraż komunikacji? Oczywiście mogę wstawić procek z dwoma uartami ale nie chcę iść na łatwiznę.

    Bedę wdzięczny za sugestie.

    PC
  • #2 12145286
    BlueDraco
    Specjalista - Mikrokontrolery
    Nie bardzo rozumiem, czemu uparłeś się na drogi uC z jednym UARTem zamiast wziąć tańszy z dwoma. Modem na ogóą wymaga ciągłego monitorowania. STM32F051 kosztuje sporo mniej i ma wszystko, co trzeba.
  • #3 12145343
    pch
    Poziom 15  
    Ja się nie uparłem. Można przyjąć, że zostało mi to narzucone. Jest już działające urządzenie a ja mam tylko zmodyfikować program i przeprojektować płytkę. Ale rdzeń programu ma pozostać. Tam są jakieś szyfrowania i nie chce mi się tym zajmować.

    PC
  • #4 12145393
    Svavo
    Poziom 23  
    Poza logicznym podziałem pozostaje kwestia sprzętowa - RS232 umożliwia połączenie tylko dwóch interfejsów. Jeśli jednak zależy Ci tylko na odbieraniu danych na PC, możesz podłączyć sygnał TXD przez konwerter poziomów. Musisz oczywiście blokować komunikację z modemem, np. (jak pisałeś) sygnałem RTS, z wykorzystaniem multiplexera, itd.
  • #5 12145396
    piotrva
    VIP Zasłużony dla elektroda
    Hmm, to masz źródła programu, czy co? Bo mi to niezbyt ładnie pachnie i niezbyt rozumiem. Poza tym jaki to język?
    Nawet nie idąc w stronę STM32, atmega644p - pinowo zgodna, rejestry też bardzo podobne, a ma 2*uart.
    Swoją drogą rozumiem, że w komunikacji zawsze PROCESOR jest układem typu master? Jeśli tak to możesz, jeśli już się uparłeś, zastosować jakiś multiplekser i przełączać linie.
    Trudniej jeśli komunikaty z strony PC mają priorytet nad innymi.
    Wtedy sensownego rozwiązania nie widzę. Można bawić się w programowe UART'y, czy nawet takie kuriozum jak dodanie procesora buforującego komunikaty z komputera, ale po co komplikować sobie 10-krotnie życie, żeby osiągnąć coś co ma nieco większy procesor?

    Moim zdaniem nie kombinuj, bo przekombinujesz tylko wstaw atmega644p, dostosuj program i po sprawie.
  • #6 12145445
    Svavo
    Poziom 23  
    Ja wybrałem niedawno LPC11Uxx z USB kiedy potrzebowałem UART'a i komunikację z PC. No, ale jeśli Kolega się upiera... ;).
  • #7 12145473
    pch
    Poziom 15  
    Mam źrodła bo to ja to kiedyś pisałem. Od samego początku przyjąłem, że masterem jest procesor. Proces konfiguracji z kompa wyglada tak, że to procek daje zachętę do kompa, żeby ten coś wysłał. Więc jak procek nie da zachety to komp milczy. Plan jest taki, żeby procesor naprzemiennie sprawdzal modem i odpytywal komputer. Sprzętowo wiem jak zrobić multipleksowanie uarta tylko szukam jakiś wskazówek co do logiki.

    PC
  • #8 12145484
    piotrva
    VIP Zasłużony dla elektroda
    No to ja nie wiem w czym problem. Więcej Ci nie pomożemy, bo nie wiadomo co to ma być za komunikacja.
    Jak sam napisałeś - jeśli już musisz to zrobić tak a nie inaczej to odpytujesz modem - nie ma odpowiedzi, togglujesz multiplekser, odpytujesz pc - nie ma odpowiedzi, i tak dalej. Jak gdzieś masz odpowiedź to odbierasz dane i znowu kontynuujesz polling.
  • #9 12145507
    stanleysts
    Poziom 27  
    Tu się aż proszą 2 UARTy dwa bufory wejściowe/nadawcze i prosty FSM do zarządzania tym co przychodzi do procka z modemu/PC. Jeśli procek ma robić tylko to, to jeszcze ok polling może być ale przy większej ilości tasków to będzie słabe rozwiązanie.
  • #10 12145563
    pch
    Poziom 15  
    Przyglądam się Atmedze644pa. Ja pewnie nie zapełnię tego flesha ale pinologicznie pasuje więc to jest do przemyślenia. Przeportowanie programu też pewnie nie będzie kłopotliwe.

    PC
  • #12 12145749
    pch
    Poziom 15  
    Rozważałem też coś takiego. Ale jak rozwiązaleś zabezpieczenie przed gubieniem danych? Ten softwarowy uart jest na przerwaniu INT0 albo INT1? Jeżeli nie to jak buforujesz dane? GPS przecież wysyła dane cyklicznie i nie masz wplywu na to kiedy znowu wyśle paczke.

    Sprawę komplikuje jeszcze fakt, że obecnie korzystam z bootloadera więc musiałbym z tego zrezygnować ale to nie jest problem.

    PC
REKLAMA