Pitanje:
Krug za sigurno isključivanje Raspberry Pi-a
Nicholas Albion
2013-03-12 05:28:16 UTC
view on stackexchange narkive permalink

Želim koristiti Raspberry Pi kao XBMC poslužitelj u automobilu. XBMC dokumenti kažu da uvijek trebate koristiti naredbu isključivanje prije isključivanja napajanja. Ne želim se (reći svojoj ženi) prijaviti na Pi i isključiti ga prije nego što isključim auto - želim biti u mogućnosti

Razmišljao sam da bi to trebalo biti moguće je stvoriti jednostavan krug s kondenzatorom i vjerojatno diodom za otkrivanje isključenja napajanja (i podizanje prekida na jednom od GPIO pinova), ali kondenzator će osiguravati struju dovoljno dugo da se sustav pravilno isključi.

Izgleda li ovo ispravno i dovoljno?

second draft

Krug će se napajati iz automobilske baterije - 12,6 do 11,7V. Raspberry Pi uzima 5V (5,25 do 4,75V) i crpi 700-1200mA. Još nisam tempirao, ali pretpostavljam da postupak isključivanja vjerojatno traje oko 5 sekundi.

Stoga pretpostavljam da ono što moram znati je:

  • Kakav bih kondenzator trebao da pohranim dovoljno napunjenosti da Pi radi dovoljno dugo da se XBMC pravilno isključi?

  • S obzirom na to da GPIO port Rasperryja Pi treba 3.3V, što je najbolje upoređivač / op-pojačalo za upotrebu (pretpostavljam da bih mogao upotrijebiti nekoliko otpornika da smanjim izlaz s 5 na 3.3)

  • Da li bi bilo biti korisna ako GPIO linija bude normalno visoka ili normalno niska?

Ovaj IC: http://www.linear.com/product/LTC2935 mogao bi vas zanimati.
Prema donjem odgovoru u konceptu, vaša je ideja u redu, ali trebat će vam velike kape. Također biste mogli cijelo vrijeme gledati napajanje Pi-ja iz nečega, a zatim jednostavno upotrijebite paljenje da biste pokrenuli isključivanje i možda tajmerom za potpuno povlačenje snage nakon minute ili malo više.
To je dobra ideja @PeterJ - vjerojatno bi bio puno jeftiniji. Možete li to pojasniti u obliku odgovora?
Umjesto da napajam RPi iz kondenzatora nekoliko sekundi nakon isključivanja kontakta, mislim da je logičnije koristiti relej kojim upravlja 555 i napaja ga za prebacivanje na bateriju. Napravio sam još jedno pitanje: http://electronics.stackexchange.com/questions/61877/shutdown-controller-for-raspberry-pi-in-a-car
četiri odgovori:
PeterJ
2013-03-12 12:25:36 UTC
view on stackexchange narkive permalink

Alternativna strategija bila bi neprekidno napajanje Raspberry Pi i korištenje linije paljenja za pokretanje slijeda isključenja. To sam radio u prošlosti, ali sa sustavima u kojima se točno rješenje ne bi odnosilo na Pi, ali općenito:

Koristite DC-DC pretvarač za najbolju učinkovitost, ima mnogo primjera, ali slijedi jedan primjer nečega što bi bilo prikladno koristiti i može napajati 1A na 5V od 6,5V do 32V ulaza:

http://www.digikey.com/product- detail / hr / V7805-1000 / 102-1715-ND / 1828608

Opskrba automobilom može biti prilično oštra, pa biste možda trebali koristiti TVV diodu od 30 V preko ulaza za zaštitu od šiljci s krupnom Schottky diodom s anodom na zemlji i katodom na ulazu od 12 V za zaštitu od negativnih napona zajedno s normalnim osiguračem ili PTC resetibilnim osiguračem u seriji s vezom između snage automobila i vašeg sustava. Inače ćete možda moći "hakirati" automobil na USB punjaču koji bi sve to već trebao imati na mjestu.

Nisam siguran što Raspberry Pi crpi u normalnom načinu mirovanja, ali vjerojatno i ispod 500 mA što je najviše što USB može opskrbiti i vjerojatnije 100mA. Recimo da koristi 100mA na 5V, što će biti manje od 50mA na 12V pomoću tog kruga, akumulator automobila obično je reda 50Ah, tako da bi bilo potrebno oko 20 dana da se baterija isprazni na 50%. Ako je automobil u redovitoj upotrebi, vjerojatno ne treba ići dalje, a možda ćete ga jednostavno moći pustiti u pogonu i jednostavno isključiti sve periferne uređaje koje ne koristite.

Inače za otkrivanje paljenja promijenite bilo koji način i oba obavještavajući Pi da se treba isključiti, nakon čega slijedi uklanjanje napajanja minutu kasnije, najpraktičniji način je vjerojatno korištenje vanjskog mikrokontrolera koji pokreće FET. To bi se moglo učiniti diskretnom logikom, ali također trebate osigurati ponovnu primjenu snage kada paljenje preraste, tako da to nije posve trivijalna vježba, ali troškovi dijelova bit će niži od korištenja velike kape.

