Correct version of EEPROM header for settings and write check for overtemperature
This commit is contained in:
parent
50ad31d58a
commit
e614eaa23b
@ -42,6 +42,7 @@
|
||||
#include <helper-macros/helper-macros.h>
|
||||
#include <stm-periph/rcc-manager.h>
|
||||
#include <reflow-controller/temp-converter.h>
|
||||
#include <reflow-controller/adc-meas.h>
|
||||
|
||||
/**
|
||||
* @brief Macro that checks if a given @ref error_flag is persistent
|
||||
@ -563,6 +564,7 @@ static void safety_controller_process_active_timing_mons()
|
||||
/**
|
||||
* @brief safety_controller_process_monitor_checks
|
||||
* Process the analog and timing monitors and set the relevant flags in case of a monitor outside its limits.
|
||||
* Furthermore, the PT1000 resistance is checked for overtemperature
|
||||
*
|
||||
* The checking of the analog monitors will only be armed after a startup delay of 1000 ms to allow the values to stabilize.
|
||||
*/
|
||||
@ -572,6 +574,7 @@ static void safety_controller_process_monitor_checks(void)
|
||||
struct analog_monitor_info amon_info;
|
||||
uint32_t idx;
|
||||
uint32_t analog_mon_count;
|
||||
float pt1000_val = 1000000.0f;
|
||||
|
||||
if (!startup_completed && systick_get_global_tick() >= 1000)
|
||||
startup_completed = true;
|
||||
@ -589,6 +592,11 @@ static void safety_controller_process_monitor_checks(void)
|
||||
}
|
||||
}
|
||||
|
||||
adc_pt1000_get_current_resistance(&pt1000_val);
|
||||
if (pt1000_val > safety_controller_overtemp_config.overtemp_equiv_resistance) {
|
||||
safety_controller_report_error(ERR_FLAG_OVERTEMP);
|
||||
}
|
||||
|
||||
safety_controller_process_active_timing_mons();
|
||||
}
|
||||
|
||||
|
@ -24,7 +24,7 @@
|
||||
#include <string.h>
|
||||
|
||||
#define EEPROM_HEADER_MAGIC 0xA5
|
||||
#define EEPROM_HEADER_COMP_VER 0xFF
|
||||
#define EEPROM_HEADER_COMP_VER 0x01
|
||||
|
||||
static const uint8_t expected_header[2] = {EEPROM_HEADER_MAGIC, EEPROM_HEADER_COMP_VER};
|
||||
|
||||
@ -36,6 +36,12 @@ struct eeprom_calibration_settings {
|
||||
uint32_t crc;
|
||||
};
|
||||
|
||||
#define EEPROM_OVER_TEMP_CONFIG_BASE_ADDR (EEPROM_CALIBRATION_BASE_ADDR + sizeof(struct eeprom_calibration_settings))
|
||||
struct eeprom_over_temp_config {
|
||||
float over_temperature;
|
||||
float over_temperature_redundant;
|
||||
};
|
||||
|
||||
static bool check_eeprom_header(void)
|
||||
{
|
||||
uint8_t header[2] = {0};
|
||||
|
Loading…
Reference in New Issue
Block a user