Merge branch 'dev' into feature/28-profile-parser

This commit is contained in:
Mario Hüttel 2021-03-19 20:52:13 +01:00
commit ba6e0880b4
6 changed files with 45 additions and 9 deletions

View File

@ -68,7 +68,8 @@ no no yes no
ERR_FLAG_MEAS_ADC_UNSTABLE ERR_FLAG_MEAS_ADC_UNSTABLE
-------------------------- --------------------------
``ERR_FLAG_MEAS_ADC_UNSTABLE`` is set after startup of the PT1000 measuremnt or after reconfiguring the filter settings. ``ERR_FLAG_MEAS_ADC_UNSTABLE`` is set if the Moving Average Filter of the PT1000 ADC detects a bigger deviation between input and filtered output value.
The flag is automatically cleared by the controller as soon as the unstable condition is not met anymore. For this, the filter input to filter output difference has to stay below a certain threshold for a defined amount of samples.
.. seealso:: :ref:`firmware_meas_adc_filter` .. seealso:: :ref:`firmware_meas_adc_filter`
@ -86,7 +87,7 @@ ERR_FLAG_SAFETY_MEM_CORRUPT
``ERR_FLAG_SAFETY_MEM_CORRUPT`` is set during the initialization of the controller, in case a corrupted safety memory is encountered. ``ERR_FLAG_SAFETY_MEM_CORRUPT`` is set during the initialization of the controller, in case a corrupted safety memory is encountered.
In this case the error memory is reinitialized and the flag is set in the error memory. Afer a reboot it will stay asserted until the In this case the error memory is reinitialized and the flag is set in the error memory. Afer a reboot it will stay asserted until the
safety backup memory is cleared safety backup memory is cleared.
.. seealso:: :ref:`backup_ram` .. seealso:: :ref:`backup_ram`
@ -102,7 +103,7 @@ yes no yes no
ERR_FLAG_STACK ERR_FLAG_STACK
--------------------------- ---------------------------
``ERR_FLAG_STACK`` ialization of the controller, in case a corrupted safety memory is encountered. ``ERR_FLAG_STACK`` Shutdown of the controller, in case a corrupted safety memory is encountered.
This error is not recoverable and will trigger the panic mode. This error is not recoverable and will trigger the panic mode.
.. seealso:: :ref:`safety_stack_checking` .. seealso:: :ref:`safety_stack_checking`
@ -112,3 +113,38 @@ persistent self-clearing Stops PID Panic Mode
========== ============= ============= =========== ========== ============= ============= ===========
yes no yes yes yes no yes yes
========== ============= ============= =========== ========== ============= ============= ===========
.. _safety_flags_timing_pid:
ERR_FLAG_TIMING_PID
---------------------------
``ERR_FLAG_TIMING_PID`` is set if the timing monitor of the PID controller detects a violation in the sample frequency.
The flag is recoverable and only shuts down the PID and therefore the oven control output.
.. seealso:: Timing Monitor
========== ============= ============= ===========
persistent self-clearing Stops PID Panic Mode
========== ============= ============= ===========
no no yes no
========== ============= ============= ===========
.. _safety_flags_overtemp:
ERR_FLAG_OVERTEMP
---------------------------
``ERR_FLAG_OVERTEMP`` is set if the :ref:`pt1000_processing` detects an overtemperature.
The default limit is set to:
.. doxygendefine:: SAFETY_DEFAULT_OVERTEMP_LIMIT_DEGC
However, it is possible to configure the limit and permanenty store it in the EEPROM since hardware version v1.3.
========== ============= ============= ===========
persistent self-clearing Stops PID Panic Mode
========== ============= ============= ===========
no no yes no
========== ============= ============= ===========

View File

@ -34,6 +34,6 @@ On each run of the safety controller's handling function (:c:func:`safety_contro
.. doxygenfunction:: stack_check_corruption_detect_area .. doxygenfunction:: stack_check_corruption_detect_area
This function constantly checks the memory area for write modifications, and therefore detects, if the stack or heap have grown outside their boundaries. This function checks the memory area for write modifications, and therefore detects, if the stack or heap have grown outside their boundaries. This canary approach does, however, not guarantee a full protection against heap or stack overflows.

View File

@ -47,7 +47,7 @@
/** /**
* @brief Difference in Ohm between filter input and output that determines if the filter is stable or unstable. * @brief Difference in Ohm between filter input and output that determines if the filter is stable or unstable.
*/ */
#define ADC_PT1000_FILTER_UNSTABLE_DIFF 10 #define ADC_PT1000_FILTER_UNSTABLE_DIFF 20
/** /**
* @brief Sample count, the moving average filter has to be within @ref ADC_PT1000_FILTER_UNSTABLE_DIFF for the filter * @brief Sample count, the moving average filter has to be within @ref ADC_PT1000_FILTER_UNSTABLE_DIFF for the filter

View File

@ -130,7 +130,7 @@ enum analog_value_monitor {
#define SAFETY_EXT_WATCHDOG_PIN (12) #define SAFETY_EXT_WATCHDOG_PIN (12)
/** /**
* @brief Default Limit of the overtemperature detection * @brief Default Limit of the overtemperature detection in degrees celsius
*/ */
#define SAFETY_DEFAULT_OVERTEMP_LIMIT_DEGC (260.0f) #define SAFETY_DEFAULT_OVERTEMP_LIMIT_DEGC (260.0f)

View File

@ -87,7 +87,7 @@ int stack_check_init_corruption_detect_area(void);
* @ref stack_check_init_corruption_detect_area beforehand. * @ref stack_check_init_corruption_detect_area beforehand.
* *
* The CRC unit must be enabled for this function to work properly. * The CRC unit must be enabled for this function to work properly.
* After calling @stack_check_init_corruption_detect_area, this is the case. * After calling @ref stack_check_init_corruption_detect_area, this is the case.
* *
* @return 0 if no error is detected, all other values are an error. * @return 0 if no error is detected, all other values are an error.
* @note Make sure CRC unit is enabled. * @note Make sure CRC unit is enabled.

View File

@ -31,7 +31,7 @@
/** /**
* @brief Reload value for the systick timer. * @brief Reload value for the systick timer.
* *
* This value has to be configured to set the systick to a one milliscond tick interval * This value has to be configured to set the systick to a 100 us tick interval
* The default value is 16800, which results in a 100us tick for 168 MHz CPU speed * The default value is 16800, which results in a 100us tick for 168 MHz CPU speed
*/ */
#define SYSTICK_RELOAD (16800UL) #define SYSTICK_RELOAD (16800UL)
@ -55,7 +55,7 @@ extern volatile uint64_t global_tick_ms;
extern volatile uint32_t lcd_tick_100us; extern volatile uint32_t lcd_tick_100us;
/** /**
* @brief Setup the Systick timer to generate a 1 ms tick * @brief Setup the Systick timer to generate a 100 us tick
*/ */
void systick_setup(void); void systick_setup(void);