Bienvenue aux nouveaux arrivants sur FantasPic !

- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.

--- L’équipe FantasPic ---
Forum général sur le langage C !

Modérateur : Jérémy

Module GSM2-Click
paulfjujo
Avatar de l’utilisateur
Expert
Expert
Messages : 2589
Âge : 73
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#21 Message par paulfjujo » mar. 7 juin 2016 19:38 lien vers la Data-Sheet : Cliquez ici

bonsoir,

je suis surpris que tu doives diminuer la vitese à 300 bauds.
Mes 2 liaisons UART1 et UART2 sont à 19200 bds.


à voir aussi : quelles sont les ressources utilisées par le SON ?.

Il y a une enorme difference dans mon application,
je ne gere pas la laison GSM2 (UART2) via une machine d'etat .
mais en gerant un buffer de reception (via interrupt) et test du contenu buffer.

A quel vitesse FOS tourne ton PIC ?
je suis à 48MHz .. 83nS / cycle


Sinon PAul, tu gére l'effacement des SMS recu par "DEL INBOX" ? qu'entend-il par INBOX ? par rapport à un "DEL ALL"


c'est bien la meme chose :


Des qu'un SMS est reçu, analysé et exploité, la zone de memoire SMS INBOX est razée ,de sorte
à ne conserver aucun message reçu et donc celui qui arrive est toujour en position #1.
On peut donc le lire soit via "REC UNREAD" soit en précisant son index (numero) ,inutile dans ce cas là.
Un stockage des messages recus pourrait etre envisagé si besoin..


18:55:38.234> List all msg from inbox (AT+CMGL=ALL)
18:55:40.796> OK

nota: je n'ai pas encore testé ton appli .. ça va "viendre" .
Aide toi, le ciel ou FantasPic t'aidera

Module GSM2-Click
Jérémy
Administrateur du site
Administrateur du site
Messages : 2722
Âge : 44
Enregistré en : juillet 2015
Localisation : Dans le sud
Contact :

#22 Message par Jérémy » mar. 7 juin 2016 19:59 lien vers la Data-Sheet : Cliquez ici

quelles sont les ressources utilisées par le SON ?.

Je ne sais pas ! qu'entends tu par la ? je n'ai pas encore touché à cela .

A quel vitesse FOS tourne ton PIC ?
je suis à 48MHz .. 83nS / cycle

J'ai encore du mal a comprendre ca . Au départ j'étais à 8Mhz, et pour testé j'ai changé en passant à 32 mhz mais je trouvais que c'était encore plus lent au niveau des pauses ( genre le beep émis sur ma carte était différent). alors jai activé les PLL pareil .

A 300Bauds j'ai aucun loupé si je me mets à 1200 bauds j'ai quelques loupés ( 1 sur deux environs)

Piur les SMS Unrread j'ai testé hier soir . effectivement une fois lu , il passe en stockage automatiquement, amis on peut les garder on UNREAD il me semble avec une commande.

Je vais essayer de peaufiner ma compréhension des commandes, puis revoir le programme de test pour le mettre à ma sauce.

Mais pour la façon de traiter les reçus par sms je trouve la façon de faire peu claire .Le fait de vérifier chaque lettre une à une et de glisser dans le switch case pour retrouver le bon mot ! Je pense que je pourrais revoir ceci .

Puis enfin viendra le HARD, je ne vois pas pourquoi tu n'arrive pas descendre la consommation avec le mode sleep, sans touché le CFUN qui inhibe la liaison RF .
Suivant l'application , je ne vois que le mode sommeil/reveil automatique pour descendre a mort . Genre un reveil toutes les 5 minutes pour checker l'arrivé de SMS .
C'est en faisant des erreurs, que l'on apprend le mieux !!!

Module GSM2-Click
paulfjujo
Avatar de l’utilisateur
Expert
Expert
Messages : 2589
Âge : 73
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#23 Message par paulfjujo » mar. 7 juin 2016 20:21 lien vers la Data-Sheet : Cliquez ici

Jérémy a écrit :quelles sont les ressources utilisées par le SON ?.
Je ne sais pas ! qu'entends tu par la ? je n'ai pas encore touché à cela .


ceci :

Code : Tout sélectionner

   Sound_Play(5000, 50); // On joue un son   


CFUN qui inhibe la liaison RF .


si CFUN inhibe aussi la RF reception .. ce n'est pas le SMS qui le reveillera ..
Je n'ai pas vu d'efficacité reelle sur la conso avec CFUN.. mais je ne sais pas tout !
Modifié en dernier par paulfjujo le mar. 7 juin 2016 20:24, modifié 1 fois.
Aide toi, le ciel ou FantasPic t'aidera

