88 #ifndef FOC_HAL_INTERFACE_H 89 #define FOC_HAL_INTERFACE_H 96 #include "ti_msp_dl_config.h" 99 #include <ti/iqmath/include/IQmathLib.h> 115 #define MIN_FLOAT_VOLTAGE (0.1) 118 #define MAX_FLOAT_VOLTAGE (0.9) 123 #define HAL_MCU_CLK_SPEED_HZ (80000000) 128 #define HAL_CYCLES_TO_1_US_DELAY (HAL_MCU_CLK_SPEED_HZ/1000000) 133 #define HAL_GPIO_HIGH (1) 138 #define HAL_GPIO_LOW (0) 229 int32_t blankingTime);
237 const int32_t propagationDelay);
356 DL_TIMER_FORCE_CMPL_OUT outComp, DL_TIMER_CC_INDEX ccIndex)
358 volatile uint32_t *pReg;
360 pReg = &gptimer->COUNTERREGS.CCACT_01[0];
361 pReg += (uint32_t) ccIndex;
363 DL_Common_updateReg(pReg, ((uint32_t) out | ((uint32_t) outComp)),
364 (GPTIMER_CCACT_01_SWFRCACT_CMPL_MASK |
365 GPTIMER_CCACT_01_SWFRCACT_MASK));
372 #ifdef FG_OUTPUT_ENABLE 373 DL_GPIO_togglePins(FOC_GPIO_OUT_FG_TOGGLE_PORT,FOC_GPIO_OUT_FG_TOGGLE_PIN);
383 DL_TIMER_FORCE_CMPL_OUT_LOW, CCIdx);
393 DL_TIMER_FORCE_CMPL_OUT_HIGH, CCIdx);
403 DL_TIMER_FORCE_CMPL_OUT_DISABLED, CCIdx);
473 adc12->ULLMEM.CTL0 &= ~(ADC12_CTL0_ENC_ON);
482 adc12->ULLMEM.CTL0 |= (ADC12_CTL0_ENC_ON);
493 adc12->ULLMEM.MEMCTL[idx] |= DL_ADC12_WINDOWS_COMP_MODE_ENABLED;
503 adc12->ULLMEM.MEMCTL[idx] &= ~DL_ADC12_WINDOWS_COMP_MODE_ENABLED;
512 gptimer->COUNTERREGS.FCTL |= GPTIMER_FCTL_TFIM_MASK;
521 gptimer->COUNTERREGS.FCTL &= ~GPTIMER_FCTL_TFIM_MASK;
531 GPTIMER_Regs *gptimer, uint32_t value, DL_TIMER_CC_INDEX ccIndex)
533 volatile uint32_t *pReg;
535 pReg = &gptimer->COUNTERREGS.CC_01[0];
536 pReg += (uint32_t) ccIndex;
Current offset structure.
Definition: measure.h:183
__STATIC_INLINE void HAL_disableTriggerFault(GPTIMER_Regs *gptimer)
Disable trigger fault for a timer.
Definition: focHALInterface.h:519
Measure voltage structure.
Definition: measure.h:310
void HAL_enterIPDMode()
Configures the peripherals for IPD.
Definition: focHALInterface.c:810
void HAL_EnableLowSideBrake(void)
Turns all low side PWM outputs high.
Definition: focHALInterface.c:359
_Bool HAL_GetPhasesFloatingStatus(const HAL_MEASURE_VOLTAGE_T *pVoltage)
Get phase floating status.
Definition: focHALInterface.c:891
void HAL_pwmCountZero(void)
Set PWMs to zero.
Definition: focHALInterface.c:964
uint16_t HAL_IPDGetLoadVal(void)
Returns the IPD load value.
Definition: focHALInterface.c:1403
VOLTAGE_VECTOR
VOLTAGE_VECTOR.
Definition: focHALInterface.h:141
Measure motor inputs structure.
Definition: measure.h:335
Definition: focHALInterface.h:150
void HAL_IPDDisableISR(void)
Disabled the IPD capture timer.
Definition: focHALInterface.c:1387
void HAL_SelectShuntMeasure(HAL_MEASURE_MOTOR_INPUTS_T *pMotorInputs)
Select two shunt if duty saturates in any phases.
Definition: focHALInterface.c:278
void HAL_DisableINT(void)
Disables all the interrupts.
Definition: focHALInterface.c:993
void HAL_ReadPhaseVoltages(HAL_MEASURE_MOTOR_INPUTS_T *pMotorInputs)
Read Phase voltages from ADCs.
Definition: focHALInterface.c:158
__STATIC_INLINE void HAL_ADCDisWCOMP(ADC12_Regs *adc12, DL_ADC12_MEM_IDX idx)
Disable forcing the PWM out and complement out.
Definition: focHALInterface.h:500
void HAL_SetSystemFrequency(const int32_t systemPeriod)
Set System timer frequency.
Definition: focHALInterface.c:886
#define FOC_PWMA0_INST
PWM instance.
Definition: focPeriphInit.h:136
HAL interface for FOC Module.
__STATIC_INLINE void HAL_PWMForceLow(DL_TIMER_CC_INDEX CCIdx)
Force the PWM out to low and complement out to high.
Definition: focHALInterface.h:390
void HAL_setIPDPulseConfig(VOLTAGE_VECTOR vector, uint8_t CompVal, CURRENT_OFFSET_T *pOffset)
Set IPD Pulse configuration.
Definition: focHALInterface.c:1371
void HAL_clearFaultStatus(void)
Clears the fault status in pwm.
Definition: focHALInterface.c:949
void HAL_SetPhaseCurrentChannels(HAL_MEASURE_MOTOR_INPUTS_T *pMotorInputs)
Set Phase current channels.
Definition: focHALInterface.c:118
Definition: focHALInterface.h:144
__STATIC_INLINE void HAL_PWMAllForceLow()
Forcing low All PWM out and complement out.
Definition: focHALInterface.h:419
ADC_SAMPLING_RATIO_TYPES
ADC sampling ratio types.
Definition: measure.h:146
Motor Control Library Module.
void HAL_ReadMotorInputs(HAL_MEASURE_MOTOR_INPUTS_T *pMotorInputs)
Read Motor inputs.
Definition: focHALInterface.c:91
Definition: focHALInterface.h:152
uint16_t HAL_IPDGetTime(void)
Returns the time captured.
Definition: focHALInterface.c:1394
void HAL_UpdateDuty(const MC_ABC_T *pABC, const int32_t FullDuty, MC_SECTOR_TYPES voltageSector, int32_t minDelta, int32_t blankingTime)
Set PWM dutycycles.
Definition: focHALInterface.c:741
Library of IQMath operations.
void HAL_ReadCurrents(HAL_MEASURE_MOTOR_INPUTS_T *pMotorInputs)
Read phase currents.
Definition: focHALInterface.c:178
__STATIC_INLINE void HAL_enableTriggerFault(GPTIMER_Regs *gptimer)
Enable trigger fault for a timer.
Definition: focHALInterface.h:510
void HAL_IPDCOMPDACSetZero(void)
Set Comparator DAC to zero.
ABC 3 phase structure.
Definition: mcLib.h:128
__STATIC_INLINE void HAL_ADCEnConv(ADC12_Regs *adc12)
Disable forcing the PWM out and complement out.
Definition: focHALInterface.h:480
Definition: focHALInterface.h:154
HAL interface for FOC Module.
MC_SECTOR_TYPES
Sector types.
Definition: mcLib.h:183
void HAL_exitIPDMode()
Sets the peripheral configuration when IPD completes.
Definition: focHALInterface.c:821
uint32_t HAL_getRawFaultStatus(void)
Gets the fault status.
Definition: focHALInterface.c:943
void HAL_ClearNFault(void)
Sets Nfault pin low.
Definition: focHALInterface.c:927
__STATIC_INLINE void HAL_TimerOverRideCCPOut(GPTIMER_Regs *gptimer, DL_TIMER_FORCE_OUT out, DL_TIMER_FORCE_CMPL_OUT outComp, DL_TIMER_CC_INDEX ccIndex)
Overrides the timer CCP output.
Definition: focHALInterface.h:355
__STATIC_INLINE void HAL_FGToggle(void)
Toggle the GPIO to high and low for every sector change.
Definition: focHALInterface.h:370
__STATIC_INLINE void HAL_ADCDisConv(ADC12_Regs *adc12)
Disable forcing the PWM out and complement out.
Definition: focHALInterface.h:471
void HAL_SetNFault(void)
Sets Nfault pin high.
Definition: focHALInterface.c:932
_Bool HAL_getBrakePinStatus(void)
Get the status of the brake pin.
Definition: focHALInterface.c:1009
void HAL_resetPOR(void)
Triggers a POR reset.
Definition: focHALInterface.c:998
void HAL_EnablePWM(void)
Enable PWMs.
Definition: focHALInterface.c:314
uint16_t HAL_Is_SingleShunt(void)
Returns Shunt Config.
Definition: focHALInterface.c:1411
void HAL_delayMicroSeconds(uint32_t num_us)
Blocks for the specified delay time.
Definition: focHALInterface.c:984
uint32_t HAL_getRawHVdieFaultStatus(void)
Gets the latched fault status.
Definition: focHALInterface.c:937
__STATIC_INLINE void HAL_PWMAllForceDisable()
Disable forcing All PWM out and complement out.
Definition: focHALInterface.h:409
void HAL_setGateDriveOffsetCalib(void)
Starts gate driver offset calibration.
Definition: focHALInterface.c:954
__STATIC_INLINE void HAL_setCaptureCompareValue(GPTIMER_Regs *gptimer, uint32_t value, DL_TIMER_CC_INDEX ccIndex)
Set the Capture Compare Value for Timer.
Definition: focHALInterface.h:530
void HAL_IPDEnableISR(void)
Enables the IPD capture timer.
Definition: focHALInterface.c:1380
Definition: focHALInterface.h:146
void HAL_SetADCSamplingFrequency(const ADC_SAMPLING_RATIO_TYPES samplingRatio)
Set ADC sampling frequency.
Definition: focHALInterface.c:874
Definition: focHALInterface.h:156
void HAL_setADCIdxChannel(ADC12_Regs *adc12, DL_ADC12_MEM_IDX idx, uint32_t chansel)
Set ADC channel to index.
Definition: focHALInterface.c:133
void HAL_DisablePWM(void)
Disable PWMs and all outputs are forced low.
Definition: focHALInterface.c:332
void HAL_SetPWMFrequency(const int32_t pwmPeriod, const int32_t propagationDelay)
Set PWM Frequency.
Definition: focHALInterface.c:755
Definition: focHALInterface.h:148
__STATIC_INLINE void HAL_ADCEnWCOMP(ADC12_Regs *adc12, DL_ADC12_MEM_IDX idx)
Disable forcing the PWM out and complement out.
Definition: focHALInterface.h:490
__STATIC_INLINE void HAL_PWMForceHigh(DL_TIMER_CC_INDEX CCIdx)
Force the PWM out to high and complement out to low.
Definition: focHALInterface.h:380
void HAL_SetPhaseVoltageChannels(HAL_MEASURE_MOTOR_INPUTS_T *pMotorInputs)
Set Phase voltage channels in ADC.
Definition: focHALInterface.c:140
_Bool HAL_getDirPinStatus(void)
Get the status of the Direction pin.
Definition: focHALInterface.c:1003
__STATIC_INLINE void HAL_PWMForceDisable(DL_TIMER_CC_INDEX CCIdx)
Disable forcing the PWM out and complement out.
Definition: focHALInterface.h:400
void HAL_resetGateDriveOffsetCalib(void)
Stops gate driver offset calibration.
Definition: focHALInterface.c:959