====== 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ů === {{ :files:img_warning-line_b.png?nolink |}} {{ :en:hw:08_safety-instructions_pseudo-ISO-7010-info.png?nolink |(i)}} **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). {{ :files:img_warning-line_b.png?nolink |}} {{ :en:hw:08_safety-instructions_pseudo-ISO-7010-info.png?nolink |(i)}} **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 |}} {{ :files:img_warning-line_b.png?nolink |}} {{ :en:hw:08_safety-instructions_pseudo-ISO-7010-info.png?nolink |(i)}} 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. {{ :files:img_warning-line_b.png?nolink |}} {{ :en:hw:08_safety-instructions_pseudo-ISO-7010-info.png?nolink |(i)}} 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 {{ :files:img_warning-line_b.png?nolink |}} {{ :en:hw:09_safety-instructions_pseudo-ISO-7010-attention.png?nolink |(!)}} **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}}