अभिवादन, पाठक।
अक्सर, मेरे पास एक एकल सेल ली-आयन बैटरी द्वारा संचालित पोर्टेबल डिवाइस विकसित करने का कार्य है। और, अगर यह आम तौर पर ग्राहक के लिए चिंता का विषय नहीं है, तो, एक अनुभवी इंजीनियर के रूप में, जब मैं ऐसे टीके को देखता हूं तो मेरी पीठ से एक कंपकंपी चलती है। यह इस तथ्य के कारण है कि बैटरी स्तर, साथ ही शेष बैटरी जीवन का आकलन करना बहुत मुश्किल काम है, हालांकि पहली नज़र में यह अलग लग सकता है।

इस मामले में कार्रवाई के लिए कई विकल्प हैं, हम उनके बारे में नीचे बात करेंगे।
- बैटरी चार्ज स्तर निर्धारित करने के लिए सबसे आसान काम कुछ नहीं करना है। एक साधारण रैखिक मेमोरी पर चार्ज सर्किट (उदाहरण के लिए, टीपी 4054 पर) और डिवाइस को पावर देने के लिए एक वोल्टेज कनवर्टर। बिना किसी चेतावनी के और सबसे अधिक क्षण में बंद हो जाता है।
- बैटरी वोल्टेज को मापें। परिणाम लगभग पिछले पैराग्राफ के समान है, लेकिन अधिक प्रयास की आवश्यकता है। विशिष्ट माप योजना:

वास्तव में, यह प्रतिरोधों R19 और R21 के लिए एक वोल्टेज विभक्त है, जो VT6 कुंजी के माध्यम से जुड़ा हुआ है। एनटी टर्मिनल के माध्यम से एमके को परजीवी शक्ति को खत्म करने के लिए वीटी 7 ट्रांजिस्टर की आवश्यकता होती है।
VBAT - बैटरी वोल्टेज
VBAT_mes - ADC पर आने वाला वोल्टेज
एन - विभक्त नियंत्रण संकेत (0-बंद, 1-ऑन)
अब हम बैटरी वोल्टेज को जानते हैं, हम महान फैलो हैं। लेकिन यह लगभग कुछ भी नहीं देता है !!! तथ्य यह है कि ली-आयन बैटरी का एक विशिष्ट डिस्चार्ज कर्व, इसे हल्के ढंग से लगाने के लिए, रैखिक नहीं है और यह बैटरी की वर्तमान खपत और तापमान पर निर्भर करता है:

इन ग्राफों को देखते हुए, क्या आप बता सकते हैं कि 3.5V के वोल्टेज पर बैटरी की शेष क्षमता क्या है? मुझे नहीं लगता ...
बैटरी के तापमान के अनुमानित अनुमान के लिए MC में बिल्ट-इन टेम्परेचर सेंसर का उपयोग करके इस विधि को थोड़ा बेहतर बनाया जा सकता है, या तो आप करंट को मापने के लिए सेंसर लगा सकते हैं, या (यदि खपत चालू लगभग स्थिर है) एक विशिष्ट करंट खपत के लिए डिस्चार्ज कर्व का निर्माण करते हैं। यह श्रम लागतों के कम से कम औचित्य की अनुमति देगा, लेकिन किसी भी सटीकता की बात नहीं हो सकती है। 3 एल ई डी पर चार्ज को इंगित करने के लिए - हाँ, यह होगा।
निरंतर चालू खपत के मामले में, आप बैटरी जीवन ले सकते हैं और खपत चार्ज का अनुमान लगा सकते हैं और संचित चार्ज का आकलन करने के लिए चार्ज करने में लगने वाला समय। यह विधि एक संचयी त्रुटि देती है, क्योंकि अंशांकन केवल दो बिंदुओं (पूर्ण प्रभार या पूर्ण निर्वहन) पर हो सकता है, और वे हमेशा प्राप्त नहीं होते हैं। इसके अलावा, जैसा कि बैटरी बिगड़ती है, अधिकतम ऑपरेटिंग समय को समायोजित किया जाना चाहिए, लेकिन सामान्य तौर पर, विधि को जीवन का अधिकार है।
- अपना बैटरी चार्ज मॉनिटरिंग सिस्टम (BMS) बनाएं। इसके कार्यान्वयन के लिए, हमें वर्तमान, तापमान और बैटरी वोल्टेज के लिए सेंसर की आवश्यकता होती है। हम मानते हैं कि एमके पहले से ही डिवाइस में मौजूद है और इसके लिए सॉफ्टवेयर लिखने के लिए "केवल" ही रहता है, जो एक समय में मुझे एक साल से भी कम समय लगा।
- तैयार गैस गेज चिप लें (उदाहरण के लिए, टीआई या मैक्सिम इंटीग्रेटेड से), इसे कॉन्फ़िगर करें, कैलिब्रेट करें और काम करें। उदाहरण के लिए, bq27220 के लिए आरेख:

