IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Arduino Discussion :

Consommation : comment améliorer l'autonomie ?


Sujet :

Arduino

  1. #61
    Membre actif
    Inscrit en
    Juillet 2004
    Messages
    762
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 762
    Points : 230
    Points
    230
    Par défaut
    essayez de mettre un delay(600); juste après le lora.sleep() comme ils disent à certains endroit, c'est nécessaire pour que le composant ait vraiment le temps de s'endormir... (pas convaincu, mais ce n'est pas difficile à essayer)
    Non désolé Jay M çà ne fonctionne pas
    mais j'aurai une petite question

    J'éteins bien le LoRa avec LoRa.sleep()
    mais suis-je sûr d'avoir éteint le SPI ?
    serait-ce LoRa.end() qui éteint le SPI ?

  2. #62
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 711
    Points : 5 390
    Points
    5 390
    Par défaut
    Citation Envoyé par cobra38 Voir le message
    Non désolé Jay MJ'éteins bien le LoRa avec LoRa.sleep()
    mais suis-je sûr d'avoir éteint le SPI ?
    serait-ce LoRa.end() qui éteint le SPI ?
    c'est LoRa.end() dans mon code qui fait à la fois sleep et arrête le SPI, cf le code source (si on fait confiance aux commentaires)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     void LoRaClass::end()
    {
      // put in sleep mode
      sleep();
     
      // stop SPI
      _spi->end();
    }

  3. #63
    Membre actif
    Inscrit en
    Juillet 2004
    Messages
    762
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 762
    Points : 230
    Points
    230
    Par défaut
    j'ai pu observé qu'après chaque téléversement , la consommation était durant quelques secondes à 0,800 mA
    puis elle augmentait à 1,70mA

    dans la librairie <Lora.h> et <Lora.cpp> on fait appel à

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    void LoRaClass::sleep()
    {
      writeRegister(REG_OP_MODE, MODE_LONG_RANGE_MODE | MODE_SLEEP);
    }
    avec REG_OP_MODE = 0x01
    et MODE_SLEEP = 0x00

    l'idée serait de forcer cette écriture dans le registre pour être sûr
    car j'ai un doute

  4. #64
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 711
    Points : 5 390
    Points
    5 390
    Par défaut
    Pas de doute à avoir puisque la fonction end() appelle la fonction sleep() qui met le registre à jour.

    Ensuite il se peut que ça ne soit pas suffisant… il faudrait se plonger dans la lecture des specs du module

  5. #65
    Membre actif
    Inscrit en
    Juillet 2004
    Messages
    762
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 762
    Points : 230
    Points
    230
    Par défaut
    Je vais d'abord commencer par changer de support ESP32
    je vais prendre la carte FireBeetle 2 ESP32-E DFR0654 et voir si mon problème persiste

  6. #66
    Membre actif
    Inscrit en
    Juillet 2004
    Messages
    762
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 762
    Points : 230
    Points
    230
    Par défaut
    Bonjour à tous ,

    J'ai donc fait l'acquisition des 2 cartes :
    l'une uPesy ESP32 Wroom Low Power DevKit
    l'autre : FireBeetle 2 ESP32-E DFR0654

    Dans un premier temps j'ai fait l'essai avec la carte : ]uPesy ESP32 Wroom Low Power DevKit
    j'ai branché la carte de la même façon càd avec les même entrées (VSPI)
    résultat :
    sans carte SX1278 RA-01 = 0,010 mA donc conforme aux spécifications
    avec carte SX1278 RA-01 = 1,80 mA

  7. #67
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 711
    Points : 5 390
    Points
    5 390
    Par défaut
    C’est donc bien le module LoRa qui consomme même en sleep

  8. #68
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 302
    Points : 53 165
    Points
    53 165
    Par défaut
    Citation Envoyé par cobra38 Voir le message
    avec carte SX1278 RA-01 = 1,80 mA
    C'est la consommation du module LoRa en mode Stand-by. Voir la documentation page 4 : https://docs.ai-thinker.com/_media/r...cification.pdf

    La broche RESET du module LoRa est-elle maintenue à l'état haut quand l'ESP32 est en veille ? Je rappelle que par défaut l'état des broches n'est pas maintenu quand l'ESP32 se met en veille profonde.

    Voici un exemple de brochage qui devrait fonctionner avec une carte uPesy Low Power et le module RA-01 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    // GPIO13 -- RA01 NSS
    #define LORA_SS			13 
    #define LORA_SS_GPIO_NUM	GPIO_NUM_13
    // GPIO14 -- RA01 RST
    #define LORA_RST     		14 
    #define LORA_RST_GPIO_NUM	GPIO_NUM_14
    Avant la mise en veille profonde :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    lora.end();
     
    digitalWrite(LORA_SS, HIGH); // Normalement la broche est déjà à l'état haut
    rtc_gpio_hold_en(LORA_SS_GPIO_NUM);
     
    digitalWrite(LORA_RST, HIGH); // Normalement la broche est déjà à l'état haut
    rtc_gpio_hold_en(LORA_RST_GPIO_NUM);
     
    esp_deep_sleep_start();
    Au tout début du code dans la fonction setup() :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    rtc_gpio_hold_dis(LORA_SS_GPIO_NUM);
    rtc_gpio_hold_dis(LORA_RST_GPIO_NUM);
    À tester
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  9. #69
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 711
    Points : 5 390
    Points
    5 390
    Par défaut
    à titre de curiosité (la doc n'a pas l'air d'en parler) quelle consommation voyez vous quand le module est en mode reset forcé ?

  10. #70
    Membre actif
    Inscrit en
    Juillet 2004
    Messages
    762
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 762
    Points : 230
    Points
    230
    Par défaut
    Bonjour à Tous

    Encore merci pour conseils

    Pour Jay M

    à titre de curiosité (la doc n'a pas l'air d'en parler) quelle consommation voyez vous quand le module est en mode reset forcé ?
    Pardonnez-moi mais je n'ai pas bien compris le sens de la question néanmoins si j'appuie sur RESET en lors d'un sommeil profond , il m'indique 0,600 mA

    Pour Jerome

    Bingo ! en sommeil profond j'arrive maintenant à une conso de : 220 µA nettement mieux que 1,80 Ma
    par contre je n'ai pas compris :
    - pourquoi avoir choisi 13 et 14 ( sachant que suivant le description il s'agit de pins pour HSPI )
    - pourquoi ne pas y inclure aussi la pin 12
    - quelle différence y-a-t-il entre VSPI et HSPI (vitesse ?)
    Images attachées Images attachées  

  11. #71
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 302
    Points : 53 165
    Points
    53 165
    Par défaut
    Citation Envoyé par cobra38 Voir le message
    - quelle différence y-a-t-il entre VSPI et HSPI (vitesse ?)
    Aucune à ma connaissance.

    Citation Envoyé par cobra38 Voir le message
    - pourquoi avoir choisi 13 et 14 ( sachant que suivant le description il s'agit de pins pour HSPI )
    Rien à voir avec le HSPI. J’aurais pu utiliser n'importe quelle broche libre avec la mention RTC_GPIO pour pouvoir en conserver l'état en veille profonde.

    Sur le schéma ci-dessus, les mentions VSPI_, HSPI_, SD_, TX et RX sont juste attribuée à certaines broches par défaut. Rien n'empêche d'en choisir d'autres.
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

Discussions similaires

  1. Comment améliorer la rotation à 45° d'une image dans un PictureBox
    Par ProgElecT dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 22/07/2006, 01h05
  2. Comment amèliorer ma demande d'emploi ?
    Par unix27 dans le forum Emploi
    Réponses: 19
    Dernier message: 29/03/2006, 13h55
  3. [Sécurité] Comment amélioré mon code ?
    Par Nadd dans le forum Langage
    Réponses: 14
    Dernier message: 03/03/2006, 20h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo