aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthias P. Braendli <matthias.braendli@mpb.li>2019-11-17 17:36:19 +0100
committerMatthias P. Braendli <matthias.braendli@mpb.li>2019-11-17 17:36:19 +0100
commitb410109dea94e4a355d7ba6e9a4761c5afe93eb4 (patch)
tree6cc0f8e01ab42e59a0ef19af2efc625baaa6ac96
parentb5b1146214983ef893f99bec1b24c19af6367a6d (diff)
downloadglutte-batteries-b410109dea94e4a355d7ba6e9a4761c5afe93eb4.tar.gz
glutte-batteries-b410109dea94e4a355d7ba6e9a4761c5afe93eb4.tar.bz2
glutte-batteries-b410109dea94e4a355d7ba6e9a4761c5afe93eb4.zip
Add some LTC2400 debug
-rw-r--r--sw/ltc2400.cpp4
-rw-r--r--sw/ltc2400.h2
-rw-r--r--sw/main.cpp10
3 files changed, 8 insertions, 8 deletions
diff --git a/sw/ltc2400.cpp b/sw/ltc2400.cpp
index 169b7bd..23287bc 100644
--- a/sw/ltc2400.cpp
+++ b/sw/ltc2400.cpp
@@ -120,7 +120,7 @@ int ltc2400_conversion_ready()
return eoc;
}
-float ltc2400_get_conversion_result(bool& dmy_fault, bool& exr_fault)
+float ltc2400_get_conversion_result(bool& dmy_fault, bool& exr_fault, uint32_t& adc_value)
{
cs_low();
@@ -145,7 +145,7 @@ float ltc2400_get_conversion_result(bool& dmy_fault, bool& exr_fault)
exr_fault = not (result & _BV(28));
// Mask 4 MSB status bits, and shift out 4 sub-LSB bits
- const uint32_t adc_value = (result >> 4) & 0x00FFFFFF;
+ adc_value = (result >> 4) & 0x00FFFFFF;
// Convert ADC value to voltage
return ((float)adc_value) / ((float)0x00FFFFFF) / 5.0f;
diff --git a/sw/ltc2400.h b/sw/ltc2400.h
index ac99521..720b64c 100644
--- a/sw/ltc2400.h
+++ b/sw/ltc2400.h
@@ -33,4 +33,4 @@ void ltc2400_init();
int ltc2400_conversion_ready();
-float ltc2400_get_conversion_result(bool& dmy_fault, bool& exr_fault);
+float ltc2400_get_conversion_result(bool& dmy_fault, bool& exr_fault, uint32_t& adc_value);
diff --git a/sw/main.cpp b/sw/main.cpp
index 3c502cc..1c2e402 100644
--- a/sw/main.cpp
+++ b/sw/main.cpp
@@ -413,7 +413,8 @@ int main()
if (ltc2400_conversion_ready()) {
bool dmy_fault = false;
bool exr_fault = false;
- const float adc_voltage = ltc2400_get_conversion_result(dmy_fault, exr_fault);
+ uint32_t adc_value = 0;
+ const float adc_voltage = ltc2400_get_conversion_result(dmy_fault, exr_fault, adc_value);
if (dmy_fault) {
flag_error(error_type_t::LTC2400_DMY_BIT_FAULT);
@@ -421,6 +422,9 @@ int main()
if (exr_fault) {
flag_error(error_type_t::LTC2400_EXTENDED_RANGE_ERROR);
+
+ snprintf(timestamp_buf, sizeof(timestamp_buf), "DBG,%ld" ENDL, adc_value);
+ uart_puts(timestamp_buf);
}
/* Vout - 2.5V = Ishunt * Rshunt * 20 */
@@ -437,12 +441,9 @@ int main()
constexpr auto threshold_calculation_interval_s = 4;
if (last_threshold_calculation_seconds + threshold_calculation_interval_s < time_now.seconds_) {
last_threshold_calculation_seconds += threshold_calculation_interval_s;
-
- send_debug("Calc thresh");
handle_thresholds(time_now);
}
-
constexpr auto ltc2400_print_interval_s = 10;
if (last_ltc2400_print_time_seconds + ltc2400_print_interval_s < time_now.seconds_) {
last_ltc2400_print_time_seconds += ltc2400_print_interval_s;
@@ -455,7 +456,6 @@ int main()
switch (adc_state) {
case adc_state_t::IDLE:
if (last_adc_measure_time_seconds + adc_interval_s < time_now.seconds_) {
- send_debug("ADC meas");
last_adc_measure_time_seconds += adc_interval_s;
SET_ADMUX(0);
// Start ADC conversion