इस अवधारणा को चुनते समय कई बारीकियाँ हैं:
- यदि बैटरी हटाने योग्य है, तो आपको बैटरी पर चार्ज निर्धारित करने के लिए या तो सर्किट लगाना होगा (अन्यथा यह डिस्कनेक्ट होने पर शून्य पर रीसेट हो जाएगा), या गैस गेज के विशेष संस्करणों का उपयोग करें जो बैटरी को अलग करने की अनुमति देते हैं। पहले मामले में, आपके डिवाइस की बैटरी अद्वितीय हो जाती है और इसका प्रतिस्थापन केवल आपकी भागीदारी से संभव है, जो हमेशा सुविधाजनक नहीं होता है। दूसरे मामले में, बैटरी पर तापमान सेंसर रखने की समस्या है।
- उच्च लागत समाधान। मुख्य घटक: गैस गेज चिप, सुरक्षा चिप, ट्रांजिस्टर, थर्मिस्टर, करंट सेंसर रेसिस्टर।
- CW2015 जैसे टर्नकी समाधान के लिए सरल विकल्पों का उपयोग करें:

यह MAX17048 चिप का चीनी एनालॉग है। तापमान और वर्तमान सेंसर के बिना एक बिल्कुल सरल चिप, इसी कम सटीकता के साथ, लेकिन एक ही समय में सस्ते, उपयोग करने में आसान और प्रोग्राम। इसमें डिवाइस के किनारे काम करने की क्षमता है, जो बैटरी को स्वयं संशोधित करने की अनुमति नहीं देता है। लेखन सामग्री की प्रक्रिया में नेटवर्क के खुले स्थानों पर माइक्रोक्रिसिट पाया गया, इसके साथ कोई अनुभव नहीं है, लेकिन इसे आज़माने की इच्छा है, क्योंकि विकल्प वास्तव में दिलचस्प है। शायद अगले लेख में मैं इस चिप के बारे में अधिक विस्तार से बात करूंगा।
- और अंत में, आखिरी विधि मुझे पता है कि मैं आज के लेख के लिए समर्पित करना चाहता हूं। मेरी राय में, यह विधि सबसे सरल है, लेकिन सबसे अच्छा परिणाम देती है। यह इस तथ्य में शामिल है कि हम आईफोन से अंतर्निहित गैस गेज और सुरक्षा के साथ बैटरी लेते हैं, एचडीक्यू या आई 2 सी के माध्यम से कनेक्ट करते हैं, पूछताछ करते हैं और काम करते हैं। इस मामले में, बैटरी पहले से ही इकट्ठी और कैलिब्रेटेड है। नीचे एक तालिका दी गई है, जिसमें बैटरी विकल्प मेरे लिए जाने जाते हैं:

तालिका आंशिक रूप से साइटों
ripitapart.com और
www.macplus.ru से ली गई है। कृपया A1141 चिह्नित अज्ञात नियंत्रक पर विशेष ध्यान दें। यह चिप
PowerFlash द्वारा निर्मित है और यह सभी जानकारी है जो मिल सकती है। जिस
ब्लॉग से मैंने टेबल लिया था, उसके लेखक को यकीन नहीं था कि उसे iPhone SE से मूल बैटरी मिली है।
Asterix_tyumen को याद करने के लिए धन्यवाद, जिसने एसई से मूल बैटरी को डिसाइड किया, यह पाया गया कि इसकी कीमत sn27545 है। नीचे हम ए 1141 पर अधिक विस्तार से विचार करने के लिए मजबूर होंगे। लेकिन अभी के लिए, आइए बैटरी देखते हैं:

