Utilisation d'une batterie d'iPhone pour concevoir des appareils électroniques portables

Salutations, lecteur.

Très souvent, j'ai pour tâche de développer des appareils portables alimentés par une batterie Li-ion monocellulaire. Et, si ce n'est généralement pas une préoccupation pour le client, alors, en tant qu'ingénieur expérimenté, un frisson me traverse le dos quand je vois un tel savoir traditionnel. Cela est dû au fait que l'évaluation du niveau de la batterie, ainsi que la durée de vie restante de la batterie, est une tâche très difficile, même si à première vue, cela peut sembler différent.



Il existe plusieurs options d'action dans ce cas, nous en parlerons ci-dessous.

- Le plus simple est de ne rien faire pour déterminer le niveau de charge de la batterie. Le circuit de charge sur une simple mémoire linéaire (par exemple sur TP4054) et un convertisseur de tension pour alimenter l'appareil. S'éteint sans avertissement et au moment le plus inopportun.

- Mesurer la tension de la batterie. Le résultat est à peu près le même que le paragraphe précédent, mais nécessite plus d'efforts. Schéma de mesure typique:



Il s'agit en fait d'un diviseur de tension pour les résistances R19 et R21, connecté via une clé VT6. Le transistor VT7 est nécessaire pour éliminer la puissance parasite du MK via la borne EN.
VBAT - tension de la batterie
VBAT_mes - tension arrivant à l'ADC
FR - signal de commande du diviseur (0-off, 1-on)

Maintenant que nous connaissons la tension de la batterie, nous sommes de bons amis. MAIS ça ne donne presque rien !!! Le fait est qu'une courbe de décharge typique d'une batterie Li-ion, pour le moins, n'est pas linéaire et dépend de la consommation actuelle et de la température de la batterie elle-même:



En regardant ces graphiques, pouvez-vous indiquer quelle est la capacité restante de la batterie à une tension de 3,5 V? Je pense que non ...

Cette méthode peut être améliorée un peu en utilisant le capteur de température intégré dans le MC pour une estimation approximative de la température de la batterie, ou vous pouvez soit mettre un capteur pour mesurer le courant, soit (si le courant de consommation est approximativement constant) construire une courbe de décharge pour une consommation de courant typique. Cela permettra au moins une petite justification des coûts de main-d'œuvre, mais il ne peut être question d'aucune précision. Pour indiquer la charge sur 3 LED - oui, ce sera le cas.

Dans le cas d'une consommation de courant constante, vous pouvez prendre la durée de vie de la batterie et estimer la charge consommée et le temps consacré à la charge pour évaluer la charge accumulée. Cette méthode donne une erreur cumulative, car l'étalonnage ne peut se faire qu'en deux points (pleine charge ou décharge complète), et ils ne sont pas toujours atteints. De plus, à mesure que la batterie se détériore, la durée de fonctionnement maximale doit être ajustée, mais en général, la méthode a droit à la vie.

- Créez votre propre système de surveillance de la charge de la batterie (BMS). Pour sa mise en œuvre, nous avons besoin de capteurs de courant, de température et de tension de batterie. Nous pensons que MK existe déjà dans l'appareil et il ne reste «que» à écrire des logiciels pour cela, ce qui m'a pris un peu moins d'un an.

- Prenez la puce de jauge de gaz finie (par exemple, de TI ou Maxim Integrated), configurez-la, calibrez et travaillez. Par exemple, le diagramme pour bq27220:



Il existe plusieurs nuances lors du choix de ce concept:

  1. Dans le cas où la batterie est amovible, vous devez soit mettre le circuit pour déterminer la charge de la batterie elle-même (sinon elle sera remise à zéro une fois déconnectée), soit utiliser des versions spéciales de la jauge à gaz qui permettent la déconnexion de la batterie. Dans le premier cas, la batterie de votre appareil devient unique et son remplacement n'est possible qu'avec votre participation, ce qui n'est pas toujours pratique. Dans le second cas, il y a le problème de placer le capteur de température sur la batterie.
  2. Solution coûteuse. Composants principaux: puce de jauge de gaz, puce de protection, transistors, thermistance, résistance de capteur de courant.

- Utilisez des options plus simples pour des solutions clé en main comme CW2015:



