====== Dokumentace k souborům ====== /* ===== Název modelu ===== Tento soubor obsahuje název modelu jednotky Unipi. Název je uložen v I2C EEPROM, ze které se vyčte při startu jednotky. **Soubor je pouze pro čtení.** /proc/device-tree/unipi-model */ ===== 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. /* FIXME -> opravdu vrátí chybu, nebo bude prázdný?? */ /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. /* FIXME -> opravdu prátí chybu, nebo bude prázdný?? */ /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 [[cs:hw:007-patron:description-of-io:01-description-of-di|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 [[cs:hw:007-patron:description-of-io:02-description-of-do|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 [[cs:hw:007-patron:description-of-io:03-description-of-ro|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 ==== Analogové vstupy ==== Následující soubory slouží k nastavení režimu a ke čtení hodnoty na analogovém vstupu v dané sekci jednotky [1-3]. Informace o zapojení, technické informace a další podrobné informace naleznete v [[https://kb.unipi.technology/cs:automation:02-glossary:analog-inputs-hidden|článku o Analogových vstupech]]. === Nastavení režimu analogových vstupů === Nastavení režimu AI sekce 1 (s výjimkou některých jednotek např. S5xx): **Soubor umožňuje čtení i zápis** a v závislosti na obsažené hodnotě je nastaven režim vstupu. /run/unipi/io_group1/ai_1_1/mode_ai_voltage_current Tento vstup je možné nastavit do dvou režimů dle následující tabulky: |< 100% 30% 70%>| ^ Hodnota ^ Režim AI ^ | 0 | Napětí 0–10V | | 1 | Proud 0–20mA | ---- Nastavení režimu AI sekce 2,3 (a jednotek S5xx): **Soubor umožňuje čtení i zápis** a v závislosti na obsažené hodnotě je nastaven režim vstupu. /run/unipi/io_group[1-3]/ai_[1-3]_[1-9]/mode_ai_voltage_current_resistance Tento typ vstupu je možné nastavit do několika režimů dle následující tabulky: |< 100% 30% 70%>| ^ Hodnota ^ Režim AI ^ | 0 | Vypnuto | | 1 | Napětí 0–10V | | 2 | Napětí 0–2.5V | | 3 | Proud 0–20mA | | 4 | Odpor (třívodičová metoda) 0–1960 Ohm | | 5 | Odpor (dvouvodičová metoda) 0–100 kOhm | === Čtení analogových vstupů === **Poznámka:** \\ Vždy lze číst pouze jeden soubor, dle [[#nastaveni_rezimu_analogovych_vstupu|nastaveného režimu]] vstupu. ---- Čtení hodnoty napětí na AI: **Soubor umožňuje pouze čtení** a obsahuje měřenou hodnotu napětí v **mV**. /run/unipi/io_group[1-3]/ai_[1-3]_[1-9]/in_voltage0_raw ---- Čtení hodnoty proudu na AI: **Soubor umožňuje pouze čtení** a obsahuje měřenou hodnotu proudu v **mA**. /run/unipi/io_group[1-3]/ai_[1-3]_[1-9]/in_current1_raw ---- Čtení hodnoty odporu na AI (pouze u sekce 2,3 a jednotek S5xx): **Soubor umožňuje pouze čtení** a obsahuje měřenou hodnotu odporu v **Ohmech**. /run/unipi/io_group[1-3]/ai_[1-3]_[1-9]/in_resistance2_raw ==== Analogové výstupy ==== Následující soubory slouží k nastavení režimu a k zápisu analogové hodnoty na výstup v dané sekci jednotky [1-3], na výstupu AOR v první sekci je také umožněno čtení odporu. Informace o zapojení, technické informace a další podrobné informace naleznete v [[https://kb.unipi.technology/cs:automation:02-glossary:analog-outputs-hidden|článku o Analogových výstupech.]] === Nastavení režimu analogových výstupů === Nastavení režimu AO (pouze sekce 1, s výjimkou některých jednotek např. S5xx): **Soubor umožňuje čtení i zápis** a v závislosti na obsažené hodnotě je nastaven režim výstupu. /run/unipi/io_group1/ao_1_1/mode_ao_voltage_current_resistance Výstup je možné nastavit do tří režimů dle následující tabulky: |< 100% 30% 70%>| ^ Hodnota ^ Režim AOR ^ | 0 | Napětí 0–10 V | | 1 | Proud 0–20 mA | | 2 | Čtení odporu 0–2 kOhm | === Zápis na analogové výstupy === Napěťový režim je dostupný na libovolném analogovém výstupu, ale proudový režim pouze na výstupu AOR (pouze sekce 1, s výjimkou některých jednotek např. S5xx). **Poznámka:** \\ Vždy lze zapisovat pouze do jednoho souboru, dle [[#nastaveni_rezimu_analogovych_vystupu|nastaveného režimu]] vstupu. ---- Zápis hodnoty napětí na AO/AOR: **Soubor umožňuje pouze zápis** a požadovaná hodnota napětí se do něj zadává v mV. /run/unipi/io_group[1-3]/ao_[1-3]_[1-9]/out_voltage0_raw ---- Zápis hodnoty proudu na AOR: **Soubor umožňuje pouze zápis** a požadovaná hodnota proudu se do něj zadává v mA. /run/unipi/io_group1/ao_1_1/out_current1_raw {{ :files:img_breakline.png?nolink |}} === Čtení z analogového výstupu === Na speciálním analogovém výstupu AOR (pouze sekce 1, s výjimkou některých jednotek např. S5xx) je také možné čtení hodnoty odporu. Čtení hodnoty odporu na výstupu AOR: **Soubor umožňuje pouze čtení** a obsahuje měřenou hodnotu odporu v ohmech. /run/unipi/io_group1/ao_1_1/in_resistance2_raw ==== 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 [[cs:hw:007-patron:description-of-io:01-description-of-di#counter|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 [[cs:hw:007-patron:description-of-io:01-description-of-di#directswitch|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 [[cs:hw:007-patron:description-of-io:02-description-of-do#pwm|v článku o digitálních výstupech]]. ---- Délka jednoho cyklu **Tc** se nastavuje pomocí hodnot [[#pwm_prescale|PWM Prescale]] a [[#pwm_cycle|PWM Cycle]]. Výpočet popisuje následující vzoreček: {{ :cs:sw:02-apis:04-sysfs:pwm_formula.png?nolink&300 |}} 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 ===== Pokročilé nastavení desek I/O ===== ==== Master Watchdog ==== Funkce Master Watchdog (MWD) nepřetržitě monitoruje příkazy z aplikace běžící na jednotce. Pokud během definovaného času **[[#watchdog_timeout|watchdog_timeout]]** nejsou detekovány žádné příkazy, procesor modulu se automaticky restartuje (pokud je povoleno) a použije uloženou [[#vychozi_konfigurace|výchozí konfiguraci]]. Tato funkce zajišťuje nastavení bezpečné konfigurace v případě mimořádných situací, např. při selhání řídící jednotky, přerušení komunikace, či problémech se softwarem tak, aby se zabránilo poškození ovládaných zařízení, či ohrožení osob. === Watchdog status === Hodnota souboru indikuje několik stavů MWD, které mohou nastat i současně. Každý stav je indikován jedním bitem, kde: * ''bit 0'' indikuje, zda je MWD povolen (1 = povoleno) * ''bit 1'' indikuje, zda byla sekce restartována funkcí MWD * ''bit 2'' indikuje, zda od poslední komunikace uplynul **watchdog_timeout** Kromě čtení stavů MWD je **umožněn i zápis do souboru** pro povolení/zakázání MWD. Povolení funkce se provádí zápisem ''1'' do tohoto souboru a zakázání zápisem ''0''. /run/unipi/io_group[1-3]/watchdog_status **Pozor**: \\ Bezprostředně po povolení MWD (než uplyne **[[#watchdog_timeout|watchdog_timeout]]**) je nutné uložit výchozí konfiguraci, jinak MWD zareaguje a vyrestartuje sekci I/O, čímž se načte uložená výchozí konfigurace, kde je MWD stále zakázán. === Watchdog timeout === Výchozí hodnotou je ''2500'', maximální možná hodnota je ''65535'' a minimální hodnotu timeoutu důrazně doporučujeme volit vyšší než ''100''. **Soubor umožňuje čtení i zápis** a obsahuje hodnotu v **ms**. /run/unipi/io_group[1-3]/watchdog_timeout ==== Výchozí konfigurace ==== Po zapsání hodnoty ''1'' dojde k uložení aktuální konfigurace sekce do její trvalé paměti. Při odpojení a připojení zařízení k napájení či [[#restart_sekce_i_o|restartu]] sekce se načte a použije uložená konfigurace. **Soubor umožňuje pouze zápis** a poté se vždy automaticky resetuje do hodnoty ''0''. /run/unipi/io_group[1-3]/save_initial_state ==== Restart sekce I/O ==== Po zapsání hodnoty ''1'' dojde k restartu celé sekce, podobně jako při odpojení a připojení zařízení k napájení. **Soubor umožňuje pouze zápis** a poté se vždy automaticky resetuje do hodnoty ''0''. /run/unipi/io_group[1-3]/reboot_group /* FIXME - všechno níže je neveřejná sekce, NEPŘEKLÁDAT */ {{page>cs:sw:02-apis:04-sysfs:documentation-advanced-hidden}}