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

SIM800L i Atmega8 + Bascom - problem z odbiorem pełnej transmisji RS232

buzka1 01 Kwi 2016 01:15 2094 6
REKLAMA
  • #1 15571060
    buzka1
    Poziom 2  
    Witam. Siedzę już drugi wieczór nad tym tematem. Komunikuję się z modułem GSM SIM800L po sprzętowym RS232. Moduł gada tylko przy prędkości 115200 - nawet specjalnie nabyłem kwarc 11.0592MHz żeby wyeliminować błędy transmisji.
    W czym mam problem:
    Atmega czyta pierwszą transmisję o gotowości z gsm'a, wszystko ok.

    po wysłaniu komendy AT moduł odpowiada:
    z echam: AT <CR><LF> OK <CR><LF>
    bez echa: <CR><LF> OK <CR><LF>
    (sprawdzałem na terminalu RS232 na kompie)

    Atmega odbiera:
    z echem: AT<LF>
    echo wyłączone: <CR><LF><LF>


    Transmisję rs232 sprawdzałem osobno podpinając moduł pod kompa - działa. Atmege pod kompa - czyta wszystkie znaki, dowolnej długości sekwencję...
    Ktoś wie o co tu chodzi? dlaczego nie odbieram w atmedze dokładnie tego co odbiera terminal w kompie? :o
  • REKLAMA
  • #2 15571142
    kindlar
    Poziom 42  
    Używasz terminala czy realterma?
  • REKLAMA
  • #3 15571158
    buzka1
    Poziom 2  
    http://www.compuphase.com/software_termite.htm - programik Termite.
    Fizycznie mój programator też potrafi pracować w trybie przejściówki RS232 >> port COM na USB... (multitool firmy SFAR) - nawiasem mówiąc bardzo fajne urządzonko :) (prosta transmisja bez kontroli - TX, RX, masa...)

    Dodano po 35 [minuty]:

    Kod: VB.net
    Zaloguj się, aby zobaczyć kod


    Odpowiedź na LCD:
    - najpierw status modemu READY itp. (dłuższe niż linijka wyswietlacza 24 znaki) - czyli transmisja jest OK....
    - potem po "good morning" sekwencje znaków: 97 116 13 10 (AT<CR><LF>) i cisza... ("OK<CR><LF>" gdzieś znika)
    I tak w kółko... :?: :!:
  • REKLAMA
  • #4 15571242
    kindlar
    Poziom 42  
    Co się dzieje jak odbierzesz dane z portu komendą INPUT?
  • #5 15571328
    buzka1
    Poziom 2  
    Próbowałem jeszcze waitkey - efekt ten sam tyle że waitkey jak gsm już nie nadaje wiesza program...
    INPUT nigdy nie używałem. Wstawiłem teraz na szybko INPUT znak (w miejsce znak =inkey() )
    Efekt jest taki że nie czyta nic. Cisza.
    Zmykam do pracy, może po południu coś jeszcze pogrzebie przed weekendem...
    Pozdro :)
  • REKLAMA
  • #6 15571382
    kindlar
    Poziom 42  
    Zadeklaruj np: Dim Tekst As String * 40
    Do nasłuchu użyj: Input Tekst
  • #7 15579904
    buzka1
    Poziom 2  
    Oto odpowiedź zagadki:
    Input +zmienna string też nie działała... Wpadłem na co innego. Pomiędzy komendą "AT" a nasłuchem wrzucałem znak na wyświetlacz.... To powodowalo opóźnienie, które jak widać generowało błąd. Podanie komendy bezpośrednio przed nasłuchem naprawiło wszystko... :twisted:

    Osobne pytanie dlaczego - przecież odpowiedź z gsm jest buforowana, więc za te parę milisekund powinienem ją odczytać niezmienioną?! :o

    Na razie czas na chwile radości. Działaaaa :D
REKLAMA