alimentés

Bonjour à tous

Question sans doute triviale mais je n'ai pas trouvé la réponse. J'en suis à chasser les µA sur sur carte d'un capteur sans fil et certains périphériques SPI de cette carte consomme un courant non négligeable au repos. Je cherche donc à ne les alimenter qu'en cas de nécessité (avec un mosfet P sur Vdd). Mais dans ce cas, que se passe-t-il sur le bus lui-même ? Le CS est par défaut à l'état haut, des données peuvent transiter... Le bus est-il capable de fonctionner comme ça ? Je ne trouve rien dans mes docs.

Je pourrais utiliser un switch sur les lignes, mais l'intérêt de la coupure du périphérique serait... amoindri.

Merci de vos lumières,

JKB

Reply to
JKB
Loading thread data ...

Le 20/02/2023 à 16:24, JKB a écrit :

Slt JKB

En pratiquant le ON/OFF Vdd, il te faudra certainement laisser le temps au périphérique de se réinitialiser avant transmission sur le bus, ce qui veut dire qu'au moment où tu vas vouloir communiquer avec le périphérique, il faudra avant délivrer une mise ON de la carte esclave, laisser le temps à l'alimentation de se stabiliser, puis d'acquérir la clock et à partir de là envoyer le CS. Si tu n'as pas de contrainte de temps pourquoi pas, il te suffit de générer un CS" retardé à partir du CS initial avec un temps de retad suffisant pour initialiser le périphérique esclave. Donc le CS initial met ON le Vdd et le CS" retardé sélectionne ton périphérique. Bon je vois ça de ma fenêtre :-)

Reply to
Gauloisjesuis

Le 21-02-2023, Gauloisjesuis snipped-for-privacy@maisnon.fr a écrit :

Ça, c'est sûr (même une réinitialisation complète). Ce qui m'inquiète plutôt est de savoir comment se présentent les entrées d'un composant SPI non alimenté (mais encore connecté au GND).

J'ai continué mes lectures et je vois que la tension maximale admissible est généralement donnée en Vdd+v (souvent Vdd+0.5V). Mais là, on parle d'un fonctionnement normal. Ce n'est pas spécifié pour tous les composants.

La réponse à la question initiale semble donc être négative et il est impossible de couper l'alimentation d'un périphérique (quitte à le réinitialiser). Ça m'aurait pourtant semblé assez logique que, quelque part au fond des specs SPI, on considère ce cas comme un cas classique d'utilisation.

JKB

Reply to
JKB

Il n'est pas possible pour le MCU de mettre /CS à 0 avant de couper l'alimentation des périphériques pour passer en mode de veille ?

Reply to
cLx

Si, bien sûr, mais ça ne change pas le problème qui est de savoir comment les périphériques vont se comporter (et s'il y a un comportement imposé par les specs SPI). Là, j'en suis à 24 µA sous 3,6 V pour un capteur en veille (CPU + MRAM + écran ePaper + RTC + sonde de température). J'aurais voulu baisser un peu.

JKB

Reply to
JKB

J'ai du mal à saisir, si tu mets toutes les lignes qui vont aux périphériques à 0V via programme ainsi que leur tension d'alimentation, ils vont forcément être éteints, non ?

C'est peut être à cause de la RTC (qui a besoin de conserver sa tension d'alimentation ?)

Reply to
cLx

Le 23-02-2023, cLx <clx.kat@j'aimail.com.almost.invalid> a écrit :

Ça pourrait fonctionner en réaffectant les broches du bus SPI en GPIO entrant ou sortant à l'état bas, mais dans mon cas, ce n'est pas possible. Il y a des transactions SPI sur le bus lorsque des périphériques devraient être coupés.

Je suis arrivé à baisser la consommation en veille à 23 µA sous 3,6 V. La batterie fait 17 Ah, le courant de décharge interne est supérieur à ça donc je considère que ça ira bien comme ça.

JKB

Reply to
JKB

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.