Merge branch 'master' into bootloader
This commit is contained in:
commit
11d9352f77
|
@ -25,8 +25,6 @@ EXTERN_ENGINE
|
||||||
|
|
||||||
static Logging *logger;
|
static Logging *logger;
|
||||||
|
|
||||||
int alternatorPidResetCounter = 0;
|
|
||||||
|
|
||||||
static SimplePwm alternatorControl;
|
static SimplePwm alternatorControl;
|
||||||
static pid_s *altPidS = &persistentState.persistentConfiguration.engineConfiguration.alternatorControl;
|
static pid_s *altPidS = &persistentState.persistentConfiguration.engineConfiguration.alternatorControl;
|
||||||
static Pid altPid(altPidS);
|
static Pid altPid(altPidS);
|
||||||
|
@ -53,7 +51,6 @@ static msg_t AltCtrlThread(int param) {
|
||||||
#if ! EFI_UNIT_TEST || defined(__DOXYGEN__)
|
#if ! EFI_UNIT_TEST || defined(__DOXYGEN__)
|
||||||
if (shouldResetPid) {
|
if (shouldResetPid) {
|
||||||
pidReset();
|
pidReset();
|
||||||
alternatorPidResetCounter++;
|
|
||||||
shouldResetPid = false;
|
shouldResetPid = false;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@ -65,7 +62,6 @@ static msg_t AltCtrlThread(int param) {
|
||||||
// this block could be executed even in on/off alternator control mode
|
// this block could be executed even in on/off alternator control mode
|
||||||
// but at least we would reflect latest state
|
// but at least we would reflect latest state
|
||||||
altPid.postState(&tsOutputChannels);
|
altPid.postState(&tsOutputChannels);
|
||||||
tsOutputChannels.debugIntField3 = alternatorPidResetCounter;
|
|
||||||
}
|
}
|
||||||
#endif /* !EFI_UNIT_TEST */
|
#endif /* !EFI_UNIT_TEST */
|
||||||
|
|
||||||
|
|
|
@ -21,9 +21,9 @@ Pid::Pid(pid_s *pid) {
|
||||||
|
|
||||||
void Pid::init(pid_s *pid) {
|
void Pid::init(pid_s *pid) {
|
||||||
this->pid = pid;
|
this->pid = pid;
|
||||||
|
resetCounter = 0;
|
||||||
|
|
||||||
dTerm = iTerm = 0;
|
reset();
|
||||||
prevResult = prevInput = prevTarget = prevError = 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Pid::isSame(pid_s *pid) {
|
bool Pid::isSame(pid_s *pid) {
|
||||||
|
@ -50,11 +50,11 @@ float Pid::getValue(float target, float input, float dTime) {
|
||||||
* If we have exceeded the ability of the controlled device to hit target, the I factor will keep accumulating and approach infinity.
|
* If we have exceeded the ability of the controlled device to hit target, the I factor will keep accumulating and approach infinity.
|
||||||
* Here we limit the I-term #353
|
* Here we limit the I-term #353
|
||||||
*/
|
*/
|
||||||
if (iTerm > pid->maxValue - (pTerm + dTerm + pid->offset))
|
if (iTerm > pid->maxValue)
|
||||||
iTerm = pid->maxValue - (pTerm + dTerm + pid->offset);
|
iTerm = pid->maxValue;
|
||||||
|
|
||||||
if (iTerm < pid->minValue - (pTerm + dTerm + pid->offset))
|
if (iTerm < pid->minValue)
|
||||||
iTerm = pid->minValue - (pTerm + dTerm + pid->offset);
|
iTerm = pid->minValue;
|
||||||
|
|
||||||
float result = pTerm + iTerm + dTerm + pid->offset;
|
float result = pTerm + iTerm + dTerm + pid->offset;
|
||||||
if (result > pid->maxValue) {
|
if (result > pid->maxValue) {
|
||||||
|
@ -74,8 +74,9 @@ void Pid::updateFactors(float pFactor, float iFactor, float dFactor) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void Pid::reset(void) {
|
void Pid::reset(void) {
|
||||||
iTerm = 0;
|
dTerm = iTerm = 0;
|
||||||
prevError = 0;
|
prevResult = prevInput = prevTarget = prevError = 0;
|
||||||
|
resetCounter++;
|
||||||
}
|
}
|
||||||
|
|
||||||
float Pid::getP(void) {
|
float Pid::getP(void) {
|
||||||
|
@ -113,6 +114,7 @@ void Pid::postState(TunerStudioOutputChannels *tsOutputChannels) {
|
||||||
tsOutputChannels->debugFloatField7 = pid->maxValue;
|
tsOutputChannels->debugFloatField7 = pid->maxValue;
|
||||||
tsOutputChannels->debugIntField1 = getP();
|
tsOutputChannels->debugIntField1 = getP();
|
||||||
tsOutputChannels->debugIntField2 = getOffset();
|
tsOutputChannels->debugIntField2 = getOffset();
|
||||||
|
tsOutputChannels->debugIntField3 = resetCounter;
|
||||||
tsOutputChannels->debugFloatField6 = dTerm;
|
tsOutputChannels->debugFloatField6 = dTerm;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -44,6 +44,7 @@ public:
|
||||||
float dTerm; // we are remembering this only for debugging purposes
|
float dTerm; // we are remembering this only for debugging purposes
|
||||||
void showPidStatus(Logging *logging, const char*msg);
|
void showPidStatus(Logging *logging, const char*msg);
|
||||||
void sleep();
|
void sleep();
|
||||||
|
int resetCounter;
|
||||||
private:
|
private:
|
||||||
pid_s *pid;
|
pid_s *pid;
|
||||||
|
|
||||||
|
|
|
@ -260,5 +260,5 @@ int getRusEfiVersion(void) {
|
||||||
if (initBootloader() != 0)
|
if (initBootloader() != 0)
|
||||||
return 123;
|
return 123;
|
||||||
#endif /* EFI_BOOTLOADER_INCLUDE_CODE */
|
#endif /* EFI_BOOTLOADER_INCLUDE_CODE */
|
||||||
return 20170529;
|
return 20170602;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// This file was generated by Version2Header
|
// This file was generated by Version2Header
|
||||||
// Fri Jun 02 14:01:36 EEST 2017
|
// Fri Jun 02 23:03:47 EDT 2017
|
||||||
#ifndef VCS_VERSION
|
#ifndef VCS_VERSION
|
||||||
#define VCS_VERSION "14274"
|
#define VCS_VERSION "14281"
|
||||||
#endif
|
#endif
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,14 +1,14 @@
|
||||||
(export (version D)
|
(export (version D)
|
||||||
(design
|
(design
|
||||||
(source C:/Users/Vista_64_D630/Desktop/Jared/code/Hardware/trunk/rusefi.com/brain_board_STM32F407/brain_board_STM32F407.sch)
|
(source C:/Users/Vista_64_D630/Desktop/Jared/code/Hardware/trunk/rusefi.com/brain_board_STM32F407/brain_board_STM32F407.sch)
|
||||||
(date "1/18/2017 7:43:35 PM")
|
(date "4/28/2017 6:02:02 AM")
|
||||||
(tool "Eeschema 4.0.5")
|
(tool "Eeschema 4.0.5")
|
||||||
(sheet (number 1) (name /) (tstamps /)
|
(sheet (number 1) (name /) (tstamps /)
|
||||||
(title_block
|
(title_block
|
||||||
(title)
|
(title)
|
||||||
(company "rusEFI by Art_Electro")
|
(company "rusEFI by Art_Electro")
|
||||||
(rev R0.2)
|
(rev R0.4)
|
||||||
(date 2016-12-23)
|
(date 2017-02-18)
|
||||||
(source brain_board_STM32F407.sch)
|
(source brain_board_STM32F407.sch)
|
||||||
(comment (number 1) (value ""))
|
(comment (number 1) (value ""))
|
||||||
(comment (number 2) (value ""))
|
(comment (number 2) (value ""))
|
||||||
|
@ -203,25 +203,25 @@
|
||||||
(tstamp 52D15C06))
|
(tstamp 52D15C06))
|
||||||
(comp (ref JP1)
|
(comp (ref JP1)
|
||||||
(value JUMPER)
|
(value JUMPER)
|
||||||
(footprint Pin_Headers:Pin_Header_Straight_1x02_Pitch2.54mm)
|
(footprint rusEFI_LIB:SM0805_jumper)
|
||||||
(libsource (lib KICAD_Older_Version) (part JUMPER))
|
(libsource (lib KICAD_Older_Version) (part JUMPER))
|
||||||
(sheetpath (names /) (tstamps /))
|
(sheetpath (names /) (tstamps /))
|
||||||
(tstamp 52D15D96))
|
(tstamp 52D15D96))
|
||||||
(comp (ref JP2)
|
(comp (ref JP2)
|
||||||
(value JUMPER)
|
(value JUMPER)
|
||||||
(footprint Pin_Headers:Pin_Header_Straight_1x02_Pitch2.54mm)
|
(footprint rusEFI_LIB:SM0805_jumper)
|
||||||
(libsource (lib KICAD_Older_Version) (part JUMPER))
|
(libsource (lib KICAD_Older_Version) (part JUMPER))
|
||||||
(sheetpath (names /) (tstamps /))
|
(sheetpath (names /) (tstamps /))
|
||||||
(tstamp 52D15DA3))
|
(tstamp 52D15DA3))
|
||||||
(comp (ref JP4)
|
(comp (ref JP4)
|
||||||
(value JUMPER)
|
(value JUMPER)
|
||||||
(footprint Pin_Headers:Pin_Header_Straight_1x02_Pitch2.54mm)
|
(footprint rusEFI_LIB:SM0805_jumper)
|
||||||
(libsource (lib KICAD_Older_Version) (part JUMPER))
|
(libsource (lib KICAD_Older_Version) (part JUMPER))
|
||||||
(sheetpath (names /) (tstamps /))
|
(sheetpath (names /) (tstamps /))
|
||||||
(tstamp 52D15DC3))
|
(tstamp 52D15DC3))
|
||||||
(comp (ref JP3)
|
(comp (ref JP3)
|
||||||
(value JUMPER)
|
(value JUMPER)
|
||||||
(footprint Pin_Headers:Pin_Header_Straight_1x02_Pitch2.54mm)
|
(footprint rusEFI_LIB:SM0805_jumper)
|
||||||
(libsource (lib KICAD_Older_Version) (part JUMPER))
|
(libsource (lib KICAD_Older_Version) (part JUMPER))
|
||||||
(sheetpath (names /) (tstamps /))
|
(sheetpath (names /) (tstamps /))
|
||||||
(tstamp 52D15DD0))
|
(tstamp 52D15DD0))
|
||||||
|
@ -806,10 +806,10 @@
|
||||||
(pin (num 1) (name 1) (type passive))
|
(pin (num 1) (name 1) (type passive))
|
||||||
(pin (num 2) (name 2) (type passive)))))
|
(pin (num 2) (name 2) (type passive)))))
|
||||||
(libraries
|
(libraries
|
||||||
(library (logical KICAD_Older_Version)
|
|
||||||
(uri C:\Users\Vista_64_D630\Desktop\Jared\code\Hardware\trunk\rusefi.com\rusefi_lib\KICAD_Older_Version.lib))
|
|
||||||
(library (logical "crystal(mc306)")
|
(library (logical "crystal(mc306)")
|
||||||
(uri "C:\\Users\\Vista_64_D630\\Desktop\\Jared\\code\\Hardware\\trunk\\rusefi.com\\rusefi_lib\\crystal(mc306).lib"))
|
(uri "C:\\Users\\Vista_64_D630\\Desktop\\Jared\\code\\Hardware\\trunk\\rusefi.com\\rusefi_lib\\crystal(mc306).lib"))
|
||||||
|
(library (logical KICAD_Older_Version)
|
||||||
|
(uri C:\Users\Vista_64_D630\Desktop\Jared\code\Hardware\trunk\rusefi.com\rusefi_lib\KICAD_Older_Version.lib))
|
||||||
(library (logical conn)
|
(library (logical conn)
|
||||||
(uri "C:\\Program Files\\KiCad\\share\\kicad\\library\\conn.lib")))
|
(uri "C:\\Program Files\\KiCad\\share\\kicad\\library\\conn.lib")))
|
||||||
(nets
|
(nets
|
||||||
|
|
|
@ -1116,7 +1116,7 @@ U 1 1 52D15D96
|
||||||
P 3100 7700
|
P 3100 7700
|
||||||
F 0 "JP1" H 3100 7850 60 0000 C CNN
|
F 0 "JP1" H 3100 7850 60 0000 C CNN
|
||||||
F 1 "JUMPER" H 3100 7620 40 0000 C CNN
|
F 1 "JUMPER" H 3100 7620 40 0000 C CNN
|
||||||
F 2 "Pin_Headers:Pin_Header_Straight_1x02_Pitch2.54mm" H 3100 7700 60 0001 C CNN
|
F 2 "rusEFI_LIB:SM0805_jumper" H 3100 7700 60 0001 C CNN
|
||||||
F 3 "" H 3100 7700 60 0000 C CNN
|
F 3 "" H 3100 7700 60 0000 C CNN
|
||||||
1 3100 7700
|
1 3100 7700
|
||||||
1 0 0 -1
|
1 0 0 -1
|
||||||
|
@ -1127,7 +1127,7 @@ U 1 1 52D15DA3
|
||||||
P 3100 8025
|
P 3100 8025
|
||||||
F 0 "JP2" H 3100 8175 60 0000 C CNN
|
F 0 "JP2" H 3100 8175 60 0000 C CNN
|
||||||
F 1 "JUMPER" H 3100 7945 40 0000 C CNN
|
F 1 "JUMPER" H 3100 7945 40 0000 C CNN
|
||||||
F 2 "Pin_Headers:Pin_Header_Straight_1x02_Pitch2.54mm" H 3100 8025 60 0001 C CNN
|
F 2 "rusEFI_LIB:SM0805_jumper" H 3100 8025 60 0001 C CNN
|
||||||
F 3 "" H 3100 8025 60 0000 C CNN
|
F 3 "" H 3100 8025 60 0000 C CNN
|
||||||
1 3100 8025
|
1 3100 8025
|
||||||
1 0 0 -1
|
1 0 0 -1
|
||||||
|
@ -1138,7 +1138,7 @@ U 1 1 52D15DC3
|
||||||
P 3100 8700
|
P 3100 8700
|
||||||
F 0 "JP4" H 3100 8850 60 0000 C CNN
|
F 0 "JP4" H 3100 8850 60 0000 C CNN
|
||||||
F 1 "JUMPER" H 3100 8620 40 0000 C CNN
|
F 1 "JUMPER" H 3100 8620 40 0000 C CNN
|
||||||
F 2 "Pin_Headers:Pin_Header_Straight_1x02_Pitch2.54mm" H 3100 8700 60 0001 C CNN
|
F 2 "rusEFI_LIB:SM0805_jumper" H 3100 8700 60 0001 C CNN
|
||||||
F 3 "" H 3100 8700 60 0000 C CNN
|
F 3 "" H 3100 8700 60 0000 C CNN
|
||||||
1 3100 8700
|
1 3100 8700
|
||||||
1 0 0 -1
|
1 0 0 -1
|
||||||
|
@ -1149,7 +1149,7 @@ U 1 1 52D15DD0
|
||||||
P 3100 8350
|
P 3100 8350
|
||||||
F 0 "JP3" H 3100 8500 60 0000 C CNN
|
F 0 "JP3" H 3100 8500 60 0000 C CNN
|
||||||
F 1 "JUMPER" H 3100 8270 40 0000 C CNN
|
F 1 "JUMPER" H 3100 8270 40 0000 C CNN
|
||||||
F 2 "Pin_Headers:Pin_Header_Straight_1x02_Pitch2.54mm" H 3100 8350 60 0001 C CNN
|
F 2 "rusEFI_LIB:SM0805_jumper" H 3100 8350 60 0001 C CNN
|
||||||
F 3 "" H 3100 8350 60 0000 C CNN
|
F 3 "" H 3100 8350 60 0000 C CNN
|
||||||
1 3100 8350
|
1 3100 8350
|
||||||
1 0 0 -1
|
1 0 0 -1
|
||||||
|
|
|
@ -2,13 +2,14 @@
|
||||||
2) RESOLVED IN R0.2 add vertical USB connector option (same as on Frankenso)
|
2) RESOLVED IN R0.2 add vertical USB connector option (same as on Frankenso)
|
||||||
3) RESOLVED IN R0.2 use stlink 5x2 header
|
3) RESOLVED IN R0.2 use stlink 5x2 header
|
||||||
4) RESOLVED IN R0.2 renamed sm32f407_Board to STM32F407_Brain_Board
|
4) RESOLVED IN R0.2 renamed sm32f407_Board to STM32F407_Brain_Board
|
||||||
5) change LED to use SM0806_Jumpers
|
5) RESOLVED IN R0.4 Some fab shops do not like soldering 0R 0805 on JUMPER footprint. Need to convert JP1, JP2, JP3 & JP4 to "SM0805_jumper"
|
||||||
6) RESOLVED IN R0.2 Change Fuse to match frankenso
|
6) RESOLVED IN R0.2 Change Fuse to match frankenso
|
||||||
7) RESOLVED IN R0.2 set solder mask to 0.003 inches, per OSHPark suggestion.
|
7) RESOLVED IN R0.2 set solder mask to 0.003 inches, per OSHPark suggestion.
|
||||||
8) RESOLVED IN R0.3 Check if there is a chance to match discovery board reset button location
|
8) RESOLVED IN R0.3 Check if there is a chance to match discovery board reset button location
|
||||||
9) RESOLVED IN R0.3 Move push buttons to match the STM32F407 Discovery board's locations.
|
9) RESOLVED IN R0.3 Move push buttons to match the STM32F407 Discovery board's locations.
|
||||||
10) RESOLVED IN R0.3 Changed diodes to 0805 diodes.
|
10) RESOLVED IN R0.3 Changed diodes to 0805 diodes.
|
||||||
11) RESOLVED IN R0.4 Added zone cut outs such that boards can have engraved serial numbers.
|
11) RESOLVED IN R0.4 Added zone cut outs such that boards can have engraved serial numbers.
|
||||||
12) Some fab shops do not like soldering 0R 0805 on JUMPER footprint. Need to convert JP1, JP2, JP3 & JP4 to "SM0805_jumper"
|
12) as another approach to #5 problem, maybe we can add traces connecting JP1, JP2, JP3 & JP4 pads? On the back? By defult the trace would be used, if desired trace could be removed with a knife?
|
||||||
13) as another approach to #12 problem, maybe we can add traces connecting JP1, JP2, JP3 & JP4 pads? On the back? By defult the trace would be used, if desired trace could be removed with a knife?
|
13) RESET and USER button HUGE silkscreen is needed
|
||||||
14) RESET and USER button HUGE silkscreen is needed
|
|
||||||
|
|
||||||
|
|
|
@ -148,8 +148,7 @@
|
||||||
145) RESOLVED IN R0.4.3 HI/LO net names are confusing, and jumbled.
|
145) RESOLVED IN R0.4.3 HI/LO net names are confusing, and jumbled.
|
||||||
146) RESOLVED IN R0.5 HI/LO 2 silk screen is on wrong harness pin.
|
146) RESOLVED IN R0.5 HI/LO 2 silk screen is on wrong harness pin.
|
||||||
147) RESOLVED IN R0.5 Add 232 TX and RX connection points for external MAX232 or equiv chip SEE P701
|
147) RESOLVED IN R0.5 Add 232 TX and RX connection points for external MAX232 or equiv chip SEE P701
|
||||||
148) route NC located next to PD15 to 3.3V battery+ / RTC mod / see http://rusefi.com/forum/viewtopic.php?f=4&t=460
|
148) route NC located next to PD15 to 3.3V battery+ / RTC mod / see viewtopic.php?f=4&t=460
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
For honda add-on / rewiring board
|
For honda add-on / rewiring board
|
||||||
|
|
|
@ -21,6 +21,7 @@ void testPidController(void) {
|
||||||
pidS.offset = 0;
|
pidS.offset = 0;
|
||||||
pidS.minValue = 10;
|
pidS.minValue = 10;
|
||||||
pidS.maxValue = 90;
|
pidS.maxValue = 90;
|
||||||
|
pidS.period = 1;
|
||||||
|
|
||||||
Pid pid(&pidS);
|
Pid pid(&pidS);
|
||||||
|
|
||||||
|
@ -40,4 +41,28 @@ void testPidController(void) {
|
||||||
assertEquals(10, pid.getValue(14, 16, 1));
|
assertEquals(10, pid.getValue(14, 16, 1));
|
||||||
// assertEquals(68, pid.getIntegration());
|
// assertEquals(68, pid.getIntegration());
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
pidS.pFactor = 1;
|
||||||
|
pidS.iFactor = 0;
|
||||||
|
pidS.dFactor = 0;
|
||||||
|
pidS.offset = 0;
|
||||||
|
pidS.minValue = 0;
|
||||||
|
pidS.maxValue = 100;
|
||||||
|
pidS.period = 1;
|
||||||
|
|
||||||
|
pid.reset();
|
||||||
|
|
||||||
|
assertEqualsM("target=50, input=0", 50, pid.getValue(/*target*/50, /*input*/0));
|
||||||
|
assertEqualsM("target=50, input=0 iTerm", 0, pid.iTerm);
|
||||||
|
|
||||||
|
assertEqualsM("target=50, input=70", 0, pid.getValue(/*target*/50, /*input*/70));
|
||||||
|
assertEqualsM("target=50, input=70 iTerm", 0, pid.iTerm);
|
||||||
|
|
||||||
|
assertEqualsM("target=50, input=70 #2", 0, pid.getValue(/*target*/50, /*input*/70));
|
||||||
|
assertEqualsM("target=50, input=70 iTerm #2", 0, pid.iTerm);
|
||||||
|
|
||||||
|
assertEqualsM("target=50, input=50", 0, pid.getValue(/*target*/50, /*input*/50));
|
||||||
|
assertEqualsM("target=50, input=50 iTerm", 0, pid.iTerm);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue