Menggunakan baterai iPhone untuk merancang elektronik yang bisa dipakai

Salam, pembaca.

Cukup sering, saya memiliki tugas mengembangkan perangkat portabel yang ditenagai oleh baterai Li-ion sel tunggal. Dan, jika ini biasanya bukan masalah bagi pelanggan, maka, sebagai insinyur yang berpengalaman, menggigil di punggung saya ketika saya melihat TK semacam itu. Hal ini disebabkan oleh kenyataan bahwa menilai tingkat baterai, serta daya tahan baterai yang tersisa, adalah tugas yang sangat sulit, meskipun pada pandangan pertama mungkin terlihat berbeda.



Ada beberapa opsi untuk bertindak dalam hal ini, kami akan membicarakannya di bawah ini.

- Hal paling sederhana adalah tidak melakukan apa pun untuk menentukan tingkat pengisian daya baterai. Sirkuit pengisian daya pada memori linier sederhana (misalnya, pada TP4054) dan konverter tegangan untuk memberi daya pada perangkat. Matikan tanpa peringatan dan pada saat yang paling tidak tepat.

- Ukur tegangan baterai. Hasilnya kira-kira sama dengan paragraf sebelumnya, tetapi membutuhkan lebih banyak usaha. Skema pengukuran umum:



Bahkan, ini adalah pembagi tegangan untuk resistor R19 dan R21, yang terhubung melalui kunci VT6. Transistor VT7 diperlukan untuk menghilangkan daya parasit ke MK melalui terminal EN.
VBAT - tegangan baterai
VBAT_mes - tegangan masuk ke ADC
EN - sinyal kontrol pembagi (0-off, 1-on)

Sekarang kita tahu tegangan baterai, kita adalah orang-orang hebat. TAPI itu hampir tidak menghasilkan apa-apa !!! Faktanya adalah bahwa kurva debit khas dari baterai Li-ion, secara halus, tidak linier dan tergantung pada konsumsi saat ini dan suhu baterai itu sendiri:



Melihat grafik-grafik ini, dapatkah Anda mengetahui berapa kapasitas baterai yang tersisa pada tegangan 3.5V? Saya kira tidak ...

Metode ini dapat ditingkatkan sedikit dengan menggunakan sensor suhu bawaan di MC untuk perkiraan perkiraan suhu baterai, atau Anda dapat meletakkan sensor untuk mengukur arus, atau (jika arus konsumsi mendekati konstan) buat kurva debit untuk konsumsi arus khas. Ini akan memungkinkan setidaknya sedikit pembenaran biaya tenaga kerja, tetapi tidak ada pembicaraan yang akurat. Untuk menunjukkan muatan pada 3 LED - ya, itu akan.

Dalam hal konsumsi arus konstan, Anda dapat mengambil masa pakai baterai dan memperkirakan biaya yang dikonsumsi dan waktu yang dihabiskan untuk mengisi daya untuk menilai akumulasi biaya. Metode ini memberikan kesalahan kumulatif, karena kalibrasi hanya dapat di dua titik (muatan penuh atau muatan penuh), dan mereka tidak selalu tercapai. Selain itu, ketika baterai memburuk, waktu operasi maksimum harus disesuaikan, tetapi secara umum, metode ini memiliki hak untuk hidup.

- Buat sistem pemantauan pengisian daya baterai (BMS) Anda sendiri. Untuk implementasinya, kita membutuhkan sensor untuk arus, suhu, dan tegangan baterai. Kami percaya bahwa MK sudah ada di perangkat dan masih "hanya" untuk menulis perangkat lunak untuk itu, yang pada satu waktu saya sedikit kurang dari setahun.

- Ambil chip Gas Gauge yang sudah selesai (misalnya, dari TI atau Maxim Integrated), konfigurasikan, kalibrasi, dan bekerja. Misalnya, diagram untuk bq27220:



Ada beberapa nuansa saat memilih konsep ini:

  1. Jika baterai dapat dilepas, Anda harus meletakkan sirkuit untuk menentukan muatan pada baterai itu sendiri (jika tidak, baterai akan disetel ulang ke nol ketika terputus), atau menggunakan versi khusus Gauge Gas yang memungkinkan pemutusan baterai. Dalam kasus pertama, baterai perangkat Anda menjadi unik dan penggantiannya hanya mungkin dengan partisipasi Anda, yang tidak selalu nyaman. Dalam kasus kedua, ada masalah menempatkan sensor suhu pada baterai.
  2. Solusi berbiaya tinggi. Komponen utama: Chip Pengukur Gas, chip perlindungan, transistor, termistor, resistor sensor arus.

