51 #pragma CODE_SECTION(HAL_setupFlash,"ramfuncs");
69 ADC_setSocChanNumber(obj->
adcHandle,ADC_SocNumber_0,chanNumber);
70 ADC_setSocChanNumber(obj->
adcHandle,ADC_SocNumber_1,chanNumber);
71 ADC_setSocChanNumber(obj->
adcHandle,ADC_SocNumber_2,chanNumber);
72 ADC_setSocChanNumber(obj->
adcHandle,ADC_SocNumber_3,chanNumber);
73 ADC_setSocChanNumber(obj->
adcHandle,ADC_SocNumber_4,chanNumber);
74 ADC_setSocChanNumber(obj->
adcHandle,ADC_SocNumber_5,chanNumber);
75 ADC_setSocChanNumber(obj->
adcHandle,ADC_SocNumber_6,chanNumber);
76 ADC_setSocChanNumber(obj->
adcHandle,ADC_SocNumber_7,chanNumber);
77 ADC_setSocChanNumber(obj->
adcHandle,ADC_SocNumber_8,chanNumber);
78 ADC_setSocChanNumber(obj->
adcHandle,ADC_SocNumber_9,chanNumber);
79 ADC_setSocChanNumber(obj->
adcHandle,ADC_SocNumber_10,chanNumber);
80 ADC_setSocChanNumber(obj->
adcHandle,ADC_SocNumber_11,chanNumber);
81 ADC_setSocChanNumber(obj->
adcHandle,ADC_SocNumber_12,chanNumber);
82 ADC_setSocChanNumber(obj->
adcHandle,ADC_SocNumber_13,chanNumber);
83 ADC_setSocChanNumber(obj->
adcHandle,ADC_SocNumber_14,chanNumber);
84 ADC_setSocChanNumber(obj->
adcHandle,ADC_SocNumber_15,chanNumber);
93 uint16_t index, SampleSize, Mean;
95 ADC_SocSampleDelay_e ACQPS_Value;
103 ACQPS_Value = ADC_SocSampleDelay_7_cycles;
105 ADC_setSocSampleDelay(obj->
adcHandle,ADC_SocNumber_0,ACQPS_Value);
106 ADC_setSocSampleDelay(obj->
adcHandle,ADC_SocNumber_1,ACQPS_Value);
107 ADC_setSocSampleDelay(obj->
adcHandle,ADC_SocNumber_2,ACQPS_Value);
108 ADC_setSocSampleDelay(obj->
adcHandle,ADC_SocNumber_3,ACQPS_Value);
109 ADC_setSocSampleDelay(obj->
adcHandle,ADC_SocNumber_4,ACQPS_Value);
110 ADC_setSocSampleDelay(obj->
adcHandle,ADC_SocNumber_5,ACQPS_Value);
111 ADC_setSocSampleDelay(obj->
adcHandle,ADC_SocNumber_6,ACQPS_Value);
112 ADC_setSocSampleDelay(obj->
adcHandle,ADC_SocNumber_7,ACQPS_Value);
113 ADC_setSocSampleDelay(obj->
adcHandle,ADC_SocNumber_8,ACQPS_Value);
114 ADC_setSocSampleDelay(obj->
adcHandle,ADC_SocNumber_9,ACQPS_Value);
115 ADC_setSocSampleDelay(obj->
adcHandle,ADC_SocNumber_10,ACQPS_Value);
116 ADC_setSocSampleDelay(obj->
adcHandle,ADC_SocNumber_11,ACQPS_Value);
117 ADC_setSocSampleDelay(obj->
adcHandle,ADC_SocNumber_12,ACQPS_Value);
118 ADC_setSocSampleDelay(obj->
adcHandle,ADC_SocNumber_13,ACQPS_Value);
119 ADC_setSocSampleDelay(obj->
adcHandle,ADC_SocNumber_14,ACQPS_Value);
120 ADC_setSocSampleDelay(obj->
adcHandle,ADC_SocNumber_15,ACQPS_Value);
123 ADC_enableInt(obj->
adcHandle, ADC_IntNumber_1);
124 ADC_enableInt(obj->
adcHandle, ADC_IntNumber_2);
127 ADC_setIntMode(obj->
adcHandle, ADC_IntNumber_1, ADC_IntMode_EOC);
128 ADC_setIntMode(obj->
adcHandle, ADC_IntNumber_2, ADC_IntMode_EOC);
131 ADC_setIntPulseGenMode(obj->
adcHandle, ADC_IntPulseGenMode_Prior);
134 ADC_setIntSrc(obj->
adcHandle, ADC_IntNumber_1, ADC_IntSrc_EOC6);
135 ADC_setIntSrc(obj->
adcHandle, ADC_IntNumber_2, ADC_IntSrc_EOC14);
138 ADC_setupSocTrigSrc(obj->
adcHandle, ADC_SocNumber_0, ADC_Int2TriggersSOC);
139 ADC_setupSocTrigSrc(obj->
adcHandle, ADC_SocNumber_1, ADC_Int2TriggersSOC);
140 ADC_setupSocTrigSrc(obj->
adcHandle, ADC_SocNumber_2, ADC_Int2TriggersSOC);
141 ADC_setupSocTrigSrc(obj->
adcHandle, ADC_SocNumber_3, ADC_Int2TriggersSOC);
142 ADC_setupSocTrigSrc(obj->
adcHandle, ADC_SocNumber_4, ADC_Int2TriggersSOC);
143 ADC_setupSocTrigSrc(obj->
adcHandle, ADC_SocNumber_5, ADC_Int2TriggersSOC);
144 ADC_setupSocTrigSrc(obj->
adcHandle, ADC_SocNumber_6, ADC_Int2TriggersSOC);
145 ADC_setupSocTrigSrc(obj->
adcHandle, ADC_SocNumber_7, ADC_Int2TriggersSOC);
146 ADC_setupSocTrigSrc(obj->
adcHandle, ADC_SocNumber_8, ADC_Int1TriggersSOC);
147 ADC_setupSocTrigSrc(obj->
adcHandle, ADC_SocNumber_9, ADC_Int1TriggersSOC);
148 ADC_setupSocTrigSrc(obj->
adcHandle, ADC_SocNumber_10, ADC_Int1TriggersSOC);
149 ADC_setupSocTrigSrc(obj->
adcHandle, ADC_SocNumber_11, ADC_Int1TriggersSOC);
150 ADC_setupSocTrigSrc(obj->
adcHandle, ADC_SocNumber_12, ADC_Int1TriggersSOC);
151 ADC_setupSocTrigSrc(obj->
adcHandle, ADC_SocNumber_13, ADC_Int1TriggersSOC);
152 ADC_setupSocTrigSrc(obj->
adcHandle, ADC_SocNumber_14, ADC_Int1TriggersSOC);
153 ADC_setupSocTrigSrc(obj->
adcHandle, ADC_SocNumber_15, ADC_Int1TriggersSOC);
158 ADC_setSocFrcWord(obj->
adcHandle, 0x00FF);
160 while( index < SampleSize )
163 while (ADC_getIntFlag(obj->
adcHandle, ADC_IntNumber_1) == 0){}
166 ADC_clearIntFlag(obj->
adcHandle, ADC_IntNumber_1);
168 Sum += ADC_readResult(obj->
adcHandle, ADC_ResultNumber_0);
169 Sum += ADC_readResult(obj->
adcHandle, ADC_ResultNumber_1);
170 Sum += ADC_readResult(obj->
adcHandle, ADC_ResultNumber_2);
171 Sum += ADC_readResult(obj->
adcHandle, ADC_ResultNumber_3);
172 Sum += ADC_readResult(obj->
adcHandle, ADC_ResultNumber_4);
173 Sum += ADC_readResult(obj->
adcHandle, ADC_ResultNumber_5);
174 Sum += ADC_readResult(obj->
adcHandle, ADC_ResultNumber_6);
175 Sum += ADC_readResult(obj->
adcHandle, ADC_ResultNumber_7);
178 while (ADC_getIntFlag(obj->
adcHandle, ADC_IntNumber_2) == 0){}
181 ADC_clearIntFlag(obj->
adcHandle, ADC_IntNumber_2);
183 Sum += ADC_readResult(obj->
adcHandle, ADC_ResultNumber_8);
184 Sum += ADC_readResult(obj->
adcHandle, ADC_ResultNumber_9);
185 Sum += ADC_readResult(obj->
adcHandle, ADC_ResultNumber_10);
186 Sum += ADC_readResult(obj->
adcHandle, ADC_ResultNumber_11);
187 Sum += ADC_readResult(obj->
adcHandle, ADC_ResultNumber_12);
188 Sum += ADC_readResult(obj->
adcHandle, ADC_ResultNumber_13);
189 Sum += ADC_readResult(obj->
adcHandle, ADC_ResultNumber_14);
190 Sum += ADC_readResult(obj->
adcHandle, ADC_ResultNumber_15);
197 ADC_disableInt(obj->
adcHandle, ADC_IntNumber_1);
198 ADC_disableInt(obj->
adcHandle, ADC_IntNumber_2);
201 Mean = Sum / SampleSize;
204 ADC_setupSocTrigSrc(obj->
adcHandle, ADC_SocNumber_0, ADC_NoIntTriggersSOC);
205 ADC_setupSocTrigSrc(obj->
adcHandle, ADC_SocNumber_1, ADC_NoIntTriggersSOC);
206 ADC_setupSocTrigSrc(obj->
adcHandle, ADC_SocNumber_2, ADC_NoIntTriggersSOC);
207 ADC_setupSocTrigSrc(obj->
adcHandle, ADC_SocNumber_3, ADC_NoIntTriggersSOC);
208 ADC_setupSocTrigSrc(obj->
adcHandle, ADC_SocNumber_4, ADC_NoIntTriggersSOC);
209 ADC_setupSocTrigSrc(obj->
adcHandle, ADC_SocNumber_5, ADC_NoIntTriggersSOC);
210 ADC_setupSocTrigSrc(obj->
adcHandle, ADC_SocNumber_6, ADC_NoIntTriggersSOC);
211 ADC_setupSocTrigSrc(obj->
adcHandle, ADC_SocNumber_7, ADC_NoIntTriggersSOC);
212 ADC_setupSocTrigSrc(obj->
adcHandle, ADC_SocNumber_8, ADC_NoIntTriggersSOC);
213 ADC_setupSocTrigSrc(obj->
adcHandle, ADC_SocNumber_9, ADC_NoIntTriggersSOC);
214 ADC_setupSocTrigSrc(obj->
adcHandle, ADC_SocNumber_10, ADC_NoIntTriggersSOC);
215 ADC_setupSocTrigSrc(obj->
adcHandle, ADC_SocNumber_11, ADC_NoIntTriggersSOC);
216 ADC_setupSocTrigSrc(obj->
adcHandle, ADC_SocNumber_12, ADC_NoIntTriggersSOC);
217 ADC_setupSocTrigSrc(obj->
adcHandle, ADC_SocNumber_13, ADC_NoIntTriggersSOC);
218 ADC_setupSocTrigSrc(obj->
adcHandle, ADC_SocNumber_14, ADC_NoIntTriggersSOC);
219 ADC_setupSocTrigSrc(obj->
adcHandle, ADC_SocNumber_15, ADC_NoIntTriggersSOC);
229 uint16_t AdcConvMean;
238 ADC_setVoltRefSrc(obj->
adcHandle,ADC_VoltageRefSrc_Int);
244 ADC_setDivideSelect(obj->
adcHandle,ADC_DivideSelect_ClkIn_by_2);
265 ADC_setOffTrim(obj->
adcHandle, 80 - AdcConvMean);
268 ADC_disableVoltRefLoConv(obj->
adcHandle);
290 ENABLE_PROTECTED_REGISTER_WRITE_MODE;
292 DISABLE_PROTECTED_REGISTER_WRITE_MODE;
339 PIE_enableAdcInt(obj->
pieHandle,ADC_IntNumber_6);
343 ADC_enableInt(obj->
adcHandle,ADC_IntNumber_6);
347 CPU_enableInt(obj->
cpuHandle,CPU_IntNumber_10);
380 PIE_enablePwmInt(obj->
pieHandle,PWM_Number_1);
384 PWM_enableInt(obj->
pwmHandle[PWM_Number_1]);
388 CPU_enableInt(obj->
cpuHandle,CPU_IntNumber_3);
413 obj->
wdogHandle = WDOG_init((
void *)WDOG_BASE_ADDR,
sizeof(WDOG_Obj));
421 obj->
adcHandle = ADC_init((
void *)ADC_BASE_ADDR,
sizeof(ADC_Obj));
425 obj->
clkHandle = CLK_init((
void *)CLK_BASE_ADDR,
sizeof(CLK_Obj));
429 obj->
cpuHandle = CPU_init(&cpu,
sizeof(cpu));
433 obj->
flashHandle = FLASH_init((
void *)FLASH_BASE_ADDR,
sizeof(FLASH_Obj));
437 obj->
gpioHandle = GPIO_init((
void *)GPIO_BASE_ADDR,
sizeof(GPIO_Obj));
441 obj->
oscHandle = OSC_init((
void *)OSC_BASE_ADDR,
sizeof(OSC_Obj));
445 obj->
pieHandle = PIE_init((
void *)PIE_BASE_ADDR,
sizeof(PIE_Obj));
449 obj->
pllHandle = PLL_init((
void *)PLL_BASE_ADDR,
sizeof(PLL_Obj));
453 obj->
pwmHandle[0] = PWM_init((
void *)PWM_ePWM1_BASE_ADDR,
sizeof(PWM_Obj));
454 obj->
pwmHandle[1] = PWM_init((
void *)PWM_ePWM2_BASE_ADDR,
sizeof(PWM_Obj));
455 obj->
pwmHandle[2] = PWM_init((
void *)PWM_ePWM3_BASE_ADDR,
sizeof(PWM_Obj));
459 obj->
pwmDacHandle[0] = PWMDAC_init((
void *)PWM_ePWM6_BASE_ADDR,
sizeof(PWM_Obj));
460 obj->
pwmDacHandle[1] = PWMDAC_init((
void *)PWM_ePWM5_BASE_ADDR,
sizeof(PWM_Obj));
461 obj->
pwmDacHandle[2] = PWMDAC_init((
void *)PWM_ePWM4_BASE_ADDR,
sizeof(PWM_Obj));
465 obj->
pwrHandle = PWR_init((
void *)PWR_BASE_ADDR,
sizeof(PWR_Obj));
469 obj->
timerHandle[0] = TIMER_init((
void *)TIMER0_BASE_ADDR,
sizeof(TIMER_Obj));
470 obj->
timerHandle[1] = TIMER_init((
void *)TIMER1_BASE_ADDR,
sizeof(TIMER_Obj));
471 obj->
timerHandle[2] = TIMER_init((
void *)TIMER2_BASE_ADDR,
sizeof(TIMER_Obj));
475 obj->qepHandle[0] = QEP_init((
void*)QEP1_BASE_ADDR,
sizeof(QEP_Obj));
476 obj->qepHandle[1] = QEP_init((
void*)QEP2_BASE_ADDR,
sizeof(QEP_Obj));
486 uint16_t Temperature;
496 ADC_setVoltRefSrc(obj->
adcHandle,ADC_VoltageRefSrc_Int);
502 ADC_setDivideSelect(obj->
adcHandle,ADC_DivideSelect_ClkIn_by_2);
514 ADC_setTempSensorSrc(obj->
adcHandle, ADC_TempSensorSrc_Int);
517 ADC_setSocChanNumber(obj->
adcHandle, ADC_SocNumber_0, ADC_SocChanNumber_A5);
520 ADC_setSocSampleDelay(obj->
adcHandle, ADC_SocNumber_0, ADC_SocSampleDelay_64_cycles);
523 ADC_setIntSrc(obj->
adcHandle, ADC_IntNumber_1, ADC_IntSrc_EOC0);
526 ADC_clearIntFlag(obj->
adcHandle, ADC_IntNumber_1);
529 ADC_enableInt(obj->
adcHandle, ADC_IntNumber_1);
532 ADC_setSocFrc(obj->
adcHandle, ADC_SocFrc_0);
535 while (ADC_getIntFlag(obj->
adcHandle, ADC_IntNumber_1) == 0){}
538 ADC_clearIntFlag(obj->
adcHandle, ADC_IntNumber_1);
540 Temperature = ADC_readResult(obj->
adcHandle, ADC_ResultNumber_0);
553 int16_t compOscFineTrim;
556 ENABLE_PROTECTED_REGISTER_WRITE_MODE;
561 if(compOscFineTrim > 31)
563 compOscFineTrim = 31;
565 else if(compOscFineTrim < -31)
567 compOscFineTrim = -31;
572 DISABLE_PROTECTED_REGISTER_WRITE_MODE;
580 int16_t compOscFineTrim;
584 ENABLE_PROTECTED_REGISTER_WRITE_MODE;
589 if(compOscFineTrim > 31)
591 compOscFineTrim = 31;
593 else if(compOscFineTrim < -31)
595 compOscFineTrim = -31;
600 DISABLE_PROTECTED_REGISTER_WRITE_MODE;
608 uint16_t regValue = 0;
612 regValue = ((-fine) | 0x20) << 9;
616 regValue = fine << 9;
621 regValue |= ((-coarse) | 0x80);
689 USER_NUM_PWM_TICKS_PER_ISR_TICK);
762 ADC_setVoltRefSrc(obj->
adcHandle,ADC_VoltageRefSrc_Int);
770 ADC_setDivideSelect(obj->
adcHandle,ADC_DivideSelect_ClkIn_by_2);
782 ADC_setIntPulseGenMode(obj->
adcHandle,ADC_IntPulseGenMode_Prior);
786 ADC_setTempSensorSrc(obj->
adcHandle,ADC_TempSensorSrc_Int);
790 ADC_disableInt(obj->
adcHandle,ADC_IntNumber_6);
791 ADC_setIntMode(obj->
adcHandle,ADC_IntNumber_6,ADC_IntMode_ClearFlag);
792 ADC_setIntSrc(obj->
adcHandle,ADC_IntNumber_6,ADC_IntSrc_EOC7);
797 ADC_setSocChanNumber(obj->
adcHandle,ADC_SocNumber_0,ADC_SocChanNumber_A1);
798 ADC_setSocTrigSrc(obj->
adcHandle,ADC_SocNumber_0,ADC_SocTrigSrc_EPWM1_ADCSOCA);
799 ADC_setSocSampleDelay(obj->
adcHandle,ADC_SocNumber_0,ADC_SocSampleDelay_9_cycles);
803 ADC_setSocChanNumber(obj->
adcHandle,ADC_SocNumber_1,ADC_SocChanNumber_A1);
804 ADC_setSocTrigSrc(obj->
adcHandle,ADC_SocNumber_1,ADC_SocTrigSrc_EPWM1_ADCSOCA);
805 ADC_setSocSampleDelay(obj->
adcHandle,ADC_SocNumber_1,ADC_SocSampleDelay_9_cycles);
808 ADC_setSocChanNumber(obj->
adcHandle,ADC_SocNumber_2,ADC_SocChanNumber_B1);
809 ADC_setSocTrigSrc(obj->
adcHandle,ADC_SocNumber_2,ADC_SocTrigSrc_EPWM1_ADCSOCA);
810 ADC_setSocSampleDelay(obj->
adcHandle,ADC_SocNumber_2,ADC_SocSampleDelay_9_cycles);
813 ADC_setSocChanNumber(obj->
adcHandle,ADC_SocNumber_3,ADC_SocChanNumber_A3);
814 ADC_setSocTrigSrc(obj->
adcHandle,ADC_SocNumber_3,ADC_SocTrigSrc_EPWM1_ADCSOCA);
815 ADC_setSocSampleDelay(obj->
adcHandle,ADC_SocNumber_3,ADC_SocSampleDelay_9_cycles);
818 ADC_setSocChanNumber(obj->
adcHandle,ADC_SocNumber_4,ADC_SocChanNumber_B7);
819 ADC_setSocTrigSrc(obj->
adcHandle,ADC_SocNumber_4,ADC_SocTrigSrc_EPWM1_ADCSOCA);
820 ADC_setSocSampleDelay(obj->
adcHandle,ADC_SocNumber_4,ADC_SocSampleDelay_9_cycles);
823 ADC_setSocChanNumber(obj->
adcHandle,ADC_SocNumber_5,ADC_SocChanNumber_B6);
824 ADC_setSocTrigSrc(obj->
adcHandle,ADC_SocNumber_5,ADC_SocTrigSrc_EPWM1_ADCSOCA);
825 ADC_setSocSampleDelay(obj->
adcHandle,ADC_SocNumber_5,ADC_SocSampleDelay_9_cycles);
828 ADC_setSocChanNumber(obj->
adcHandle,ADC_SocNumber_6,ADC_SocChanNumber_B4);
829 ADC_setSocTrigSrc(obj->
adcHandle,ADC_SocNumber_6,ADC_SocTrigSrc_EPWM1_ADCSOCA);
830 ADC_setSocSampleDelay(obj->
adcHandle,ADC_SocNumber_6,ADC_SocSampleDelay_9_cycles);
833 ADC_setSocChanNumber(obj->
adcHandle,ADC_SocNumber_7,ADC_SocChanNumber_A7);
834 ADC_setSocTrigSrc(obj->
adcHandle,ADC_SocNumber_7,ADC_SocTrigSrc_EPWM1_ADCSOCA);
835 ADC_setSocSampleDelay(obj->
adcHandle,ADC_SocNumber_7,ADC_SocSampleDelay_9_cycles);
860 CLK_setOscSrc(obj->
clkHandle,CLK_OscSrc_Internal);
863 CLK_setLowSpdPreScaler(obj->
clkHandle,CLK_LowSpdPreScaler_SysClkOut_by_4);
866 CLK_setClkOutPreScaler(obj->
clkHandle,CLK_ClkOutPreScaler_SysClkOut_by_1);
879 FLASH_setNumPagedReadWaitStates(obj->
flashHandle,FLASH_NumPagedWaitStates_3);
881 FLASH_setNumRandomReadWaitStates(obj->
flashHandle,FLASH_NumRandomWaitStates_3);
883 FLASH_setOtpWaitStates(obj->
flashHandle,FLASH_NumOtpWaitStates_5);
885 FLASH_setStandbyWaitCount(obj->
flashHandle,FLASH_STANDBY_WAIT_COUNT_DEFAULT);
887 FLASH_setActiveWaitCount(obj->
flashHandle,FLASH_ACTIVE_WAIT_COUNT_DEFAULT);
903 for(cnt=0;cnt<3;cnt++)
905 PWM_enableTripZoneSrc(obj->
pwmHandle[cnt],PWM_TripZoneSrc_CycleByCycle_TZ6_NOT);
907 PWM_enableTripZoneSrc(obj->
pwmHandle[cnt],PWM_TripZoneSrc_OneShot_TZ1_NOT);
913 PWM_setTripZoneState_TZA(obj->
pwmHandle[cnt],PWM_TripZoneState_EPWM_Low);
914 PWM_setTripZoneState_TZB(obj->
pwmHandle[cnt],PWM_TripZoneState_EPWM_Low);
921 PWM_clearOneShotTrip(obj->
pwmHandle[cnt]);
934 GPIO_setMode(obj->
gpioHandle,GPIO_Number_0,GPIO_0_Mode_EPWM1A);
937 GPIO_setMode(obj->
gpioHandle,GPIO_Number_1,GPIO_1_Mode_EPWM1B);
940 GPIO_setMode(obj->
gpioHandle,GPIO_Number_2,GPIO_2_Mode_EPWM2A);
943 GPIO_setMode(obj->
gpioHandle,GPIO_Number_3,GPIO_3_Mode_EPWM2B);
946 GPIO_setMode(obj->
gpioHandle,GPIO_Number_4,GPIO_4_Mode_EPWM3A);
949 GPIO_setMode(obj->
gpioHandle,GPIO_Number_5,GPIO_5_Mode_EPWM3B);
952 GPIO_setMode(obj->
gpioHandle,GPIO_Number_6,GPIO_6_Mode_EPWM4A);
955 GPIO_setMode(obj->
gpioHandle,GPIO_Number_7,GPIO_7_Mode_GeneralPurpose);
958 GPIO_setMode(obj->
gpioHandle,GPIO_Number_8,GPIO_8_Mode_EPWM5A);
961 GPIO_setMode(obj->
gpioHandle,GPIO_Number_9,GPIO_9_Mode_GeneralPurpose);
963 GPIO_setDirection(obj->
gpioHandle,GPIO_Number_9,GPIO_Direction_Output);
966 GPIO_setMode(obj->
gpioHandle,GPIO_Number_10,GPIO_10_Mode_EPWM6A);
969 GPIO_setMode(obj->
gpioHandle,GPIO_Number_11,GPIO_11_Mode_EPWM6B);
972 GPIO_setMode(obj->
gpioHandle,GPIO_Number_12,GPIO_12_Mode_TZ1_NOT);
975 GPIO_setMode(obj->
gpioHandle,GPIO_Number_13,GPIO_13_Mode_GeneralPurpose);
978 GPIO_setMode(obj->
gpioHandle,GPIO_Number_14,GPIO_14_Mode_GeneralPurpose);
981 GPIO_setMode(obj->
gpioHandle,GPIO_Number_15,GPIO_15_Mode_GeneralPurpose);
982 GPIO_setDirection(obj->
gpioHandle,GPIO_Number_15,GPIO_Direction_Output);
986 GPIO_setMode(obj->
gpioHandle,GPIO_Number_16,GPIO_16_Mode_GeneralPurpose);
989 GPIO_setMode(obj->
gpioHandle,GPIO_Number_17,GPIO_17_Mode_GeneralPurpose);
992 GPIO_setMode(obj->
gpioHandle,GPIO_Number_18,GPIO_18_Mode_GeneralPurpose);
995 GPIO_setMode(obj->
gpioHandle,GPIO_Number_19,GPIO_19_Mode_GeneralPurpose);
999 GPIO_setMode(obj->
gpioHandle,GPIO_Number_20,GPIO_20_Mode_EQEP1A);
1002 GPIO_setMode(obj->
gpioHandle,GPIO_Number_21,GPIO_21_Mode_EQEP1B);
1005 GPIO_setMode(obj->
gpioHandle,GPIO_Number_22,GPIO_22_Mode_GeneralPurpose);
1008 GPIO_setMode(obj->
gpioHandle,GPIO_Number_23,GPIO_23_Mode_EQEP1I);
1011 GPIO_setMode(obj->
gpioHandle,GPIO_Number_20,GPIO_20_Mode_GeneralPurpose);
1014 GPIO_setMode(obj->
gpioHandle,GPIO_Number_21,GPIO_21_Mode_GeneralPurpose);
1017 GPIO_setMode(obj->
gpioHandle,GPIO_Number_22,GPIO_22_Mode_GeneralPurpose);
1020 GPIO_setMode(obj->
gpioHandle,GPIO_Number_23,GPIO_23_Mode_GeneralPurpose);
1024 GPIO_setMode(obj->
gpioHandle,GPIO_Number_24,GPIO_24_Mode_GeneralPurpose);
1027 GPIO_setMode(obj->
gpioHandle,GPIO_Number_25,GPIO_25_Mode_GeneralPurpose);
1030 GPIO_setMode(obj->
gpioHandle,GPIO_Number_26,GPIO_26_Mode_GeneralPurpose);
1033 GPIO_setMode(obj->
gpioHandle,GPIO_Number_27,GPIO_27_Mode_GeneralPurpose);
1036 GPIO_setMode(obj->
gpioHandle,GPIO_Number_28,GPIO_28_Mode_GeneralPurpose);
1039 GPIO_setMode(obj->
gpioHandle,GPIO_Number_29,GPIO_29_Mode_GeneralPurpose);
1042 GPIO_setMode(obj->
gpioHandle,GPIO_Number_30,GPIO_30_Mode_GeneralPurpose);
1045 GPIO_setMode(obj->
gpioHandle,GPIO_Number_31,GPIO_31_Mode_GeneralPurpose);
1047 GPIO_setDirection(obj->
gpioHandle,GPIO_Number_31,GPIO_Direction_Output);
1050 GPIO_setMode(obj->
gpioHandle,GPIO_Number_32,GPIO_32_Mode_GeneralPurpose);
1053 GPIO_setMode(obj->
gpioHandle,GPIO_Number_33,GPIO_33_Mode_GeneralPurpose);
1056 GPIO_setMode(obj->
gpioHandle,GPIO_Number_34,GPIO_34_Mode_GeneralPurpose);
1058 GPIO_setDirection(obj->
gpioHandle,GPIO_Number_34,GPIO_Direction_Output);
1061 GPIO_setMode(obj->
gpioHandle,GPIO_Number_35,GPIO_35_Mode_JTAG_TDI);
1062 GPIO_setMode(obj->
gpioHandle,GPIO_Number_36,GPIO_36_Mode_JTAG_TMS);
1063 GPIO_setMode(obj->
gpioHandle,GPIO_Number_37,GPIO_37_Mode_JTAG_TDO);
1064 GPIO_setMode(obj->
gpioHandle,GPIO_Number_38,GPIO_38_Mode_JTAG_TCK);
1067 GPIO_setMode(obj->
gpioHandle,GPIO_Number_39,GPIO_39_Mode_GeneralPurpose);
1070 GPIO_setMode(obj->
gpioHandle,GPIO_Number_40,GPIO_40_Mode_GeneralPurpose);
1073 GPIO_setMode(obj->
gpioHandle,GPIO_Number_41,GPIO_41_Mode_GeneralPurpose);
1076 GPIO_setMode(obj->
gpioHandle,GPIO_Number_42,GPIO_42_Mode_GeneralPurpose);
1079 GPIO_setMode(obj->
gpioHandle,GPIO_Number_43,GPIO_43_Mode_GeneralPurpose);
1082 GPIO_setMode(obj->
gpioHandle,GPIO_Number_44,GPIO_44_Mode_GeneralPurpose);
1085 GPIO_setMode(obj->
gpioHandle,GPIO_Number_50,GPIO_50_Mode_GeneralPurpose);
1088 GPIO_setMode(obj->
gpioHandle,GPIO_Number_51,GPIO_51_Mode_GeneralPurpose);
1091 GPIO_setMode(obj->
gpioHandle,GPIO_Number_52,GPIO_52_Mode_GeneralPurpose);
1094 GPIO_setMode(obj->
gpioHandle,GPIO_Number_53,GPIO_53_Mode_GeneralPurpose);
1097 GPIO_setMode(obj->
gpioHandle,GPIO_Number_54,GPIO_54_Mode_GeneralPurpose);
1100 GPIO_setMode(obj->
gpioHandle,GPIO_Number_55,GPIO_55_Mode_GeneralPurpose);
1103 GPIO_setMode(obj->
gpioHandle,GPIO_Number_56,GPIO_56_Mode_GeneralPurpose);
1106 GPIO_setMode(obj->
gpioHandle,GPIO_Number_57,GPIO_57_Mode_GeneralPurpose);
1109 GPIO_setMode(obj->
gpioHandle,GPIO_Number_58,GPIO_58_Mode_GeneralPurpose);
1128 PIE_setDefaultIntVectorTable(obj->
pieHandle);
1143 CLK_enableCompClock(obj->
clkHandle,CLK_CompNumber_1);
1144 CLK_enableCompClock(obj->
clkHandle,CLK_CompNumber_2);
1145 CLK_enableCompClock(obj->
clkHandle,CLK_CompNumber_3);
1155 CLK_enablePwmClock(obj->
clkHandle,PWM_Number_1);
1156 CLK_enablePwmClock(obj->
clkHandle,PWM_Number_2);
1157 CLK_enablePwmClock(obj->
clkHandle,PWM_Number_3);
1158 CLK_enablePwmClock(obj->
clkHandle,PWM_Number_4);
1159 CLK_enablePwmClock(obj->
clkHandle,PWM_Number_5);
1160 CLK_enablePwmClock(obj->
clkHandle,PWM_Number_6);
1161 CLK_enablePwmClock(obj->
clkHandle,PWM_Number_7);
1188 if(PLL_getClkStatus(obj->
pllHandle) != PLL_ClkStatus_Normal)
1199 if(PLL_getDivideSelect(obj->
pllHandle) != PLL_DivideSelect_ClkIn_by_4)
1201 PLL_setDivideSelect(obj->
pllHandle,PLL_DivideSelect_ClkIn_by_4);
1205 if(PLL_getClkFreq(obj->
pllHandle) != clkFreq)
1216 while(PLL_getLockStatus(obj->
pllHandle) != PLL_LockStatus_Done) {}
1225 PLL_setDivideSelect(obj->
pllHandle,PLL_DivideSelect_ClkIn_by_2);
1234 const uint_least16_t numPwmTicksPerIsrTick)
1237 uint16_t halfPeriod_cycles = (uint16_t)(systemFreq_MHz * pwmPeriod_usec / (
float_t)2.0);
1241 for(cnt=0;cnt<3;cnt++)
1244 PWM_setCounterMode(obj->
pwmHandle[cnt],PWM_CounterMode_UpDown);
1245 PWM_disableCounterLoad(obj->
pwmHandle[cnt]);
1246 PWM_setPeriodLoad(obj->
pwmHandle[cnt],PWM_PeriodLoad_Immediate);
1247 PWM_setSyncMode(obj->
pwmHandle[cnt],PWM_SyncMode_EPWMxSYNC);
1248 PWM_setHighSpeedClkDiv(obj->
pwmHandle[cnt],PWM_HspClkDiv_by_1);
1249 PWM_setClkDiv(obj->
pwmHandle[cnt],PWM_ClkDiv_by_1);
1250 PWM_setPhaseDir(obj->
pwmHandle[cnt],PWM_PhaseDir_CountUp);
1251 PWM_setRunMode(obj->
pwmHandle[cnt],PWM_RunMode_FreeRun);
1264 PWM_setLoadMode_CmpA(obj->
pwmHandle[cnt],PWM_LoadMode_Zero);
1265 PWM_setLoadMode_CmpB(obj->
pwmHandle[cnt],PWM_LoadMode_Zero);
1266 PWM_setShadowMode_CmpA(obj->
pwmHandle[cnt],PWM_ShadowMode_Shadow);
1267 PWM_setShadowMode_CmpB(obj->
pwmHandle[cnt],PWM_ShadowMode_Shadow);
1270 PWM_setActionQual_CntUp_CmpA_PwmA(obj->
pwmHandle[cnt],PWM_ActionQual_Set);
1271 PWM_setActionQual_CntDown_CmpA_PwmA(obj->
pwmHandle[cnt],PWM_ActionQual_Clear);
1274 PWM_setDeadBandOutputMode(obj->
pwmHandle[cnt],PWM_DeadBandOutputMode_EPWMxA_Rising_EPWMxB_Falling);
1275 PWM_setDeadBandPolarity(obj->
pwmHandle[cnt],PWM_DeadBandPolarity_EPWMxB_Inverted);
1284 PWM_disableChopping(obj->
pwmHandle[cnt]);
1287 PWM_disableTripZones(obj->
pwmHandle[cnt]);
1292 PWM_disableInt(obj->
pwmHandle[PWM_Number_1]);
1293 PWM_setIntMode(obj->
pwmHandle[PWM_Number_1],PWM_IntMode_CounterEqualZero);
1294 PWM_setSocAPulseSrc(obj->
pwmHandle[PWM_Number_1],PWM_SocPulseSrc_CounterEqualZero);
1295 PWM_enableSocAPulse(obj->
pwmHandle[PWM_Number_1]);
1299 if(numPwmTicksPerIsrTick == 3)
1301 PWM_setIntPeriod(obj->
pwmHandle[PWM_Number_1],PWM_IntPeriod_ThirdEvent);
1302 PWM_setSocAPeriod(obj->
pwmHandle[PWM_Number_1],PWM_SocPeriod_ThirdEvent);
1304 else if(numPwmTicksPerIsrTick == 2)
1306 PWM_setIntPeriod(obj->
pwmHandle[PWM_Number_1],PWM_IntPeriod_SecondEvent);
1307 PWM_setSocAPeriod(obj->
pwmHandle[PWM_Number_1],PWM_SocPeriod_SecondEvent);
1311 PWM_setIntPeriod(obj->
pwmHandle[PWM_Number_1],PWM_IntPeriod_FirstEvent);
1312 PWM_setSocAPeriod(obj->
pwmHandle[PWM_Number_1],PWM_SocPeriod_FirstEvent);
1317 PWM_clearIntFlag(obj->
pwmHandle[PWM_Number_1]);
1318 PWM_clearSocAFlag(obj->
pwmHandle[PWM_Number_1]);
1328 PWM_setPeriod(obj->
pwmHandle[PWM_Number_1],halfPeriod_cycles);
1329 PWM_setPeriod(obj->
pwmHandle[PWM_Number_2],halfPeriod_cycles);
1330 PWM_setPeriod(obj->
pwmHandle[PWM_Number_3],halfPeriod_cycles);
1343 uint16_t halfPeriod_cycles = (uint16_t)(systemFreq_MHz * (
float_t)1000.0 / ((
float_t)2.0 * dacFreq_kHz));
1347 for(cnt=0;cnt<3;cnt++)
1350 PWMDAC_setCounterMode(obj->
pwmDacHandle[cnt],PWM_CounterMode_UpDown);
1352 PWMDAC_setPeriodLoad(obj->
pwmDacHandle[cnt],PWM_PeriodLoad_Immediate);
1353 PWMDAC_setSyncMode(obj->
pwmDacHandle[cnt],PWM_SyncMode_EPWMxSYNC);
1354 PWMDAC_setHighSpeedClkDiv(obj->
pwmDacHandle[cnt],PWM_HspClkDiv_by_1);
1355 PWMDAC_setClkDiv(obj->
pwmDacHandle[cnt],PWM_ClkDiv_by_1);
1356 PWMDAC_setPhaseDir(obj->
pwmDacHandle[cnt],PWM_PhaseDir_CountUp);
1357 PWMDAC_setRunMode(obj->
pwmDacHandle[cnt],PWM_RunMode_FreeRun);
1370 PWMDAC_setLoadMode_CmpA(obj->
pwmDacHandle[cnt],PWM_LoadMode_Zero);
1371 PWMDAC_setLoadMode_CmpB(obj->
pwmDacHandle[cnt],PWM_LoadMode_Zero);
1372 PWMDAC_setShadowMode_CmpA(obj->
pwmDacHandle[cnt],PWM_ShadowMode_Shadow);
1373 PWMDAC_setShadowMode_CmpB(obj->
pwmDacHandle[cnt],PWM_ShadowMode_Shadow);
1376 PWMDAC_setActionQual_CntUp_CmpA_PwmA(obj->
pwmDacHandle[cnt],PWM_ActionQual_Set);
1377 PWMDAC_setActionQual_CntDown_CmpA_PwmA(obj->
pwmDacHandle[cnt],PWM_ActionQual_Clear);
1382 PWMDAC_setActionQual_CntUp_CmpB_PwmB(obj->
pwmDacHandle[cnt],PWM_ActionQual_Set);
1383 PWMDAC_setActionQual_CntDown_CmpB_PwmB(obj->
pwmDacHandle[cnt],PWM_ActionQual_Clear);
1396 PWMDAC_setTripZoneState_TZA(obj->
pwmDacHandle[cnt],PWM_TripZoneState_HighImp);
1397 PWMDAC_setTripZoneState_TZB(obj->
pwmDacHandle[cnt],PWM_TripZoneState_HighImp);
1398 PWMDAC_setTripZoneState_DCAEVT1(obj->
pwmDacHandle[cnt],PWM_TripZoneState_HighImp);
1399 PWMDAC_setTripZoneState_DCAEVT2(obj->
pwmDacHandle[cnt],PWM_TripZoneState_HighImp);
1400 PWMDAC_setTripZoneState_DCBEVT1(obj->
pwmDacHandle[cnt],PWM_TripZoneState_HighImp);
1411 PWMDAC_setPeriod(obj->
pwmDacHandle[PWMDAC_Number_1],halfPeriod_cycles);
1412 PWMDAC_setPeriod(obj->
pwmDacHandle[PWMDAC_Number_2],halfPeriod_cycles);
1413 PWMDAC_setPeriod(obj->
pwmDacHandle[PWMDAC_Number_3],halfPeriod_cycles);
1426 uint32_t timerPeriod_cnts = (uint32_t)(systemFreq_MHz * (
float_t)1000000.0) - 1;
1431 TIMER_setEmulationMode(obj->
timerHandle[0],TIMER_EmulationMode_RunFree);
1432 TIMER_setPeriod(obj->
timerHandle[0],timerPeriod_cnts);
1437 TIMER_setEmulationMode(obj->
timerHandle[1],TIMER_EmulationMode_RunFree);
1438 TIMER_setPeriod(obj->
timerHandle[1],timerPeriod_cnts);
1442 TIMER_setEmulationMode(obj->
timerHandle[2],TIMER_EmulationMode_StopAfterNextDecrement);
1444 TIMER_setDecimationFactor(obj->
timerHandle[2],(uint16_t)(((uint32_t)(systemFreq_MHz * (
float_t)500.0)) & 0xFFFF));
static void HAL_setNumVoltageSensors(HAL_Handle handle, const uint_least8_t numVoltageSensors)
Sets the number of voltage sensors.
#define FP_ROUND
Defines the quantity added to Q15 numbers before converting to integer to round the number...
void HAL_enableGlobalInts(HAL_Handle handle)
Enables global interrupts.
void HAL_enableAdcInts(HAL_Handle handle)
Enables the ADC interrupts.
void HAL_disableGlobalInts(HAL_Handle handle)
Disables global interrupts.
static void HAL_setCurrentScaleFactor(HAL_Handle handle, const _iq current_sf)
Sets the current scale factor in the hardware abstraction layer.
#define getOsc2CoarseTrim()
Defines the oscillator 2 coarse trim.
#define getOsc1FineTrimSlope()
The following functions return reference values stored in OTP.
#define HAL_PWM_DBFED_CNT
Defines the PWM deadband falling edge delay count (system clocks)
void HAL_OscTempComp(HAL_Handle handle)
Executes the oscillator 1 and 2 calibration functions.
#define getOsc1FineTrimOffset()
Defines the oscillator 1 fine trim at high temp.
CLK_Handle clkHandle
the clock handle
uint_least16_t systemFreq_MHz
Defines the system clock frequency, MHz.
Defines a structure for the user parameters.
uint_least8_t numCurrentSensors
Defines the number of current sensors.
void HAL_AdcCalChanSelect(HAL_Handle handle, const ADC_SocChanNumber_e chanNumber)
Selects the analog channel used for calibration.
#define getOsc2FineTrimOffset()
Defines the oscillator 2 fine trim at high temp.
void HAL_setupPeripheralClks(HAL_Handle handle)
Sets up the peripheral clocks.
void HAL_setupTimers(HAL_Handle handle, const float_t systemFreq_MHz)
Sets up the timers.
void HAL_osc2Comp(HAL_Handle handle, const int16_t sensorSample)
Executes the oscillator 2 calibration based on input sample.
void HAL_setupPll(HAL_Handle handle, const PLL_ClkFreq_e clkFreq)
Sets up the PLL (Phase Lock Loop)
Enumeration for current sensor.
FLASH_Handle flashHandle
the flash handle
PWMDAC_Handle pwmDacHandle[3]
void HAL_setupGpios(HAL_Handle handle)
Sets up the GPIO (General Purpose I/O) pins.
void HAL_setupFlash(HAL_Handle handle)
Sets up the FLASH.
void HAL_enablePwmInt(HAL_Handle handle)
Enables the PWM interrupt.
void HAL_setupClks(HAL_Handle handle)
Sets up the clocks.
#define HAL_PWM_DBRED_CNT
Defines the PWM deadband rising edge delay count (system clocks)
void HAL_setupFaults(HAL_Handle handle)
Configures the fault protection logic.
static void HAL_setVoltageScaleFactor(HAL_Handle handle, const _iq voltage_sf)
Sets the voltage scale factor in the hardware abstraction layer.
struct _HAL_Obj_ * HAL_Handle
Defines the HAL handle.
void HAL_osc1Comp(HAL_Handle handle, const int16_t sensorSample)
Executes the oscillator 1 calibration based on input sample.
float_t voltage_sf
Defines the voltage scale factor for the system.
void usDelay(const uint_least32_t delay_usec)
Provides a prescribes micro-second delay.
uint_least8_t numVoltageSensors
Defines the number of voltage sensors.
void HAL_setupPwms(HAL_Handle handle, const float_t systemFreq_MHz, const float_t pwmPeriod_usec, const uint_least16_t numPwmTicksPerIsrTick)
Sets up the PWMs (Pulse Width Modulators)
void HAL_setupPie(HAL_Handle handle)
Sets up the PIE (Peripheral Interrupt Expansion)
void HAL_enableDebugInt(HAL_Handle handle)
Enables the debug interrupt.
uint16_t HAL_computeOscTrimValue(int16_t coarse, int16_t fine)
#define getRefTempOffset()
Defines the ADC reading of temperature sensor at reference temperature for compensation.
static void HAL_setNumCurrentSensors(HAL_Handle handle, const uint_least8_t numCurrentSensors)
Sets the number of current sensors.
float_t pwmPeriod_usec
Defines the Pulse Width Modulation (PWM) period, usec.
#define getOsc1CoarseTrim()
Defines the oscillator 1 coarse trim.
static uint_least8_t HAL_getNumVoltageSensors(HAL_Handle handle)
Gets the number of voltage sensors.
static uint_least8_t HAL_getNumCurrentSensors(HAL_Handle handle)
Gets the number of current sensors.
float_t current_sf
Defines the current scale factor for the system.
WDOG_Handle wdogHandle
the watchdog handle
void HAL_AdcOffsetSelfCal(HAL_Handle handle)
Executes the offset calibration of the ADC.
#define FP_SCALE
Defines used in oscillator calibration functions.
OSC_Handle oscHandle
the oscillator handle
ADC_Handle adcHandle
the ADC handle
HAL_Handle HAL_init(void *pMemory, const size_t numBytes)
Initializes the hardware abstraction layer (HAL) object.
CPU_Handle cpuHandle
the CPU handle
void HAL_setupPwmDacs(HAL_Handle handle, const float_t systemFreq_MHz, const float_t dacFreq_kHz)
Sets up the PWM DACs (Pulse Width Modulator Digital to Analof Converters)
void HAL_cal(HAL_Handle handle)
Executes calibration routines.
HAL_Obj hal
Defines the HAL object.
TIMER_Handle timerHandle[3]
Enumeration for voltage sensor.
uint16_t HAL_AdcCalConversion(HAL_Handle handle)
Reads the converted value from the selected calibration channel.
static _iq HAL_getCurrentScaleFactor(HAL_Handle handle)
Gets the current scale factor.
static void HAL_setBias(HAL_Handle handle, const HAL_SensorType_e sensorType, uint_least8_t sensorNumber, const _iq bias)
Sets the ADC bias value.
PLL_Handle pllHandle
the PLL handle
void HAL_setParams(HAL_Handle handle, const USER_Params *pUserParams)
Sets the hardware abstraction layer parameters.
void HAL_setupAdcs(HAL_Handle handle)
Sets up the ADCs (Analog to Digital Converters)
void HAL_disableWdog(HAL_Handle halHandle)
Disables the watch dog.
float float_t
Defines the portable data type for 32 bit, signed floating-point data.
Defines the hardware abstraction layer (HAL) data.
GPIO_Handle gpioHandle
the GPIO handle
#define OSC_POSTRIM
Defines the amount to add to Q16.15 fixed point number to shift from a fine trim range of...
#define getOsc2FineTrimSlope()
Defines the slope used to compensate oscillator 2 (fine trim steps / ADC code). Stored.