Budujemy rejestrator danych o niskiej mocy oparty na ATmega328P, w celu wykorzystania modułu ładującego Arduino i IDE itp. Idealnie zużycie energii powinno być mniejsze niż 0,3 mA przy 3,3 V, aby uzyskać około 4 miesięcy życia na jednym Bateria AA. Dane czujnika będą przechowywane z maksymalną prędkością 76 bajtów / s przez 4 miesiące, co daje około 750 MiB danych. Dlatego potrzebujemy dużego urządzenia pamięci, które wciąż ma małą moc.
Z tego, co mogę powiedzieć, jedynym praktycznym rozwiązaniem do przechowywania tak dużej ilości danych jest użycie karty SD. Wydaje się jednak, że karty SD zużywają nieco więcej energii, niż możemy sobie pozwolić, prąd jałowy 0,2 mA dla kart, które mamy teraz, i więcej, gdy piszą.
Więc kilka pytań:
- Czy wyłącznik wysokiej strony jest jedynym praktycznym sposobem kontrolowania zużycia energii przez kartę SD?
- Czy są jakieś zastrzeżenia, o których powinniśmy pamiętać przy przełączaniu zasilania na kartę? Na przykład wyrównywanie zużycia to proces, który zostanie przeprowadzony po zapisie bloku, lub może się zdarzyć w dowolnym momencie.
- Czy są jakieś inne alternatywy, które powinniśmy rozważyć?
arduino
low-power
microsd
datalogger
geometrikal
źródło
źródło
Odpowiedzi:
Jeśli budżetujesz średnio 0,3 mA, liczy się każdy µA. Nie stanowi to większego problemu dla mikrokontrolera, ale karta SD zużywa dziesiątki mA. Chcesz, aby była jak najmniej włączona. Ale ATmega328P ma tylko 2 kB pamięci RAM, co oznacza, że bufor próbki zostanie zapełniony w mniej niż pół minuty, a następnie nadszedł czas, aby zapisać na karcie SD. Dwa razy na minutę.
Rozważałbym TI MSP430 zamiast AVR. Jest to wciąż powszechnie dostępny kontroler o najniższej mocy. Pozwoli ci to zaoszczędzić µA, którego potrzebujesz, zapisując na kartę SD. MSP430F5418A ma również 16 KB pamięci RAM, dzięki czemu masz do władzy na karcie SD tylko raz na trzy i pół minuty.
Możesz uruchomić MSP430 na oscylatorze niskiej częstotliwości i przełączyć się na DCO wysokiej częstotliwości (oscylator sterowany cyfrowo) w celu zapisu na karcie SD, dzięki czemu zajmuje to jak najmniej czasu.
Do zasilania karty SD rzeczywiście użyłbym przełącznika high-side. BSS215P jest odpowiedni układ logiczny poziom P-MOSFET.
edytuj
Jeśli nie przeszkadza ci pakiet BGA, urządzenie NAND Flash może być alternatywą dla karty SD. Ten może działać w trybie MMC lub SPI. Zużywa mniej niż karta SD, ale nadal zużywa 200 µA w trybie gotowości, więc nadal będziesz chciał go wyłączyć za pomocą wysokiej częstotliwości FET. Przed wyłączeniem zasilania upewnij się, że układy we / wy są na niskim poziomie. Dotyczy to również karty SD.
źródło
(Odpowiadanie na mój post z przydatnymi informacjami)
Przeprowadziłem pewne eksperymenty z ograniczonym zestawem kart SD, aby sprawdzić ich zużycie energii. Wydaje się, że różnią się one znacznie między producentami i typami, niektóre karty zużywają 10 razy więcej mocy uśpienia niż inne.
Poniżej są dwa wyniki. Pierwszy to szacowany pobór prądu podczas snu, a drugi to średni pobór prądu dla około 1 sektora, pisz co 5 sekund dla mojej płyty .
Nie uwzględniłem prądu szczytowego, ponieważ wydaje się, że nie jest to wiarygodny pomiar za pomocą mojego multimetru. Prawdopodobnie dlatego, że karta jest zapisana tylko na kilka ms. Zauważyłem jednak, że wszystkie karty dały pomiar szczytowy około 5 - 6mA (wygładzony), podczas gdy Lexar dawał 2 - 3mA (wygładzony). Należy zauważyć, że rzeczywisty maksymalny prąd jest o rząd wielkości większy niż ten, ale wskazuje, że karta Lexar ma niski prąd zapisu, a także tryb uśpienia.
Aktualny zwycięzca
Lexar 8GB klasa 6
Zaktualizuję tę listę, gdy będzie więcej testów. (Ostatnia aktualizacja: 14.08.2014)
źródło
Niezłe testy. Sprawdź nasz samouczek dotyczący rejestrowania danych o niskiej mocy przy użyciu kart Arduino Pro Mini i SD: http://www.osbss.com/tutorials/temperature-relative-humidity/
Prawdopodobnie zawiera dokładnie to, czego potrzebujesz (przerwanie RTC budzi go, prawie roczna żywotność baterii itp.) Nasze zużycie energii w głównym nurcie wynosi około 0,195 mA przy 3,3 V, a to może spaść do 0,11 mA lub znacznie mniej, jeśli używasz innych płyt lub samego gołego układu ATmega328P.
Tak jak powiedział @stevenvh, będziesz potrzebował tranzystora do kontrolowania zasilania czytnika kart SD, gdy procesor jest w trybie uśpienia.
źródło
Najniższe prądy uśpienia, jakie widziałem dla kart SD, wynoszą około 0,05 mA dla starego sandisk 256Mb, i podobnie jak ludzie OSBSS, rzadko dostaję mój rejestrator danych poniżej 0,1 mA, ponieważ typowe karty SD wydają się pobierać około 0,07 mA. Jednak po dotarciu na to terytorium powinieneś być w stanie łatwo uzyskać 3-4 miesiące z AA, jeśli twój regulator rozruchu jest wystarczająco wydajny.
Upewnij się, że wyciągasz nieużywane połączenia na karcie SD lub prądy uśpienia mogą być znacznie wyższe. Zapoznaj się również z biblioteką małej mocy Rocket Screem, ponieważ pozwala to łatwo przejść do różnych trybów uśpienia 328P.
Jeśli chodzi o zamianę: koleś, który napisał biblioteki SD dla arduino, ostrzega przed wyłączeniem zasilania kart SD na placu zabaw w Arduino, więc nie zastosowałem tego podejścia. Byłbym ciekawy, jak to zadziałało dla facetów OSBSS (?)
źródło