60 #ifndef FOXBMS__BENDER_ISO165C_CFG_H_
61 #define FOXBMS__BENDER_ISO165C_CFG_H_
75 #define I165C_CAN_NODE (CAN_NODE_1)
81 #define I165C_IS_165C_USED (false)
85 #define I165C_SELF_TEST_LONG
88 #define I165C_WARNING_THRESHOLD_kOhm IMD_WARNING_THRESHOLD_INSULATION_RESISTANCE_kOhm
91 #define I165C_ERROR_THRESHOLD_kOhm IMD_ERROR_THRESHOLD_INSULATION_RESISTANCE_kOhm
93 #if ((I165C_WARNING_THRESHOLD_kOhm > 2000u) || (I165C_WARNING_THRESHOLD_kOhm < 40u))
94 #error "Warning threshold outside of possible measurement 40-2000 kOhm"
96 #if ((I165C_ERROR_THRESHOLD_kOhm > 1000u) || (I165C_ERROR_THRESHOLD_kOhm < 30u))
97 #error "Warning threshold outside of possible measurement 40-2000 kOhm"
101 #define I165C_MEASUREMENT_AVERAGING_FACTOR (10u)
104 #define I165C_TRANSMISSION_ATTEMPTS (3u)
107 #define I165C_IMD_INFO_RECEIVE_ATTEMPTS (50u)
110 #define I165C_MAX_QUEUE_READS (5u)
113 #define I165C_QUEUE_TIMEOUT_ms ((TickType_t)0u)
128 #define I165C_DW1 (0u)
130 #define I165C_DW2 (1u)
132 #define I165C_DW3 (2u)
134 #define I165C_DB1 (3u)
136 #define I165C_DB2 (4u)
138 #define I165C_DB3 (5u)
140 #define I165C_DB4 (6u)
145 #define I165C_MESSAGETYPE_IMD_INFO (CANRX_IMD_INFO_ID)
147 #define I165C_MESSAGETYPE_IMD_REQUEST (CANTX_IMD_REQUEST_ID)
149 #define I165C_MESSAGETYPE_IMD_RESPONSE (CANRX_IMD_RESPONSE_ID)
151 #define I165C_RX_MESSAGE_IDENTIFIER_TYPE (CANRX_IMD_ID_TYPE)
153 #define I165C_TX_MESSAGE_IDENTIFIER_TYPE (CANTX_IMD_ID_TYPE)
158 #define I165C_CMD_S_IMC_CTL_SELFTEST (0x21u)
159 #define I165C_D_IMC_SELFTEST_SCR_CTL_REQUEST (I165C_DW1)
160 #define I165C_D_IMC_SELFTEST_SCR_CTL_RESPONSE (I165C_DW1)
161 #define I165C_SELFTEST_SCENARIO_NO_ACTION (0u)
162 #define I165C_SELFTEST_SCENARIO_OVERALL (1u)
163 #define I165C_SELFTEST_SCENARIO_PARAMETERCONFIG (2u)
165 #define I165C_CMD_S_VIFC_CTL_IMC_RESET (0xC8u)
168 #define I165C_CMD_S_VIFC_CTL_LOCK (0xCAu)
169 #define I165C_D_VIFC_LOCK_MODE_CTL_REQUEST (I165C_DW1)
170 #define I165C_D_VIFC_LOCK_MODE_CTL_RESPONSE (I165C_DW1)
171 #define I165C_D_VIFC_LOCK_PWD_CTL_REQUEST (I165C_DW2)
172 #define I165C_LOCKMODE_UNLOCKED (0u)
173 #define I165C_LOCKMODE_LOCKED (1u)
174 #define I165C_LOCKMODE_UNKNOWN (100u)
175 #define I165C_UNLOCK_PASSWORD (0u)
176 #define I165C_LOCK_PASSWORD (0xFFFFu)
179 #define I165C_CMD_S_VIFC_CTL_MEASUREMENT (0xCBu)
180 #define I165C_DW_VIFC_CTL_MEASUREMENT_REQUEST (I165C_DW1)
181 #define I165C_DISABLE_MEASUREMENT (0u)
182 #define I165C_ENABLE_MEASUREMENT (1u)
183 #define I165C_MEASUREMENT_MODE_UNKNOWN (100u)
194 #define I165C_CMD_S_IMC_SET_R_ISO_ERR_THR (0x28u)
195 #define I165C_D_IMC_R_ISO_ERR_THR_SET_REQUEST (I165C_DW1)
196 #define I165C_D_IMC_R_ISO_ERR_THR_SET_RESPONSE (I165C_DW1)
198 #define I165C_CMD_S_IMC_SET_R_ISO_ERR_WRN (0x29u)
199 #define I165C_D_IMC_R_ISO_ERR_WRN_SET_REQUEST (I165C_DW1)
200 #define I165C_D_IMC_R_ISO_ERR_WRN_SET_RESPONSE (I165C_DW1)
202 #define I165C_CMD_S_IMC_SET_MEAN_FACTOR (0x2Bu)
203 #define I165C_D_IMC_MEAN_FACTOR_SET_REQUEST (I165C_DW1)
204 #define I165C_D_IMC_MEAN_FACTOR_SET_RESPONSE (I165C_DW1)
206 #define I165C_CMD_S_VIFC_SET_HV_RELAIS (0xD2u)
207 #define I165C_D_VIFC_HV_RELAIS_SET_REQUEST (I165C_DW1)
208 #define I165C_D_VIFC_HV_RELAIS_STATE_SET_REQUEST (I165C_DW2)
209 #define I165C_D_VIFC_HV_RELAIS_NEGATIVE (0u)
210 #define I165C_D_VIFC_HV_RELAIS_POSITIVE (1u)
211 #define I165C_D_VIFC_HV_RELAIS_SET_RESPONSE (I165C_DW1)
212 #define I165C_D_VIFC_HV_RELAIS_STATE_SET_RESPONSE (I165C_DW2)
213 #define I165C_RELAY_STATE_OPEN (0u)
214 #define I165C_RELAY_STATE_CLOSED (1u)
225 #define I165C_CMD_S_VIFC_DUMMY (0x00u)
228 #define I165C_CMD_S_IMC_GET_STATUS (0x37u)
229 #define I165C_D_IMC_STATUS_GET_RESPONSE (I165C_DW1)
230 #define I165C_INSULATION_FAULT_SHIFT (0u)
231 #define I165C_CHASSIS_FAULT_SHIFT (1u)
232 #define I165C_SYSTEM_FAILURE_SHIFT (2u)
233 #define I165C_CALIBRATION_RUNNING_SHIFT (3u)
234 #define I165C_SELFTEST_RUNNING_SHIFT (4u)
235 #define I165C_INSULATION_WARNING_SHIFT (5u)
238 #define I165C_D_IMC_STATUS_EXT_GET_RESPONSE (I165C_DW2)
239 #define I165C_CALIBRATION_PARAMETER_SHIFT (0u)
240 #define I165C_HARDWARE_FAILURE_SHIFT (1u)
241 #define I165C_EEPROM_PARAMETER_SHIFT (2u)
242 #define I165C_FLASH_PARAMETER_SHIFT (3u)
243 #define I165C_RAM_PARAMETER_SHIFT (4u)
244 #define I165C_STACK_OVERFLOW_SHIFT (5u)
245 #define I165C_PARAMETER_VALUE_SHIFT (7u)
246 #define I165C_TEST_PULSE_VOLTAGE_A_REF_SHIFT (8u)
247 #define I165C_VOLTAGE_LEVEL_PLUS12V_SHIFT (9u)
248 #define I165C_VOLTAGE_LEVEL_MINUS12V_SHIFT (10u)
249 #define I165C_FUSE_BIT_VALID_INVALID_SHIFT (11u)
250 #define I165C_HV1_VOLTAGE_SHIFT (12u)
251 #define I165C_HV2_VOLTAGE_SHIFT (13u)
252 #define I165C_MANUFACTURER_STRING_VALID_INVALID_SHIFT (14u)
255 #define I165C_CMD_S_IMC_GET_R_ISO (0x35u)
256 #define I165C_D_IMC_R_ISO_GET_RESPONSE (I165C_DW1)
257 #define I165C_D_IMC_R_ISO_BIAS_GET_RESPONSE (I165C_DB1)
258 #define I165C_BIAS_TO_HV_MINUS (1u)
259 #define I165C_BIAS_TO_HV_PLUS (2u)
260 #define I165C_D_IMC_R_ISO_CNT_GET_RESPONSE (I165C_DB2)
263 #define I165C_CMD_S_IMC_GET_R_ISO_ERR_THR (0x32u)
264 #define I165C_D_IMC_R_ISO_ERR_THR_GET_RESPONSE (I165C_DW1)
267 #define I165C_CMD_S_IMC_GET_R_ISO_WRN_THR (0x39u)
268 #define I165C_D_IMC_R_ISO_WRN_THR_GET_RESPONSE (I165C_DW1)
271 #define I165C_CMD_S_IMC_GET_MEAN_FACTOR (0x3Cu)
272 #define I165C_D_IMC_MEAN_FACTOR_GET_RESPONSE (I165C_DW1)
275 #define I165C_CMD_S_IMC_GET_HV_1 (0x36u)
276 #define I165C_D_IMC_HV_1_GET_RESPONSE (I165C_DW1)
279 #define I165C_CMD_S_IMC_GET_HV_2 (0x3Au)
280 #define I165C_D_IMC_HV_2_GET_RESPONSE (I165C_DW1)
283 #define I165C_CMD_S_IMC_GET_VERSION (0x33u)
284 #define I165C_D_IMC_VERSION_INDEX_GET_REQUEST (I165C_DW1)
285 #define I165C_IMC_BOOTLOADER (0u)
286 #define I165C_IMC_FIRMWARE (1u)
287 #define I165C_IMC_FIRMWARE_ID (2u)
288 #define I165C_IMC_FIRMWARE_HASH (3u)
289 #define I165C_D_IMC_VERSION_INDEX_GET_RESPONSE (I165C_DW1)
290 #define I165C_D_IMC_VERSION_GET_RESPONSE (I165C_DW2)
293 #define I165C_CMD_S_IMC_GET_TEST_CNT (0x5Au)
294 #define I165C_D_IMC_TEST_CNT_GET_RESPONSE (I165C_DW1)
297 #define I165C_CMD_S_IMC_GET_MANUFACTURER (0x3Du)
298 #define I165C_D_IMC_MANUFACT_INDEX_GET_REQUEST (I165C_DW1)
299 #define I165C_D_IMC_MANUFACT_INDEX_GET_RESPONSE (I165C_DW1)
300 #define I165C_D_IMC_MANUFACT_DATA_GET_RESPONSE (I165C_DW2)
303 #define I165C_CMD_S_VIFC_GET_STATUS (0xDCu)
304 #define I165C_D_VIFC_STATUS_GET_RESPONSE (I165C_DW1)
305 #define I165C_INSULATION_MEASUREMENT_STATUS_SHIFT (0u)
306 #define I165C_IMC_CONNECTIVITY_SHIFT (1u)
307 #define I165C_IMC_ALIVE_STATUS_DETECTION_SHIFT (2u)
308 #define I165C_VIFC_COMMAND_SHIFT (4u)
309 #define I165C_RESISTANCE_VALUE_OUTDATED_SHIFT (8u)
310 #define I165C_IMC_SELFTEST_OVERALL_SCENARIO_SHIFT (12u)
311 #define I165C_IMC_SELFTEST_PARAMETERCONFIG_SCENARIO_SHIFT (13u)
314 #define I165C_CMD_S_VIFC_GET_HV_RELAIS (0xDDu)
315 #define I165C_D_VIFC_HV_RELAIS_GET_REQUEST (I165C_DW1)
316 #define I165C_D_VIFC_HV_RELAIS_GET_RESPONSE (I165C_DW1)
317 #define I165C_D_VIFC_HV_RELAIS_STATE_GET_RESPONSE (I165C_DW2)
320 #define I165C_CMD_S_VIFC_GET_IMC_ALIVE (0xE2u)
321 #define I165C_D_VIFC_IMC_ALIVE_GET_RESPONSE (I165C_DW1)
324 #define I165C_CMD_S_VIFC_GET_VERSION (0xDEu)
325 #define I165C_D_IMC_VERSION_INDEX_GET_REQUEST (I165C_DW1)
326 #define I165C_D_VIFC_VERSION_INDEX_GET_RESPONSE (I165C_DW1)
327 #define I165C_D_VIFC_VERSION_GET_RESPONSE (I165C_DW2)
330 #define I165C_CMD_S_VIFC_GET_LOCK (0xE0u)
331 #define I165C_D_VIFC_LOCK_MODE_GET_RESPONSE (I165C_DW1)
338 #ifdef UNITY_UNIT_TEST
Headers for the configuration for the CAN module.
API header for the insulation monitoring device.