- Gunakan opsi yang lebih sederhana untuk solusi turnkey seperti CW2015:



Ini adalah analog Cina dari chip MAX17048. Sebuah chip yang benar-benar sederhana tanpa sensor suhu dan arus, dengan akurasi rendah yang sesuai, tetapi pada saat yang sama murah, mudah digunakan dan diprogram. Ini memiliki kemampuan untuk bekerja di samping perangkat, yang memungkinkan untuk tidak mengubah baterai itu sendiri. Microcircuit ditemukan di ruang terbuka jaringan dalam proses penulisan materi, tidak ada pengalaman dengan itu, tetapi ada keinginan untuk mencoba, karena opsi ini sangat menarik. Mungkin di artikel selanjutnya saya akan berbicara tentang chip ini lebih terinci.

- Dan akhirnya, metode terakhir yang saya tahu ingin saya curahkan untuk artikel hari ini. Menurut saya, metode ini adalah yang paling sederhana, tetapi memberikan hasil terbaik. Terdiri dari fakta bahwa kami mengambil baterai dari iPhone dengan built-in Gas Gauge dan perlindungan, terhubung melalui HDQ atau I2C, menginterogasi dan bekerja. Dalam hal ini, baterai sudah dirakit dan dikalibrasi. Di bawah ini adalah tabel dengan opsi baterai yang saya ketahui:



Tabel tersebut sebagian diambil dari situs ripitapart.com dan www.macplus.ru . Harap perhatikan pengontrol yang tidak dikenal bertanda A1141. Chip ini diproduksi oleh PowerFlash dan ini semua informasi yang dapat ditemukan. Penulis blog tempat saya mengambil tabel tidak yakin bahwa ia mendapatkan baterai asli dari iPhone SE. Berkat penarikan asterix_tyumen , yang membongkar baterai asli dari SE, ditemukan bahwa harganya sn27545. Di bawah ini kita akan dipaksa untuk mempertimbangkan A1141 lebih terinci. Tapi untuk sekarang, mari kita lihat baterai:



Seperti yang Anda lihat, baterai untuk setiap rasa dan warna, dengan dan tanpa apel. Mereka juga dapat dihubungkan secara paralel untuk meningkatkan kapasitas, dengan polling terpisah. Dari kekurangannya, perlu dicatat bahwa rasio panjang / lebar sekitar 3: 1, yang tidak selalu nyaman, serta konektor unik untuk menghubungkan. Karena popularitas ponsel Apple, baterai ini dapat dibeli dengan aman di banyak tempat dan dalam jumlah besar (ternyata, ini tidak sepenuhnya benar).

Ketika mengembangkan pembaca RFID nirkabel yang berdiri sendiri, kami pergi dengan cara ini.



Baterai dari iPhone 6 dipilih, yang cocok dengan kami dalam hal kapasitas dan ukuran. Beberapa salinan dibeli di berbagai lokasi untuk verifikasi:



Yang benar dibeli di Cina, sisanya di Moskow. Biayanya $ 6-11. Ketika mereka diperiksa, hasil yang agak menarik akan diperoleh. Berikan perhatian khusus pada kotak dengan tulisan "Orig", nanti kita akan kembali ke sana. Verifikasi dilakukan menggunakan pembaca RFID itu sendiri, programmer TI EV2300 dan Studio Manajemen Baterai.

Rangkaian catu daya pembaca RFID ditunjukkan pada gambar:



Memori linier berdasarkan STC4054 (TP4054), arus charge 500 mA, saklar daya self-picking berdasarkan reed switch SF1, kapasitor C19, dioda VD4 dan resistor R15, serta konverter pulsa berbasis NCP1529.

Yang pertama saya menghubungkan salinan dari China untuk $ 6:



Baterai merespons, TETAPI saat ini tidak ditampilkan baik selama pengisian atau selama debit, tegangan tidak sesuai dengan apa yang sebenarnya diukur dan tingkat pengisian tidak berubah. Baterai tidak merespons perintah. Ada asumsi bahwa instance ini palsu, jadi saya melepas pita pelindung dari sana untuk melihat papan:



Ini adalah giliran ... Saya bahkan tidak menggambar ulang sirkuit - di sini jelas bahwa ada emulator bq27545 dan sirkuit perlindungan dari overdischarge / overcharge. Segera ada ide untuk menghemat waktu dan membuka semua baterai.



Tetangga di sebelah kiri kolega Cina untuk $ 8 mirip dengan perbedaan dalam penandaan pada chip. Sisanya berperilaku sama. 2 salinan ini segera berada di tempat sampah. Sayangnya, saya tidak memiliki iPhone 6 untuk memeriksa baterai ini di perangkat target, sangat menarik untuk melihat bagaimana ponsel akan berperilaku ketika bekerja dari baterai ini.



