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 ---
- 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 ---
Modérateur : Jérémy
Trf Click, module radio 868 Mhz
-
Jérémy
Administrateur du site- Messages : 2723
- Âge : 45
- Enregistré en : juillet 2015
- Localisation : Dans le sud
- Contact :
Bonjour à tous,
J'essaye de fabriquer une télécommande avec le module Trf Click composé d'un Telit LE-70.
DS du module Telit LE-70
D'un coté ma plaque EasyPIC avec ce module posé sur le MikroBUS 1 et un pic 18F46K22( DS en haut).
de l'autre en mode nomade un module Telit posé sur mon Clicker2sur le MikroBUS 2 !
La communication en mode transparent fonctionne parfaitement !
J'ai voulu approfondir un peu la chose en essayant d'utiliser le Wake-Up on radio (WOR), afin de gagner en consommation. (montage sur batterie).
Malheureusement ça ne fonctionne pas !
Comme je n'ai rien à la maison pour tester le courant j'ai volontairement exagéré les temps de pause et diminuer les temps de réveil , pour ne pas recevoir de message quand j'appuie sur mon BP. Si je reçois pas mes messages c'est que le module dort ! le HIC c'est que je reçois toujours mes messages !
pour simplifier la chose, ma platine clicker2 possède 2 BP, quand j’appuie sur l'un d'eux, cela envoi un message au récepteur.
Ma platine EasyPIC reçoit le message et le traite, avec un affichage sur le GLCD. Plus pratique que le LCD pour debugger car on peu mettre plus d'infos !
D’après la DS (page 26 low power config), il faut paramétrer le registre S240.
- Le bit 2 pour activer le WOR
- le bit 0 pour sortir d'un sommeil manuellement ( préconisé au début )
- Les bits 3 et 4 doivent etre active aussi apparemment (page 28, le deuxieme WARNING )
Donc une valeur de 29, pour le registre d'apres ce que je crois comprendre!
Je vérifie mon paramétrage avec mon Cable USB/UART et la commande AT/S( affiche tous les registre et leurs valeurs. Tout est nickel les paramètres sont bien pris en compte.
Voici mon code du coté récepteur ( plaque EasyPIC) :
Le but étant de ne PAS recevoir les messages signifiant que module dort !
J'essaye de fabriquer une télécommande avec le module Trf Click composé d'un Telit LE-70.
DS du module Telit LE-70
D'un coté ma plaque EasyPIC avec ce module posé sur le MikroBUS 1 et un pic 18F46K22( DS en haut).
de l'autre en mode nomade un module Telit posé sur mon Clicker2sur le MikroBUS 2 !
La communication en mode transparent fonctionne parfaitement !
J'ai voulu approfondir un peu la chose en essayant d'utiliser le Wake-Up on radio (WOR), afin de gagner en consommation. (montage sur batterie).
Malheureusement ça ne fonctionne pas !
Comme je n'ai rien à la maison pour tester le courant j'ai volontairement exagéré les temps de pause et diminuer les temps de réveil , pour ne pas recevoir de message quand j'appuie sur mon BP. Si je reçois pas mes messages c'est que le module dort ! le HIC c'est que je reçois toujours mes messages !
pour simplifier la chose, ma platine clicker2 possède 2 BP, quand j’appuie sur l'un d'eux, cela envoi un message au récepteur.
Ma platine EasyPIC reçoit le message et le traite, avec un affichage sur le GLCD. Plus pratique que le LCD pour debugger car on peu mettre plus d'infos !
D’après la DS (page 26 low power config), il faut paramétrer le registre S240.
- Le bit 2 pour activer le WOR
- le bit 0 pour sortir d'un sommeil manuellement ( préconisé au début )
- Les bits 3 et 4 doivent etre active aussi apparemment (page 28, le deuxieme WARNING )
Donc une valeur de 29, pour le registre d'apres ce que je crois comprendre!
Je vérifie mon paramétrage avec mon Cable USB/UART et la commande AT/S( affiche tous les registre et leurs valeurs. Tout est nickel les paramètres sont bien pris en compte.
Voici mon code du coté récepteur ( plaque EasyPIC) :
Code : Tout sélectionner
/*
PIC18F46K22 : http://ww1.microchip.com/downloads/en/DeviceDoc/41412F.pdf
*/
// connexion du module GLCD
char GLCD_DataPort at PORTD; // Tous le PORT D
sbit GLCD_CS1 at LATB0_bit;
sbit GLCD_CS2 at LATB1_bit;
sbit GLCD_RS at LATB2_bit;
sbit GLCD_RW at LATB3_bit;
sbit GLCD_EN at LATB4_bit;
sbit GLCD_RST at LATB5_bit;
sbit GLCD_CS1_Direction at TRISB0_bit;
sbit GLCD_CS2_Direction at TRISB1_bit;
sbit GLCD_RS_Direction at TRISB2_bit;
sbit GLCD_RW_Direction at TRISB3_bit;
sbit GLCD_EN_Direction at TRISB4_bit;
sbit GLCD_RST_Direction at TRISB5_bit;
// Fin
//----------------------------------- VARIABLES et CONSTANTES ------------------------------------------------
char i, Temp, Index_Buff, Buffer_plein;
char Buffer[30];
//--------------------------------------- PROTOTYPE ---------------------------------------------------
void Initialisation();
//---------------------------------------------------------------------------------------------------------------------
void interrupt() {
if ( RC1IF_bit == 1 ) { // reception UART detectée
Temp = UART1_Read(); // On stock temporairement la variable recue
if ( (Temp == '\r') || (Index_Buff >= 30) ){ // Verifie fin de message(Carriage Return) ou Buffer plein
Buffer[Index_Buff] = 0; // On rajoute un Terminateur de string
Index_Buff = 0; // RAZ du compteur de l'index
Buffer_plein = 1; // Singale que le Buffer est rempli et qu'on peut le lire
}
else{
Buffer[Index_Buff] = Temp; // On remplit le Buffer avec le caractere recu
Index_Buff++ ; // On incremente l'index
}
}
}
/*#####################################################################################################################
##################################### PROGRAMME PRINCIPAL #####################################################
#####################################################################################################################*/
void main() {
ANSELA = ANSELB = ANSELC = ANSELD = ANSELE = 1; // Tous les PORT en digitaux
TRISA = 0b00000111; // RA0, RA1 et RA2 en entrée pour BP
Glcd_Init(); // Initialisation du GLCD
Glcd_Set_Font(FontSystem5x7_v2, 5, 7, 32); // Charge la police
UART1_Init(19200); // Initialise l'UART
Delay_ms(100); // Pause de stabilisation
//------------------- Réglages INTERUTPUIONS
RC1IE_bit = 1; // Active les interruption sur reception UART
RC1IF_bit = 0; // On RAZ le drapeau
PEIE_bit = 1; // Active les Interruption périphérique
GIE_bit = 1; // Active les interruptinos globales
Glcd_Fill(0x00); // Efface l'écran
for (i=0;i<30;i++){ // RAZ le buffer
Buffer[i] = 0;
}
Index_Buff = Buffer_plein = 0 ; // RAZ des variables
Initialisation();
/*#####################################################################################################################
####################################### BOUCLE INFINIE #######################################################
#####################################################################################################################*/
while(1) {
if (PORTA.B2 == 1) { // Réveil du module
delay_ms(20);
if (PORTA.B2 == 1) {
Glcd_Write_Text("appui RA2", 0, 0, 1);
delay_ms(100);
Glcd_Write_Text(" ", 0, 0, 1);
while (PORTA.B2 == 1);
}
}
if (Buffer_plein == 1){ // Si le Buffer est remplit
Glcd_Write_Text(" ", 1, 3, 1); // J'efface la ligne du buffer
Glcd_Write_Text(Buffer, 1, 3, 1); // J'affiche le buffer
Buffer_plein = 0; // Je raz le flag
if ( (Buffer[0]=='D') && (Buffer[1]=='r') && (Buffer[2]=='o') && (Buffer[3]=='i') && (Buffer[4]=='t') ){
Glcd_Write_Text(" L_Droit", 0, 6, 1);
}
else if ( (Buffer[0]=='G') && (Buffer[1]=='a') && (Buffer[2]=='u') && (Buffer[3]=='c') && (Buffer[4]=='h') ){
Glcd_Write_Text("L_Gauche ", 0, 6, 1);
}
}
}
}
/*#####################################################################################################################
#################################### PROGRAMME SECONDAIRE #####################################################
#####################################################################################################################*/
void attente_OK(){
char Compteur=0;
while(1){
Compteur++;
delay_ms(1);
if ( ((Buffer_plein==1)&&(Buffer[0]=='O')&&(Buffer[1]=='K'))|| (Compteur>50) ) {
Buffer_plein = 0;
break;
}
}
}
//------------------------------- INITIALISATION DU MODULE ----------------------------------------------------
void Initialisation(){
UART1_Write_text("+++"); // Passage en commande mode
attente_OK ();
UART1_Write_text("ATS240=29\r"); // WOR activé, stand by mode activé
attente_OK ();
UART1_Write_text("ATS243=1900\r"); // temps de sleep
attente_OK ();
UART1_Write_text("ATS245=10\r"); // temps d'écoute
attente_OK ();
UART1_Write_text("ATS247=10\r"); // temps le temps de retour en veille aprés un CR
attente_OK ();
UART1_Write_text("ATO\r"); // passage en mode communication
attente_OK ();
}
Le but étant de ne PAS recevoir les messages signifiant que module dort !
Trf Click, module radio 868 Mhz
-
Jérémy
Administrateur du site- Messages : 2723
- Âge : 45
- Enregistré en : juillet 2015
- Localisation : Dans le sud
- Contact :
Je suis passé en mode "adressé sécurisé" ( adressed secured mode).
Tout fonctionne bien . je donne des Identifiants un numéro de réseau . la détection est nickel .
J'essaye d'endormir mon module .... impossible.
Il dort 2 secondes et se reveil 10ms. j'envoie un message qui prend quelques millisecondes seulement. DOnc j'ai peu de chance de le recevoir .... surtout en appuyant 10 fois de suite .
Et ben si je le reçois 10 fois de suite !!!! forcement ça fonctionne pas. J'ai lu environ 10 fois la DS ; Je l'ai traduite (merci google) paragraphe par paragraphe.....
Je suis presque sur d'avoir bon !
Sur le net je ne trouve rien a propos de ça !
Tout fonctionne bien . je donne des Identifiants un numéro de réseau . la détection est nickel .
J'essaye d'endormir mon module .... impossible.
Il dort 2 secondes et se reveil 10ms. j'envoie un message qui prend quelques millisecondes seulement. DOnc j'ai peu de chance de le recevoir .... surtout en appuyant 10 fois de suite .
Et ben si je le reçois 10 fois de suite !!!! forcement ça fonctionne pas. J'ai lu environ 10 fois la DS ; Je l'ai traduite (merci google) paragraphe par paragraphe.....
Je suis presque sur d'avoir bon !
Sur le net je ne trouve rien a propos de ça !
Trf Click, module radio 868 Mhz
Trf Click, module radio 868 Mhz
Trf Click, module radio 868 Mhz
-
Jérémy
Administrateur du site- Messages : 2723
- Âge : 45
- Enregistré en : juillet 2015
- Localisation : Dans le sud
- Contact :
Bonjour PAul,
Merci d'avoir prit le temps de regarder :
Non je n'ai pas essayé. C'est une bonne idée ! Je suis pret a tout tenter !
Merci
Merci d'avoir prit le temps de regarder :
Au vu de ton init du module,
As-tu essayé de modifier l'ordre d'envoi des commandes
par exemple d' émettre en dernier la commande WOR ...
Non je n'ai pas essayé. C'est une bonne idée ! Je suis pret a tout tenter !
Merci
Trf Click, module radio 868 Mhz
-
Jérémy
Administrateur du site- Messages : 2723
- Âge : 45
- Enregistré en : juillet 2015
- Localisation : Dans le sud
- Contact :
Bonjour,
Test négatif PAul !
Mais agréablement surpris car J'ai eu une réponse de Telit ce matin.
Je comprends qu'il faille que je passe mon module en Stand by avec la broche hardware. C'est plutôt bon signe ! je vous tiendrais au courant de mes tests !
Test négatif PAul !
Mais agréablement surpris car J'ai eu une réponse de Telit ce matin.
Dear Jeremy,
wake up on radio works with HW low power enabled.
So, you have to set sleep module in HW low power also. (put stand by pin to Vcc)
After it, the sender must send radio frame with very long preamble (ATS204 register) in order to increase the probability to detect the sleeping module
Refer to page 27 of Star network user guide for more details
Je comprends qu'il faille que je passe mon module en Stand by avec la broche hardware. C'est plutôt bon signe ! je vous tiendrais au courant de mes tests !
Qui est en ligne
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 49 invités