Hvala, vaš odgovor me doveo do Googlanja za "shutdown controller raspberry pi". Gledao sam [ovaj za 42 dolara] (http://store.mp3car.com/Micro_Shutdown_Controller_p/pwr-007.htm), ali onda pronašao [ovaj jedan] (http://www.raspberrypi.org/phpBB3/viewtopic.php?f=63&t=32435&p=278633&hilit=mausberrycircuits#p278633) posebno dizajniran za Raspberry Pi, a košta samo 15 USD, a ima jedan dizajniran za upotrebu u automobil.
Raspberry Pi Model A traje 300ma (+ 100max na svakom USB priključku), dok Model B traje 700ma.
Ono što također možete učiniti je jednostavno spojiti gumb i pokrenuti aplikaciju python svaki put kad se uključi vaš Raspberry Pi.Zatim u aplikaciji python upotrijebite funkciju gumba os ("zaustavi") za jednostavno isključivanje vašeg malina pi.To sam učinio i to je u redu.Ne znam kako bi to funkcioniralo s XBMC-om.
W5VO
2013-03-12 06:46:03 UTC
view on stackexchange narkive permalink

Nisam dobro upoznat s ponašanjem Raspberry Pi-a za isključivanje i potrošnju energije, pa ću se uglavnom oslanjati na brojeve koje ste naveli i ostavljam formule.

Krivulja eksponencijalnog pražnjenja show je za sklop otpornik-kondenzator, ali linearni regulator uzrokuje da stvari djeluju malo drugačije. Pretpostavimo da RPi uvijek troši maksimalnu struju koju ste naveli: 1200 mA. U ovom slučaju ta struja uvijek teče kroz regulator, a efektivni otpor kruga stalno se mijenja (smanjuje) kako se kondenzator prazni. To je točno sve dok smo u radnom opsegu linearnog regulatora, što je u redu jer trebamo isključiti RPi prije nego što pogodimo to područje.

Diferencijalna jednadžba za kondenzator je: $$ I = C \ dfrac {dV} {dt} $$ koji se može preurediti da se riješi za C: $$ C = I \ dfrac {dt} {dV} $$

  • I je jednostavno prosječna struja za RPi. U ovom ćemo slučaju pretpostaviti da je 1200 mA ili 1,2 A.
  • dt je vrijeme potrebno za isključivanje RPi-a. Na vašem primjeru ovo je 5 s.
  • dV je promjena napona kondenzatora. Pretpostavit ćemo da je početni napon najniži specificirani napon od 11,7 V, a da je završni napon 7,0 V. Krajnji napon postavljam na 7,0 V, jer linearni regulator 7805 zahtijeva visinu od dva volta za ispravan rad (5,0 V + 2,0 V = 7,0 V). To čini dV = 11,7 V - 7,0 V = 4,7 V.

To daje sljedeći rezultat: $$ C = 1,2A \ dfrac {5s} {4,7 V} = 1,28 F $$

Da, to je 1,28 Farada (ovdje nema mikro ili mili). To bi vjerojatno uključivalo kupnju nekoliko niskonaponskih kapa i njihovo postavljanje u seriju

Dakle, drugi je problem vaš krug - neće raditi onako kako vi želite, jer je jedini način pozitivnog ulaza usporedbe približi negativnom ulaznom naponu (tako da se izlaz može promijeniti) je kad je vaš ulazni napon već mrtav. Kako je dizajniran, usporednik se nikada ne bi prebacio.

Ono što želite učiniti je izmjeriti svoj ulazni napon, prije kondenzatora i diode, i usporediti taj napon s "referentnom vrijednosti" koju možete postaviti pomoću uređivača. Pogledajte primjer sklopa u nastavku:

schematic

simuliraj ovaj sklop - Shema stvorena pomoću CircuitLab sup >

U pravu si - mislio sam napajati pozitivan ulaz komparatora s druge strane diode D1. Trebam GPIO pin kako bih aktivirao prekid u trenutku kad se isključi napajanje od 12 V (radio i dodaci su isključeni). ... Znači, referentni napon je 0, zar ne? Koja je svrha TVS diode?
Ovdje ih imam više, bi li bili savršeni za ovaj posao? http://i.ebayimg.com/images/g/lF8AAOSwBP9UYdRb/s-l300.jpg
@danbru Nemam pojma, to je slika, a ne podatkovni list.Ako mislite da su vaši eBay kondenzatori stvarno 1,5F na 5,5V, tada ćete i dalje morati staviti višestruko u seriju i paralelno kako biste dobili potreban kapacitet.
@W5VO postoji li neki jednostavan način na koji mogu testirati kapacitivnost?
Chris Stratton
2013-03-12 22:20:05 UTC
view on stackexchange narkive permalink

Napomena: sljedeći je odgovor napisan s pretpostavkom da samo upotreba SD datoteke datotečnim sustavom može biti oštećena. Otada je izašlo puno anegdotalnih dokaza koji sugeriraju da su unutarnje stanje samih SD kartica, ispod razine bilo kojeg datotečnog sustava , potencijalno u opasnosti od korupcije zbog nepravilnog gubitka električne energije, što bi moglo biti slučaj nije moguće zaobilaziti na razini datotečnog sustava.


Bio bih u iskušenju da pogledam posve drugačiji pristup, jedan od rješenja problema u njegovom izvoru. U osnovi, nema ničeg fundamentalno lošeg u tome što samo povučete snagu iz pi-a; problem je potencijalno neaktizirano stanje datotečnog sustava što dovodi do oštećenja datotečnog sustava i naknadnog neuspjeha pokretanja dok ne popravite / preoblikujete volumen.

Ali to je nešto što se na softverskoj strani može popraviti nekom kombinacijom:

  • Stvorite više particija na SD kartici i nikada ne montirajte particiju za pokretanje ili operativni sustav u način za pisanje. Ako želite ići korak dalje, nikada nemojte pisati ni na što na SD karticu, zadržavajući sve svoje promjenjive podatke na USB sticku.

  • Upotrijebite datotečni sustav dnevnika za pohraniti podatke koji će zapravo biti izmijenjeni u radu.

  • Jednostavno držite rezervnu karticu pri ruci, po želji ovo može biti neka shema automatskog sigurnosnog kopiranja i oporavka s povezane kartice s pravilom gdje jedna od kartica može se ikada montirati na nju da se može zapisati u bilo kojem trenutku (u kombinaciji s prvim pravilom particija za pokretanje / operativni sustav i nikad se ne može pisati)

Na kraju se svodi na pitanje filozofije dizajna - izbor između:

A) Nježni sustav koji mora biti zaštićen od gubitka električne energije manje od oštećenja

