|
@@ -58,6 +58,8 @@ SYSCONFIG_WEAK void SYSCFG_DL_init(void)
|
|
SYSCFG_DL_DEBUG_init();
|
|
SYSCFG_DL_DEBUG_init();
|
|
#endif
|
|
#endif
|
|
SYSCFG_DL_SYSCTL_init();
|
|
SYSCFG_DL_SYSCTL_init();
|
|
|
|
+ SYSCFG_DL_I2C_0_init();
|
|
|
|
+ SYSCFG_DL_DMA_init();
|
|
SYSCFG_DL_MOTOR_PWM_init();
|
|
SYSCFG_DL_MOTOR_PWM_init();
|
|
SYSCFG_DL_PWM_F_init();
|
|
SYSCFG_DL_PWM_F_init();
|
|
SYSCFG_DL_HALLTIMER_init();
|
|
SYSCFG_DL_HALLTIMER_init();
|
|
@@ -75,9 +77,6 @@ SYSCONFIG_WEAK void SYSCFG_DL_init(void)
|
|
gMOTOR_PWMBackup.backupRdy = false;
|
|
gMOTOR_PWMBackup.backupRdy = false;
|
|
gPWM_FBackup.backupRdy = false;
|
|
gPWM_FBackup.backupRdy = false;
|
|
gHALLTIMERBackup.backupRdy = false;
|
|
gHALLTIMERBackup.backupRdy = false;
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
}
|
|
}
|
|
/*
|
|
/*
|
|
* User should take care to save and restore register configuration in application.
|
|
* User should take care to save and restore register configuration in application.
|
|
@@ -110,6 +109,7 @@ SYSCONFIG_WEAK void SYSCFG_DL_initPower(void)
|
|
{
|
|
{
|
|
DL_GPIO_reset(GPIOA);
|
|
DL_GPIO_reset(GPIOA);
|
|
DL_GPIO_reset(GPIOB);
|
|
DL_GPIO_reset(GPIOB);
|
|
|
|
+ DL_I2C_reset(I2C_0_INST);
|
|
DL_TimerA_reset(MOTOR_PWM_INST);
|
|
DL_TimerA_reset(MOTOR_PWM_INST);
|
|
DL_TimerG_reset(PWM_F_INST);
|
|
DL_TimerG_reset(PWM_F_INST);
|
|
DL_TimerG_reset(HALLTIMER_INST);
|
|
DL_TimerG_reset(HALLTIMER_INST);
|
|
@@ -127,6 +127,7 @@ SYSCONFIG_WEAK void SYSCFG_DL_initPower(void)
|
|
|
|
|
|
DL_GPIO_enablePower(GPIOA);
|
|
DL_GPIO_enablePower(GPIOA);
|
|
DL_GPIO_enablePower(GPIOB);
|
|
DL_GPIO_enablePower(GPIOB);
|
|
|
|
+ DL_I2C_enablePower(I2C_0_INST);
|
|
DL_TimerA_enablePower(MOTOR_PWM_INST);
|
|
DL_TimerA_enablePower(MOTOR_PWM_INST);
|
|
DL_TimerG_enablePower(PWM_F_INST);
|
|
DL_TimerG_enablePower(PWM_F_INST);
|
|
DL_TimerG_enablePower(HALLTIMER_INST);
|
|
DL_TimerG_enablePower(HALLTIMER_INST);
|
|
@@ -150,6 +151,17 @@ SYSCONFIG_WEAK void SYSCFG_DL_GPIO_init(void)
|
|
DL_GPIO_initPeripheralAnalogFunction(GPIO_HFXIN_IOMUX);
|
|
DL_GPIO_initPeripheralAnalogFunction(GPIO_HFXIN_IOMUX);
|
|
DL_GPIO_initPeripheralAnalogFunction(GPIO_HFXOUT_IOMUX);
|
|
DL_GPIO_initPeripheralAnalogFunction(GPIO_HFXOUT_IOMUX);
|
|
|
|
|
|
|
|
+ DL_GPIO_initPeripheralInputFunctionFeatures(
|
|
|
|
+ GPIO_I2C_0_IOMUX_SDA, GPIO_I2C_0_IOMUX_SDA_FUNC,
|
|
|
|
+ DL_GPIO_INVERSION_DISABLE, DL_GPIO_RESISTOR_PULL_UP,
|
|
|
|
+ DL_GPIO_HYSTERESIS_DISABLE, DL_GPIO_WAKEUP_DISABLE);
|
|
|
|
+ DL_GPIO_initPeripheralInputFunctionFeatures(
|
|
|
|
+ GPIO_I2C_0_IOMUX_SCL, GPIO_I2C_0_IOMUX_SCL_FUNC,
|
|
|
|
+ DL_GPIO_INVERSION_DISABLE, DL_GPIO_RESISTOR_PULL_UP,
|
|
|
|
+ DL_GPIO_HYSTERESIS_DISABLE, DL_GPIO_WAKEUP_DISABLE);
|
|
|
|
+ DL_GPIO_enableHiZ(GPIO_I2C_0_IOMUX_SDA);
|
|
|
|
+ DL_GPIO_enableHiZ(GPIO_I2C_0_IOMUX_SCL);
|
|
|
|
+
|
|
DL_GPIO_initPeripheralOutputFunction(GPIO_MOTOR_PWM_C0_IOMUX,GPIO_MOTOR_PWM_C0_IOMUX_FUNC);
|
|
DL_GPIO_initPeripheralOutputFunction(GPIO_MOTOR_PWM_C0_IOMUX,GPIO_MOTOR_PWM_C0_IOMUX_FUNC);
|
|
DL_GPIO_enableOutput(GPIO_MOTOR_PWM_C0_PORT, GPIO_MOTOR_PWM_C0_PIN);
|
|
DL_GPIO_enableOutput(GPIO_MOTOR_PWM_C0_PORT, GPIO_MOTOR_PWM_C0_PIN);
|
|
DL_GPIO_initPeripheralOutputFunction(GPIO_MOTOR_PWM_C0_CMPL_IOMUX,GPIO_MOTOR_PWM_C0_CMPL_IOMUX_FUNC);
|
|
DL_GPIO_initPeripheralOutputFunction(GPIO_MOTOR_PWM_C0_CMPL_IOMUX,GPIO_MOTOR_PWM_C0_CMPL_IOMUX_FUNC);
|
|
@@ -273,6 +285,84 @@ SYSCONFIG_WEAK void SYSCFG_DL_SYSCTL_init(void)
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+static const DL_I2C_ClockConfig gI2C_0ClockConfig = {
|
|
|
|
+ .clockSel = DL_I2C_CLOCK_BUSCLK,
|
|
|
|
+ .divideRatio = DL_I2C_CLOCK_DIVIDE_1,
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+SYSCONFIG_WEAK void SYSCFG_DL_I2C_0_init(void) {
|
|
|
|
+
|
|
|
|
+ DL_I2C_setClockConfig(I2C_0_INST,
|
|
|
|
+ (DL_I2C_ClockConfig *) &gI2C_0ClockConfig);
|
|
|
|
+ DL_I2C_setAnalogGlitchFilterPulseWidth(I2C_0_INST,
|
|
|
|
+ DL_I2C_ANALOG_GLITCH_FILTER_WIDTH_50NS);
|
|
|
|
+ DL_I2C_enableAnalogGlitchFilter(I2C_0_INST);
|
|
|
|
+
|
|
|
|
+ /* Configure Controller Mode */
|
|
|
|
+ DL_I2C_resetControllerTransfer(I2C_0_INST);
|
|
|
|
+ /* Set frequency to 400000 Hz*/
|
|
|
|
+ DL_I2C_setTimerPeriod(I2C_0_INST, 7);
|
|
|
|
+ DL_I2C_setControllerTXFIFOThreshold(I2C_0_INST, DL_I2C_TX_FIFO_LEVEL_BYTES_1);
|
|
|
|
+ DL_I2C_setControllerRXFIFOThreshold(I2C_0_INST, DL_I2C_RX_FIFO_LEVEL_BYTES_1);
|
|
|
|
+ DL_I2C_enableControllerClockStretching(I2C_0_INST);
|
|
|
|
+
|
|
|
|
+ /* Configure Interrupts */
|
|
|
|
+ DL_I2C_enableInterrupt(I2C_0_INST,
|
|
|
|
+ DL_I2C_INTERRUPT_CONTROLLER_ARBITRATION_LOST |
|
|
|
|
+ DL_I2C_INTERRUPT_CONTROLLER_EVENT1_DMA_DONE |
|
|
|
|
+ DL_I2C_INTERRUPT_CONTROLLER_EVENT2_DMA_DONE |
|
|
|
|
+ DL_I2C_INTERRUPT_CONTROLLER_NACK |
|
|
|
|
+ DL_I2C_INTERRUPT_CONTROLLER_RX_DONE |
|
|
|
|
+ DL_I2C_INTERRUPT_CONTROLLER_TX_DONE);
|
|
|
|
+ NVIC_SetPriority(I2C_0_INST_INT_IRQN, 0);
|
|
|
|
+
|
|
|
|
+ /* Configure DMA Event 1 */
|
|
|
|
+ DL_I2C_enableDMAEvent(I2C_0_INST, DL_I2C_EVENT_ROUTE_1,
|
|
|
|
+ DL_I2C_DMA_INTERRUPT_CONTROLLER_TXFIFO_TRIGGER);
|
|
|
|
+ /* Configure DMA Event 2 */
|
|
|
|
+ DL_I2C_enableDMAEvent(I2C_0_INST, DL_I2C_EVENT_ROUTE_2,
|
|
|
|
+ DL_I2C_DMA_INTERRUPT_CONTROLLER_RXFIFO_TRIGGER);
|
|
|
|
+
|
|
|
|
+ /* Enable module */
|
|
|
|
+ DL_I2C_enableController(I2C_0_INST);
|
|
|
|
+
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+static const DL_DMA_Config gDMA_CH0Config = {
|
|
|
|
+ .transferMode = DL_DMA_SINGLE_TRANSFER_MODE,
|
|
|
|
+ .extendedMode = DL_DMA_NORMAL_MODE,
|
|
|
|
+ .destIncrement = DL_DMA_ADDR_UNCHANGED,
|
|
|
|
+ .srcIncrement = DL_DMA_ADDR_INCREMENT,
|
|
|
|
+ .destWidth = DL_DMA_WIDTH_BYTE,
|
|
|
|
+ .srcWidth = DL_DMA_WIDTH_BYTE,
|
|
|
|
+ .trigger = I2C_0_INST_DMA_TRIGGER_0,
|
|
|
|
+ .triggerType = DL_DMA_TRIGGER_TYPE_EXTERNAL,
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+SYSCONFIG_WEAK void SYSCFG_DL_DMA_CH0_init(void)
|
|
|
|
+{
|
|
|
|
+ DL_DMA_initChannel(DMA, DMA_CH0_CHAN_ID , (DL_DMA_Config *) &gDMA_CH0Config);
|
|
|
|
+}
|
|
|
|
+static const DL_DMA_Config gDMA_CH1Config = {
|
|
|
|
+ .transferMode = DL_DMA_SINGLE_TRANSFER_MODE,
|
|
|
|
+ .extendedMode = DL_DMA_NORMAL_MODE,
|
|
|
|
+ .destIncrement = DL_DMA_ADDR_INCREMENT,
|
|
|
|
+ .srcIncrement = DL_DMA_ADDR_UNCHANGED,
|
|
|
|
+ .destWidth = DL_DMA_WIDTH_BYTE,
|
|
|
|
+ .srcWidth = DL_DMA_WIDTH_BYTE,
|
|
|
|
+ .trigger = I2C_0_INST_DMA_TRIGGER_1,
|
|
|
|
+ .triggerType = DL_DMA_TRIGGER_TYPE_EXTERNAL,
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+SYSCONFIG_WEAK void SYSCFG_DL_DMA_CH1_init(void)
|
|
|
|
+{
|
|
|
|
+ DL_DMA_initChannel(DMA, DMA_CH1_CHAN_ID , (DL_DMA_Config *) &gDMA_CH1Config);
|
|
|
|
+}
|
|
|
|
+SYSCONFIG_WEAK void SYSCFG_DL_DMA_init(void){
|
|
|
|
+ SYSCFG_DL_DMA_CH0_init();
|
|
|
|
+ SYSCFG_DL_DMA_CH1_init();
|
|
|
|
+}
|
|
|
|
+
|
|
/*
|
|
/*
|
|
* Timer clock configuration to be sourced by / 1 (72000000 Hz)
|
|
* Timer clock configuration to be sourced by / 1 (72000000 Hz)
|
|
* timerClkFreq = (timerClkSrc / (timerClkDivRatio * (timerClkPrescale + 1)))
|
|
* timerClkFreq = (timerClkSrc / (timerClkDivRatio * (timerClkPrescale + 1)))
|