/** * @file ubus_config.h * * @brief Konfigurácia protokolu uBUS * @author Juraj Dudak * @date 20.12.2022 */ /** @addtogroup Firmware * @{ */ /** @addtogroup Implementácia_uBUS * * @{ */ /** @addtogroup Konfigurácia * @brief Konfigurácia komunikačného zásobníka uBUS, súbor ubus_config.h * * @{ * * ## Základné nastavenia * * Základné naastavenie konfigurácie je potrebné urobiť pri konfiguráciu použitého MCU. Pri konfigurácii MCU je potrebné nastaviť: * * - želanú frekvenciu jadra. * - aktivovať komunikažné rozhranie USART * - povoliť prerušenie na USART * - v prípade aktivácie nastavenia USE_USART_DMA_TX, pridať DMA kanál pre smer TX * - aktivovať základný časovať TIM (TIM6 alebo TIM7) * - povoliť prerušenie na použitom časovači. * - GPIO pin procesora, ktorý bude použitý pre svetelnú signalizáciu */ #ifndef __UBUS_CONFIG_H__ #define __UBUS_CONFIG_H__ /** @brief Základná komunikačná rýchlosť modulu. */ #define UART_BAUDRATE 19200 /** @brief Parita pre komunikačné rozhanie. * * Povolené hodnoty: UART_PARITY_EVEN, UART_PARITY_ODD, UART_PARITY_NONE. Default: UART_PARITY_EVEN */ #define UBUS_UART_PARITY UART_PARITY_EVEN /** * @brief Rodina dosky, resp. typové označenie meracieho modulu. * * Maximálna povolená dĺžka sú 4 znaky. */ #define FW_FAMILY "TEST" /** * @brief Globalne povoluje resp zakazuje použitie možnosti šifrovania komunikácie. * * Vypnutie RSA šifrovania ušetrí cca 2kB. */ #define ENABLE_RSA 1 /** * @brief Globalne povoluje resp zakazuje vypoctu pomocou tabulky CRC. * * Vypnutím direktívy sa zmnčí pamäťová náročnosť FLASH (asi o 600 B) ale spomalí sa výpočet CRC prijímaného a odosielaného paketu. */ #define USE_FAST_CRC 1 /** * @brief Určuje, či sa použije hardvérové riadenie zbernice RS485. */ #define USE_SW_485 1 /** * @brief Spôsob odoslania odpovede (blokujúci/DMA). * * 0 - blokujuci spôsob, 1- neblokujúci spôsob pomocou DMA. Využitie neblokujúcej komunikácie má význam * len pri BULK dátovom prenose, kedy ako odpoveď na požiadavku o prebos väčšieho množstva dát (4kB) sa odošle viecero rámcov za sebou. */ #define USE_USART_DMA_TX 0 /** * @brief UART Timeout - pri jeho vypsani sa doska restartuje. * * Podmienka restaru, bude ze do doby vyprsania timeoutu nebude ziadna komunikacia na rozhrani UART. * hodnota = minuty + offset 35s */ #define UART_WATCHDOG 30 * 60 * 1000 + 35000 /** * @brief Podpora pre formát Qm.n pre namerané dáta. * * Touto direktívou sa zapne práca s typom float. */ #define QFORMAT_SUPPORT_ENABLE 1 /** * @brief Umožní monitorovanie prevádzkovýách napätí meracieho modulu. * * Ak je monitorovaine aktivované, vyžaduje sa aby v konfigurácii modulu uBUS bolo aktivované rozhranie ADC. */ #define SELF_MONITORING 0 /** @brief Aktivuje sub-slave 14 (0xE) - driver 1-wire. Implementácia je v súbore ubus_dev_E.c */ //#define UBUS_CHANNEL_E /** @brief Aktivuje sub-slave 15 - pamäť konfigurácie (0xF). Implementácia je v súbore ubus_dev_F.c */ #define UBUS_CHANNEL_F /** * @} */ /** * @} */ /** * @} */ #endif