जैसा कि आप देख सकते हैं, हर स्वाद और रंग के लिए, सेब के साथ और बिना बैटरी। उन्हें अलग-अलग मतदान के साथ, क्षमता बढ़ाने के लिए समानांतर में भी जोड़ा जा सकता है। कमियों में से, यह ध्यान देने योग्य है कि लंबाई / चौड़ाई का अनुपात लगभग 3: 1 है, जो हमेशा सुविधाजनक नहीं होता है, साथ ही कनेक्ट करने के लिए एक अनूठा कनेक्टर भी होता है। Apple फोन की लोकप्रियता के कारण, इन बैटरियों को कई स्थानों पर और बड़ी मात्रा में सुरक्षित रूप से खरीदा जा सकता है (जैसा कि यह निकला, यह पूरी तरह से नहीं है)।
वायरलेस स्टैंड-अलोन आरएफआईडी रीडर विकसित करते समय
, हम इस तरह से गए।

IPhone 6 से बैटरी को चुना गया, जो क्षमता और आकार के मामले में हमारे अनुकूल थी। सत्यापन के लिए विभिन्न स्थानों पर कई प्रतियां खरीदी गईं:

सही चीन में खरीदा गया था, बाकी मास्को में। लागत 6-11 डॉलर है। जब उन्हें जांचा जाएगा, बल्कि दिलचस्प परिणाम प्राप्त किए जाएंगे। शिलालेख "मूल" के साथ बॉक्स पर विशेष ध्यान दें, बाद में हम इसे वापस कर देंगे। स्वयं RFID रीडर, TI EV2300 प्रोग्रामर और बैटरी प्रबंधन स्टूडियो का उपयोग करके सत्यापन किया गया था।
आरएफआईडी रीडर की बिजली आपूर्ति सर्किट चित्र में दिखाई गई है:

STC4054 (TP4054) पर आधारित रैखिक मेमोरी, वर्तमान में 500 mA, चार्ज स्विच SF1, कैपेसिटर C19, डायोड VD4 और रोकनेवाला R15 पर आधारित, साथ ही NCP1529 पर आधारित एक पल्स कनवर्टर पर आधारित है।
पहले मैंने $ 6 के लिए चीन से एक कॉपी कनेक्ट की:

बैटरी जवाब देती है, लेकिन वर्तमान में चार्जिंग के दौरान या डिस्चार्ज के दौरान भी प्रदर्शित नहीं किया गया था, वोल्टेज वास्तव में मापा गया था और चार्ज की डिग्री नहीं बदलती है। बैटरी ने कमांड का जवाब नहीं दिया। एक धारणा थी कि यह उदाहरण एक नकली है, इसलिए मैंने बोर्ड को देखने के लिए एक सुरक्षात्मक टेप हटा दिया:

यह एक मोड़ है ... मैंने सर्किट को फिर से तैयार नहीं किया है - यहाँ यह स्पष्ट है कि एक bq27545 एमुलेटर और ओवरचार्जिंग / ओवरचार्जिंग के लिए एक सर्किट है। तुरंत खुद को समय बचाने और सभी बैटरी खोलने का विचार था।

$ 8 के लिए चीनी सहयोगी के बाईं ओर के पड़ोसी चिप्स पर अंकन के अंतर के समान है। बाकी वही व्यवहार करता है। ये 2 प्रतियां तुरंत कूड़ेदान में हैं। दुर्भाग्य से, मेरे पास लक्ष्य डिवाइस में इन बैटरियों की जांच करने के लिए iPhone 6 नहीं था, यह देखना बहुत दिलचस्प था कि इन बैटरियों से काम करने पर फोन कैसा व्यवहार करेगा।