Il s'agit de l'analogue chinois de la puce MAX17048. Une puce absolument simple sans capteurs de température et de courant, avec une faible précision correspondante, mais en même temps bon marché, facile à utiliser et à programmer. Il a la possibilité de travailler sur le côté de l'appareil, ce qui permet de ne pas modifier la batterie elle-même. Le microcircuit a été trouvé sur les espaces ouverts du réseau en train d'écrire du matériel, il n'y a pas d'expérience, mais il y a une envie de l'essayer, car l'option est vraiment intéressante. Peut-être que dans le prochain article je parlerai plus en détail de cette puce.

- Et enfin, la dernière méthode que je connais que je veux consacrer à l'article d'aujourd'hui. À mon avis, cette méthode est la plus simple, mais donne le meilleur résultat. Il consiste dans le fait que nous prenons une batterie iPhone avec jauge de gaz intégrée et protection, nous connectons via HDQ ou I2C, interrogons et travaillons. Dans ce cas, la batterie est déjà assemblée et calibrée. Voici un tableau avec les options de batterie que je connais:



Le tableau est partiellement extrait des sites ripitapart.com et www.macplus.ru . Veuillez prêter une attention particulière au contrôleur inconnu marqué A1141. Cette puce est fabriquée par PowerFlash et ce sont toutes les informations qui pourraient être trouvées. L'auteur du blog à partir duquel j'ai pris la table n'était pas sûr d'avoir obtenu la batterie d'origine de l'iPhone SE. Grâce au rappel de asterix_tyumen , qui a démonté la batterie d'origine de SE, il a été constaté qu'il en coûte sn27545. Ci-dessous, nous serons obligés d'examiner plus en détail l'A1141. Mais pour l'instant, regardons les batteries:



Comme vous pouvez le voir, la batterie pour tous les goûts et couleurs, avec et sans pomme. Ils peuvent également être connectés en parallèle pour augmenter la capacité, avec une interrogation séparée. Parmi les lacunes, il convient de noter que le rapport longueur / largeur est d'environ 3: 1, ce qui n'est pas toujours pratique, ainsi qu'un connecteur unique pour la connexion. En raison de la popularité des téléphones Apple, ces batteries peuvent être achetées en toute sécurité dans de nombreux endroits et en grandes quantités (il s'est avéré que ce n'est pas entièrement vrai).

Lors du développement d'un lecteur RFID autonome sans fil, nous avons choisi cette voie.



La batterie de l'iPhone 6 a été choisie, ce qui nous convenait en termes de capacité et de taille. Plusieurs exemplaires ont été achetés à divers endroits pour vérification:



Le bon a été acheté en Chine, le reste à Moscou. Le coût est de 6 à 11 $. Lorsqu'elles sont vérifiées, des résultats plutôt intéressants seront obtenus. Portez une attention particulière à la boîte avec l'inscription "Orig", nous y reviendrons plus tard. La vérification a été effectuée à l'aide du lecteur RFID lui-même, du programmateur TI EV2300 et de Battery Management Studio.

Le circuit d'alimentation du lecteur RFID est représenté sur la figure:



Mémoire linéaire basée sur STC4054 (TP4054), courant de charge 500 mA, interrupteur d'alimentation à auto-sélection basé sur le commutateur Reed SF1, condensateur C19, diode VD4 et résistance R15, ainsi qu'un convertisseur d'impulsions basé sur NCP1529.

Le premier j'ai connecté une copie de Chine pour 6 $:



La batterie répond, MAIS le courant n'a été affiché ni pendant la charge ni pendant la décharge, la tension ne correspondait pas à ce qui a été réellement mesuré et le degré de charge n'a pas changé. La batterie n'a pas répondu aux commandes. Il y avait une supposition que cette instance était un faux, alors j'en ai retiré un ruban de protection pour regarder le tableau:



C'est un virage ... Je n'ai même pas redessiné le circuit - ici, il est clair qu'il y a un émulateur bq27545 et un circuit de protection contre les surcharges / surcharges. Immédiatement, il y a eu une idée pour gagner du temps et ouvrir toutes les batteries.



Le voisin à gauche du collègue chinois pour 8 $ est similaire à la différence de marquage sur les jetons. Le reste se comporte de la même manière. Ces 2 exemplaires sont immédiatement à la poubelle. Malheureusement, je n'avais pas l'iPhone 6 à portée de main pour vérifier ces batteries dans l'appareil cible, c'était très intéressant de voir comment le téléphone se comporterait lorsqu'il fonctionnerait avec ces batteries.



