8 votes

SIM800L Problème de SMS vides

J'utilise un Module SIM800L avec un Launchpad Texas Instrument, avec un microcontrôleur MSP430G2553, sans utiliser de bibliothèque externe pour SIM800L.

Énoncé du problème : Un message texte simple (SMS avec mode texte) est envoyé, reçu comme un message vide sur le téléphone portable.

Détails de la SIM :

1. SIM 1 : Lieu : Inde. Opérateur : AirTel, carte SIM compatible 4G.
2. SIM 2 : Lieu : Inde. Opérateur : Tata Docomo, carte SIM compatible 3G.

Ce que je sais déjà :

  • Les pilotes UART dans le firmware sont testés et fonctionnent, sans polling, avec des interruptions.
  • Aucun délai de blocage n'est ajouté pour remplacer la lecture des réponses des commandes AT. Je lis la réponse et ne procède que si un accusé de réception positif est reçu, <CR><LF>OK<CR><LF> pour la plupart des commandes.
  • J'ai confirmé les bits de données transmis et reçus sur les broches Tx-Rx au moyen d'un oscilloscope. Tout semble conforme aux attentes, y compris les niveaux de tension.

Ce que j'ai lu :

  • Certaines spéculations à travers des sources non officielles (bien sûr les forums) que SIM800L est seulement compatible 2G.

  • (Lecture superficielle de wikipedia) J'ai lu à travers GSM 3.38 y GSM 3.40 et le Section sur le schéma de codage des données pour comprendre comment le codage du texte est traité dans la commande AT adaptée/pertinente (AT+CSMP).

  • Divers forums, dont ceux consacrés à arduino, avec lesquels les modules SIM800L sont très utilisés.

Messages connexes sur Stackoverflow :

La réponse de la première semble avoir fonctionné pour lui, elle n'a pas fonctionné pour moi.

Ce que j'ai essayé :

  • J'ai utilisé le même module avec une instance de terminal série Docklight. Les SMS envoyés par Docklight sont reçus sur mon téléphone portable et apparaissent comme prévu, non vides.

  • Au jour 0, avant d'intégrer le module avec le matériel Launchpad, j'ai testé l'ensemble de la machine d'état du firmware avec une copie exacte des réponses attendues de SIM800L.

  • Les résultats pour les deux cartes SIM sont les mêmes, à l'exception de certaines des configurations initiales, mais je charge un ensemble typique de configuration dans les deux cartes avant de lancer toute tâche liée aux SMS.

Les valeurs typiques que j'utilise sont :

  • Echo Off
  • CSMP : 17, 167, 0, 0 (j'ai essayé 17, 167, 0, 0, mais sans succès). La valeur par défaut du SIM 1 est 17,11,0,246, et celle du SIM 2 est 17, 255, 0, 0.
  • CSCS : "IRA"

Échec des combinaisons sur le port série (SIM 1 et SIM 2)

  • CSMP : 17, 11, 0, 246 | CSCS : "IRA" - Envoi d'un SMS vide
  • CSMP : 17, 11, 0, 246 | CSCS : "GSM" - Envoi d'un SMS vide
  • CSMP : 17, 11, 0, 246 | CSCS : "HEX" - Envoi d'un SMS vide

Combinaisons réussies sur le port série (SIM 1 et 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"

Pour être honnête, j'ai joué au hasard avec ces combinaisons. avant J'ai étudié quel champ reflète quoi en changeant ces combinaisons (qui sont mal documentées dans le guide d'utilisation de SIM800L).


Une idée de ce que je pourrais manquer ici ? Je suis prêt à penser qu'il s'agit plutôt d'un problème de type RTFM (Read The Fat Manual).

3voto

WedaPashi Points 2498

Ok, j'ai réussi à résoudre le problème.

Ce n'était pas du tout à propos du SIM800L. L'ensemble de la charge utile était suivi par un '\0' ce qui est inattendu (je sais, très pauvre de ma part). Le terme série ne pose aucun problème. Le débogage était amusant !

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X