Kapacitní zálohovací modul - SUPERCAP01A
Superkapacitory mohou být využity pro zálohování systémů při krátkodobém výpadku napájení.
Použití
Záložní napájení ODROID
Energie uložená modulu je dostatečná pro běh počítače odroid na několik desítek sekund. Tento čas je dostatečný k tomu, aby mohlo dojít například k uložení důležitých dat, nebo k odstavení systému. Pro automatické vypnutí počítače po odpojení napájení modulu lze využít referenční skript nebo následující python skript ze svn repozitáře MLAB. Systém finguje tak, že skript v odroidu periodicky čte pin 83 na který je připojený indikační výstup ze SUPERCAP - Pin PFO. Při výpadku napájení logická hodnota na pinu odroidu přejde na log 0.
Protože se při startu odroidu může stát, že je potřeba zinicializovat ještě některé periferie atd, Tak je program prvních 30s po spuštění necitlivý na výpadek napájení.
Instalace
sudo apt install python-setuptools
Pro spuštění tohoto skriptu je potřebné mít nainstalovanou knihovnu WiringPi2 pro Odroid. Knihovnu lze nainstalovat následovně:
cd ~/repos git clone https://github.com/hardkernel/WiringPi2-Python.git cd WiringPi2-Python git submodule init git submodule update sudo python setup.py install
Následně stáhneme skript ze svn.
cd ~/repos wget https://raw.githubusercontent.com/MLAB-project/Modules/master/PowerSupply/SUPERCAP01B/SW/SUPERCAP.py wget https://raw.githubusercontent.com/MLAB-project/Modules/master/PowerSupply/SUPERCAP01B/SW/start.sh
Nyní by jsme v adresáři repos měli mít nový adresář SUPERCAP s výše zmíněným Python skriptem, Ten nyní stačí spustit, aby začal kontrolovat stav pinu indikujícího výpadek vstupního napájení pro SUPERCAP. Program se spouští startovacím skriptem start.sh, který zabraňuje případnému vícenásobnému spuštění programu a tím ke konfliktům s přístupem na hardware.
sudo ./start.sh
U skriptu je však vhodné aby se spouštěl automaticky při startu systému. Toho dosáhneme tím, že jej připíšeme do souboru /etc/rc.local. Upravený soubor pak může vypadat například takto:
odroid@odroid:~$ cat /etc/rc.local #!/bin/sh -e # # rc.local # # This script is executed at the end of each multiuser runlevel. # Make sure that the script will "exit 0" on success or any other # value on error. # # In order to enable or disable this script just change the execution # bits. # # By default this script does nothing. [ ! -f /etc/ssh/ssh_host_rsa_key ] && dpkg-reconfigure openssh-server /home/odroid/repos/SUPERCAP/start.sh & exit 0
/etc/rc.local je systémový soubor do kterého může zapisovat jenom administrátor. Znak „&“ na konci řádku který spouští skript SUPERCAP.py je důležitý a způsobuje, že se tento proces spustí na pozadí.
Jestliže se odroid vypne při vysokém napětí na kondenzátoru a kondenzátor se nevybije pod prahovou mez pro reset napájením. Tak nedojde k zapnutí odroidu po opětovném připojení napájení. Tento problém by mělo být možné vyřešit připojením PG pinu modulu SUPERCAP, na vypínací vstup ODROIDU, který je vyvedený na nezapájený hřebínek odroidu. K tomu je ale potřeba zjistit logické úrovně vypínacího signálu a jeho přesnou polaritu.