56 #include "ti_msp_dl_config.h" 57 #include <ti/iqmath/include/IQmathLib.h> 64 #define HAL_SYSTEM_FREQ_MHZ ((int32_t)80) 67 #define HAL_PWM_TIMER_FREQ_MHZ ((int32_t)80) 70 #define HAL_CAPTURE_TIMER_FREQ ((int32_t)100000) 73 #define HAL_VDDA_REFVOLTAGE (3300) 76 #define MAX_ADC_VALUE (4095) 367 void HAL_writeSPI16(HAL_SPI_CHAN chan, HAL_SPI_CS cs, uint16_t data);
477 HAL_ADC_INT_VREF internalVRef, uint16_t externalVRef);
504 const HAL_PWM gndPhase,
505 const HAL_PWM opnPhase,
506 const uint16_t PWMDuty)
513 uint16_t PWMPeriod = DL_TimerA_getLoadValue(positivePhase->
gptimer);
515 uint16_t posPhase_cmpValue = PWMPeriod - (PWMPeriod * PWMDuty)/100;
518 DL_TimerA_setCaptureCompareValue(positivePhase->
gptimer,
522 DL_Timer_overrideCCPOut(positivePhase->
gptimer, DL_TIMER_FORCE_OUT_DISABLED,
523 DL_TIMER_FORCE_CMPL_OUT_DISABLED, positivePhase->
ccIndex);
525 DL_Timer_overrideCCPOut(groundPhase->
gptimer, DL_TIMER_FORCE_OUT_LOW,
526 DL_TIMER_FORCE_CMPL_OUT_HIGH, groundPhase->
ccIndex);
528 DL_Timer_overrideCCPOut(openPhase->
gptimer, DL_TIMER_FORCE_OUT_LOW,
529 DL_TIMER_FORCE_CMPL_OUT_LOW, openPhase->
ccIndex);
540 const HAL_PWM gndPhase_2,
541 const HAL_PWM gndPhase_3)
547 DL_Timer_overrideCCPOut(groundPhase01->
gptimer, DL_TIMER_FORCE_OUT_LOW,
548 DL_TIMER_FORCE_CMPL_OUT_LOW, groundPhase01->
ccIndex);
550 DL_Timer_overrideCCPOut(groundPhase02->
gptimer, DL_TIMER_FORCE_OUT_LOW,
551 DL_TIMER_FORCE_CMPL_OUT_LOW, groundPhase02->
ccIndex);
553 DL_Timer_overrideCCPOut(groundPhase03->
gptimer, DL_TIMER_FORCE_OUT_LOW,
554 DL_TIMER_FORCE_CMPL_OUT_LOW, groundPhase03->
ccIndex);
564 const HAL_PWM gndPhase_2,
565 const HAL_PWM gndPhase_3)
571 DL_Timer_overrideCCPOut(groundPhase01->
gptimer, DL_TIMER_FORCE_OUT_LOW,
572 DL_TIMER_FORCE_CMPL_OUT_HIGH, groundPhase01->
ccIndex);
574 DL_Timer_overrideCCPOut(groundPhase02->
gptimer, DL_TIMER_FORCE_OUT_LOW,
575 DL_TIMER_FORCE_CMPL_OUT_HIGH, groundPhase02->
ccIndex);
577 DL_Timer_overrideCCPOut(groundPhase03->
gptimer, DL_TIMER_FORCE_OUT_LOW,
578 DL_TIMER_FORCE_CMPL_OUT_HIGH, groundPhase03->
ccIndex);
HAL_Timer_Instance inputCapture[HAL_CAPTURE_TIMER_MAX]
Array to store the capture instances.
Definition: hal.c:74
Total number of output GPIO pins.
Definition: hal.h:127
GPIO_Regs * port
GPIO port.
Definition: hal.h:272
DL_ADC12_MEM_IDX memIdx
ADC memory IDX.
Definition: hal.h:293
ADC12 interrupt index for MEMRESx result lower than window comparator low threshold.
Definition: hal.h:218
GPTIMER_Regs * gptimer
Timer Register.
Definition: hal.h:300
Index associated to PWM channel 2.
Definition: hal.h:136
ADC12 interrupt index for MEM3 result loaded interrupt.
Definition: hal.h:239
GPIO_Regs * port
GPIO port.
Definition: hal.h:313
void HAL_enableGPIOInterrupt(HAL_GPIO_IN pin)
Enables GPIO interrupts.
Definition: hal.c:375
DL_TIMER_CC_INDEX ccIndex
Timer ccIndex.
Definition: hal.h:302
uint32_t HAL_getmvFromADC(HAL_ADC_CHAN chan)
Get milli volts from ADC.
Definition: hal.c:313
void HAL_enablePWMInterrupt(HAL_PWM PWM)
Enables PWM interrupts.
Definition: hal.c:385
ADC Internal Reference 2.5V.
Definition: hal.h:198
Index associated to output GPIO PIN 1.
Definition: hal.h:121
HAL_ADC_CHAN
Definition: hal.h:88
Index associated to chip select 0.
Definition: hal.h:172
HAL_GPIO_IN
Definition: hal.h:101
ADC12 interrupt index for MEM8 result loaded interrupt.
Definition: hal.h:254
ADC12 interrupt index for MEMRESX overflow.
Definition: hal.h:207
void HAL_setADCVRefInternal(HAL_ADC_CHAN chan, HAL_ADC_INT_VREF internalVRef)
Set ADC voltage reference to internal reference.
Definition: hal.c:422
void HAL_setADCVRefExternal(HAL_ADC_CHAN chan, uint16_t externalVRef)
Set ADC voltage reference to external reference.
Definition: hal.c:452
void HAL_writeGPIOPin(HAL_GPIO_OUT pin, HAL_GPIO_STATE value)
Write to GPIOpin.
Definition: hal.c:221
HAL_GPIO_Instance gpioInputPin[HAL_GPIO_IN_MAX]
Array for storing the input GPIO pin instances.
Definition: hal.c:49
Index associated to input GPIO PIN 4.
Definition: hal.h:110
Index associated to input GPIO PIN 3.
Definition: hal.h:108
HAL_ADC_instance ADCChannel[HAL_ADC_CHAN_MAX]
Array for storing the ADC instances.
Definition: hal.c:64
ADC12 interrupt index for MEM0 result loaded interrupt.
Definition: hal.h:230
IRQn_Type IRQn
Timer IRQN.
Definition: hal.h:304
Index associated to PWM channel 1.
Definition: hal.h:134
HAL_ADC_INT_VREF
Definition: hal.h:195
ADC12 interrupt index for sequence conversion trigger overflow.
Definition: hal.h:210
void HAL_enableADCInterrupt(HAL_ADC_CHAN chan)
Enables ADC interrupts.
Definition: hal.c:365
ADC12 interrupt index for MEM10 result loaded interrupt.
Definition: hal.h:260
Total number of input captures.
Definition: hal.h:149
Defines a fault instance.
Definition: hal.h:308
uint32_t pin
GPIO pin.
Definition: hal.h:274
ADC12 interrupt index for MEM4 result loaded interrupt.
Definition: hal.h:242
uint16_t value
ADC result.
Definition: hal.h:289
uint32_t HAL_getGPIOEnabledInterruptStatus(HAL_GPIO_IN pin)
gets GPIO enabled interrupt status
Definition: hal.c:552
HAL_PWM
Definition: hal.h:131
IOMUX_PINCM iomux
IOMUX.
Definition: hal.h:270
void HAL_setDeadband(HAL_PWM pwm, uint16_t deadband)
Sets deadband for timer.
Definition: hal.c:242
HAL_SPI_CHAN
Definition: hal.h:162
Total number of input GPIO pins.
Definition: hal.h:114
__STATIC_INLINE void HAL_delayMicroSeconds(uint32_t microSeconds)
Delays for specific time in microseconds.
Definition: hal.h:490
bool HAL_getTimerFaultStatus(HAL_FAULT_INPUT fault)
Read the PWM timer fault bit.
Definition: hal.c:481
ADC12 interrupt index for result in range.
Definition: hal.h:221
void HAL_writeSPI16(HAL_SPI_CHAN chan, HAL_SPI_CS cs, uint16_t data)
Write data to spi.
Definition: hal.c:268
ADC External Reference.
Definition: hal.h:191
Total number of PWM channels.
Definition: hal.h:140
Index associated to output GPIO PIN 3.
Definition: hal.h:125
uint16_t refVoltagemV
ADC reference voltage.
Definition: hal.h:291
void HAL_enableCaptureInterrupt(HAL_CAPTURE_TIMER capture)
Enables capture interrupts.
Definition: hal.c:395
ADC12 interrupt index for DMA done.
Definition: hal.h:224
Defines a timer instance.
Definition: hal.h:297
void HAL_clearTimerFault(HAL_FAULT_INPUT fault)
Clear the PWM timer fault bit.
Definition: hal.c:470
GPIO set to low.
Definition: hal.h:82
__STATIC_INLINE void HAL_PWMOutputLow(const HAL_PWM gndPhase_1, const HAL_PWM gndPhase_2, const HAL_PWM gndPhase_3)
Set all PWM outputs low.
Definition: hal.h:539
struct HAL_fault_instance HAL_fault_instance
Defines a fault instance.
Total number of faults.
Definition: hal.h:158
Index associated to SPI channel 0.
Definition: hal.h:164
void HAL_setADCVRefVDDA(HAL_ADC_CHAN chan)
Set ADC voltage reference to VDDA.
Definition: hal.c:405
HAL_ADC_IIDX
Definition: hal.h:204
void HAL_init()
Initializes the hal object.
Definition: hal.c:84
Index associated to input GPIO PIN 2.
Definition: hal.h:106
Index associated to chip select 0.
Definition: hal.h:176
Total number of chip select pins.
Definition: hal.h:180
ADC12 interrupt index for MEM7 result loaded interrupt.
Definition: hal.h:251
HAL_ADC_IIDX HAL_processADCIRQ(ADC12_Regs *adcInst)
Read ADC values from results.
Definition: hal.c:345
struct HAL_GPIO_Instance_ HAL_GPIO_Instance
Defines a GPIO instance.
Index associated to chip select 0.
Definition: hal.h:174
HAL_Timer_Instance PWMBase[HAL_PWM_MAX]
Array for storing the PWM instances.
Definition: hal.c:69
Index associated to input capture 1.
Definition: hal.h:147
Index associated to ADC Channel 0.
Definition: hal.h:91
Total number of SPI channels.
Definition: hal.h:166
ADC Reference VDDA.
Definition: hal.h:187
Defines a ADC instance.
Definition: hal.h:280
ADC12 interrupt index for MEM10 result loaded interrupt.
Definition: hal.h:263
ADC12 interrupt index for MEM2 result loaded interrupt.
Definition: hal.h:236
void HAL_setADCRefVoltage(HAL_ADC_CHAN chan, uint16_t voltage_mV)
Set ADC reference voltage.
Definition: hal.c:303
ADC12 interrupt index for MEM1 result loaded interrupt.
Definition: hal.h:233
HAL_ADC_IIDX endOfSeq
ADC end of sequence.
Definition: hal.h:285
HAL_fault_instance faultInput[HAL_FAULT_INPUT_MAX]
Array to store the fault instances.
Definition: hal.c:79
#define HAL_SYSTEM_FREQ_MHZ
Defines the system clock frequency, MHz.
Definition: hal.h:64
HAL_ADC_VREF
Definition: hal.h:184
Index associated to output GPIO PIN 2.
Definition: hal.h:123
Index associated to chip select 0.
Definition: hal.h:178
uint16_t HAL_readSPI16(HAL_SPI_CHAN chan, HAL_SPI_CS cs)
Read data from spi.
Definition: hal.c:287
struct HAL_ADC_instance_ HAL_ADC_instance
Defines a ADC instance.
HAL_CAPTURE_TIMER
Definition: hal.h:144
Index associated to fault 1.
Definition: hal.h:156
ADC12 interrupt index for MEMRESx result higher than window comparator high threshold.
Definition: hal.h:214
Index associated to ADC Channel 1.
Definition: hal.h:93
GPTIMER_Regs * gptimer
Timer Register.
Definition: hal.h:311
HAL_GPIO_OUT
Definition: hal.h:118
uint32_t HAL_getCaptureFrequency(HAL_CAPTURE_TIMER capture)
Calculates the capture frequency.
Definition: hal.c:493
bool HAL_readGPIOPin(HAL_GPIO_IN pin)
Reads a GPIOpin.
Definition: hal.c:211
Index associated to input GPIO PIN 1.
Definition: hal.h:104
Defines a GPIO instance.
Definition: hal.h:267
uint32_t pin
GPIO pin.
Definition: hal.h:315
__STATIC_INLINE void HAL_PWMOutputHigh(const HAL_PWM gndPhase_1, const HAL_PWM gndPhase_2, const HAL_PWM gndPhase_3)
Set complementary PWM outputs high.
Definition: hal.h:563
ADC Internal Reference.
Definition: hal.h:189
ADC12 interrupt index for MEM6 result loaded interrupt.
Definition: hal.h:248
__STATIC_INLINE void HAL_updatePWM(const HAL_PWM posPhase, const HAL_PWM gndPhase, const HAL_PWM opnPhase, const uint16_t PWMDuty)
Writes the pwm to the pinouts.
Definition: hal.h:503
struct HAL_Timer_Instance_ HAL_Timer_Instance
Defines a timer instance.
Index associated to PWM channel 3.
Definition: hal.h:138
GPIO set to high.
Definition: hal.h:84
ADC12 interrupt index for MEM9 result loaded interrupt.
Definition: hal.h:257
HAL_FAULT_INPUT
Definition: hal.h:153
ADC12 interrupt index for MEM5 result loaded interrupt.
Definition: hal.h:245
HAL_GPIO_STATE
Definition: hal.h:79
HAL_SPI_CS
Definition: hal.h:170
ADC12_Regs * inst
ADC register.
Definition: hal.h:283
IRQn_Type IRQn
GPIO IRQN.
Definition: hal.h:276
IRQn_Type IRQn
ADC IRQN.
Definition: hal.h:287
void HAL_ADCVRefSel(HAL_ADC_VREF adcRef, HAL_ADC_CHAN chan, HAL_ADC_INT_VREF internalVRef, uint16_t externalVRef)
updates the adc voltage reference
Definition: hal.c:527
_iq20 HAL_getIQ20VoltageFromADC(HAL_ADC_CHAN chan)
Get volts from ADC in _IQ20.
Definition: hal.c:325
ADC Internal Reference 1.4V.
Definition: hal.h:200
ADC12 interrupt index for MEMRESX underflow.
Definition: hal.h:227
Total number of ADC channels.
Definition: hal.h:97
Index associated to ADC Channel 2.
Definition: hal.h:95
Index associated to input GPIO PIN 5.
Definition: hal.h:112
void HAL_setPWMFreq(HAL_PWM pwm, uint32_t PWMFreq)
Sets PWMfreq for all timers.
Definition: hal.c:255