From d671ef0d6581ff8508e1d11827cc32057d443d4f Mon Sep 17 00:00:00 2001 From: Benjamin Wilson Date: Sat, 21 Sep 2024 14:17:54 -0400 Subject: [PATCH] improve gamma self tests --- main/self_test/self_test.c | 24 +++++++++++++++--------- main/vcore.c | 8 +++++--- main/vcore.h | 2 +- 3 files changed, 21 insertions(+), 13 deletions(-) diff --git a/main/self_test/self_test.c b/main/self_test/self_test.c index fca3641..3d87f63 100644 --- a/main/self_test/self_test.c +++ b/main/self_test/self_test.c @@ -79,7 +79,7 @@ static bool core_voltage_pass(GlobalState * GLOBAL_STATE) uint16_t core_voltage = VCORE_get_voltage_mv(GLOBAL_STATE); ESP_LOGI(TAG, "Voltage: %u", core_voltage); - if (core_voltage > 1100 && core_voltage < 1300) { + if (core_voltage > 1000 && core_voltage < 1300) { return true; } return false; @@ -88,6 +88,8 @@ static bool core_voltage_pass(GlobalState * GLOBAL_STATE) void self_test(void * pvParameters) { + ESP_LOGI(TAG, "Running Self Tests"); + GlobalState * GLOBAL_STATE = (GlobalState *) pvParameters; GLOBAL_STATE->ASIC_TASK_MODULE.active_jobs = malloc(sizeof(bm_job *) * 128); @@ -115,8 +117,6 @@ void self_test(void * pvParameters) ESP_ERROR_CHECK(i2c_master_init()); ESP_LOGI(TAG, "I2C initialized successfully"); - VCORE_init(GLOBAL_STATE); - VCORE_set_voltage(nvs_config_get_u16(NVS_CONFIG_ASIC_VOLTAGE, CONFIG_ASIC_VOLTAGE) / 1000.0, GLOBAL_STATE); switch (GLOBAL_STATE->device_model) { case DEVICE_MAX: @@ -159,7 +159,10 @@ void self_test(void * pvParameters) return; } }else{ - int result = TPS546_init(); + + uint8_t result = VCORE_init(GLOBAL_STATE); + VCORE_set_voltage(nvs_config_get_u16(NVS_CONFIG_ASIC_VOLTAGE, CONFIG_ASIC_VOLTAGE) / 1000.0, GLOBAL_STATE); + if(result != 0){ ESP_LOGE(TAG, "TPS546 test failed!"); display_msg("TPS546:FAIL", GLOBAL_STATE); @@ -168,7 +171,10 @@ void self_test(void * pvParameters) } break; case DEVICE_GAMMA: - int result = TPS546_init(); + + uint8_t result = VCORE_init(GLOBAL_STATE); + VCORE_set_voltage(nvs_config_get_u16(NVS_CONFIG_ASIC_VOLTAGE, CONFIG_ASIC_VOLTAGE) / 1000.0, GLOBAL_STATE); + if(result != 0){ ESP_LOGE(TAG, "TPS546 test failed!"); display_msg("TPS546:FAIL", GLOBAL_STATE); @@ -258,8 +264,8 @@ void self_test(void * pvParameters) free(GLOBAL_STATE->valid_jobs); if (!core_voltage_pass(GLOBAL_STATE)) { - ESP_LOGE(TAG, "SELF TEST FAIL, NO CHIPS DETECTED"); - display_msg("POWER: FAIL", GLOBAL_STATE); + ESP_LOGE(TAG, "SELF TEST FAIL, INCORRECT CORE VOLTAGE"); + display_msg("VCORE: FAIL", GLOBAL_STATE); return; } @@ -282,8 +288,8 @@ void self_test(void * pvParameters) } break; case DEVICE_GAMMA: - if (!TPS546_power_consumption_pass(13, 3)) { - ESP_LOGE(TAG, "TPS546 Power Draw Failed, target %f", 15.0); + if (!TPS546_power_consumption_pass(11, 3)) { + ESP_LOGE(TAG, "TPS546 Power Draw Failed, target %f", 11.0); display_msg("POWER: FAIL", GLOBAL_STATE); return; } diff --git a/main/vcore.c b/main/vcore.c index 738b3a7..85b4b92 100644 --- a/main/vcore.c +++ b/main/vcore.c @@ -21,22 +21,24 @@ static const char *TAG = "vcore.c"; -void VCORE_init(GlobalState * global_state) { +uint8_t VCORE_init(GlobalState * global_state) { + uint8_t result = 0; switch (global_state->device_model) { case DEVICE_MAX: case DEVICE_ULTRA: case DEVICE_SUPRA: if (global_state->board_version == 402) { - TPS546_init(); + result = TPS546_init(); } break; case DEVICE_GAMMA: - TPS546_init(); + result = TPS546_init(); break; // case DEVICE_HEX: default: } ADC_init(); + return result; } /** diff --git a/main/vcore.h b/main/vcore.h index 0ee7e77..6d0239e 100644 --- a/main/vcore.h +++ b/main/vcore.h @@ -3,7 +3,7 @@ #include "global_state.h" -void VCORE_init(GlobalState * global_state); +uint8_t VCORE_init(GlobalState * global_state); bool VCORE_set_voltage(float core_voltage, GlobalState * global_state); uint16_t VCORE_get_voltage_mv(GlobalState * global_state);