MotorControlModuleSDFM_TMS3.../Projects/EFC_Application/Motor/Motor.c

133 lines
4.1 KiB
C
Raw Permalink Normal View History

/*
* /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 <sysctl.h>
#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();
}