2017-11-30 110 views
7

Używam SIM800L module z Launchpad Texas Instrument, z mikrokontrolerem MSP430G2553, nie korzystam z zewnętrznej biblioteki dla SIM800L.SIM800L Pusty problem SMS

komunikat Problem: Prosty wiadomości tekstowych (SMS z trybu tekstowego) jest wysyłane, odbierane jako pustej wiadomości na telefon komórkowy.

szczegóły SIM:

1. SIM 1: Lokalizacja: Indie. Operator: AirTel, karta SIM zgodna z 4G.
2. SIM 2: Lokalizacja: Indie. Operator: Tata Docomo, karta SIM zgodna z 3G.

Co już wiem:

  • UART Kierowcy w oprogramowaniu są testowane i działa, nie odpytywanie, przerwania jazdy.
  • Nie dodano opóźnień czasowych w celu zastąpienia odpowiedzi poleceń AT. Przeczytałem odpowiedź i kontynuuję, jeśli otrzymałem pozytywne potwierdzenie, <CR><LF>OK<CR><LF> dla większości poleceń.
  • Potwierdziłem bity danych transmitowane i odbierane na pinach Tx-Rx za pomocą oscyloskopu. Wszystko wydaje się zgodne z oczekiwaniami, w tym poziomy napięcia.

co czytałem:

  • Niektóre spekulacje poprzez nieoficjalnych źródeł (oczywiście forów), które SIM800L jest tylko 2G kompatybilne.

  • (Shallow czytanie z wikipedii) Przeczytałem poprzez GSM 3.38 i GSM 3.40 oraz Data Coding Scheme section dla zrozumienia, jak kodowanie tekstu jest traktowane nadaje/odpowiednie polecenia AT (AT + CSMP).

  • Różne fora, w tym te do Arduino, z których moduły SIM800L są bardzo popularne.

Notki na Stackoverflow:

Odpowiedź w pierwszym wydawało się, że pracował dla niego, że nie zrobił Działają dla mnie.

co ja próbowałem:

  • Użyłem tego samego modułu z instancją terminal szeregowy Docklight. Wiadomości SMS wysłane z Docklight są odbierane na moim telefonie komórkowym i wyświetlane w oczekiwany sposób, a nie puste.

  • W dniu 0, przed integracją modułu ze sprzętem Launchpad, przetestowałem ogólny stan oprogramowania sprzętowego z dokładną kopią oczekiwanych odpowiedzi od SIM800L.

  • Wyniki dla obu kart SIM są takie same, z wyjątkiem niektórych początkowych konfiguracji, ale ładuję typowy zestaw konfiguracji w obu z nich, zanim zainicjuję jakiekolwiek zadanie związane z SMS-em.

Typowe wartości, które używam są:

  • Echo Off
  • CSMP: 17, 167, 0, 0 (próbowałem 17, 167, 0, 0, ale bez powodzenia) . Domyślnym z karty SIM 1 jest 17,11,0,246, i że z SIM 2 jest 17, 255, 0, 0.
  • CSCS: "IRA"

Nieudane połączenia na porcie szeregowym (SIM 1 i SIM 2)

  • CSMP: 17, 11, 0, 246 | CSCS: "IRA" - wysyła pusty SMS
  • CSMP: 17, 11, 0, 246 | CSCS: "GSM" - wysyła pusty SMS
  • CSMP: 17, 11, 0, 246 | CSCS: "HEX" - Wysyła pustego SMS

Udane kombinacje na porcie szeregowym: (SIM 1 oraz SIM 2)

  • CSMP: 17, 167, 0, 0 | CSCS: "IRA"
  • CSMP: 17, 167, 0, 8 | CSCS: "IRA"
  • CSMP: 17, 11, 0, 0 | CSCS: "GSM"
  • CSMP: 17, 167, 0, 0 | CSCS: "GSM"
  • CSMP: 17, 167, 0, 8 | CSCS: „GSM”

Szczerze mówiąc, grałem przeczucie z tych kombinacji przed uczyłem co pole odzwierciedla to, co zmienić te kombinacje (które są słabo udokumentowane w podręczniku użytkownika SIM800L).


Każdy pomysł, czego może mi brakować tutaj? Jestem otwarty na to, że uważam, że jest to raczej kwestia RTFM (Read The Fat Manual).

Odpowiedz

2

Ok, udało się rozwiązać problem.

Nie chodziło wcale o SIM800L. Cała ładowność została zastąpiona przez '/0', co jest nieoczekiwane (wiem, bardzo słabe po mojej stronie). Termin szeregowy nie ma z tym żadnych problemów. Debugowanie było fajne!