Dan ini adalah baterai pusat, seharga $ 8. Bahkan memiliki sensor saat ini dan beberapa jenis 8-pin microcircuit dengan tanda 6G3 sederhana. Di Battery Management Studio, baterai ini berpura-pura menjadi bq27545 dengan lebih terampil. Level pengisian, voltase yang benar, arus baterai ditampilkan. Tetapi jika semua ini nyata, maka yang palsu tidak akan palsu. Pada kenyataannya, suhu ditentukan oleh konstanta, arus diukur sangat buruk. Gambar menunjukkan konsumsi saat ini dari pembaca RFID, yang diukur dengan baterai dengan pembacaan kartu yang konstan.



Pada kenyataannya, ini berjumlah ~ 55 mA untuk mode operasi seperti itu, dan karena bidang pembaca selalu aktif, tidak boleh nol. Saat mengisi daya (saat arus konstan selama periode waktu yang lama), sensor arus berfungsi dengan baik. Secara alami, semua parameter lain dihitung secara tidak benar (tingkat pengisian, waktu pengoperasian hingga debit penuh, dll.). Bendera FC (muatan penuh) ditetapkan pada 4.4V.



Baterai tidak merespons perintah, bendera QEN dan RUP_DIS tidak diatur. Secara umum, ini adalah upaya yang gagal oleh orang Cina untuk menulis trik bq27545 di MK (dalam hal apapun, saya pikir itu adalah). Juga di tempat sampah.

Ingat, saya meminta perhatian khusus pada salinan di kotak dengan tulisan "Orig"? Dialah yang ternyata sedekat mungkin dengan apa yang kita cari (dan bagaimana tidak percaya iklan sekarang?):



Biayanya $ 9. Di tengah, Anda dapat dengan jelas melihat chip berlabel SN27545 - ini adalah persis apa yang kami cari. Dengan contoh ini, saya mulai bekerja lebih dekat. Selama siklus uji charge-discharge, masalah muncul. Saya tidak bisa mendapatkan set bendera FC (muatan penuh), yang berarti akhir dari proses pengisian daya. Arus pengisian pada tegangan baterai mendekati 4,2 V menjadi sangat kecil (sekitar 20 mA) dan proses pengisian daya mengancam tidak akan pernah berakhir. Salah satu alasan yang mungkin adalah kabel USB dengan drop tegangan besar (4,5V mencapai chip memori), kami menggantinya dengan yang lebih baik dengan drop tegangan lebih rendah. Indikator membaik, baterai diisi ke 4.2V, arus turun ke 0, tetapi SOC (Tingkat pengisian daya - tingkat pengisian) hanya mencapai 85, sehingga bendera FC tidak diatur.



Selama beberapa hari saya mengendarai sepeda dengan harapan bahwa baterai akan belajar, tetapi itu tidak membantu. Masalahnya ternyata biasa, tetapi pencariannya memakan waktu 2 hari. Pada titik tertentu, saya perhatikan bahwa baterainya 4.35V dan ini adalah jawaban untuk semua pertanyaan. Memori standar pada 4.2V dan saya tidak melihat sama sekali bahwa baterainya pada 4.35V dan ada muatan yang tidak lengkap. Karena papan sudah dibuat, satu-satunya cara untuk keluar dari situasi ini adalah mencari pengganti untuk STC4054 dengan tegangan 4,35V. Ternyata sirkuit mikro semacam itu ada, tetapi Anda tidak dapat membelinya di negara besar kami (tampaknya, mereka benar-benar tidak populer dari kata). Oleh karena itu, versi MCP73832T-3 dipesan dengan beberapa minggu menunggu.

Sementara itu, wahana yang dipesan, kami akan membuat tambak pertanian kolektif untuk memverifikasi konsep. Untuk melakukan ini, buat "cadangan" 0,15V untuk chip memori menggunakan dioda:



Saya harus mengakui bahwa pertanian kolektif bekerja, bendera FC dipasang, semuanya berfungsi, tetapi tegangan baterai terakhir adalah 4.4V (penurunan dioda lebih besar dari 0.15V yang diperlukan).



Penting untuk dicatat bahwa adalah mungkin untuk mengisi hingga 4.2V dengan kehilangan yang sesuai ~ 15% dari kapasitas, tetapi pada saat yang sama secara signifikan memperpanjang umur baterai. Kami menyelesaikan salinan Orig - ini dapat dimasukkan dengan aman ke dalam pengembangan.