ili

B) A sustav dizajniran tako da neočekivani gubitak snage ne može rezultirati nepopravljivom korupcijom.

Većina ugrađenih sustava više je nalik na (B).

Odvojene particije na SD kartici s nekim samo za čitanje neće u potpunosti riješiti problem. Izravnavanje odjeće na SD karticama može uništiti BILO KOJI blok na kartici (kada zamjenjuje blokove). Ovo izravnavanje trošenja potpuno je skriveno u SD-u i nema načina da se njime upravlja. U stvari, s particijom datotečnog sustava samo za čitanje imat će najmanji broj upisa i bit će glavna meta onoga s čime se treba zamijeniti prilikom niveliranja habanja.
BTW - Došao sam do zaključka da je za SD kartice nemoguće dizajnirati robusna ugrađena rješenja, osim ako ne možete jamčiti čisto gašenje. Specifikacija je stvarno loša za ugrađene slučajeve upotrebe ... što je s obzirom na to koliko ih je ugrađeno, prilično tužno stanje.
@darron: Tužno je s obzirom na to da postoji mnogo načina na koje su se problemi mogli izbjeći. Na primjer, specifikacija je mogla odrediti naredbu "shutdown" i zahtijevati da bilo koji uređaj mora biti u stanju dovesti se u sigurno stanje npr. 250ms primanja. Mislim da većina praktičnih implementacija SD-kartica ne bi imala problema s takvom specifikacijom čak i da je naredba za isključivanje došla usred operacije "pozadinske defragmentacije" za koju bi trebale minute da se završi.
@darron - upravo zbog takvih problema s više particija spomenuo sam mogućnost da uopće ne pišem na SD karticu.
Kada se pravilno isključi, XBMC sprema trenutnu točku u pjesmi / filmu koja se reproducira na disk kako bi se mogla ponovno pokrenuti s iste točke pri ponovnom pokretanju. Zaista bih volio izbjeći "Tata, već smo vidjeli ovaj dio, možeš li se povući i premotati naprijed do dijela gdje taj čovjek to radi?"
user22047
2013-04-03 12:34:59 UTC
view on stackexchange narkive permalink

Kao što su drugi naglasili, postoji nekoliko problema s do sada predloženim krugovima, a možete dobiti i kondenzator dovoljno velik da zadrži napajanje. Ako ste voljni izgraditi mali krug, možete razmisliti o zaključavanju regulatora za uključivanje / isključivanje napajanja koji radi na tipke. Da biste ISKLJUČILI XBMC poslužitelj, možete pritisnuti tipku koja signalizira Pi da se isključi, zatim bi mogao učiniti ono što mu treba za čisto uredno isključivanje, a zatim izdati GPIO signal krugu koji isključuje napajanje. To RPi-u daje toliko vremena koliko mu je potrebno za obavljanje poslova poput sigurnog isključivanja SD kartice. Strujni krug ne mora biti toliko složen kao relej i tajmer.

Evo jednostavnog sklopa za to koji koristi samo dvostruki MOSFET kao kontroler. Sklop je opisan na web stranici.



Ova pitanja su automatski prevedena s engleskog jezika.Izvorni sadržaj dostupan je na stackexchange-u, što zahvaljujemo na cc by-sa 3.0 licenci pod kojom se distribuira.
Loading...