SysFS
Ovladač SysFS je součást kernelového modulu pro všechny jednotky Unipi se vstupy a výstupy (kromě Unipi 1.1) a poskytuje jednoduchý přístup ke všem vstupům a výstupům na úrovni souborů.
Patron
Neuron
Axon
Chcete-li na jednotce Unipi s OpenSource OS používat 1-Wire, je nutné nainstalovat a konfigurovat OWFS. V případě OS s EVOKem, je OWFS již instalováno.
Pro Mervis OS OWFS neinstalujte! Využívá alternativní metodu pro práci s 1-Wire a mohlo by docházet ke kolizím.
Do začátku si můžete prohlédnout příklady čtení a zápisu I/O:
Stejným způsobem lze přistupovat ke všem souborům v rámci SysFS.
Vyčtení stavu DO:
cat /run/unipi/io_group1/do_1_01/do_value
Nastavení DO do stavu sepnuto:
echo 1 > /run/unipi/io_group1/do_1_01/do_value
Vyčtení stavu DI:
cat /run/unipi/io_group1/di_1_01/di_value
Vyčtení stavu všech DI první sekce:
cat /run/unipi/io_group1/di_[1-3]_[0-9][0-9]/di_value
Vyčtení stavu všech dostupných DI jednotky:
cat /run/unipi/io_group[1-3]/di_[1-3]_[0-9][0-9]/di_value
Dokumentace k souborům
Obecné údaje
Název desky I/O
Soubor je pouze pro čtení a obsahuje název desky vstupů a výstupu jednotky Unipi, přičemž číslo v rozsahu [1-3] odpovídá sekci jednotky.
Vrátí chybu, pokud se jedná o desku s neznámým ID zařízení a není možné získat odpovídající název desky.
/run/unipi/io_group[1-3]/sys_board_name
Sériové číslo desky I/O
Soubor je pouze pro čtení a obsahuje sériové číslo desky vstupů a výstupu jednotky Unipi, přičemž číslo v rozsahu [1-3] odpovídá sekci jednotky.
Pokud sériové číslo není platné, vrátí nulu.
/run/unipi/io_group[1-3]/sys_board_serial
Verze firmwaru
Soubor je pouze pro čtení a obsahuje označení verze firmwaru desky vstupů a výstupu jednotky Unipi, přičemž číslo v rozsahu [1-3] odpovídá sekci jednotky. Číslo verze firmwaru používá následující formát: [0-9,A-F].[0-9,A-F][0-9,A-F].
Pokud je číslo verze neplatné, vrátí chybu.
/run/unipi/io_group[1-3]/firmware_version
UART konfigurace
Soubor umožňuje čtení i zápis a obsahuje nastavení sériových portů dostupných na desce vstupů a výstupů, přičemž číslo v rozsahu [1-3] odpovídá sekci jednotky.
Pokud deska I/O neobsahuje sériový port, soubor je prázdný.
/run/unipi/io_group[1-3]/uart_config
UART délka fronty
Soubor je pouze pro čtení a obsahuje počet přijatých znaků ve vyrovnávací paměti sériového portu na desce vstupů a výstupů, přičemž číslo v rozsahu [1-3] odpovídá sekci jednotky.
Pokud deska I/O neobsahuje sériový port, soubor je prázdný.
/run/unipi/io_group[1-3]/uart_queue_length
Stav životnosti úložiště
Soubory jsou pouze pro čtení a obsahují informace o stavu úložiště.
První soubor udává počet cyklů přemazání paměti oproti maximu [%].
/run/unipi_stats/cycles_used
Druhý soubor udává počet bloků [%], které jsou v pořádku.
/run/unipi_stats/good_blocks
Pro jednotky Neuron je k dispozici třetí soubor indikující počet startů jednotky s aktuální SD kartou.
/run/unipi_stats/power_cycles
V případě, že máte v Neuronu podporovanou SD kartu, je možno následujícími soubory zjistit výrobce karty.
/run/unipi_stats/vendor_1 /run/unipi_stats/vendor_2 /run/unipi_stats/vendor_3
Vstupy a výstupy (I/O)
Digitální vstupy
Slouží ke čtení stavu zvoleného vstupu v dané sekci [1-3] jednotky. Více informací, včetně napěťových úrovní pro detekci log.0/1 naleznete v článku o digitálních vstupech.
Soubor je pouze pro čtení a pokud obsahuje hodnotu 0
, je na digitálním vstupu detekována logická hodnota 0. Obsahuje-li hodnotu 1
, je detekována logická hodnota 1.
/run/unipi/io_group[1-3]/di_[1-3]_[0-9][0-9]/di_value
Digitální výstupy
Slouží ke čtení/nastavení stavu zvoleného tranzistorového výstupu v dané sekci [1-3] jednotky. Více informací naleznete v článku o digitálních výstupech.
Soubor umožňuje čtení i zápis a pokud obsahuje hodnotu 0
, je digitální výstup rozepnut. Obsahuje-li hodnotu 1
, je sepnut. Zápis hodnoty do tohoto souboru změní stav (sepnut/rozepnut) výstupu dle uvedeného pravidla.
/run/unipi/io_group[1-3]/do_[1-3]_[0-9][0-9]/do_value
Relé výstupy
Slouží ke čtení/nastavení stavu zvoleného relé výstupu v dané sekci [1-3] jednotky. Více informací naleznete v článku o relé výstupech.
Soubor umožňuje čtení i zápis a pokud obsahuje hodnotu 0
, je relé výstup rozepnut. Obsahuje-li hodnotu 1
, je sepnut. Zápis hodnoty do tohoto souboru změní stav (sepnut/rozepnut) výstupu dle uvedeného pravidla.
/run/unipi/io_group[1-3]/ro_[1-3]_[0-9][0-9]/ro_value
Uživatelské LED
Slouží ke čtení/nastavení stavu zvolené uživatelské LED dané sekce [1-3] jednotky.
Soubor umožňuje čtení i zápis a pokud obsahuje hodnotu 0
, LED nesvítí. Obsahuje-li hodnotu větší nebo rovno 1
, LED svítí. Zápis hodnoty do tohoto souboru změní stav (svítí/nesvítí) LED dle uvedeného pravidla.
/run/unipi/io_group[1-3]/leds/unipi:green:uled-x[0-9]/brightness
Speciální funkce I/O
Čítač
Funkce čítače je k dispozici pro každý digitální vstup jednotek Unipi. Více o této funkci naleznete v článku o digitálních vstupech.
Soubor umožňuje čtení i zápis a obsahuje celkový počet impulsů v rozsahu 0-4294967295
detekovaných digitálním vstupem dané sekce [1-3] jednotky. Zápis hodnoty do souboru nastaví zvolený čítač na požadovanou hodnotu. Zapsáním hodnoty 0
lze čítač resetovat.
/run/unipi/io_group[1-3]/di_[1-3]_[0-9][0-9]/counter
Debounce
Funkce Debounce slouží k potlačení zákmitů na digitálním vstupu. Tento soubor obsahuje čas ve stovkách µs (je-li jeho hodnota 10, odpovídá to 1 ms). Po tutu nastavenou dobu je reakce na změnu hodnoty na vstupu ignorována, aby se zabránilo náhodným sepnutním vstupu v důsledku indukce na kabeláži atp. Nastavení je dostupné pro každý jednotlivý vstup zvolené sekce [1-3] jednotky.
Soubor umožňuje čtení i zápis. Z výroby obsahuje hodnotu 50
, která odpovídá době 5 ms. Hodnota 0
znamená, že je funkce debounce vypnutá.
/run/unipi/io_group[1-3]/di_[1-3]_[0-9][0-9]/debounce
DirectSwitch
Funkce DirectSwitch se nastavuje na digitálních vstupech, ale jeho funkce je vázána i na digitální, či relé výstupy se shodným označením. Všechny parametry DirectSwitch lze nastavit jednotlivě pro každý digitální vstup zvolené sekce [1-3] jednotky. Více o této funkci naleznete v článku o digitálních vstupech.
DirectSwitch enable
Soubor umožňuje čtení i zápis a pokud obsahuje hodnotu 0
, je funkce DirectSwitch vypnuta. Obsahuje-li hodnotu 1
, funkce je zapnuta. Zápis hodnoty do tohoto souboru změní stav (zapnuto/vypnuto) funkce DirectSwitch dle uvedeného pravidla.
/run/unipi/io_group[1-3]/di_[1-3]_[0-9][0-9]/direct_switch_enable
DirectSwitch polarity
Soubor umožňuje čtení i zápis a pokud obsahuje hodnotu 1
, funkce DirectSwitch (je-li zapnuta) nastaví výstup do stavu odpovídajícího negované hodnotě vstupu. Obsahuje-li hodnotu 0
, je stav výstupu shodný s hodnotou na vstupu. Zápis hodnoty do tohoto souboru nastaví polaritu (shoda/negace) funkce DirectSwitch dle uvedeného pravidla.
/run/unipi/io_group[1-3]/di_[1-3]_[0-9][0-9]/direct_switch_polarity
DirectSwitch toggle
Soubor umožňuje čtení i zápis a pokud obsahuje hodnotu 1
, funkce DirectSwitch (je-li zapnuta) změní stav výstupu s každou náběžnou hranou na vstupu, zároveň je ignorováno nastavení DirectSwitch polarity. Obsahuje-li hodnotu 0
, funkce toggle je vypnuta. Zápis hodnoty do tohoto souboru změní stav (zapnuto/vypnuto) funkce toggle dle uvedeného pravidla.
/run/unipi/io_group[1-3]/di_[1-3]_[0-9][0-9]/direct_switch_toggle
PWM - pulzně šířková modulace
PWM lze nastavit pouze pro digitální výstupy. Aby bylo možné funkci PWM použít, je nutné nastavit hodnotu digitálního výstupu na hodnotu 0
. Více o této funkci naleznete v článku o digitálních výstupech.
Délka jednoho cyklu Tc se nastavuje pomocí hodnot PWM Prescale a PWM Cycle. Výpočet popisuje následující vzoreček:
Hodnota PWM cycle má přímý vliv na rozlišení střídy PWM dle následujícího vzorce:
rozlišení = PWM_cycle + 2
Z toho vychází, že pokud je hodnota PWM cycle 1
, je rozlišení rovno 3
. Můžeme tedy nastavit tři hodnoty střídy - 0 %, 50 % a 100 %. V případě, kdy to výpočet umožňuje je tedy vhodné nastavit PWM cycle na co nejvyšší hodnotu.
Hodiny PWM standardně běží na 48 MHz, proto se přípustné frekvence PWM pohybují od 24 MHz do ~ 0,0111 Hz. Je třeba poznamenat, že v horní hladině tohoto rozsahu bude čtvercová vlna PWM poměrně nepravidelná, vzhledem k době po kterou tranzistory mění svůj stav.
Střída PWM
Nastavení střídy PWM (PWM duty-cycle) je dostupné jednotlivě pro každý digitální výstup zvolené sekce [1-3] jednotky.
Soubor umožňuje čtení i zápis a lze do něj zapsat hodnoty v rozsahu 0-65535. Korektní hodnoty střídy jsou však v rozsahu 0-100 [%], nastavení vyšší hodnoty bude vždy vyhodnoceno jako 100 [%].
/run/unipi/io_group[1-3]/do_[1-3]_[0-9][0-9]/pwm_duty_cycle
PWM cycle
Nastavení frekvence cyklu PWM je společné pro všechny digitální výstupy zvolené sekce [1-3] jednotky a změna nastavení jednoho výstupu ovlivní všechny soubory.
Soubor umožňuje čtení i zápis a může obsahovat hodnoty v rozsahu 0-65535.
/run/unipi/io_group[1-3]/do_[1-3]_[0-9][0-9]/pwm_frequency_cycle
PWM prescale
Nastavení PWM prescale je společné pro všechny digitální výstupy zvolené sekce [1-3] jednotky a změna nastavení jednoho výstupu ovlivní všechny soubory.
Soubor umožňuje čtení i zápis a může obsahovat hodnoty v rozsahu 0-65535.
/run/unipi/io_group[1-3]/do_[1-3]_[0-9][0-9]/pwm_prescale