और यह एक केंद्रीय बैटरी है, जिसकी कीमत $ 8 है। यहां तक कि इसमें वर्तमान सेंसर और कुछ प्रकार के 8-पिन माइक्रोक्रेसीट भी हैं, जिसमें मामूली अंकन 6G3 है। बैटरी मैनेजमेंट स्टूडियो में, यह बैटरी अधिक कुशलता से bq27545 होने का दिखावा करती है। चार्ज स्तर, सही वोल्टेज, बैटरी करंट प्रदर्शित होते हैं। लेकिन अगर यह सब असली होता, तो नकली नकली नहीं होता। वास्तव में, तापमान एक स्थिर द्वारा निर्धारित किया गया था, वर्तमान को बहुत खराब तरीके से मापा गया था। तस्वीर आरएफआईडी रीडर की वर्तमान खपत को दिखाती है, जिसे बैटरी द्वारा कार्ड के निरंतर पढ़ने के साथ मापा जाता है।

वास्तव में, यह इस तरह के एक ऑपरेटिंग मोड के लिए ~ 55 mA है, और चूंकि पाठक क्षेत्र हमेशा चालू रहता है, इसलिए यह शून्य नहीं हो सकता। चार्ज करते समय (जब करंट लंबे समय तक स्थिर रहता है), तो वर्तमान सेंसर ठीक काम करता है। स्वाभाविक रूप से, अन्य सभी मापदंडों की गणना गलत तरीके से की जाती है (चार्ज स्तर, ऑपरेटिंग समय से पूर्ण निर्वहन, आदि)। FC (फुल चार्ज) फ्लैग को 4.4V पर सेट किया गया है।

बैटरी आदेशों का जवाब नहीं देती है, QEN और RUP_DIS झंडे सेट नहीं होते हैं। सामान्य तौर पर, यह चीनी द्वारा एमके पर bq27545 चाल लिखने के लिए एक असफल प्रयास है (किसी भी मामले में, मुझे लगता है कि यह है)। कूड़ेदान में भी।
याद रखें, मैंने शिलालेख "मूल" के साथ बॉक्स में प्रतिलिपि पर विशेष ध्यान देने के लिए कहा था? यह वह था जो जितना संभव हो उतना करीब हो गया था, जिसे हम देख रहे थे (और विज्ञापन को कैसे मानना चाहिए?):)

इसकी लागत $ 9 थी। केंद्र में, आप स्पष्ट रूप से SN27545 लेबल वाली चिप देख सकते हैं - यह वही है जो हम खोज रहे थे। इस उदाहरण के साथ, मैंने और अधिक बारीकी से काम करना शुरू कर दिया। चार्ज-डिस्चार्ज परीक्षण चक्र के दौरान, समस्याएं पैदा हुईं। मुझे एफसी (फुल चार्ज) फ्लैग सेट नहीं मिला, जिसका मतलब चार्ज प्रक्रिया का अंत है। 4.2 V के करीब बैटरी वोल्टेज पर आवेश बहुत छोटा हो गया (लगभग 20 mA) और चार्जिंग प्रक्रिया कभी समाप्त नहीं होने का खतरा था। संभावित कारणों में से एक एक यूएसबी केबल था जिसमें एक बड़े वोल्टेज ड्रॉप (4.5 वी मेमोरी चिप तक पहुंच गया था), हमने इसे कम वोल्टेज ड्रॉप के साथ बेहतर तरीके से बदल दिया। संकेतकों में सुधार हुआ, बैटरी से 4.2 वी तक चार्ज किया गया, करंट 0 पर गिरा, लेकिन एसओसी (प्रभारी - प्रभारी स्तर) केवल 85 तक पहुंच गया, इसलिए एफसी ध्वज सेट नहीं किया गया था।