Module GSM2-Click
Jérémy
Administrateur du site
Administrateur du site
Messages : 2722
Âge : 44
Enregistré en : juillet 2015
Localisation : Dans le sud
Contact :

#24 Message par Jérémy » mar. 7 juin 2016 20:24 lien vers la Data-Sheet : Cliquez ici

Ah ca , c'est juste un buzzer sur ma carte EasyPIC , avec la librairie SOUND, cela me permet d'emettre un petit son a chaque SMS et à la fin de l'initialisation.
Crois tu que c'est dérageant ?

Je vais essayer de l'enveler pour voir !
C'est en faisant des erreurs, que l'on apprend le mieux !!!

Module GSM2-Click
Jérémy
Administrateur du site
Administrateur du site
Messages : 2722
Âge : 44
Enregistré en : juillet 2015
Localisation : Dans le sud
Contact :

#25 Message par Jérémy » mar. 7 juin 2016 20:36 lien vers la Data-Sheet : Cliquez ici

Je n'ai pas vu d'efficacité reelle sur la conso avec CFUN.. mais je ne sais pas tout !

Etrange , car CFUN coupe la liaison RF, ce qui devrait etre le gain le plus significatif en terme de conso le fait de couper la réception.

Comment a tu branche ton amperemetre ? sur le 5V ou le 3.3V ? car je n'ai aps compris la facon dont est alimenté le module !
Sur ma carte si je ne mets que la prise 3.3V le module ne s'allume pas ! je dois branché le 3.3V ET le 5 V .

EDIT : Test effectue sans SOUND, pareil .

Re-EDIT: En fait le PIC ou sa fréquence ne rentre pas en ligne de compte , car il est complétement débranché de mon module. Je ne me sert de lui que pour l'init de PWRKEY, ensuite je débranche les fils UART pour les mettre sur mon câble .
C'est en faisant des erreurs, que l'on apprend le mieux !!!

Module GSM2-Click
Jérémy
Administrateur du site
Administrateur du site
Messages : 2722
Âge : 44
Enregistré en : juillet 2015
Localisation : Dans le sud
Contact :

#26 Message par Jérémy » ven. 29 juil. 2016 21:06 lien vers la Data-Sheet : Cliquez ici

Bonsoir ,

J'ai repris quelques tests sur mon GSM2 click .

@Paul : Quand tu branche ton cable TTL/USB , branches-tu aussi les broches CTS et RTS au cable ? ou seulement GND , Rx et Tx

Si je ne branche pas rts et cts, tu me on firme que CTS doit être mis à gnd ?
C'est en faisant des erreurs, que l'on apprend le mieux !!!

Module GSM2-Click
paulfjujo
Avatar de l’utilisateur
Expert
Expert
Messages : 2589
Âge : 73
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#27 Message par paulfjujo » sam. 30 juil. 2016 12:06 lien vers la Data-Sheet : Cliquez ici

Bonjour Jeremy


Pour les liaison avec le PC .. je ne connecte que TX et RX .

par contre au niveau de l'init GSM2
j'ai CTS=RB3 = Entree tirée au niveau 1 via l'activation Pullup PortB
je ne sais pas si cette entree est activée ou pas, par le module GSM2
je ne la traite pas.

par contre j'ai mis RTS=RD3 mis à 0.

je gere aussi DTR (modif carte GSM2) pour reduire la conso..

rem: dans mon init GSM j'ai 2 modes : init longue et init courte
l'init longue en 16 pas etant faite au moins 1 fois, ensuite on peut utiliser que l'init courte en 5 pas
suivant #ifdef Full_Init validé ou non


Je vais m'y remettre dessus quand j'aurai recu mon GPS click ...
envoi data GPS -> via SMS (GSM-2)

un extrait de code concerné :

Code : Tout sélectionner




// specific to GSM2_click

sbit STAT at RA0_bit ;                 // AN  Microbus   STAT
sbit STAT_Direction at TRISA0_bit;
sbit PWRKEY at LATD2_bit;                // RST Microbus  PWRKEY
sbit PWRKEY_Direction at TRISD2_bit;

//sbit RING at RG3_bit;                    // PWM Microbus  RIng  
//sbit RING_Direction at TRISG3_bit;

sbit CTS at RB3_bit;                   // INT MicroBus   CTS
sbit CTS_Direction at TRISB3_bit;
sbit RTS at LATD3_bit;                   // CS Microbus  RTS
sbit RTS_Direction at TRISD3_bit;

sbit Cde_DTR at LATD6_bit;
sbit Cde_DTR_Direction at TRISD6_bit;



