/* * /file Motor.c * /project EFC_Application * Created on: 8 апр. 2024 г. * Author: seklyuts * * Инициализация параметров, относящихся к CPU2 на CPU1 (моторчик) */ #include "pwm_init.h" #include "sdfm.h" #include "gpio_init.h" #include "f2838x_sdfm_drivers.h" #include "gpio.h" #include #include "frm_uart.h" #include "i2c_init.h" /* * Инициализция GPIO на CPU2 */ //void GPIOMoveCpu2(void) //{ // /** Перенос найденных GPIO на CPU2 */ // // GPIO_setControllerCore( 64, GPIO_CORE_CPU2); ///< Fault PWM // GPIO_SetupXINT1Gpio(64); // // // GPIO_setControllerCore( 87, GPIO_CORE_CPU2); ///< // GPIO_setControllerCore( 95, GPIO_CORE_CPU2); ///< реле силовое // // GPIO_setControllerCore( 97, GPIO_CORE_CPU2); ///< // // // // /** LED's GPIO */ // GPIO_setControllerCore( 6, GPIO_CORE_CPU2); ///< // GPIO_setControllerCore( 7, GPIO_CORE_CPU2); ///< // GPIO_setControllerCore(10, GPIO_CORE_CPU2); ///< // // /** ???? */ // GPIO_setControllerCore(55, GPIO_CORE_CPU2); ///< // GPIO_setControllerCore(56, GPIO_CORE_CPU2); ///< // GPIO_setControllerCore(57, GPIO_CORE_CPU2); ///< //} /* * Конфигурация пинов на CPU2 */ void Reconnect2CPU2() { /** * Перетаскиваем и все остальное ?? * ДОБАВИЛ ВСЁ!! */ SysCtl_selectCPUForPeripheral(SYSCTL_CPUSEL0_EPWM, 1, SYSCTL_CPUSEL_CPU2 ); SysCtl_selectCPUForPeripheral(SYSCTL_CPUSEL0_EPWM, 2, SYSCTL_CPUSEL_CPU2 ); SysCtl_selectCPUForPeripheral(SYSCTL_CPUSEL0_EPWM, 3, SYSCTL_CPUSEL_CPU2 ); SysCtl_selectCPUForPeripheral(SYSCTL_CPUSEL0_EPWM, 4, SYSCTL_CPUSEL_CPU2 ); SysCtl_selectCPUForPeripheral(SYSCTL_CPUSEL0_EPWM, 5, SYSCTL_CPUSEL_CPU2 ); SysCtl_selectCPUForPeripheral(SYSCTL_CPUSEL0_EPWM, 6, SYSCTL_CPUSEL_CPU2 ); SysCtl_selectCPUForPeripheral(SYSCTL_CPUSEL0_EPWM, 7, SYSCTL_CPUSEL_CPU2 ); SysCtl_selectCPUForPeripheral(SYSCTL_CPUSEL0_EPWM, 8, SYSCTL_CPUSEL_CPU2 ); SysCtl_selectCPUForPeripheral(SYSCTL_CPUSEL0_EPWM, 9, SYSCTL_CPUSEL_CPU2 ); SysCtl_selectCPUForPeripheral(SYSCTL_CPUSEL0_EPWM,10, SYSCTL_CPUSEL_CPU2 ); SysCtl_selectCPUForPeripheral(SYSCTL_CPUSEL0_EPWM,11, SYSCTL_CPUSEL_CPU2 ); SysCtl_selectCPUForPeripheral(SYSCTL_CPUSEL0_EPWM,12, SYSCTL_CPUSEL_CPU2 ); SysCtl_selectCPUForPeripheral(SYSCTL_CPUSEL4_SD, 1, SYSCTL_CPUSEL_CPU2 ); SysCtl_selectCPUForPeripheral(SYSCTL_CPUSEL4_SD, 2, SYSCTL_CPUSEL_CPU2 ); SysCtl_selectCPUForPeripheral(SYSCTL_CPUSEL11_ADC, 1, SYSCTL_CPUSEL_CPU2 ); SysCtl_selectCPUForPeripheral(SYSCTL_CPUSEL11_ADC, 2, SYSCTL_CPUSEL_CPU2 ); SysCtl_selectCPUForPeripheral(SYSCTL_CPUSEL11_ADC, 3, SYSCTL_CPUSEL_CPU2 ); SysCtl_selectCPUForPeripheral(SYSCTL_CPUSEL11_ADC, 4, SYSCTL_CPUSEL_CPU2 ); SysCtl_selectCPUForPeripheral(SYSCTL_CPUSEL5_SCI, 1, SYSCTL_CPUSEL_CPU2); SysCtl_selectCPUForPeripheral(SYSCTL_CPUSEL7_I2C, 1, SYSCTL_CPUSEL_CPU2); EINT; // Enable Global interrupt INTM ERTM; // Enable Global realtime interrupt DBGM } void initADC(void){ EALLOW; /** Включение АЦП */ CpuSysRegs.PCLKCR13.bit.ADC_A = 1; CpuSysRegs.PCLKCR13.bit.ADC_B = 1; CpuSysRegs.PCLKCR13.bit.ADC_C = 1; CpuSysRegs.PCLKCR13.bit.ADC_D = 1; // // Check if device is trimmed // if(*((Uint16 *)0x5D736) == 0x0000){ // // Device is not trimmed--apply static calibration values // AnalogSubsysRegs.ANAREFTRIMA.all = 31709; AnalogSubsysRegs.ANAREFTRIMB.all = 31709; AnalogSubsysRegs.ANAREFTRIMC.all = 31709; AnalogSubsysRegs.ANAREFTRIMD.all = 31709; } EDIS; } /*================================== * Инициализция MOTOR на CPU2 *=================================*/ void InitMotor(void) { EALLOW; ClkCfgRegs.LOSPCP.bit.LSPCLKDIV = 2; EDIS; initADC(); InitPeripheralClocks(); GpioInit(); GpioDiodInit(); SdfmGpioInit(); SdfmTypeInit(); PWMGpioInit(); FRMGPIOInit(); I2CMasterGpioInit(); Reconnect2CPU2(); }