51 #pragma CODE_SECTION(HAL_setupFlash,"ramfuncs");
83 ENABLE_PROTECTED_REGISTER_WRITE_MODE;
85 DISABLE_PROTECTED_REGISTER_WRITE_MODE;
103 uint16_t Temperature;
112 ADC_setVoltRefSrc(obj->
adcHandle,ADC_VoltageRefSrc_Int);
118 ADC_setDivideSelect(obj->
adcHandle,ADC_DivideSelect_ClkIn_by_2);
130 ADC_setTempSensorSrc(obj->
adcHandle, ADC_TempSensorSrc_Int);
133 ADC_setSocChanNumber(obj->
adcHandle, ADC_SocNumber_0, ADC_SocChanNumber_A5);
136 ADC_setSocSampleDelay(obj->
adcHandle, ADC_SocNumber_0, ADC_SocSampleDelay_64_cycles);
139 ADC_setIntSrc(obj->
adcHandle, ADC_IntNumber_1, ADC_IntSrc_EOC0);
142 ADC_clearIntFlag(obj->
adcHandle, ADC_IntNumber_1);
145 ADC_enableInt(obj->
adcHandle, ADC_IntNumber_1);
148 ADC_setSocFrc(obj->
adcHandle, ADC_SocFrc_0);
151 while (ADC_getIntFlag(obj->
adcHandle, ADC_IntNumber_1) == 0){}
154 ADC_clearIntFlag(obj->
adcHandle, ADC_IntNumber_1);
156 Temperature = ADC_readResult(obj->
adcHandle, ADC_ResultNumber_0);
168 int16_t compOscFineTrim;
171 ENABLE_PROTECTED_REGISTER_WRITE_MODE;
176 if(compOscFineTrim > 31)
178 compOscFineTrim = 31;
180 else if(compOscFineTrim < -31)
182 compOscFineTrim = -31;
187 DISABLE_PROTECTED_REGISTER_WRITE_MODE;
195 int16_t compOscFineTrim;
198 ENABLE_PROTECTED_REGISTER_WRITE_MODE;
203 if(compOscFineTrim > 31)
205 compOscFineTrim = 31;
207 else if(compOscFineTrim < -31)
209 compOscFineTrim = -31;
214 DISABLE_PROTECTED_REGISTER_WRITE_MODE;
222 uint16_t regValue = 0;
226 regValue = ((-fine) | 0x20) << 9;
230 regValue = fine << 9;
235 regValue |= ((-coarse) | 0x80);
249 uint16_t AdcConvMean;
258 ADC_setVoltRefSrc(obj->
adcHandle,ADC_VoltageRefSrc_Int);
264 ADC_setDivideSelect(obj->
adcHandle,ADC_DivideSelect_ClkIn_by_2);
285 ADC_setOffTrim(obj->
adcHandle, 80 - AdcConvMean);
288 ADC_disableVoltRefLoConv(obj->
adcHandle);
298 ADC_setSocChanNumber(obj->
adcHandle,ADC_SocNumber_0,chanNumber);
299 ADC_setSocChanNumber(obj->
adcHandle,ADC_SocNumber_1,chanNumber);
300 ADC_setSocChanNumber(obj->
adcHandle,ADC_SocNumber_2,chanNumber);
301 ADC_setSocChanNumber(obj->
adcHandle,ADC_SocNumber_3,chanNumber);
302 ADC_setSocChanNumber(obj->
adcHandle,ADC_SocNumber_4,chanNumber);
303 ADC_setSocChanNumber(obj->
adcHandle,ADC_SocNumber_5,chanNumber);
304 ADC_setSocChanNumber(obj->
adcHandle,ADC_SocNumber_6,chanNumber);
305 ADC_setSocChanNumber(obj->
adcHandle,ADC_SocNumber_7,chanNumber);
306 ADC_setSocChanNumber(obj->
adcHandle,ADC_SocNumber_8,chanNumber);
307 ADC_setSocChanNumber(obj->
adcHandle,ADC_SocNumber_9,chanNumber);
308 ADC_setSocChanNumber(obj->
adcHandle,ADC_SocNumber_10,chanNumber);
309 ADC_setSocChanNumber(obj->
adcHandle,ADC_SocNumber_11,chanNumber);
310 ADC_setSocChanNumber(obj->
adcHandle,ADC_SocNumber_12,chanNumber);
311 ADC_setSocChanNumber(obj->
adcHandle,ADC_SocNumber_13,chanNumber);
312 ADC_setSocChanNumber(obj->
adcHandle,ADC_SocNumber_14,chanNumber);
313 ADC_setSocChanNumber(obj->
adcHandle,ADC_SocNumber_15,chanNumber);
322 uint16_t index, SampleSize, Mean;
324 ADC_SocSampleDelay_e ACQPS_Value;
332 ACQPS_Value = ADC_SocSampleDelay_7_cycles;
334 ADC_setSocSampleDelay(obj->
adcHandle,ADC_SocNumber_0,ACQPS_Value);
335 ADC_setSocSampleDelay(obj->
adcHandle,ADC_SocNumber_1,ACQPS_Value);
336 ADC_setSocSampleDelay(obj->
adcHandle,ADC_SocNumber_2,ACQPS_Value);
337 ADC_setSocSampleDelay(obj->
adcHandle,ADC_SocNumber_3,ACQPS_Value);
338 ADC_setSocSampleDelay(obj->
adcHandle,ADC_SocNumber_4,ACQPS_Value);
339 ADC_setSocSampleDelay(obj->
adcHandle,ADC_SocNumber_5,ACQPS_Value);
340 ADC_setSocSampleDelay(obj->
adcHandle,ADC_SocNumber_6,ACQPS_Value);
341 ADC_setSocSampleDelay(obj->
adcHandle,ADC_SocNumber_7,ACQPS_Value);
342 ADC_setSocSampleDelay(obj->
adcHandle,ADC_SocNumber_8,ACQPS_Value);
343 ADC_setSocSampleDelay(obj->
adcHandle,ADC_SocNumber_9,ACQPS_Value);
344 ADC_setSocSampleDelay(obj->
adcHandle,ADC_SocNumber_10,ACQPS_Value);
345 ADC_setSocSampleDelay(obj->
adcHandle,ADC_SocNumber_11,ACQPS_Value);
346 ADC_setSocSampleDelay(obj->
adcHandle,ADC_SocNumber_12,ACQPS_Value);
347 ADC_setSocSampleDelay(obj->
adcHandle,ADC_SocNumber_13,ACQPS_Value);
348 ADC_setSocSampleDelay(obj->
adcHandle,ADC_SocNumber_14,ACQPS_Value);
349 ADC_setSocSampleDelay(obj->
adcHandle,ADC_SocNumber_15,ACQPS_Value);
352 ADC_enableInt(obj->
adcHandle, ADC_IntNumber_1);
353 ADC_enableInt(obj->
adcHandle, ADC_IntNumber_2);
356 ADC_setIntMode(obj->
adcHandle, ADC_IntNumber_1, ADC_IntMode_EOC);
357 ADC_setIntMode(obj->
adcHandle, ADC_IntNumber_2, ADC_IntMode_EOC);
360 ADC_setIntPulseGenMode(obj->
adcHandle, ADC_IntPulseGenMode_Prior);
363 ADC_setIntSrc(obj->
adcHandle, ADC_IntNumber_1, ADC_IntSrc_EOC6);
364 ADC_setIntSrc(obj->
adcHandle, ADC_IntNumber_2, ADC_IntSrc_EOC14);
367 ADC_setupSocTrigSrc(obj->
adcHandle, ADC_SocNumber_0, ADC_Int2TriggersSOC);
368 ADC_setupSocTrigSrc(obj->
adcHandle, ADC_SocNumber_1, ADC_Int2TriggersSOC);
369 ADC_setupSocTrigSrc(obj->
adcHandle, ADC_SocNumber_2, ADC_Int2TriggersSOC);
370 ADC_setupSocTrigSrc(obj->
adcHandle, ADC_SocNumber_3, ADC_Int2TriggersSOC);
371 ADC_setupSocTrigSrc(obj->
adcHandle, ADC_SocNumber_4, ADC_Int2TriggersSOC);
372 ADC_setupSocTrigSrc(obj->
adcHandle, ADC_SocNumber_5, ADC_Int2TriggersSOC);
373 ADC_setupSocTrigSrc(obj->
adcHandle, ADC_SocNumber_6, ADC_Int2TriggersSOC);
374 ADC_setupSocTrigSrc(obj->
adcHandle, ADC_SocNumber_7, ADC_Int2TriggersSOC);
375 ADC_setupSocTrigSrc(obj->
adcHandle, ADC_SocNumber_8, ADC_Int1TriggersSOC);
376 ADC_setupSocTrigSrc(obj->
adcHandle, ADC_SocNumber_9, ADC_Int1TriggersSOC);
377 ADC_setupSocTrigSrc(obj->
adcHandle, ADC_SocNumber_10, ADC_Int1TriggersSOC);
378 ADC_setupSocTrigSrc(obj->
adcHandle, ADC_SocNumber_11, ADC_Int1TriggersSOC);
379 ADC_setupSocTrigSrc(obj->
adcHandle, ADC_SocNumber_12, ADC_Int1TriggersSOC);
380 ADC_setupSocTrigSrc(obj->
adcHandle, ADC_SocNumber_13, ADC_Int1TriggersSOC);
381 ADC_setupSocTrigSrc(obj->
adcHandle, ADC_SocNumber_14, ADC_Int1TriggersSOC);
382 ADC_setupSocTrigSrc(obj->
adcHandle, ADC_SocNumber_15, ADC_Int1TriggersSOC);
387 ADC_setSocFrcWord(obj->
adcHandle, 0x00FF);
389 while( index < SampleSize )
392 while (ADC_getIntFlag(obj->
adcHandle, ADC_IntNumber_1) == 0){}
395 ADC_clearIntFlag(obj->
adcHandle, ADC_IntNumber_1);
397 Sum += ADC_readResult(obj->
adcHandle, ADC_ResultNumber_0);
398 Sum += ADC_readResult(obj->
adcHandle, ADC_ResultNumber_1);
399 Sum += ADC_readResult(obj->
adcHandle, ADC_ResultNumber_2);
400 Sum += ADC_readResult(obj->
adcHandle, ADC_ResultNumber_3);
401 Sum += ADC_readResult(obj->
adcHandle, ADC_ResultNumber_4);
402 Sum += ADC_readResult(obj->
adcHandle, ADC_ResultNumber_5);
403 Sum += ADC_readResult(obj->
adcHandle, ADC_ResultNumber_6);
404 Sum += ADC_readResult(obj->
adcHandle, ADC_ResultNumber_7);
407 while (ADC_getIntFlag(obj->
adcHandle, ADC_IntNumber_2) == 0){}
410 ADC_clearIntFlag(obj->
adcHandle, ADC_IntNumber_2);
412 Sum += ADC_readResult(obj->
adcHandle, ADC_ResultNumber_8);
413 Sum += ADC_readResult(obj->
adcHandle, ADC_ResultNumber_9);
414 Sum += ADC_readResult(obj->
adcHandle, ADC_ResultNumber_10);
415 Sum += ADC_readResult(obj->
adcHandle, ADC_ResultNumber_11);
416 Sum += ADC_readResult(obj->
adcHandle, ADC_ResultNumber_12);
417 Sum += ADC_readResult(obj->
adcHandle, ADC_ResultNumber_13);
418 Sum += ADC_readResult(obj->
adcHandle, ADC_ResultNumber_14);
419 Sum += ADC_readResult(obj->
adcHandle, ADC_ResultNumber_15);
426 ADC_disableInt(obj->
adcHandle, ADC_IntNumber_1);
427 ADC_disableInt(obj->
adcHandle, ADC_IntNumber_2);
430 Mean = Sum / SampleSize;
433 ADC_setupSocTrigSrc(obj->
adcHandle, ADC_SocNumber_0, ADC_NoIntTriggersSOC);
434 ADC_setupSocTrigSrc(obj->
adcHandle, ADC_SocNumber_1, ADC_NoIntTriggersSOC);
435 ADC_setupSocTrigSrc(obj->
adcHandle, ADC_SocNumber_2, ADC_NoIntTriggersSOC);
436 ADC_setupSocTrigSrc(obj->
adcHandle, ADC_SocNumber_3, ADC_NoIntTriggersSOC);
437 ADC_setupSocTrigSrc(obj->
adcHandle, ADC_SocNumber_4, ADC_NoIntTriggersSOC);
438 ADC_setupSocTrigSrc(obj->
adcHandle, ADC_SocNumber_5, ADC_NoIntTriggersSOC);
439 ADC_setupSocTrigSrc(obj->
adcHandle, ADC_SocNumber_6, ADC_NoIntTriggersSOC);
440 ADC_setupSocTrigSrc(obj->
adcHandle, ADC_SocNumber_7, ADC_NoIntTriggersSOC);
441 ADC_setupSocTrigSrc(obj->
adcHandle, ADC_SocNumber_8, ADC_NoIntTriggersSOC);
442 ADC_setupSocTrigSrc(obj->
adcHandle, ADC_SocNumber_9, ADC_NoIntTriggersSOC);
443 ADC_setupSocTrigSrc(obj->
adcHandle, ADC_SocNumber_10, ADC_NoIntTriggersSOC);
444 ADC_setupSocTrigSrc(obj->
adcHandle, ADC_SocNumber_11, ADC_NoIntTriggersSOC);
445 ADC_setupSocTrigSrc(obj->
adcHandle, ADC_SocNumber_12, ADC_NoIntTriggersSOC);
446 ADC_setupSocTrigSrc(obj->
adcHandle, ADC_SocNumber_13, ADC_NoIntTriggersSOC);
447 ADC_setupSocTrigSrc(obj->
adcHandle, ADC_SocNumber_14, ADC_NoIntTriggersSOC);
448 ADC_setupSocTrigSrc(obj->
adcHandle, ADC_SocNumber_15, ADC_NoIntTriggersSOC);
484 PIE_enableAdcInt(obj->
pieHandle,ADC_IntNumber_1);
488 ADC_enableInt(obj->
adcHandle,ADC_IntNumber_1);
492 CPU_enableInt(obj->
cpuHandle,CPU_IntNumber_10);
535 PIE_enablePwmInt(obj->
pieHandle,PWM_Number_4);
537 PIE_enablePwmInt(obj->
pieHandle,PWM_Number_1);
547 CPU_enableInt(obj->
cpuHandle,CPU_IntNumber_3);
566 CPU_enableInt(obj->
cpuHandle,CPU_IntNumber_1);
582 for(cnt=0;cnt<3;cnt++)
584 PWM_enableTripZoneSrc(obj->
pwmHandle[cnt],PWM_TripZoneSrc_CycleByCycle_TZ6_NOT);
586 PWM_enableTripZoneSrc(obj->
pwmHandle[cnt],PWM_TripZoneSrc_CycleByCycle_TZ3_NOT);
588 PWM_enableTripZoneSrc(obj->
pwmHandle[cnt],PWM_TripZoneSrc_CycleByCycle_TZ2_NOT);
594 PWM_setTripZoneState_TZA(obj->
pwmHandle[cnt],PWM_TripZoneState_EPWM_Low);
595 PWM_setTripZoneState_TZB(obj->
pwmHandle[cnt],PWM_TripZoneState_EPWM_Low);
622 obj->
wdogHandle = WDOG_init((
void *)WDOG_BASE_ADDR,
sizeof(WDOG_Obj));
630 obj->
adcHandle = ADC_init((
void *)ADC_BASE_ADDR,
sizeof(ADC_Obj));
634 obj->
clkHandle = CLK_init((
void *)CLK_BASE_ADDR,
sizeof(CLK_Obj));
638 obj->
cpuHandle = CPU_init(&cpu,
sizeof(cpu));
642 obj->
flashHandle = FLASH_init((
void *)FLASH_BASE_ADDR,
sizeof(FLASH_Obj));
646 obj->
gpioHandle = GPIO_init((
void *)GPIO_BASE_ADDR,
sizeof(GPIO_Obj));
650 for(cnt=0;cnt<USER_NUM_CURRENT_SENSORS;cnt++)
657 for(cnt=0;cnt<USER_NUM_VOLTAGE_SENSORS;cnt++)
664 obj->
oscHandle = OSC_init((
void *)OSC_BASE_ADDR,
sizeof(OSC_Obj));
668 obj->
pieHandle = PIE_init((
void *)PIE_BASE_ADDR,
sizeof(PIE_Obj));
672 obj->
pllHandle = PLL_init((
void *)PLL_BASE_ADDR,
sizeof(PLL_Obj));
676 obj->
spiAHandle = SPI_init((
void *)SPIA_BASE_ADDR,
sizeof(SPI_Obj));
677 obj->
spiBHandle = SPI_init((
void *)SPIB_BASE_ADDR,
sizeof(SPI_Obj));
682 obj->
pwmHandle[0] = PWM_init((
void *)PWM_ePWM4_BASE_ADDR,
sizeof(PWM_Obj));
683 obj->
pwmHandle[1] = PWM_init((
void *)PWM_ePWM5_BASE_ADDR,
sizeof(PWM_Obj));
684 obj->
pwmHandle[2] = PWM_init((
void *)PWM_ePWM6_BASE_ADDR,
sizeof(PWM_Obj));
686 obj->
pwmHandle[0] = PWM_init((
void *)PWM_ePWM1_BASE_ADDR,
sizeof(PWM_Obj));
687 obj->
pwmHandle[1] = PWM_init((
void *)PWM_ePWM2_BASE_ADDR,
sizeof(PWM_Obj));
688 obj->
pwmHandle[2] = PWM_init((
void *)PWM_ePWM3_BASE_ADDR,
sizeof(PWM_Obj));
693 obj->
pwmDacHandle[0] = PWMDAC_init((
void *)PWM_ePWM7_BASE_ADDR,
sizeof(PWM_Obj));
694 obj->
pwmDacHandle[1] = PWMDAC_init((
void *)PWM_ePWM8_BASE_ADDR,
sizeof(PWM_Obj));
698 obj->
pwrHandle = PWR_init((
void *)PWR_BASE_ADDR,
sizeof(PWR_Obj));
702 obj->
timerHandle[0] = TIMER_init((
void *)TIMER0_BASE_ADDR,
sizeof(TIMER_Obj));
703 obj->
timerHandle[1] = TIMER_init((
void *)TIMER1_BASE_ADDR,
sizeof(TIMER_Obj));
704 obj->
timerHandle[2] = TIMER_init((
void *)TIMER2_BASE_ADDR,
sizeof(TIMER_Obj));
713 obj->qepHandle[0] = QEP_init((
void*)QEP1_BASE_ADDR,
sizeof(QEP_Obj));
714 obj->qepHandle[1] = QEP_init((
void*)QEP2_BASE_ADDR,
sizeof(QEP_Obj));
796 USER_NUM_PWM_TICKS_PER_ISR_TICK);
882 ADC_setVoltRefSrc(obj->
adcHandle,ADC_VoltageRefSrc_Int);
890 ADC_setDivideSelect(obj->
adcHandle,ADC_DivideSelect_ClkIn_by_2);
902 ADC_setIntPulseGenMode(obj->
adcHandle,ADC_IntPulseGenMode_Prior);
906 ADC_setTempSensorSrc(obj->
adcHandle,ADC_TempSensorSrc_Ext);
910 ADC_disableInt(obj->
adcHandle,ADC_IntNumber_1);
911 ADC_setIntMode(obj->
adcHandle,ADC_IntNumber_1,ADC_IntMode_ClearFlag);
912 ADC_setIntSrc(obj->
adcHandle,ADC_IntNumber_1,ADC_IntSrc_EOC7);
917 ADC_setSocChanNumber(obj->
adcHandle,ADC_SocNumber_0,ADC_SocChanNumber_A3);
918 ADC_setSocTrigSrc(obj->
adcHandle,ADC_SocNumber_0,ADC_SocTrigSrc_EPWM4_ADCSOCA);
919 ADC_setSocSampleDelay(obj->
adcHandle,ADC_SocNumber_0,ADC_SocSampleDelay_9_cycles);
923 ADC_setSocChanNumber(obj->
adcHandle,ADC_SocNumber_1,ADC_SocChanNumber_A3);
924 ADC_setSocTrigSrc(obj->
adcHandle,ADC_SocNumber_1,ADC_SocTrigSrc_EPWM4_ADCSOCA);
925 ADC_setSocSampleDelay(obj->
adcHandle,ADC_SocNumber_1,ADC_SocSampleDelay_9_cycles);
928 ADC_setSocChanNumber(obj->
adcHandle,ADC_SocNumber_2,ADC_SocChanNumber_B3);
929 ADC_setSocTrigSrc(obj->
adcHandle,ADC_SocNumber_2,ADC_SocTrigSrc_EPWM4_ADCSOCA);
930 ADC_setSocSampleDelay(obj->
adcHandle,ADC_SocNumber_2,ADC_SocSampleDelay_9_cycles);
933 ADC_setSocChanNumber(obj->
adcHandle,ADC_SocNumber_3,ADC_SocChanNumber_A4);
934 ADC_setSocTrigSrc(obj->
adcHandle,ADC_SocNumber_3,ADC_SocTrigSrc_EPWM4_ADCSOCA);
935 ADC_setSocSampleDelay(obj->
adcHandle,ADC_SocNumber_3,ADC_SocSampleDelay_9_cycles);
938 ADC_setSocChanNumber(obj->
adcHandle,ADC_SocNumber_4,ADC_SocChanNumber_B4);
939 ADC_setSocTrigSrc(obj->
adcHandle,ADC_SocNumber_4,ADC_SocTrigSrc_EPWM4_ADCSOCA);
940 ADC_setSocSampleDelay(obj->
adcHandle,ADC_SocNumber_4,ADC_SocSampleDelay_9_cycles);
943 ADC_setSocChanNumber(obj->
adcHandle,ADC_SocNumber_5,ADC_SocChanNumber_A5);
944 ADC_setSocTrigSrc(obj->
adcHandle,ADC_SocNumber_5,ADC_SocTrigSrc_EPWM4_ADCSOCA);
945 ADC_setSocSampleDelay(obj->
adcHandle,ADC_SocNumber_5,ADC_SocSampleDelay_9_cycles);
948 ADC_setSocChanNumber(obj->
adcHandle,ADC_SocNumber_6,ADC_SocChanNumber_B5);
949 ADC_setSocTrigSrc(obj->
adcHandle,ADC_SocNumber_6,ADC_SocTrigSrc_EPWM4_ADCSOCA);
950 ADC_setSocSampleDelay(obj->
adcHandle,ADC_SocNumber_6,ADC_SocSampleDelay_9_cycles);
953 ADC_setSocChanNumber(obj->
adcHandle,ADC_SocNumber_7,ADC_SocChanNumber_B7);
954 ADC_setSocTrigSrc(obj->
adcHandle,ADC_SocNumber_7,ADC_SocTrigSrc_EPWM4_ADCSOCA);
955 ADC_setSocSampleDelay(obj->
adcHandle,ADC_SocNumber_7,ADC_SocSampleDelay_9_cycles);
959 ADC_setSocChanNumber(obj->
adcHandle,ADC_SocNumber_0,ADC_SocChanNumber_A0);
960 ADC_setSocTrigSrc(obj->
adcHandle,ADC_SocNumber_0,ADC_SocTrigSrc_EPWM1_ADCSOCA);
961 ADC_setSocSampleDelay(obj->
adcHandle,ADC_SocNumber_0,ADC_SocSampleDelay_9_cycles);
965 ADC_setSocChanNumber(obj->
adcHandle,ADC_SocNumber_1,ADC_SocChanNumber_A0);
966 ADC_setSocTrigSrc(obj->
adcHandle,ADC_SocNumber_1,ADC_SocTrigSrc_EPWM1_ADCSOCA);
967 ADC_setSocSampleDelay(obj->
adcHandle,ADC_SocNumber_1,ADC_SocSampleDelay_9_cycles);
970 ADC_setSocChanNumber(obj->
adcHandle,ADC_SocNumber_2,ADC_SocChanNumber_B0);
971 ADC_setSocTrigSrc(obj->
adcHandle,ADC_SocNumber_2,ADC_SocTrigSrc_EPWM1_ADCSOCA);
972 ADC_setSocSampleDelay(obj->
adcHandle,ADC_SocNumber_2,ADC_SocSampleDelay_9_cycles);
975 ADC_setSocChanNumber(obj->
adcHandle,ADC_SocNumber_3,ADC_SocChanNumber_A1);
976 ADC_setSocTrigSrc(obj->
adcHandle,ADC_SocNumber_3,ADC_SocTrigSrc_EPWM1_ADCSOCA);
977 ADC_setSocSampleDelay(obj->
adcHandle,ADC_SocNumber_3,ADC_SocSampleDelay_9_cycles);
980 ADC_setSocChanNumber(obj->
adcHandle,ADC_SocNumber_4,ADC_SocChanNumber_B1);
981 ADC_setSocTrigSrc(obj->
adcHandle,ADC_SocNumber_4,ADC_SocTrigSrc_EPWM1_ADCSOCA);
982 ADC_setSocSampleDelay(obj->
adcHandle,ADC_SocNumber_4,ADC_SocSampleDelay_9_cycles);
985 ADC_setSocChanNumber(obj->
adcHandle,ADC_SocNumber_5,ADC_SocChanNumber_A2);
986 ADC_setSocTrigSrc(obj->
adcHandle,ADC_SocNumber_5,ADC_SocTrigSrc_EPWM1_ADCSOCA);
987 ADC_setSocSampleDelay(obj->
adcHandle,ADC_SocNumber_5,ADC_SocSampleDelay_9_cycles);
990 ADC_setSocChanNumber(obj->
adcHandle,ADC_SocNumber_6,ADC_SocChanNumber_B2);
991 ADC_setSocTrigSrc(obj->
adcHandle,ADC_SocNumber_6,ADC_SocTrigSrc_EPWM1_ADCSOCA);
992 ADC_setSocSampleDelay(obj->
adcHandle,ADC_SocNumber_6,ADC_SocSampleDelay_9_cycles);
995 ADC_setSocChanNumber(obj->
adcHandle,ADC_SocNumber_7,ADC_SocChanNumber_A7);
996 ADC_setSocTrigSrc(obj->
adcHandle,ADC_SocNumber_7,ADC_SocTrigSrc_EPWM1_ADCSOCA);
997 ADC_setSocSampleDelay(obj->
adcHandle,ADC_SocNumber_7,ADC_SocSampleDelay_9_cycles);
1012 CLK_setOscSrc(obj->
clkHandle,CLK_OscSrc_Internal);
1024 CLK_setLowSpdPreScaler(obj->
clkHandle,CLK_LowSpdPreScaler_SysClkOut_by_1);
1027 CLK_setClkOutPreScaler(obj->
clkHandle,CLK_ClkOutPreScaler_SysClkOut_by_1);
1040 FLASH_setNumPagedReadWaitStates(obj->
flashHandle,FLASH_NumPagedWaitStates_3);
1042 FLASH_setNumRandomReadWaitStates(obj->
flashHandle,FLASH_NumRandomWaitStates_3);
1044 FLASH_setOtpWaitStates(obj->
flashHandle,FLASH_NumOtpWaitStates_5);
1046 FLASH_setStandbyWaitCount(obj->
flashHandle,FLASH_STANDBY_WAIT_COUNT_DEFAULT);
1048 FLASH_setActiveWaitCount(obj->
flashHandle,FLASH_ACTIVE_WAIT_COUNT_DEFAULT);
1077 GPIO_setMode(obj->
gpioHandle,GPIO_Number_0,GPIO_0_Mode_EPWM1A);
1080 GPIO_setMode(obj->
gpioHandle,GPIO_Number_1,GPIO_1_Mode_EPWM1B);
1083 GPIO_setMode(obj->
gpioHandle,GPIO_Number_2,GPIO_2_Mode_EPWM2A);
1086 GPIO_setMode(obj->
gpioHandle,GPIO_Number_3,GPIO_3_Mode_EPWM2B);
1089 GPIO_setMode(obj->
gpioHandle,GPIO_Number_4,GPIO_4_Mode_EPWM3A);
1092 GPIO_setMode(obj->
gpioHandle,GPIO_Number_5,GPIO_5_Mode_EPWM3B);
1095 GPIO_setMode(obj->
gpioHandle,GPIO_Number_6,GPIO_6_Mode_EPWM4A);
1098 GPIO_setMode(obj->
gpioHandle,GPIO_Number_7,GPIO_7_Mode_EPWM4B);
1101 GPIO_setMode(obj->
gpioHandle,GPIO_Number_8,GPIO_8_Mode_EPWM5A);
1104 GPIO_setMode(obj->
gpioHandle,GPIO_Number_9,GPIO_9_Mode_EPWM5B);
1107 GPIO_setMode(obj->
gpioHandle,GPIO_Number_10,GPIO_10_Mode_EPWM6A);
1110 GPIO_setMode(obj->
gpioHandle,GPIO_Number_11,GPIO_11_Mode_EPWM6B);
1113 GPIO_setMode(obj->
gpioHandle,GPIO_Number_12,GPIO_12_Mode_GeneralPurpose);
1116 GPIO_setMode(obj->
gpioHandle,GPIO_Number_13,GPIO_13_Mode_GeneralPurpose);
1119 GPIO_setMode(obj->
gpioHandle,GPIO_Number_14,GPIO_14_Mode_SPICLKB);
1122 GPIO_setMode(obj->
gpioHandle,GPIO_Number_15,GPIO_15_Mode_SCIRXDB);
1125 GPIO_setQualificationPeriod(obj->
gpioHandle,GPIO_Number_16,22);
1128 GPIO_setMode(obj->
gpioHandle,GPIO_Number_16,GPIO_16_Mode_SPISIMOA);
1131 GPIO_setMode(obj->
gpioHandle,GPIO_Number_17,GPIO_17_Mode_SPISOMIA);
1134 GPIO_setMode(obj->
gpioHandle,GPIO_Number_18,GPIO_18_Mode_SPICLKA);
1137 GPIO_setMode(obj->
gpioHandle,GPIO_Number_19,GPIO_19_Mode_SPISTEA_NOT);
1141 GPIO_setMode(obj->
gpioHandle,GPIO_Number_20,GPIO_20_Mode_EQEP1A);
1142 GPIO_setQualification(obj->
gpioHandle,GPIO_Number_20,GPIO_Qual_Sample_3);
1145 GPIO_setMode(obj->
gpioHandle,GPIO_Number_21,GPIO_21_Mode_EQEP1B);
1146 GPIO_setQualification(obj->
gpioHandle,GPIO_Number_21,GPIO_Qual_Sample_3);
1149 GPIO_setMode(obj->
gpioHandle,GPIO_Number_22,GPIO_22_Mode_GeneralPurpose);
1152 GPIO_setMode(obj->
gpioHandle,GPIO_Number_23,GPIO_23_Mode_EQEP1I);
1153 GPIO_setQualification(obj->
gpioHandle,GPIO_Number_23,GPIO_Qual_Sample_3);
1156 GPIO_setMode(obj->
gpioHandle,GPIO_Number_20,GPIO_20_Mode_GeneralPurpose);
1159 GPIO_setMode(obj->
gpioHandle,GPIO_Number_21,GPIO_21_Mode_GeneralPurpose);
1162 GPIO_setMode(obj->
gpioHandle,GPIO_Number_22,GPIO_22_Mode_GeneralPurpose);
1165 GPIO_setMode(obj->
gpioHandle,GPIO_Number_23,GPIO_23_Mode_GeneralPurpose);
1169 GPIO_setMode(obj->
gpioHandle,GPIO_Number_24,GPIO_24_Mode_SPISIMOB);
1172 GPIO_setMode(obj->
gpioHandle,GPIO_Number_25,GPIO_25_Mode_SPISOMIB);
1175 GPIO_setMode(obj->
gpioHandle,GPIO_Number_26,GPIO_26_Mode_GeneralPurpose);
1178 GPIO_setMode(obj->
gpioHandle,GPIO_Number_27,GPIO_27_Mode_SPISTEB_NOT);
1181 GPIO_setMode(obj->
gpioHandle,GPIO_Number_28,GPIO_28_Mode_TZ2_NOT);
1184 GPIO_setMode(obj->
gpioHandle,GPIO_Number_29,GPIO_29_Mode_TZ3_NOT);
1187 GPIO_setMode(obj->
gpioHandle,GPIO_Number_30,GPIO_30_Mode_CANRXA);
1190 GPIO_setMode(obj->
gpioHandle,GPIO_Number_31,GPIO_31_Mode_CANTXA);
1193 GPIO_setMode(obj->
gpioHandle,GPIO_Number_32,GPIO_32_Mode_SDAA);
1196 GPIO_setMode(obj->
gpioHandle,GPIO_Number_33,GPIO_33_Mode_SCLA);
1199 GPIO_setMode(obj->
gpioHandle,GPIO_Number_34,GPIO_34_Mode_GeneralPurpose);
1201 GPIO_setDirection(obj->
gpioHandle,GPIO_Number_34,GPIO_Direction_Output);
1204 GPIO_setMode(obj->
gpioHandle,GPIO_Number_35,GPIO_35_Mode_JTAG_TDI);
1205 GPIO_setMode(obj->
gpioHandle,GPIO_Number_36,GPIO_36_Mode_JTAG_TMS);
1206 GPIO_setMode(obj->
gpioHandle,GPIO_Number_37,GPIO_37_Mode_JTAG_TDO);
1207 GPIO_setMode(obj->
gpioHandle,GPIO_Number_38,GPIO_38_Mode_JTAG_TCK);
1210 GPIO_setMode(obj->
gpioHandle,GPIO_Number_39,GPIO_39_Mode_GeneralPurpose);
1212 GPIO_setDirection(obj->
gpioHandle,GPIO_Number_39,GPIO_Direction_Output);
1215 GPIO_setMode(obj->
gpioHandle,GPIO_Number_40,GPIO_40_Mode_EPWM7A);
1218 GPIO_setMode(obj->
gpioHandle,GPIO_Number_41,GPIO_41_Mode_EPWM7B);
1221 GPIO_setMode(obj->
gpioHandle,GPIO_Number_42,GPIO_42_Mode_EPWM8A);
1224 GPIO_setMode(obj->
gpioHandle,GPIO_Number_43,GPIO_43_Mode_EPWM8B);
1227 GPIO_setMode(obj->
gpioHandle,GPIO_Number_44,GPIO_44_Mode_GeneralPurpose);
1230 GPIO_setQualificationPeriod(obj->
gpioHandle,GPIO_Number_50,22);
1233 GPIO_setMode(obj->
gpioHandle,GPIO_Number_50,GPIO_50_Mode_GeneralPurpose);
1235 GPIO_setDirection(obj->
gpioHandle,GPIO_Number_50,GPIO_Direction_Output);
1238 GPIO_setMode(obj->
gpioHandle,GPIO_Number_51,GPIO_51_Mode_GeneralPurpose);
1240 GPIO_setDirection(obj->
gpioHandle,GPIO_Number_51,GPIO_Direction_Output);
1243 GPIO_setMode(obj->
gpioHandle,GPIO_Number_52,GPIO_52_Mode_GeneralPurpose);
1245 GPIO_setDirection(obj->
gpioHandle,GPIO_Number_52,GPIO_Direction_Output);
1248 GPIO_setMode(obj->
gpioHandle,GPIO_Number_53,GPIO_53_Mode_GeneralPurpose);
1250 GPIO_setDirection(obj->
gpioHandle,GPIO_Number_53,GPIO_Direction_Output);
1253 GPIO_setQualificationPeriod(obj->
gpioHandle,GPIO_Number_56,22);
1257 GPIO_setMode(obj->
gpioHandle,GPIO_Number_54,GPIO_54_Mode_EQEP2A);
1258 GPIO_setQualification(obj->
gpioHandle,GPIO_Number_54,GPIO_Qual_Sample_3);
1261 GPIO_setMode(obj->
gpioHandle,GPIO_Number_55,GPIO_55_Mode_EQEP2B);
1262 GPIO_setQualification(obj->
gpioHandle,GPIO_Number_55,GPIO_Qual_Sample_3);
1265 GPIO_setMode(obj->
gpioHandle,GPIO_Number_56,GPIO_56_Mode_EQEP2I);
1266 GPIO_setQualification(obj->
gpioHandle,GPIO_Number_56,GPIO_Qual_Sample_3);
1269 GPIO_setMode(obj->
gpioHandle,GPIO_Number_54,GPIO_54_Mode_GeneralPurpose);
1272 GPIO_setMode(obj->
gpioHandle,GPIO_Number_55,GPIO_55_Mode_GeneralPurpose);
1275 GPIO_setMode(obj->
gpioHandle,GPIO_Number_56,GPIO_56_Mode_GeneralPurpose);
1279 GPIO_setMode(obj->
gpioHandle,GPIO_Number_57,GPIO_57_Mode_GeneralPurpose);
1282 GPIO_setMode(obj->
gpioHandle,GPIO_Number_58,GPIO_58_Mode_SCITXDB);
1301 PIE_setDefaultIntVectorTable(obj->
pieHandle);
1316 CLK_enableCompClock(obj->
clkHandle,CLK_CompNumber_1);
1317 CLK_enableCompClock(obj->
clkHandle,CLK_CompNumber_2);
1318 CLK_enableCompClock(obj->
clkHandle,CLK_CompNumber_3);
1329 CLK_enablePwmClock(obj->
clkHandle,PWM_Number_1);
1330 CLK_enablePwmClock(obj->
clkHandle,PWM_Number_2);
1331 CLK_enablePwmClock(obj->
clkHandle,PWM_Number_3);
1332 CLK_enablePwmClock(obj->
clkHandle,PWM_Number_4);
1333 CLK_enablePwmClock(obj->
clkHandle,PWM_Number_5);
1334 CLK_enablePwmClock(obj->
clkHandle,PWM_Number_6);
1335 CLK_enablePwmClock(obj->
clkHandle,PWM_Number_7);
1336 CLK_enablePwmClock(obj->
clkHandle,PWM_Number_8);
1364 if(PLL_getClkStatus(obj->
pllHandle) != PLL_ClkStatus_Normal)
1375 if(PLL_getDivideSelect(obj->
pllHandle) != PLL_DivideSelect_ClkIn_by_4)
1377 PLL_setDivideSelect(obj->
pllHandle,PLL_DivideSelect_ClkIn_by_4);
1381 if(PLL_getClkFreq(obj->
pllHandle) != clkFreq)
1392 while(PLL_getLockStatus(obj->
pllHandle) != PLL_LockStatus_Done) {}
1401 PLL_setDivideSelect(obj->
pllHandle,PLL_DivideSelect_ClkIn_by_2);
1410 const uint_least16_t numPwmTicksPerIsrTick)
1413 uint16_t halfPeriod_cycles = (uint16_t)(systemFreq_MHz*pwmPeriod_usec) >> 1;
1419 PWM_setOneShotTrip(obj->
pwmHandle[PWM_Number_1]);
1420 PWM_setOneShotTrip(obj->
pwmHandle[PWM_Number_2]);
1421 PWM_setOneShotTrip(obj->
pwmHandle[PWM_Number_3]);
1423 for(cnt=0;cnt<3;cnt++)
1426 PWM_setCounterMode(obj->
pwmHandle[cnt],PWM_CounterMode_UpDown);
1427 PWM_disableCounterLoad(obj->
pwmHandle[cnt]);
1428 PWM_setPeriodLoad(obj->
pwmHandle[cnt],PWM_PeriodLoad_Immediate);
1429 PWM_setSyncMode(obj->
pwmHandle[cnt],PWM_SyncMode_EPWMxSYNC);
1430 PWM_setHighSpeedClkDiv(obj->
pwmHandle[cnt],PWM_HspClkDiv_by_1);
1431 PWM_setClkDiv(obj->
pwmHandle[cnt],PWM_ClkDiv_by_1);
1432 PWM_setPhaseDir(obj->
pwmHandle[cnt],PWM_PhaseDir_CountUp);
1433 PWM_setRunMode(obj->
pwmHandle[cnt],PWM_RunMode_FreeRun);
1446 PWM_setLoadMode_CmpA(obj->
pwmHandle[cnt],PWM_LoadMode_Zero);
1447 PWM_setLoadMode_CmpB(obj->
pwmHandle[cnt],PWM_LoadMode_Zero);
1448 PWM_setShadowMode_CmpA(obj->
pwmHandle[cnt],PWM_ShadowMode_Shadow);
1449 PWM_setShadowMode_CmpB(obj->
pwmHandle[cnt],PWM_ShadowMode_Immediate);
1452 PWM_setActionQual_CntUp_CmpA_PwmA(obj->
pwmHandle[cnt],PWM_ActionQual_Set);
1453 PWM_setActionQual_CntDown_CmpA_PwmA(obj->
pwmHandle[cnt],PWM_ActionQual_Clear);
1456 PWM_setDeadBandOutputMode(obj->
pwmHandle[cnt],PWM_DeadBandOutputMode_EPWMxA_Rising_EPWMxB_Falling);
1457 PWM_setDeadBandPolarity(obj->
pwmHandle[cnt],PWM_DeadBandPolarity_EPWMxB_Inverted);
1465 PWM_disableChopping(obj->
pwmHandle[cnt]);
1468 PWM_disableTripZones(obj->
pwmHandle[cnt]);
1473 PWM_disableInt(obj->
pwmHandle[PWM_Number_1]);
1474 PWM_setSocAPulseSrc(obj->
pwmHandle[PWM_Number_1],PWM_SocPulseSrc_CounterEqualZero);
1475 PWM_enableSocAPulse(obj->
pwmHandle[PWM_Number_1]);
1479 if(numPwmTicksPerIsrTick == 3)
1481 PWM_setIntPeriod(obj->
pwmHandle[PWM_Number_1],PWM_IntPeriod_ThirdEvent);
1482 PWM_setSocAPeriod(obj->
pwmHandle[PWM_Number_1],PWM_SocPeriod_ThirdEvent);
1484 else if(numPwmTicksPerIsrTick == 2)
1486 PWM_setIntPeriod(obj->
pwmHandle[PWM_Number_1],PWM_IntPeriod_SecondEvent);
1487 PWM_setSocAPeriod(obj->
pwmHandle[PWM_Number_1],PWM_SocPeriod_SecondEvent);
1491 PWM_setIntPeriod(obj->
pwmHandle[PWM_Number_1],PWM_IntPeriod_FirstEvent);
1492 PWM_setSocAPeriod(obj->
pwmHandle[PWM_Number_1],PWM_SocPeriod_FirstEvent);
1497 PWM_clearIntFlag(obj->
pwmHandle[PWM_Number_1]);
1498 PWM_clearSocAFlag(obj->
pwmHandle[PWM_Number_1]);
1505 PWM_setPeriod(obj->
pwmHandle[PWM_Number_1],halfPeriod_cycles);
1506 PWM_setPeriod(obj->
pwmHandle[PWM_Number_2],halfPeriod_cycles);
1507 PWM_setPeriod(obj->
pwmHandle[PWM_Number_3],halfPeriod_cycles);
1522 QEP_reset_counter(obj->qepHandle[qep]);
1525 QEP_set_posn_init_count(obj->qepHandle[qep], 0);
1528 QEP_disable_all_interrupts(obj->qepHandle[qep]);
1531 QEP_clear_all_interrupt_flags(obj->qepHandle[qep]);
1534 QEP_clear_posn_counter(obj->qepHandle[qep]);
1537 QEP_set_max_posn_count(obj->qepHandle[qep], (4*USER_MOTOR_ENCODER_LINES)-1);
1540 QEP_set_QEP_source(obj->qepHandle[qep], QEP_Qsrc_Quad_Count_Mode);
1541 QEP_disable_sync_out(obj->qepHandle[qep]);
1542 QEP_set_swap_quad_inputs(obj->qepHandle[qep], QEP_Swap_Not_Swapped);
1543 QEP_disable_gate_index(obj->qepHandle[qep]);
1544 QEP_set_ext_clock_rate(obj->qepHandle[qep], QEP_Xcr_2x_Res);
1545 QEP_set_A_polarity(obj->qepHandle[qep], QEP_Qap_No_Effect);
1546 QEP_set_B_polarity(obj->qepHandle[qep], QEP_Qbp_No_Effect);
1547 QEP_set_index_polarity(obj->qepHandle[qep], QEP_Qip_No_Effect);
1550 QEP_set_emu_control(obj->qepHandle[qep], QEPCTL_Freesoft_Unaffected_Halt);
1551 QEP_set_posn_count_reset_mode(obj->qepHandle[qep], QEPCTL_Pcrm_Max_Reset);
1552 QEP_set_strobe_event_init(obj->qepHandle[qep], QEPCTL_Sei_Nothing);
1553 QEP_set_index_event_init(obj->qepHandle[qep], QEPCTL_Iei_Nothing);
1554 QEP_set_index_event_latch(obj->qepHandle[qep], QEPCTL_Iel_Rising_Edge);
1555 QEP_set_soft_init(obj->qepHandle[qep], QEPCTL_Swi_Nothing);
1556 QEP_disable_unit_timer(obj->qepHandle[qep]);
1557 QEP_disable_watchdog(obj->qepHandle[qep]);
1560 QEP_disable_posn_compare(obj->qepHandle[qep]);
1563 QEP_disable_capture(obj->qepHandle[qep]);
1566 QEP_enable_counter(obj->qepHandle[qep]);
1578 SPI_setMode(obj->
spiAHandle,SPI_Mode_Master);
1579 SPI_setClkPolarity(obj->
spiAHandle,SPI_ClkPolarity_OutputRisingEdge_InputFallingEdge);
1584 SPI_setBaudRate(obj->
spiAHandle,(SPI_BaudRate_e)(0x000d));
1585 SPI_setCharLength(obj->
spiAHandle,SPI_CharLength_16_Bits);
1586 SPI_setSuspend(obj->
spiAHandle,SPI_TxSuspend_free);
1598 SPI_setMode(obj->
spiBHandle,SPI_Mode_Master);
1599 SPI_setClkPolarity(obj->
spiBHandle,SPI_ClkPolarity_OutputRisingEdge_InputFallingEdge);
1604 SPI_setBaudRate(obj->
spiBHandle,(SPI_BaudRate_e)(0x000d));
1605 SPI_setCharLength(obj->
spiBHandle,SPI_CharLength_16_Bits);
1606 SPI_setSuspend(obj->
spiBHandle,SPI_TxSuspend_free);
1616 uint16_t halfPeriod_cycles = 512;
1620 for(cnt=0;cnt<2;cnt++)
1623 PWMDAC_setCounterMode(obj->
pwmDacHandle[cnt],PWM_CounterMode_UpDown);
1625 PWMDAC_setPeriodLoad(obj->
pwmDacHandle[cnt],PWM_PeriodLoad_Immediate);
1626 PWMDAC_setSyncMode(obj->
pwmDacHandle[cnt],PWM_SyncMode_EPWMxSYNC);
1627 PWMDAC_setHighSpeedClkDiv(obj->
pwmDacHandle[cnt],PWM_HspClkDiv_by_1);
1628 PWMDAC_setClkDiv(obj->
pwmDacHandle[cnt],PWM_ClkDiv_by_1);
1629 PWMDAC_setPhaseDir(obj->
pwmDacHandle[cnt],PWM_PhaseDir_CountUp);
1630 PWMDAC_setRunMode(obj->
pwmDacHandle[cnt],PWM_RunMode_FreeRun);
1643 PWMDAC_setLoadMode_CmpA(obj->
pwmDacHandle[cnt],PWM_LoadMode_Zero);
1644 PWMDAC_setLoadMode_CmpB(obj->
pwmDacHandle[cnt],PWM_LoadMode_Zero);
1645 PWMDAC_setShadowMode_CmpA(obj->
pwmDacHandle[cnt],PWM_ShadowMode_Shadow);
1646 PWMDAC_setShadowMode_CmpB(obj->
pwmDacHandle[cnt],PWM_ShadowMode_Shadow);
1649 PWMDAC_setActionQual_CntUp_CmpA_PwmA(obj->
pwmDacHandle[cnt],PWM_ActionQual_Clear);
1650 PWMDAC_setActionQual_CntDown_CmpA_PwmA(obj->
pwmDacHandle[cnt],PWM_ActionQual_Set);
1651 PWMDAC_setActionQual_CntUp_CmpB_PwmB(obj->
pwmDacHandle[cnt],PWM_ActionQual_Clear);
1652 PWMDAC_setActionQual_CntDown_CmpB_PwmB(obj->
pwmDacHandle[cnt],PWM_ActionQual_Set);
1664 PWMDAC_setTripZoneState_TZA(obj->
pwmDacHandle[cnt],PWM_TripZoneState_HighImp);
1665 PWMDAC_setTripZoneState_TZB(obj->
pwmDacHandle[cnt],PWM_TripZoneState_HighImp);
1666 PWMDAC_setTripZoneState_DCAEVT1(obj->
pwmDacHandle[cnt],PWM_TripZoneState_HighImp);
1667 PWMDAC_setTripZoneState_DCAEVT2(obj->
pwmDacHandle[cnt],PWM_TripZoneState_HighImp);
1668 PWMDAC_setTripZoneState_DCBEVT1(obj->
pwmDacHandle[cnt],PWM_TripZoneState_HighImp);
1673 PWMDAC_setPeriod(obj->
pwmDacHandle[PWMDAC_Number_1],halfPeriod_cycles);
1674 PWMDAC_setPeriod(obj->
pwmDacHandle[PWMDAC_Number_2],halfPeriod_cycles);
1683 uint32_t timerPeriod_cnts = (uint32_t)(systemFreq_MHz * (
float_t)1000000.0) - 1;
1687 TIMER_setEmulationMode(obj->
timerHandle[0],TIMER_EmulationMode_RunFree);
1688 TIMER_setPeriod(obj->
timerHandle[0],timerPeriod_cnts);
1693 TIMER_setEmulationMode(obj->
timerHandle[1],TIMER_EmulationMode_RunFree);
1694 TIMER_setPeriod(obj->
timerHandle[1],timerPeriod_cnts);
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...
OFFSET_Handle offsetHandle_I[3]
the handles for the current offset estimators
void HAL_setupQEP(HAL_Handle handle, HAL_QepSelect_e qep)
Sets up the QEP peripheral.
void HAL_enableGlobalInts(HAL_Handle handle)
Enables global interrupts.
void HAL_enableAdcInts(HAL_Handle handle)
Enables the ADC interrupts.
OFFSET_Obj offset_V[3]
the voltage offset objects
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)
SPI_Handle spiBHandle
the SPI handle
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.
static void HAL_setOffsetValue(HAL_Handle handle, const HAL_SensorType_e sensorType, const uint_least8_t sensorNumber, const _iq value)
Sets the initial offset value for offset estimation.
CLK_Handle clkHandle
the clock handle
void HAL_writeDrvData(HAL_Handle handle, DRV_SPI_8301_Vars_t *Spi_8301_Vars)
Writes data to the driver.
DRV8301_Obj drv8301
the drv8301 interface object
static void HAL_setOffsetInitCond(HAL_Handle handle, const HAL_SensorType_e sensorType, const uint_least8_t sensorNumber, const _iq initCond)
Sets the offset initial condition value for offset estimation.
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.
HAL_QepSelect_e
Enumeration for the QEP setup.
#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.
static void HAL_setOffsetBeta_lp_pu(HAL_Handle handle, const HAL_SensorType_e sensorType, const uint_least8_t sensorNumber, const _iq beta_lp_pu)
Sets the value used to set the low pass filter pole for offset estimation.
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_enableDrv(HAL_Handle handle)
Enables the 8301 device.
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.
void HAL_setupDrvSpi(HAL_Handle handle, DRV_SPI_8301_Vars_t *Spi_8301_Vars)
Sets up the SPI interface for the driver.
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.
SPI_Handle spiAHandle
the SPI handle
float_t offsetPole_rps
Defines the pole location for the voltage and current offset estimation, rad/s.
#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.
void HAL_setupSpiB(HAL_Handle handle)
Sets up the spiB peripheral.
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
uint_least32_t ctrlFreq_Hz
Defines the controller frequency, Hz.
void HAL_cal(HAL_Handle handle)
Executes calibration routines.
void HAL_setupGate(HAL_Handle handle)
Sets up the GATE object.
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.
void HAL_setupPwmDacs(HAL_Handle handle)
Sets up the PWM DACs (Pulse Width Modulator Digital to Analof Converters)
static void HAL_setBias(HAL_Handle handle, const HAL_SensorType_e sensorType, uint_least8_t sensorNumber, const _iq bias)
Sets the ADC bias value.
uint16_t HAL_getOscTrimValue(int16_t coarse, int16_t fine)
Converts coarse and fine oscillator trim values into a single 16bit word value.
OFFSET_Obj offset_I[3]
the current offset objects
OFFSET_Handle OFFSET_init(void *pMemory, const size_t numBytes)
Initializes the offset.
PLL_Handle pllHandle
the PLL handle
void HAL_setupSpiA(HAL_Handle handle)
Sets up the spiA peripheral.
void HAL_setParams(HAL_Handle handle, const USER_Params *pUserParams)
Sets the hardware abstraction layer parameters.
void HAL_readDrvData(HAL_Handle handle, DRV_SPI_8301_Vars_t *Spi_8301_Vars)
Reads data from the driver.
DRV8301_Handle drv8301Handle
the drv8301 interface handle
void HAL_setupAdcs(HAL_Handle handle)
Sets up the ADCs (Analog to Digital Converters)
void HAL_enableTimer0Int(HAL_Handle handle)
Enables the Timer 0 interrupt.
void HAL_disableWdog(HAL_Handle halHandle)
Disables the watch dog.
OFFSET_Handle offsetHandle_V[3]
the handles for the voltage offset estimators
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.