unsigned int Initialisation_Cdes_GSM2(void)
 {
     //                   1234567890123456
   #ifdef  With_LCD2119
  LCD_Write_CText(1,1,"Init GSM2-Click ");
  #endif
   LD2=1;
   Step=0;
   Drapeaux.Visible=1;

   UART1_Write_CText(" Set PIN code(AT+CPIN=1234) \r\n");  // p 61-62
   Send_Cde_display_response("AT+CPIN=1234\r", Drapeaux.Visible);
   //1
    #ifdef Full_Init
   UART1_Write_CText(" Send Msg type as text mode (AT+CMGF=1)\r\n");
   Send_Cde_display_response("AT+CMGF=1\r", Drapeaux.Visible);   // TXT lmode for messages
   //2
   UART1_Write_CText(" Software Version (AT+CGMR) \r\n");
   Send_Cde_display_response("AT+CGMR\r\n", Drapeaux.Visible);
   //3
   UART1_Write_CText(" IMEI Serial number (AT+CGSN) \r\n");
   Send_Cde_display_response("AT+CGSN\r", Drapeaux.Visible);
   //4
   UART1_Write_CText(" Format de Reponse via libellé (ATV1) \r\n");
   Send_Cde_display_response("ATV1\r", Drapeaux.Visible);
   //5
   UART1_Write_CText(" Select SM (AT+CPMS=\"SM\",\"SM\",\"SM\"  \r\n");
   Send_Cde_display_response("AT+CPMS=\"SM\",\"SM\",\"SM\"\r", Drapeaux.Visible);
   //6
   UART1_Write_CText(" Renvoi SMS sur terminal (AT+CNMI=2,1) \r\n");
   Send_Cde_display_response("AT+CNMI=2,1\r", Drapeaux.Visible);
   //7
   UART1_Write_CText(" Enregistre Numero tel Paul ,en position en SIM 1 (AT+CPBW=1,..)\r\n");
   Send_Cde_display_response("AT+CPBW=1,\"+33626330000\",145,\"Paul\",12,12\r", Drapeaux.Visible);
   //8
   UART1_Write_CText(" Enregistre Numero tel Joelle ,en position en SIM 2 (AT+CPBW=2,..)\r\n");
  Send_Cde_display_response("AT+CPBW=2,\"+33654131111\",145,\"Joelle\",12,12\r", Drapeaux.Visible);
   //9
   UART1_Write_CText(" Query service center.(AT+CSCA?)\r\n");
   Send_Cde_display_response("AT+CSCA?\r", Drapeaux.Visible);
   //10
   UART1_Write_CText(" Never go in SLEEP mode(AT+QSCLK=0) \r\n");
   Send_Cde_display_response("AT+QSCLK=0\r", Drapeaux.Visible);
   //11
   UART1_Write_CText(" Save profile (AT&W)\r\n");
   Send_Cde_display_response("AT&W\r", Drapeaux.Visible);
   //12
   #endif
   
   UART1_Write_CText
(" Test si enregistré sur le reseau (AT+CREG?1)\r\n");
   Send_Cde_display_response("AT+CREG?\r", Drapeaux.Visible);
   //13 ou 2
  
  
// format : AA//MM/DD,HH:MM:SS+xx     xx= decalage horaire *4   (soit +-48)
  // UART1_Write_CText(" MAJ date et Heure par defaut (AT+CCLK=\"15/10/01,19:05:00+04\")\r\n");
  // Send_Cde_display_response("AT+CCLK=\"15/09/29,16:45:00+04\"\r");

   UART1_Write_CText(" Lecture de date et heure (AT+CCLK?)\r\n");
   Send_Cde_display_response("AT+CCLK?\r", Drapeaux.Visible);
    //14  ou 3
   UART1_Write_CText(" Never go in SLEEP mode(AT+QSCLK=0) \r\n");
   Send_Cde_display_response("AT+QSCLK=0\r", Drapeaux.Visible);
    //15   ou 4
   UART1_Write_CText(" List all UNREAD msg from inbox (AT+CMGL=REC UNREAD)\r\n");
   Send_Cde_display_response("AT+CMGL=\"REC UNREAD\"\r", Drapeaux.Visible);
   //16  ou 5
   Delay_ms(1500);
   UART1_Write_CText(" Phase d'init en ");
    #ifdef  With_LCD2119
   LCD_CLS();
   LCD_Write_CText(1,1,"Phase d'init en ");
   #endif
   WordToStr(Step,txt);
   UART1_Write_Text(txt);
   #ifdef  With_LCD2119
   LCD_RAZ_Ligne(2);
   #endif
   #ifdef Full_Init
   UART1_Write_CText(" pas/16");
   #ifdef  With_LCD2119
   LCD_Write_Text(2,1,txt);
   LCD_Write_CText(2,8," pas /16");
   #endif
   #else
    UART1_Write_CText(" pas/5");     // was 6
    #ifdef  With_LCD2119
    LCD_Write_CText(2,1,"      pas / 5   ");
    LCD_Write_Chr(2,3,Step+48);
    #endif
   #endif
   //CRLF1();
   return(Step);
}