Et ceci est une batterie centrale, coûtant 8 $. Il a même un capteur de courant et une sorte de microcircuit à 8 broches avec un modeste marquage 6G3. Dans Battery Management Studio, cette batterie prétend être le bq27545 plus habilement. Le niveau de charge, la tension correcte, le courant de la batterie sont affichés. Mais si tout cela était réel, le faux ne serait pas un faux. En réalité, la température était réglée par une constante, le courant était très mal mesuré. L'image montre la consommation actuelle du lecteur RFID, qui est mesurée par la batterie avec une lecture constante de la carte.



En réalité, elle s'élève à ~ 55 mA pour un tel mode de fonctionnement, et comme le champ lecteur est toujours allumé, il ne peut pas être nul. Lors de la charge (lorsque le courant est constant sur une longue période de temps), le capteur de courant fonctionne correctement. Naturellement, tous les autres paramètres sont calculés de manière incorrecte (niveau de charge, durée de fonctionnement jusqu'à décharge complète, etc.). L'indicateur FC (charge complète) est réglé sur 4,4 V.



La batterie ne répond pas aux commandes, les drapeaux QEN et RUP_DIS ne sont pas définis. En général, il s'agit d'une tentative infructueuse des Chinois d'écrire l'astuce bq27545 sur MK (en tout cas, je pense que oui). Toujours à la poubelle.

Rappelez-vous, j'ai demandé de porter une attention particulière à la copie dans la boîte avec l'inscription "Orig"? C'est lui qui s'est avéré le plus proche possible de ce que nous recherchions (et comment ne pas croire la publicité maintenant?):



Son coût était de 9 $. Au centre, vous pouvez clairement voir la puce étiquetée SN27545 - c'est exactement ce que nous recherchions. Avec cette instance, j'ai commencé à travailler plus étroitement. Pendant le cycle d'essai de charge-décharge, des problèmes sont survenus. Je n'ai pas pu obtenir le fanion FC (charge complète), ce qui signifiait la fin du processus de charge. Le courant de charge à une tension de batterie proche de 4,2 V est devenu extrêmement faible (environ 20 mA) et le processus de charge menaçait de ne jamais s'arrêter. L'une des raisons possibles était un câble USB avec une forte chute de tension (4,5 V a atteint la puce de mémoire), nous l'avons remplacé par un meilleur avec une chute de tension plus faible. Les indicateurs se sont améliorés, la batterie chargée à 4,2 V, le courant est tombé à 0, mais le SOC (état de charge - niveau de charge) n'a atteint que 85, de sorte que le drapeau FC n'a pas été défini.



Pendant plusieurs jours, j'ai conduit des cycles dans l'espoir que la batterie apprenne, mais cela n'a pas aidé. Le problème s'est avéré banal, mais sa recherche a pris 2 jours. À un moment donné, j'ai remarqué que la batterie était de 4,35 V et c'était la réponse à toutes les questions. La mémoire est standard à 4,2V et je n'ai pas du tout remarqué que la batterie est à 4,35V et qu'il y a une charge incomplète. Les cartes étant déjà fabriquées, le seul moyen de sortir de la situation était de chercher un remplacement pour le STC4054 avec une tension de 4,35V. Il s'est avéré que de tels microcircuits existent, mais vous ne pouvez pas les acheter dans notre grand pays (apparemment, ils sont complètement impopulaires du mot). Par conséquent, la version MCP73832T-3 a été commandée avec quelques semaines d'attente.

En attendant, les manèges commandés, nous allons faire un patch de ferme collective pour vérifier le concept. Pour ce faire, faites une "sauvegarde" de 0,15V pour la puce mémoire à l'aide d'une diode:



Je dois admettre que la ferme collective a fonctionné, le drapeau FC a été réglé, tout fonctionne, mais la tension finale de la batterie est de 4,4 V (la baisse de la diode est supérieure à la 0,15 V requise).



Il est important de noter qu'il est possible de charger jusqu'à 4,2 V avec une perte correspondante de ~ 15% de la capacité, tout en prolongeant considérablement la durée de vie de la batterie. Nous avons terminé la copie d'Orig - elle peut être mise en développement en toute sécurité.

Le dernier exemplaire est laissé. Le plus cher (11 $), dans l'emballage le plus cool et nécessitant le plus de temps pour lui-même. Nous regardons à l'intérieur:



