Pomiar napięcia zasilania i wadliwa karta pamięci

avr raspbian 2018-08-14, 22:08,

Walczysz drugą godzinę z Raspberry Pi (lub innym SBC) i w zasadzie nie wiesz co robisz źle? Coś podobnego spotkało mnie wczoraj podczas przygotowywania części wykonawczej na Pi Zero 1.3. Komputerek miał dosyć proste zadanie do wykonania. Po uruchomieniu systemu przełączyć się na chwilę w tryb RW (odczyt/zapis) systemu plików, pobrać logi z zewnętrznego urządzenia przez port szeregowy, po czym przełączyć się ponownie w tryb RO (tylko odczyt).

Dlaczego tak? Malinka wylądowała w samochodzie i zapisuje pomiary temperatury i napięcia akumulatora zgromadzone przez AVR’a, w jego skromnej 2 kB pamięci. Niby nie dużo, ale zapisując temperaturę z dokładnością do 1 stopnia, a napięcie do 0,02V można zmieścić prawie 1000 pomiarów. Przy 15-minutowych odstępach to 10 dni, a zmniejszając częstotliwość, można dociągnąć nawet do 20.

Ale wracając do karty. Krytyczne w tym scenariuszu jest zabezpieczenie systemu plików przed gwałtownym odcięciem zasilania. Pomiar potrzebny mi był na szybko, więc te kilka linijek kodu w C na AVR musiało szybko połączyć się ze skryptem w Javie i w formie pliku CSV wylądować na karcie. Bez projektowania wymyślnych systemów odcięcia zasilania z opóźnieniem itp. Mając 35 Ah do dyspozycji każdy mA jest na wagę złota (a Pi Zero ciągnie około 70 mA, 2-krotność tego, na co pozwala bilans energetyczny).

Konfigurację wykonywałem starym, sprawdzonym sposobem ze strony: https://hallard.me/raspberry-pi-read-only/, który działa za każdym razem... do czasu... Wczoraj utknąłem na zmianie parametrów /etc/fstab oraz /boot/cmdline.txt. Niby się zapisywały, a po restarcie nie było po nich śladów. Z bliżej nieokreślonych przyczyn karta MicroSD po prostu przestała zapisywać dane.

Dwie godziny później miałem już dosyć... wyciągnąłem z szuflady czystą kartę pamięci, rozpakowałem, władowałem Etcherem ten sam obraz i... 10 minut później miałem Raspbiana w trybie RO.

Morał tej historii jest taki, że jeśli coś próbujesz zrobić, co robiłeś wielokrotnie, a system robi coś, co kompletnie nie ma sensu... spróbuj na innej karcie. Może obecna właśnie kończy swój żywot...

Komentarze

Podobne wpisy