Deutsch English Français Italiano |
<slrnsu53ar.bbo.JKB@hilbert.systella.fr> View for Bookmarking (what is this?) Look up another Usenet article |
Path: ...!2.eu.feeder.erje.net!feeder.erje.net!news2.arglkargh.de!news.mixmin.net!npeer.as286.net!npeer-ng0.as286.net!proxad.net!feeder1-1.proxad.net!cleanfeed3-b.proxad.net!nnrp4-2.free.fr!not-for-mail Newsgroups: fr.sci.electronique From: JKB <JKB@hilbert.invalid> Subject: Gestion de =?UTF-8?Q?l=27=C3=A9nergie?= sur puve GNSS CAM-M8 Reply-To: <jkb@invalid> User-Agent: slrn/1.0.3 (Linux) Mime-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Message-ID: <slrnsu53ar.bbo.JKB@hilbert.systella.fr> Date: 15 Jan 2022 09:01:15 GMT Lines: 88 Organization: Guest of ProXad - France NNTP-Posting-Date: 15 Jan 2022 10:01:15 CET NNTP-Posting-Host: 62.212.98.88 X-Trace: 1642237275 news-3.free.fr 6448 62.212.98.88:47388 X-Complaints-To: abuse@proxad.net Bytes: 4580 Bonjour à tous, Je suis en train de peaufiner la gestion de l'énergie sur un système embarqué utilisant une puce GPS CAM-M8. J'observe des choses étranges et pour l'instant, le support du fondeur ne m'est d'aucun secours. Je ne sais pas si dans ce lieu quelqu'un a déjà été confronté au problème, mais on ne sait jamais. La puce fonctionne parfaitement, je me suis tapé tout le protocole UBX, je n'ai aucun problème de communication. Typiquement, j'utilise deux fonctions : void gnss_ubx_send_frame(uint8_t classe, uint8_t id, uint16_t longueur, void *charge) { } et uint8_t gnss_ubx_receive_frame(uint8_t *classe, uint8_t *id, uint16_t *longueur, void *charge, uint8_t timeout, uint8_t tentatives) { } qui empilent les commandes et les dépilent pour que les transactions soient cohérentes (la puce est capable d'entrelacer les réponses). C'est pour cela que la fonction de réception possède deux paramètres timeout et tentatives. Si la trame correspond à classe et id, elle est retournée, sinon, elle est empilée et retournée à la prochaine requête correspondant à classe/id (et naturellement retirée de la pile si le timeout est dépassé). Ces deux fonctions sont parfaitement déboguées. Sur le site du fabricant se trouve un fichier 'u-blox8-M8_ReceiverDescrProtSpec_(UBX-13003221).pdf' qui contient les protocoles utilisés pour parler au composant. J'utilise le protocole UBX sur bus SPI (1 MHz). Le système complet fonctionne soit sur une batterie de forte capacité (typiquement une centaine d'Ah sous 12V), soit sur une alimentation de secours (1 Ah/7,2V). Je cherche donc à optimiser le fonctionnement sur l'alimentation de secours. Le système complet consomme actuellement 30 mA/12V au repos (typiquement, 8 mA pour les deux régulateurs 5V et 3,3V, le reste pour le CPU et les composants autour. J'arrive à baisser cette consommation à 12 mA en éteignant le NFC). Mais _sans_ la puce GPS. Une fois cette puce active, je n'arrive pas à baisser la consommation en-dessous de 50 mA sur 12V, ce qui est énorme. Et cette consommation minimale ne semble pas dépendre de l'état du champ powerSetupValue de UBX-CFG-PMS (page 210 de la doc). Typiquement, lorsque je suis en veille sur la batterie principale, je mets le composant dans le mode "aggressive with 4Hz". Je lis donc l'état du composant avec une trame de la classe 0x06 et l'id 0x86, je positionne dans la trame lu powerSetupValue à 0x05, period et onTime à 0 et je renvoie le tout à la puce qui me répond OK. Sauf que je ne vois aucune différence avec la consommation 0x00 (Full Power). J'ai poussé le vice à positionner powerSetupValue à 0x02, period à 600 et onTime à 60, là encore le composant me répond OK, mais la consommation reste identique à celle qu'elle était en "Full Power". Je suppose qu'il y a un truc qui m'a échappé, mais je ne vois vraiment pas quoi, d'autant que le composant répond bien qu'il accepte la commande ! J'ai sacrifié un piste en collant un ampéremètre sur l'alimentation de la puce GPS, c'est bien elle qui consomme et cette consommation ne varie pas. Dans le même ordre d'idée, j'essaie aussi d'éteindre la led de synchronisation en utilisant la trame 0x0631 en modifiant la valeur pulseLenRatioLock qui ne semble pas avoir l'effet escompoté. C'est assez étrange parce que je n'ai aucun autre problème avec ce composant... Si quelqu'un avait la moindre idée, je suis preneur. Bien cordialement, JKB -- Si votre demande me parvient en code 29, je vous titiouillerai volontiers une réponse.