1. project_cfg.h
#define NUMBER_OF_SPINDLES (1u)
2. SensorPosition.c
Seems problem! but may only effect on Diagnosis
Spo_CalculatePosition
for ( lu8_Spindle = 0; lu8_Spindle < C_U8_CONFIG_NUMBER_OF_SPINDLES; lu8_Spindle++)
1. Calculate main position based of data from left spindle */
C_U8_CONFIG_NUMBER_OF_SPINDLES
E_SPO_SPINDLE_PRIMARY
E_SPO_SPINDLE_SECONDARY
3. MisuseDetection_cfg.c
#if(2u == NUMBER_OF_SPINDLES)
...#endif
4. ObstacleDetection_cfg.c
5. SlamDetection_cfg.c
/* primary side - dual sided and single systems */
SCI_Read_HallSensor_Rpm(&(Sld_ms_PrimarySpindleData.u16_Rpm), E_SHA_HALL_PRIMARY );#if(2u == NUMBER_OF_SPINDLES)
/* secondary side - only dual sided systems */ SCI_Read_HallSensor_Rpm(&(Sld_ms_SecondarySpindleData.u16_Rpm), E_SHA_HALL_SECONDARY ); #endif6. SpindleBreakDetection_cfg.c
7. SwcApplPIDCtrlPwm_A.c
/* Set/reset over current flag depending on spindle current and limit value */
if ((Inputs->u16_MotorCurrentA < lu16_CalculatedCurrentLimit)#if NUMBER_OF_SPINDLES > 1 && (Inputs->u16_MotorCurrentB < lu16_CalculatedCurrentLimit)#endif8. SwcActuatorSpindleMotor.c
typedef enum{
#if NUMBER_OF_SPINDLES > 1 TlgtMot_Right = 1, /* right Tailgate motor */#endif TlgtMot_Left = 0 /* left Tailgate motor */} TlgtMotT;9. SwcApplPowerBalancer.c
/* primary side - dual sided and single systems */
Sbd_ms_PrimarySpindleData.u16_PreviousRpm = Sbd_ms_PrimarySpindleData.u16_Rpm; SCI_Read_HallSensor_Rpm(&(Sbd_ms_PrimarySpindleData.u16_Rpm), E_SHA_HALL_PRIMARY );... Sbd_ms_PrimarySpindleData.b_TailgatePositionValid = lb_ReadBoolean;#if(2u == NUMBER_OF_SPINDLES)
/* secondary side - only dual sided systems */ Sbd_ms_SecondarySpindleData.b_TailgatePositionValid = lb_ReadBoolean; #endif
Already Research:
2. Short to Gnd Dignosis
some investigation already done:
In Pmg_UpdateHCOMStableFlag() of PowerManager_cfg.c
from the comment
/* Hall Supply A and B shall behavior in the same way, not working independantly*/
this part only considered double spindle system.
the flag b_UHallStable is set here