// dans le main
// dans la partie Hardware init 
  STAT_Direction=1;
  PWRKEY_Direction=0;
  RING_Direction=1;
  CTS_Direction=1;
  RTS_Direction=0;
  RBPU_bit=0; // pull up RB3 CTS 
  Cde_DTR_Direction=0;      // output DTR   RD6


.....
   Cde_DTR=0;
 //  Set PWRKEY pin to zero
  Delay_ms(1000);
  PWRKEY = 1;             //
  Delay_ms(5000);         // hold it at least for two seconds
  PWRKEY = 0;             // Turn ON module
  Delay_ms(1000);
  // la led jaune (STAT) doit s'allumer
  // Set RTS pin to zero (we will use only RX & TX)
  RTS =0;
  Step= Initialisation_Cdes_GSM2();
 ... etc ..

 
Aide toi, le ciel ou FantasPic t'aidera

Module GSM2-Click
Jérémy
Administrateur du site
Administrateur du site
Messages : 2722
Âge : 44
Enregistré en : juillet 2015
Localisation : Dans le sud
Contact :

#28 Message par Jérémy » sam. 30 juil. 2016 22:54 lien vers la Data-Sheet : Cliquez ici

Bonsoir ,

Pensez vous qu'il soit possible, après une longue période sans trouver de connexion, de pouvoir "reseter" le module pour essayer de retrouver un réseau ?

Il faudrait que je surveille le status du module ? puis que je déclenche un timer quand il perd la connexion et au bout du timer que je le reset ?
est ce que vous pensez que c'est jouable ou utile?

@Paul : as tu trouver la commande pour faire un RESET ?
C'est en faisant des erreurs, que l'on apprend le mieux !!!

Module GSM2-Click
Jérémy
Administrateur du site
Administrateur du site
Messages : 2722
Âge : 44
Enregistré en : juillet 2015
Localisation : Dans le sud
Contact :

#29 Message par Jérémy » dim. 31 juil. 2016 19:33 lien vers la Data-Sheet : Cliquez ici

Bonsoir,

Mes investigations avancent bien, ainsi que ma comprehension du programme ! je devrais pas tarder à la refaire à la sauce Jérémy :-D .

Cependant un truc me chiffonne .

Voici mon programme actuel:
► Afficher le programme


On envoie une commande pour afficher la liste des messages reçus : dans le while principal à la ligne :
M95_Send(atc6); On envoie donc "AT+CMGL=\"ALL\""; au module .

celui répond par la liste de tout les messages . jusque la c'est normal .
le format recu est celui ci :

Code : Tout sélectionner

+CMGL: 5,"REC UNREAD","+336xxxxxxxx","","2016/07/31 19:21:54+08"
Coucou


Dans la partie de décodage de ce message , il ne traite que le mot "UNREAD"

Code : Tout sélectionner

                if (tmp == 'U')                  // si Nous avons un 'U', C'est peut-être le mot "UNREAD"
                  
gsm_state 120;               // On signale qu'on attend peut etre un 'N'
                
break; 


Comment se fait-il qu'il le détecte ? car il ne sait pas ou il est placé dans le buffer ? y'a pas de mot de reconnaissance ? ou alors c'est l'espace qui joue un rôle ?

Merci si vous avez une explication sur le fonctionnement de cette partie
C'est en faisant des erreurs, que l'on apprend le mieux !!!

Module GSM2-Click
paulfjujo
Avatar de l’utilisateur
Expert
Expert
Messages : 2589
Âge : 73
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#30 Message par paulfjujo » lun. 1 août 2016 17:35 lien vers la Data-Sheet : Cliquez ici

bonjour,

Attention,
la lecture des messages UNREAD peut prendre beaucoup de temps et aussi en taille ...
avec la methode buffer de reception, je sort que un nb maxi de caractere ou timerout
pour eviter un depassement de table .

L'echo GSM est bien desactivé ?

Avec la methode State machine ..il faut trouver effectivement autre chose que le U pour sortir de la boucle !
compterun nombre de 'U' ?
un timeout ?
un nombre de caracteres ?
Aide toi, le ciel ou FantasPic t'aidera


Retourner vers « Langage C »

Qui est en ligne

Utilisateurs parcourant ce forum : Bing [Bot] et 54 invités