Salinan terakhir dibiarkan. Yang paling mahal ($ 11), dalam kemasan paling keren dan membutuhkan waktu paling banyak untuk diri mereka sendiri. Kami melihat ke dalam:



Ini dia chip A1141 yang tidak dikenal dimana tidak ada dokumentasi selain halaman pabrikan . Koneksi paksa seperti bq27545 di Battery Management Studio, kita melihat gambar berikut:



Sampah penuh. Ketika mencoba mengisi daya dengan arus ~ 500 mA, arusnya menunjukkan 125 mA, sementara pemakaian dengan arus ~ 25 mA itu menunjukkan 214 mA. Jelas bahwa jika A1141 memiliki alamat parameter yang berbeda atau format yang berbeda untuk menyimpan data daripada bq27545, maka tidak ada yang bersinar tanpa dokumentasi dengan baterai ini. Oleh karena itu, itu dikesampingkan, tetapi pada akhir penulisan materi, saya memutuskan untuk menghubungkannya lagi. Saya mengambil tabel perintah chip bq27545:



Dan saya membaca register tegangan (0x08 dan 0x09) melalui menu Advanced Comm:



Dapatkan 0x10 << 8 | 0x38 = 4152 atau 4.152V, yang sesuai dengan tegangan 4.15V yang diukur dengan multimeter. Jadi jika datanya benar, mengapa 57mV ditampilkan dalam program ??? Kami melihat bahwa 57mV persis 0x38, artinya, nilainya adalah 0x08. Dengan tegangan 4,152V pada baterai, tingkat pengisian daya 96% terlihat cukup benar, Anda bisa mendapatkannya dengan membaca register 0x2c dan 0x2d. Baca 0x2c = 0x60, 0x2d = 0 (dalam hal parameter SOC, register tertinggi selalu nol). Ada asumsi bahwa program atau EV2300 tidak dapat membaca (atau baterai tidak merespons) baik byte tinggi dalam permintaan, atau byte dengan alamat ganjil. Untuk menguji teori ini, baterai terhubung langsung ke pembaca RFID dan baterai disurvei melalui MK. Antarmuka HDQ diimplementasikan sesuai dengan dokumen dari TI . Chip bq27545 menggunakan protokol HDQ kawat tunggal untuk berkomunikasi dengan pengontrol kontrol, yang pada STM32 cukup mudah diimplementasikan berdasarkan UART kawat tunggal berkat dukungan mode Half Duplex.

Karena pembaca RFID kami bekerja pada MicroPython, kami membungkus pekerjaan dengan HDQ di kelas dan mendapatkan pekerjaan dengan pengontrol biaya dalam bentuk berikut:

dari hdq import HDQ
bat = HDQ (pyb.UART (1))
bat.charge () # charge
bat.read_u16 (0x14) # register sewenang-wenang

Bahkan, ternyata A1141 tidak menanggapi permintaan untuk membaca byte dengan alamat ganjil.

Bentuk gelombang menunjukkan bahwa ada permintaan, tetapi tidak ada respons. Ketika mereka menambahkan restart logika pertukaran data (Istirahat) sebelum setiap permintaan - setiap saat, tetapi rangkaian mikro mulai merespons dengan benar.



Kemudian kami membandingkan nilai tukar EV2300 dan RFID pembaca dan ternyata EV2300 menggunakan kecepatan 10-15% lebih rendah daripada set TI:



Setelah memperlambat HDQ dan menyelesaikan Break, baterai bekerja secara normal dengan setiap permintaan! Parameter utama baterai dibaca:



Kemenangan total! Bahkan, A1141 ternyata menjadi klon berkualitas tinggi bq27545 dengan kekurangan kecil. Masih berbicara tentang nuansa bekerja dengan baterai dari sisi perangkat lunak (menggunakan mode tidur, saat bangun, dll.), Tetapi ini akan menggandakan jumlah rekaman dan, mungkin, saya akan menulis ini lain kali.

Kesimpulan


Seperti yang Anda lihat, ada banyak opsi untuk mengembangkan perangkat yang ditenagai oleh baterai Li-ion. Jujur, pada awalnya direncanakan untuk menulis materi dengan gaya datang, melihat, menang, tetapi dalam proses banyak nuansa keluar (perjuangan dengan A1141 sangat baik) dan materi ternyata sangat menarik dan luas. Dari 5 baterai, hanya 2 yang bisa digunakan secara normal. Karena itu, pilihan pemasok dalam hal ini sangat relevan. Jika Anda melihat baterai dari perangkat lain yang mengandung BMS, tuliskan modelnya di komentar. Terima kasih atas perhatian Anda!

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


All Articles