Il s'agit ici d'une puce A1141 inconnue pour laquelle il n'y a pas de documentation autre que la page constructeur . Connexion forcée quant au bq27545 dans Battery Management Studio, nous voyons l'image suivante:



Poubelle pleine. Lorsque vous essayez de charger avec un courant de ~ 500 mA, il affiche 125 mA, tandis que lors de la décharge avec un courant de ~ 25 mA, il affiche 214 mA. Il est clair que si l'A1141 a des adresses de paramètres différentes ou un format de stockage de données différent de celui du bq27545, rien ne brille sans documentation avec cette batterie. Par conséquent, il a été mis de côté, mais à la fin de la rédaction du matériel, j'ai décidé de le relier à nouveau. J'ai pris la table de commande de la puce bq27545:



Et j'ai lu les registres de tension (0x08 et 0x09) via le menu Advanced Comm:



Obtenez 0x10 << 8 | 0x38 = 4152 ou 4,152 V, ce qui correspond à une tension de 4,15 V mesurée par un multimètre. Donc si les données sont correctes, pourquoi 57mV est-il affiché dans le programme ??? Nous remarquons que 57mV est exactement 0x38, c'est-à-dire que la valeur est le registre 0x08. Avec une tension de 4,152 V sur la batterie, le niveau de charge de 96% semble tout à fait correct; vous pouvez l'obtenir en lisant les registres 0x2c et 0x2d. Lire 0x2c = 0x60, 0x2d = 0 (dans le cas du paramètre SOC, le registre le plus élevé est toujours zéro). Il y avait une hypothèse que le programme ou l'EV2300 ne peut pas lire (ou la batterie ne répond pas) ni l'octet de poids fort dans la demande, ni un octet avec une adresse impaire. Pour tester cette théorie, la batterie a été connectée directement au lecteur RFID et la batterie a été interrogée via le MK. L'interface HDQ a été implémentée selon un document de TI . La puce bq27545 utilise le protocole HDQ monofilaire pour communiquer avec le contrôleur de contrôle, qui sur le STM32 est assez facilement implémenté sur la base d'un UART monofilaire grâce à la prise en charge du mode Half Duplex.

Parce que notre lecteur RFID fonctionne sur MicroPython, nous avons encapsulé le travail avec HDQ dans une classe et obtenu le travail avec le contrôleur de charge sous la forme suivante:

depuis hdq import HDQ
bat = HDQ (pyb.UART (1))
bat.charge () # charge
bat.read_u16 (0x14) # registre arbitraire

En fait, il s'est avéré que A1141 ne répond pas à une demande de lecture d'octets avec des adresses impaires.

La forme d'onde montre qu'il y a une demande, mais aucune réponse. Quand ils ont ajouté un redémarrage de la logique d'échange de données (Break) avant chaque demande - une fois sur deux, mais le microcircuit a commencé à répondre correctement.



Ensuite, nous avons comparé le taux de change de l'EV2300 et la RFID du lecteur et il s'est avéré que l'EV2300 utilise une vitesse de 10 à 15% inférieure à celle des ensembles TI:



Après avoir ralenti le HDQ et terminé Break, la batterie a fonctionné normalement à chaque demande! Les principaux paramètres de la batterie ont été lus:



Victoire complète! En fait, A1141 s'est avéré être un clone de haute qualité de bq27545 avec des défauts mineurs. Il reste à parler des nuances du travail avec la batterie du côté logiciel (en utilisant les modes veille, le courant de réveil, etc.), mais cela doublera la quantité d'enregistrement et, peut-être, je l'écrirai une autre fois.

Conclusions


Comme vous pouvez le voir, il existe de nombreuses options pour développer des appareils alimentés par des batteries Li-ion. Honnêtement, il était initialement prévu d'écrire du matériel dans le style de venu, vu, gagné, mais dans le processus, beaucoup de nuances sont apparues (la lutte avec A1141 est particulièrement bonne) et le matériel s'est avéré très intéressant et étendu. Sur les 5 batteries, seulement 2 en fait peuvent être utilisées normalement. Par conséquent, le choix du fournisseur dans ce cas est très pertinent. Si vous avez vu la batterie d'autres appareils contenant du BMS, écrivez le modèle dans les commentaires. Merci à tous pour votre attention!

Source: https://habr.com/ru/post/fr423617/


All Articles