कई दिनों तक मैंने इस उम्मीद के साथ साइकिल चलाई कि बैटरी सीखेंगे, लेकिन इससे कोई फायदा नहीं हुआ। यह समस्या आम हो गई, लेकिन इसकी खोज में 2 दिन लगे। कुछ बिंदु पर, मैंने देखा कि बैटरी 4.35V है और यह सभी सवालों का जवाब था। मेमोरी 4.2 वी पर मानक है और मुझे बिल्कुल भी ध्यान नहीं है कि बैटरी 4.35 वी पर है और एक अधूरा शुल्क है। चूंकि बोर्ड पहले से ही निर्मित थे, स्थिति से बाहर निकलने का एकमात्र तरीका 4.35 वी के वोल्टेज के साथ एसटीसी 4054 के प्रतिस्थापन के लिए देखना था। यह पता चला है कि इस तरह के माइक्रोक्रिस्केट्स मौजूद हैं, लेकिन आप उन्हें हमारे महान देश में खरीद नहीं सकते हैं (जाहिर है, वे शब्द से पूरी तरह से अलोकप्रिय हैं)। इसलिए, MCP73832T-3 संस्करण को कुछ हफ़्ते प्रतीक्षा के साथ आदेश दिया गया था।
इस बीच, आदेशित सवारी, हम अवधारणा को सत्यापित करने के लिए एक सामूहिक खेत पैच करेंगे। ऐसा करने के लिए, डायोड का उपयोग करके मेमोरी चिप के लिए 0.15V का "बैकअप" बनाएं:

मुझे स्वीकार करना चाहिए कि सामूहिक खेत ने काम किया, एफसी ध्वज सेट किया गया था, सब कुछ काम करता है, लेकिन अंतिम बैटरी वोल्टेज 4.4V है (डायोड में गिरावट आवश्यक 0.15V से अधिक है)।

यह ध्यान रखना महत्वपूर्ण है कि ~ 15% क्षमता के संगत नुकसान के साथ 4.2V तक चार्ज करना संभव है, लेकिन साथ ही साथ बैटरी के जीवन को महत्वपूर्ण रूप से विस्तारित करता है। हमने उत्पत्ति की प्रतिलिपि समाप्त कर दी - इसे सुरक्षित रूप से विकास में रखा जा सकता है।
आखिरी कॉपी बची है। सबसे महंगी ($ 11), सबसे अच्छी पैकेजिंग में और खुद के लिए सबसे अधिक समय की आवश्यकता होती है। हम अंदर देखते हैं:

यहां यह एक अज्ञात A1141 चिप है, जिसके लिए
निर्माता के पृष्ठ के अलावा कोई दस्तावेज नहीं है। बैटरी प्रबंधन स्टूडियो में bq27545 के रूप में मजबूर कनेक्शन, हम निम्नलिखित तस्वीर देखते हैं:

पूरा कचरा। ~ 500 mA के करंट के साथ चार्ज करने की कोशिश करते समय, यह 125 mA दिखाता है, जबकि ~ 25 mA के करंट के साथ डिस्चार्ज होने पर यह 214 mA दिखाता है। यह स्पष्ट है कि अगर A1141 में bq27545 की तुलना में डेटा संग्रहीत करने के लिए अलग-अलग पैरामीटर पते या एक अलग प्रारूप है, तो इस बैटरी के साथ प्रलेखन के बिना कुछ भी नहीं चमकता है। इसलिए, इसे अलग रखा गया था, लेकिन सामग्री लिखने के अंत में, मैंने इसे फिर से जोड़ने का फैसला किया। मैंने bq27545 चिप कमांड टेबल लिया:

और मैं उन्नत कमांड मेनू के माध्यम से वोल्टेज रजिस्टर (0x08 और 0x09) पढ़ता हूं:

