Elektroda.pl
Elektroda.pl
X
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

SIM800L i Atmega8 + Bascom -

buzka1 01 Apr 2016 01:15 1932 6
  • #1
    buzka1
    Level 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
  • #2
    kindlar
    Level 41  
    Używasz terminala czy realterma?
  • #3
    buzka1
    Level 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]:

    Code: vbnet
    Log in, to see the code


    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... :?: :!:
  • #4
    kindlar
    Level 41  
    Co się dzieje jak odbierzesz dane z portu komendą INPUT?
  • #5
    buzka1
    Level 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 :)
  • #6
    kindlar
    Level 41  
    Zadeklaruj np: Dim Tekst As String * 40
    Do nasłuchu użyj: Input Tekst
  • #7
    buzka1
    Level 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