Saya ingin menggunakan Raspberry Pi sebagai server XBMC di dalam mobil. Dokumentasi XBMC mengatakan bahwa Anda harus selalu menggunakan perintah mematikan sebelum memutuskan daya. Saya tidak ingin (menyuruh istri saya) masuk ke Pi dan mematikannya sebelum mematikan mobil - Saya ingin dapat
Saya sudah berpikir bahwa itu seharusnya mungkin untuk membuat rangkaian sederhana dengan kapasitor dan mungkin dioda untuk mendeteksi ketika catu daya terputus (dan meningkatkan interupsi pada salah satu pin GPIO) tetapi kapasitor akan memberikan arus yang cukup lama bagi sistem untuk dimatikan dengan benar.
Apakah ini terlihat benar dan memadai?
Sirkuit ini akan ditenagai oleh aki mobil - 12,6 hingga 11,7V. Raspberry Pi membutuhkan waktu 5V (5,25 hingga 4,75V) dan menarik 700-1200mA. Saya belum menghitung waktunya, tapi saya kira proses mematikan mungkin memakan waktu sekitar 5 detik.
Jadi saya kira yang perlu saya ketahui adalah:
Kapasitor macam apa yang saya perlukan untuk menyimpan muatan yang cukup agar Pi berjalan cukup lama sehingga XBMC dapat dimatikan dengan benar?
Mengingat bahwa port GPIO Rasperry Pi membutuhkan 3.3V, apa pembanding / op-amp terbaik untuk digunakan (saya kira saya bisa menggunakan beberapa resistor untuk menurunkan output dari 5 menjadi 3,3)
Apakah akan ada manfaat memiliki garis GPIO yang biasanya tinggi atau biasanya rendah?
sumber
Jawaban:
Strategi alternatif adalah untuk menyalakan Raspberry Pi terus menerus dan menggunakan jalur pengapian untuk memulai urutan penurunan daya. Saya telah melakukan itu di masa lalu tetapi dengan sistem di mana solusi yang tepat tidak berlaku untuk Pi tetapi secara umum:
Gunakan konverter DC-DC untuk efisiensi terbaik, ada banyak contoh di sekitar tetapi berikut ini adalah salah satu contoh dari sesuatu yang nyaman untuk digunakan dan dapat memasok 1A pada 5V dari input 6,5V ke 32V:
http://www.digikey.com/product-detail/en/V7805-1000/102-1715-ND/1828608
Suplai mobil bisa sangat keras, jadi Anda mungkin ingin menggunakan dioda TVV 30V melintasi input untuk melindungi terhadap paku dengan dioda chottky Schottky dengan anoda di tanah dan katoda pada input 12V untuk melindungi terhadap tegangan negatif bersama dengan salah satu dari keduanya. sekering normal atau sekering PTC yang dapat disetel ulang secara seri dengan koneksi antara daya mobil dan sistem Anda. Kalau tidak, Anda mungkin dapat 'meretas' mobil ke pengisi daya USB yang seharusnya sudah memiliki semuanya.
Saya tidak yakin apa yang digambarkan oleh Raspberry Pi dalam mode siaga normal, tetapi mungkin di bawah 500mA yang merupakan USB maksimum yang dapat memasok dan lebih mungkin 100mA. Katakanlah menggunakan 100mA pada 5V yang akan berada di bawah 50mA pada 12V menggunakan sirkuit itu, aki mobil biasanya berada di urutan 50Ah sehingga akan menjadi sekitar 20 hari untuk menguras baterai hingga 50%. Jika mobil digunakan secara teratur, mungkin tidak perlu melangkah lebih jauh, dan Anda mungkin dapat membiarkannya berjalan dan matikan saja periferal yang tidak Anda gunakan.
Kalau tidak, untuk mendeteksi perubahan kunci kontak dengan cara apa pun dan keduanya memberi tahu Pi, maka perlu dimatikan, diikuti dengan melepas daya semenit kemudian, cara paling praktis mungkin menggunakan mikrokontroler eksternal yang menggerakkan FET. Ini bisa dilakukan dengan logika diskrit, tetapi Anda juga perlu memastikan daya diterapkan kembali ketika kunci kontak tinggi, jadi itu bukan latihan yang sepenuhnya sepele, tetapi biaya suku cadang akan lebih rendah daripada menggunakan tutup besar.
sumber
Saya tidak terlalu akrab dengan perilaku Raspberry Pi untuk shutdown dan penggunaan daya, jadi saya terutama akan mengandalkan angka yang Anda berikan dan tinggalkan formula.
Kurva pelepasan eksponensial yang Anda tunjukkan adalah untuk rangkaian resistor-kapasitor, tetapi regulator linier menyebabkan segala sesuatu bekerja sedikit berbeda. Misalkan RPi selalu mengkonsumsi arus maksimum yang Anda nyatakan: 1200 mA. Dalam hal ini, arus selalu mengalir melalui regulator, dan resistansi efektif rangkaian terus berubah (menurun) ketika kapasitor dilepaskan. Ini benar selama kita berada dalam jangkauan operasi regulator linier, yang baik-baik saja karena kita perlu RPi dimatikan sebelum kita mencapai wilayah itu.
Persamaan diferensial untuk kapasitor adalah:
Ini memberikan hasil sebagai berikut:
Ya, itu 1,28 Farad (tidak ada mikro atau mili di sini). Ini kemungkinan akan melibatkan pembelian beberapa topi tegangan rendah dan menempatkannya secara seri
Jadi masalah lainnya adalah rangkaian Anda - sirkuit itu tidak akan berfungsi seperti yang Anda inginkan, karena satu-satunya cara input positif komparator mendekati tegangan input negatif (sehingga output dapat berubah) adalah ketika tegangan input Anda sudah mati. Seperti yang dirancang, pembanding tidak akan pernah beralih.
Yang ingin Anda lakukan adalah mengukur tegangan input Anda, sebelum kapasitor dan dioda, dan membandingkan tegangan itu dengan "referensi" yang dapat Anda atur dengan pot trim. Lihat contoh sirkuit di bawah ini:
mensimulasikan rangkaian ini - Skema dibuat menggunakan CircuitLab
sumber
Catatan: jawaban berikut ini ditulis dengan asumsi bahwa hanya penggunaan sistem file kartu SD bisa menjadi rusak. Banyak bukti anekdotal sejak itu muncul untuk menunjukkan bahwa keadaan internal kartu SD itu sendiri, di bawah tingkat sistem file apa pun berpotensi berisiko korupsi dari kehilangan daya yang tidak tepat waktu, sesuatu yang tidak mungkin untuk dilakukan di sekitar tingkat sistem file.
Saya tergoda untuk melihat pendekatan yang sama sekali berbeda, salah satu pemecahan masalah pada sumbernya. Pada dasarnya, tidak ada yang salah secara mendasar dengan hanya menarik kekuatan dari pi; masalahnya adalah keadaan sistem file yang berpotensi tidak berkomitmen yang mengarah ke kerusakan sistem file, dan kegagalan boot selanjutnya hingga Anda memperbaiki / mem-image ulang volume.
Tetapi ini adalah sesuatu yang dapat diperbaiki pada sisi perangkat lunak, dengan beberapa kombinasi:
Buat lebih banyak partisi pada kartu SD, dan jangan pernah memasang boot atau partisi sistem operasi dalam mode yang dapat ditulis. Jika Anda ingin melangkah lebih jauh, jangan pernah menulis apa pun pada kartu SD sama sekali, simpan semua data yang dapat berubah pada USB stick.
Gunakan sistem file penjurnalan untuk menyimpan data yang sebenarnya akan dimodifikasi dalam operasi.
Cukup simpan kartu cadangan, secara opsional ini bisa berupa skema pencadangan dan pemulihan otomatis dari kartu yang terhubung dengan aturan di mana hanya satu kartu yang dapat dipasang yang dapat ditulisi pada waktu tertentu (dikombinasikan dengan aturan pertama sistem boot / sistem operasi partisi tidak pernah dapat ditulisi)
Pada akhirnya muncul pertanyaan tentang filosofi desain - pilihan antara:
A) Sistem yang rapuh yang harus dilindungi dari kehilangan daya lebih sedikit jika menderita korupsi
atau
B) Suatu sistem yang dirancang sedemikian rupa sehingga kehilangan daya yang tidak terduga tidak dapat mengakibatkan korupsi yang tidak dapat dipulihkan.
Sebagian besar sistem embedded lebih sejalan (B).
sumber
Seperti yang telah ditunjukkan orang lain, ada beberapa masalah dengan sirkuit yang diusulkan sejauh ini, dan Anda bisa mendapatkan kapasitor yang cukup besar untuk menahan pasokan. Jika Anda ingin membuat sirkuit kecil, Anda dapat mempertimbangkan pengendali daya hidup / mati pengunci yang dioperasikan tombol tekan. Untuk mematikan server XBMC Anda bisa menekan tombol yang memberi sinyal Pi untuk dimatikan, kemudian bisa melakukan apa yang diperlukan untuk shutdown tertib bersih, kemudian mengeluarkan sinyal GPIO ke sirkuit yang mematikan daya untuk dirinya sendiri. Itu memberi RPi waktu sebanyak yang diperlukan untuk melakukan hal-hal seperti mematikan kartu SD dengan aman. Rangkaian tidak harus serumit relay dan timer.
Inilah rangkaian sederhana untuk melakukannya , yang hanya menggunakan MOSFET ganda sebagai pengontrol. Sirkuit dijelaskan di halaman web.
sumber