0x10 << 8 | 0x38 = 4152 या 4.152V, जो एक मल्टीमीटर द्वारा मापा 4.15V के वोल्टेज से मेल खाती है। तो अगर डेटा सही है, तो प्रोग्राम में 57mV क्यों दिखाया जाता है ??? हम देखते हैं कि 57mV बिल्कुल 0x38 है, अर्थात, मान 0x08 रजिस्टर है। बैटरी पर 4.152V के वोल्टेज के साथ, 96% चार्ज स्तर काफी सही दिखता है; आप इसे 0x2c और 0x2d रजिस्टरों को पढ़कर प्राप्त कर सकते हैं। 0x2c = 0x60, 0x2d = 0 पढ़ें (SOC पैरामीटर के मामले में, उच्चतम रजिस्टर हमेशा शून्य है)। एक धारणा थी कि कार्यक्रम या EV2300 नहीं पढ़ सकते हैं (या बैटरी जवाब नहीं देती है) या तो अनुरोध में उच्च बाइट, या एक विषम पते के साथ एक बाइट। इस सिद्धांत का परीक्षण करने के लिए, बैटरी को सीधे आरएफआईडी रीडर से जोड़ा गया था और बैटरी को एमके के माध्यम से प्रदूषित किया गया था। एचडीक्यू इंटरफ़ेस
टीआई के एक
दस्तावेज़ के अनुसार लागू किया गया था। Bq27545 चिप नियंत्रण नियंत्रक के साथ संवाद करने के लिए एकल-तार एचडीक्यू प्रोटोकॉल का उपयोग करता है, जो एसटीएमएम 32 पर हाफ डुप्लेक्स मोड के समर्थन के लिए एकल-तार यूएआरटी धन्यवाद के आधार पर काफी आसानी से लागू किया जाता है।
क्योंकि हमारा आरएफआईडी रीडर माइक्रोफ़ोन पर काम करता है, हमने काम को एक वर्ग में एचडीक्यू के साथ लपेटा है और निम्नलिखित रूप में चार्ज नियंत्रक के साथ काम किया है:
एचडीक्यू आयात से एचडीक्यू
बैट = एचडीक्यू (pyb.UART (1))
bat.charge () # चार्ज
bat.read_u16 (0x14) # मनमाना रजिस्टर
वास्तव में, यह पता चला कि ए 1141 विषम पते वाले बाइट्स को पढ़ने के अनुरोध का जवाब नहीं देता है।

तरंग से पता चलता है कि एक अनुरोध है, लेकिन कोई प्रतिक्रिया नहीं। जब उन्होंने प्रत्येक अनुरोध से पहले डेटा एक्सचेंज (ब्रेक) के तर्क को फिर से शुरू किया - हर दूसरे समय, लेकिन माइक्रोकिरिट ने सही तरीके से जवाब देना शुरू कर दिया।

तब हमने EV2300 और रीडर के RFID की विनिमय दर की तुलना की और यह पता चला कि EV2300 TI सेट से 10-15% कम गति का उपयोग करता है:

एचडीक्यू को धीमा करने और ब्रेक पूरा करने के बाद, बैटरी ने सामान्य रूप से हर अनुरोध के साथ काम किया! बैटरी के मुख्य मापदंडों को पढ़ा गया था:

पूरी जीत! वास्तव में, A1141 मामूली खामियों के साथ bq27545 का उच्च-गुणवत्ता वाला क्लोन निकला। यह सॉफ़्टवेयर पक्ष से बैटरी के साथ काम करने की बारीकियों के बारे में बात करता है (स्लीप मोड, वेक-अप करंट, आदि का उपयोग करके), लेकिन यह रिकॉर्डिंग की मात्रा को दोगुना कर देगा और, शायद, मैं इसे एक और समय लिखूंगा।
निष्कर्ष
जैसा कि आप देख सकते हैं, ली-आयन बैटरी द्वारा संचालित उपकरणों के विकास के लिए कई विकल्प हैं। ईमानदारी से, यह मूल रूप से आया, देखा, जीता की शैली में सामग्री लिखने की योजना बनाई गई थी, लेकिन इस प्रक्रिया में बहुत सारी बारीकियां सामने आईं (ए 1141 के साथ संघर्ष विशेष रूप से अच्छा है) और सामग्री बहुत दिलचस्प और व्यापक हुई। 5 बैटरी में से, केवल 2 वास्तव में इस्तेमाल किया जा सकता है। इसलिए, इस मामले में आपूर्तिकर्ता की पसंद बहुत प्रासंगिक है। यदि आपने अन्य उपकरणों से बैटरी देखी है जिसमें बीएमएस होते हैं, तो टिप्पणियों में मॉडल लिखें। ध्यान देने के लिए आप सभी का धन्यवाद!