mirror of
https://github.com/DCC-EX/CommandStation-EX.git
synced 2024-11-27 01:56:14 +01:00
Adjust overcurrent timeouts
This commit is contained in:
parent
10c59028e1
commit
96a46f36c2
|
@ -1 +1 @@
|
||||||
#define GITHUB_SHA "devel-overcurrent-202307021833Z"
|
#define GITHUB_SHA "devel-overcurrent-202307022222Z"
|
||||||
|
|
|
@ -400,7 +400,7 @@ void MotorDriver::getFastPin(const FSH* type,int pin, bool input, FASTPIN & res
|
||||||
// 2. ALERT to OVERLOAD:
|
// 2. ALERT to OVERLOAD:
|
||||||
// Transition happens if different timeouts have elapsed.
|
// Transition happens if different timeouts have elapsed.
|
||||||
// If only the fault pin is active, timeout is
|
// If only the fault pin is active, timeout is
|
||||||
// POWER_SAMPLE_IGNORE_FAULT_LOW (50ms)
|
// POWER_SAMPLE_IGNORE_FAULT_LOW (100ms)
|
||||||
// If only overcurrent is detected, timeout is
|
// If only overcurrent is detected, timeout is
|
||||||
// POWER_SAMPLE_IGNORE_CURRENT (100ms)
|
// POWER_SAMPLE_IGNORE_CURRENT (100ms)
|
||||||
// If fault pin and overcurrent are active, timeout is
|
// If fault pin and overcurrent are active, timeout is
|
||||||
|
@ -413,7 +413,7 @@ void MotorDriver::getFastPin(const FSH* type,int pin, bool input, FASTPIN & res
|
||||||
// 3. OVERLOAD to ALERT
|
// 3. OVERLOAD to ALERT
|
||||||
// Transiton happens when timeout has elapsed, timeout
|
// Transiton happens when timeout has elapsed, timeout
|
||||||
// is named power_sample_overload_wait. It is started
|
// is named power_sample_overload_wait. It is started
|
||||||
// at POWER_SAMPLE_OVERLOAD_WAIT (10ms) at first entry
|
// at POWER_SAMPLE_OVERLOAD_WAIT (40ms) at first entry
|
||||||
// to OVERLOAD and then increased by a factor of 2
|
// to OVERLOAD and then increased by a factor of 2
|
||||||
// at further entries to the OVERLOAD condition. This
|
// at further entries to the OVERLOAD condition. This
|
||||||
// happens until POWER_SAMPLE_RETRY_MAX (10sec) is reached.
|
// happens until POWER_SAMPLE_RETRY_MAX (10sec) is reached.
|
||||||
|
@ -525,7 +525,7 @@ void MotorDriver::checkPowerOverload(bool useProgLimit, byte trackno) {
|
||||||
unsigned long mslpc = (commonFaultPin ? (micros() - globalOverloadStart) : microsSinceLastPowerChange(POWERMODE::OVERLOAD));
|
unsigned long mslpc = (commonFaultPin ? (micros() - globalOverloadStart) : microsSinceLastPowerChange(POWERMODE::OVERLOAD));
|
||||||
if (mslpc > power_sample_overload_wait) {
|
if (mslpc > power_sample_overload_wait) {
|
||||||
// adjust next wait time
|
// adjust next wait time
|
||||||
power_sample_overload_wait *= 4;
|
power_sample_overload_wait *= 2;
|
||||||
if (power_sample_overload_wait > POWER_SAMPLE_RETRY_MAX)
|
if (power_sample_overload_wait > POWER_SAMPLE_RETRY_MAX)
|
||||||
power_sample_overload_wait = POWER_SAMPLE_RETRY_MAX;
|
power_sample_overload_wait = POWER_SAMPLE_RETRY_MAX;
|
||||||
// power on test
|
// power on test
|
||||||
|
|
|
@ -260,13 +260,13 @@ class MotorDriver {
|
||||||
|
|
||||||
// Times for overload management. Unit: microseconds.
|
// Times for overload management. Unit: microseconds.
|
||||||
// Base for wait time until power is turned on again
|
// Base for wait time until power is turned on again
|
||||||
static const unsigned long POWER_SAMPLE_OVERLOAD_WAIT = 10000UL;
|
static const unsigned long POWER_SAMPLE_OVERLOAD_WAIT = 40000UL;
|
||||||
// Time after we consider all faults old and forgotten
|
// Time after we consider all faults old and forgotten
|
||||||
static const unsigned long POWER_SAMPLE_ALL_GOOD = 5000000UL;
|
static const unsigned long POWER_SAMPLE_ALL_GOOD = 5000000UL;
|
||||||
// Time after which we consider a ALERT over
|
// Time after which we consider a ALERT over
|
||||||
static const unsigned long POWER_SAMPLE_ALERT_GOOD = 20000UL;
|
static const unsigned long POWER_SAMPLE_ALERT_GOOD = 20000UL;
|
||||||
// How long to ignore fault pin if current is under limit
|
// How long to ignore fault pin if current is under limit
|
||||||
static const unsigned long POWER_SAMPLE_IGNORE_FAULT_LOW = 50000UL;
|
static const unsigned long POWER_SAMPLE_IGNORE_FAULT_LOW = 100000UL;
|
||||||
// How long to ignore fault pin if current is higher than limit
|
// How long to ignore fault pin if current is higher than limit
|
||||||
static const unsigned long POWER_SAMPLE_IGNORE_FAULT_HIGH = 5000UL;
|
static const unsigned long POWER_SAMPLE_IGNORE_FAULT_HIGH = 5000UL;
|
||||||
// How long to wait between overcurrent and turning off
|
// How long to wait between overcurrent and turning off
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
#include "StringFormatter.h"
|
#include "StringFormatter.h"
|
||||||
|
|
||||||
|
|
||||||
#define VERSION "4.2.62pre1"
|
#define VERSION "4.2.62pre2"
|
||||||
// 4.2.62 - completely new overcurrent detection
|
// 4.2.62 - completely new overcurrent detection
|
||||||
// 4.2.61 - MAX_CURRENT restriction (caps motor shield value)
|
// 4.2.61 - MAX_CURRENT restriction (caps motor shield value)
|
||||||
// 4.2.60 - Add mDNS capability to ESP32 for autodiscovery
|
// 4.2.60 - Add mDNS capability to ESP32 for autodiscovery
|
||||||
|
|
Loading…
Reference in New Issue
Block a user